26 января 2017

Невероятная новость об искусственном интеллекте Google, которую вы, возможно, пропустили

В последние недели 2016 года ребята из Google опубликовали статью, которая незаметно пролетела мимо радаров большинства читателей. И очень жаль — ведь это, пожалуй, самая удивительная статья из прочитанных мною за прошлый год.

Не расстраивайтесь, если тоже пропустили ее. Разве может статья соперничать с предновогодними хлопотами, которые свалились на большинство из нас? К тому же, они запрятали ее в исследовательском блоге Google под гиканутым заголовком “Перевод Zero-Shot в системе переводов Google на основе нейросети” (Zero-Shot Translation with Google’s Multilingual Neural Machine Translation System).

Не очень-то располагает к чтению, не правда ли? Особенно если над душой висят незаконченные проекты, некупленные подарки, неулаженные ссоры с близкими — а календарь неумолимо отсчитывает время до нового года.

К счастью, я сейчас по-быстрому расскажу, в чем все дело.

Вплоть до сентября прошлого года Google Translate использовал алгоритм пофразового перевода. По сути программа переводила ключевые слова и фразы: точно так же, как мы ищем нужные выражения в разговорнике. Вот только нам придется перелистать кучу страниц, чтобы сказать по-французски что-то типа “несите мне весь ваш сыр, и не останавливайтесь, пока я не упаду”. Компьютер переведет фразу быстрее, но потеряет множество нюансов.

Пофразовый перевод — грубый инструмент. Да, он выполняет свою работу на определенном уровне. Но приблизительный перевод отдельных слов и фраз без понимания лингвистических структур дает нам довольно сырые результаты.

У этого подхода есть еще одно ограничение — доступный словарный запас. Пофразовый алгоритм не может делать осмысленные предположения относительно слов, которые он не знает, и не может учиться на базе новых данных, вводимых в систему.

Все изменилось в сентябре, когда Google подключил к своему переводчику новый движок: систему перевода на основе нейросети (the Google Neural Machine Translation system или GNMT). Этот новый движок оснащен всеми модными фишками 2016 года: такими, как нейросеть и машинное обучение.

Короче говоря, Google Translate стал умным. У инструмента появилась возможность учиться у людей, которые его используют.  Он научился делать осмысленные предположения относительно содержимого, интонации и значения фраз на основании контекста. И — сейчас ваш мозг может взорваться — он стал творческим.

Google Translate изобрел собственный язык, который помогает ему переводить более эффективно.

И, что самое интересное, никто не ставил перед системой такой задачи. Никто не программировал Google Translate создать собственный язык (интерлингву, как его назвали в Google). Система сама разработала язык, так как со временем пришла к выводу, что это является самым оптимальным решением проблемы перевода.

Задумайтесь на минутку. Осознайте. Нейронная вычислительная система, разработанная для перевода с одного человеческого языка на другой, создала собственный язык, чтобы эффективнее решать задачу. Система сделала это сама. За считанные недели.

Чтобы понять, что происходит, нужно разобраться в возможностях перевода zero-shot. Вот что говорят Майк Шустер, Нихил Торат и Мелвин Джонсон в оригинале статьи:

Скажем, мы обучаем мульти-языковую систему на примерах языковых пар “японский⇄английский” и “корейский⇄английский”. Наша мульти-языковая система (такая же по размеру, как и одноязыковая система на основе нейросети GNMT) использует одни и те же параметры для перевода между этими четырьмя языковыми парами. Использование одних и тех же параметров позволяет системе переносить “знание перевода” с одной языковой пары на другие. Такой перенос знаний, а также необходимость переводить на разные языки стимулирует систему более оптимально использовать свои возможности моделирования.

Это вдохновило нас задать такой вопрос: Можем ли мы переводить в рамках языковой пары, которая системе еще неизвестна? К примеру, перевод с корейского на японский — при том, что в систему не вводились примеры корейско-японских переводов. К нашему удивлению, ответ оказался положительным — система в состоянии генерировать вразумительные переводы в рамках языковой пары “корейский⇄японский”, хотя никто ее этому не учил.

На этом примере мы видим преимущество нейронной системы переводов Google перед старым пофразовым алгоритмом. Система на основе нейросети может научиться переводить с одного языка на другой, даже если ее не учили этому в явной форме. Это было бы невозможно в пофразовой модели, где перевод осуществляется путем соединения слов и фраз в рамках языковой пары на основании конкретного словаря.

В итоге инженеры Google обнаружили в системе нечто поистине удивительное: творчество.

На фоне такого успеха zero-shot перевода возникает еще один важный вопрос: Формирует ли система некое общее представление о значениях слов вне зависимости от языка — т.е. так называемую “интерлингву”? При помощи трехмерной модели внутренней информационной сети нам удалось посмотреть, как именно система переводит предложения между всеми возможными языковыми парами (японский, корейский и английский).

Источник: Google Research Blog

Система группирует предложения: внутри каждой группы мы видим предложения, сходные по значению, но на трех различных языках. Это означает, что нейронная сеть не просто запоминает пофразовый перевод, а кодирует именно семантику предложения. Мы трактуем это явление как наличие в системе некой интерлингвы.

Вот так. В последние недели 2016 года, пока журналисты по всему миру писали статейки про “это был худший год на нашей памяти”, инженеры Google тихонечко документировали поистине шокирующий прорыв в разработке ПО и лингвистике.

Просто подумал, вам будет интересно узнать.

Ладно, чтобы на самом деле понять, что происходит, нужно привлечь кучу специалистов с учеными степенями в области информатики и лингвистики. Я лишь поверхностно рассмотрел вопрос. Если у вас есть время на защиту диссертации в этой области (или вы ее уже защитили) — черкните мне пару строк и объясните все это. Помедленнее.

Источник: Google Research Blog

Апдейт 1: Должен признаться, что на фоне своего восторга, я, возможно, преувеличил идею этой “умной” системы — по крайней мере в сравнении с умственными возможностями человека. Комментарий Криса МакДональда дает более трезвое представление о вопросе.

Так, помедленнее.

ИИ не изобретал собственный язык и не стал творческим. Это все равно что сказать: “калькуляторы умны, и однажды они заменят учителей математики”.

Ребята из Google просто обнаружили, что их фреймворк работает лучше, чем они ожидали. Это круто, поскольку обычно на этапе исследований и разработки (R&D) мы готовимся к тому, что система будет давать сбои — никто не надеется на идеальную работу.

Это работает так: система, проанализировав все предоставленные ей данные, выявляет паттерны в языке. Выяснилось, что если систему научить переводить с английского на корейский и с английского на японский, то мы получим неплохие результаты перевода с корейского на японский (на базе общего языка — английского).

Универсальный язык, или интерлингва — это не отдельный язык как таковой. Это скорее система общностей, обнаруженных в разных языках. Психологи говорят об этом годами. На самом деле эта работа может иметь более важное значение для лингвистики и психололгии, нежели для информатики.

Уже не раз отмечалось, что в ругательствах обычно присутствуют резкие звуки (“п”, “к”, “т”) и шипящие (“с”, “ф”, “х”) — это наблюдается почти во всех языках. Если подключить звуки в систему Google, психологи смогут более точно выявить, какие звуки обычно связаны в языках с определенными концепциями и явлениями.

Источник: Usable Interfaces

Апдейт 2: Отличный, подробный ответ от Nafrondel тоже обязателен к прочтению, если хотите узнать, как работают нейронные сети, от эксперта в этой области.

Вы искали человека с ученой степенью? *Поднимаю руку*

Итак, существуют две основные школы Искусственного Интеллекта — символическая и несимволическая.

Символическая школа утверждает, что лучший способ создать ИИ — это сделать его экспертом. К примеру, если вам нужен ИИ-врач, загрузите в него медицинские книги, и он будет отвечать на вопросы на основе информации из книг.

Несимволическая школа считает, что компьютеры лучше понимают, как работают компьютеры, поэтому нужно дать ИИ информацию, и пусть он сам преобразует ее в нужную форму.

Для примера давайте вспомним эксперимент с китайской комнатой. Представьте, что человек находится в комнате, полной книг. В книгах — символы и инструкции по манипуляции ими. Человеку говорят “Вам дадут листок бумаги с символами. Воспользуйтесь инструкциями, чтобы составить ответ из символов”. Человек за пределами комнаты пишет сообщения на китайском и получает ответы на китайском. Человек в комнате не понимает китайского — все знаниях находятся в книгах, но человеку за пределами комнаты кажется, что человек внутри знает китайский.

Так работает символический ИИ. Он не обладает знанием предмета — он просто следует инструкциям. Даже если некоторые инструкции требуют обновить сами инструкции.

Суть несимволического ИИ в том, что ИИ должен сам писать книги. На примере китайской комнаты это означало бы научить человека в комнате китайскому, а книги выступали бы его конспектами. Проблема в том, что понадобится время и немало усилий, чтобы научить человека китайскому — ведь мы начинаем с чистого листа.

Но подумайте вот о чем: ребенок учит свой первый язык долгие годы, а второй язык осваивает гораздо быстрее. Вернемся к ИИ: когда мы научили его одному языку, мы надеемся что он, как ребенок, быстрее освоит второй.

Здесь в игру вступает искусственная нейронная сеть. Это наш чистый лист. Система состоит из трех частей: ввод, нейроны, вывод. В нейронах и происходит вся магия — так же как в человеческом мозге. Есть кучка нейронов, которые соединяются или разъединяются и формируют связи, по которым из одной части мозга в другую передаются сигналы. Именно эти связи соединяют ввод и вывод.

По принципу собаки Павлова, когда происходит что-то хорошее, мозг усиливает связи между нейронами. Но, как и у ребенка, в самом начале многие связи формируются произвольно, и на выходе мы получаем детский лепет. Но нам не нужен лепет, мы хотим научить сеть, что собака — это chien, а не бувайва.

При обучении искусственной нейронной сети мы обеспечиваем ввод, и следим за выводом. Если вывод неверный — мы “щелкаем по носу”, и нейроны запоминают, что “то что сейчас было — неправильно, так больше делать не нужно”. Связь, которая привела к неверному ответу, ослабевает. В то же время, если дан верный вывод, мы “гладим по головке” и соответствующая связь становится сильнее. В следующий раз система с большей вероятностью выберет этот “верный” путь. То есть со временем, сформируется связь между “собакой” и “chien”.

Так как это объясняет статью?

Итак. Искусственная нейронная сеть работает в обоих направлениях, но есть мы можем начать с вывода, и система придет к вводу, следуя по нейронным связям в обратном направлении. Так что научив систему, что собака — это chien, мы также научили ее, что chien — это собака. Также мы можем научить систему, что по-испански собака — это perro. В процессе обучения кратчайший путь от perro к собаке будет таким же, как и от chien к собаке. Со временем нейронные связи, которые связывают chien и собаку, приблизятся к связям perro-собака, в результате чего сформируется также связь chien-perro.

Эта тройная связь “perro-chien-собака” — и есть пример того самого языка, который создает для себя ИИ Google.

Вернемся к детям. Изучая свой первый язык, они не читают словарь в голове: они слышат слова и связывают их с соответствующими понятиями. Именно поэтому люди часто неточно цитируют фразы из фильмов — они помнят примерное значение, но не помнят точные слова. Когда ребенок изучает второй язык, он узнает, что chien — это французское слово, но связывает его с уже знакомым понятием собаки. И когда он слышит испанское perro, он тоже связывает его с собакой. Это означает, что ребенку нужно один раз познакомиться с понятием собаки, а потом достаточно выучить несколько языковых синонимов. То же самое делает ИИ Google. Вместо того, чтобы думать: “собака = chien, chien = perro, значит собака должно = perro”,  ИИ думает: “собака = 0x3b chien = 0x3b perro = 0x3b”, где 0x3b — это понятие собаки; это означает что 0x3b можно перевести на любой язык.

Tl;Dr: Это не такая уж большая новость, потому что искусственные нейронные сети занимаются этим с того момента, как их изобрели в 40х годах. И вся несимволическая ветка ИИ строится на том, что компьютеры изобретут свой собственный язык для понимания и изучения вещей.

P.S. Мы действительно должны испытывать восторг относительно ИИ! Большинство людей даже не представляют, насколько сильно ИИ участвует в нашей жизни. От относительно простых ИИ в наших стиральных машинках, до систем, которые считывают адрес, написанный вручную, и вычисляют самый оптимальный маршрут доставки. Машины изо дня в день принимают за нас решения. Даже у компьютерной мышки есть искусственный интеллект, который соображает, куда вы хотели указать (на экране с разрешением 1080p есть 2 миллиона точек, в которые мы можете попасть мышкой — и это не случайность, что вы обычно нажимаете куда хотели). Мобильные телефоны постоянно используют ИИ, чтобы выбирать, к какой вышке подключиться; а интернет — это большой взаимосвязанный ИИ, который вычисляет самый быстрый способ передачи данных от одного компьютера другому. Думающий, принимающий решения ИИ уже в наших руках, у нас под ногами, в наших машинах, практически в каждом электронном устройстве.

Роботы уже победили 😉

Дальше — большe

Идеи, которые нас вдохновляют, видео-интервью и переводы исследований, которые были нам полезны в процессе работы.

2 февраля 2016

Редизайн и увеличение продаж сайта телеком-провайдера Onlime

2 февраля 2017

Как иконки теряют смысл в эпоху диджитализации

30 декабря 2016

Поможет ли ИИ наконец-то найти формулу идеального подарка?

14 сентября 2016

Дуплекс в веб-дизайне: обзор цветового тренда, который захватывает мир

23 августа 2017

Сколько процентов населения составляют продвинутые пользователи? Все хуже, чем кажется

21 июня 2016

Что такое digital transformation и почему современному бизнесу нельзя игнорировать этот тренд?