Практически все известные вам достижения ИИ связаны с прорывом тридцатилетней давности
Я стою в комнате, которая скоро станет центрам мира – ну или просто в очень большой комнате на седьмом этаже сверкающей башни в деловом центре Торонто. Экскурсию мне устраивает Джордан Джейкобс, сооснователь этого места: зарождающийся институт «Вектор», открывающий свои двери осенью 2017 года, и стремящийся стать глобальным эпицентром искусственного интеллекта.
Мы находимся в Торонто, поскольку Джеффри Хинтон находится в Торонто, а Джеффри Хинтон – отец «глубинного обучения» (ГО), технологии, стоящей за текущим восторгом по поводу ИИ. «Через 30 лет мы оглянемся и скажем, что Джефф был Эйнштейном в ИИ, глубинном обучении, в том, что мы называем ИИ», – говорит Джейкобс. Среди исследователей, находящихся на передовой в области ГО, у Хинтона больше цитат, чем у следующих троих, вместе взятых. Его студенты и аспиранты запустили ИИ-лаборатории в компаниях Apple, Facebook и OpenAI; сам Хинтон – ведущий учёный в команде Google Brain AI. Практически все достижения в области ИИ последнего десятилетия – переводы, распознавание речи, распознавание изображений, игры – так или иначе основываются на работе Хинтона.
Институт «Вектор», монумент взлёту идей Хинтона – это исследовательский центр, где компании из США и Канады – такие, как Google, Uber и Nvidia – будут финансировать попытки коммерциализации ИИ-технологий. Деньги в него вливались быстрее, чем Джейкобс успевал их запрашивать; два сооснователя изучали компании в районе Торонто, и оказалось, что спрос на специалистов по ИИ в десять раз превышает возможности по их выпуску в Канаде. «Вектор» – это отправная точка общемировой попытки мобилизации вокруг ГО: заработать на технологии, обучать ей людей, оттачивать и применять её. Строятся дата-центры, небоскрёбы заполняются стартапами, в область вливается целое поколение студентов.
Впечатление от нахождения в офисе «Вектор», пустом и гулком, ожидающем наполнения – такое, будто ты попал в начало чего-то. Но, что странно касательно ГО – насколько стары его ключевые идеи. Прорывная работа Хинтона, сделанная совместно с Дэвидом Румельхартом и Рональдом Уильямсом, была опубликована в 1986 году. В работе разбиралась технология под названием «обратное распространение ошибок» (ОРО). ОРО, говоря словами Джона Коэна, специалиста по вычислительной психологии в Принстоне, «это то, на чём основано всё глубинное обучение – буквально всё».
По сути, ИИ сегодня – это ГО, а ГО – это ОРО, и это удивительно, учитывая, что ОРО уже больше 30 лет. Стоит разобраться, как это произошло – как технология может лежать в режиме ожидания так долго, а потом привести к такому взрыву. Поняв историю ОРО, вы начнёте понимать сегодняшнее развитие ИИ, и в частности, тот факт, что, возможно, мы находимся не в начале революции. Возможно, мы находимся в её конце.
Доказательства
Прогулка от института «Вектор» до офиса Хинтона в Google, где он проводит большую часть времени (он сейчас почётный профессор в Торонтском университете) – нечто вроде живой рекламы города, по крайней мере, летом. Можно понять, почему Хинтон, родившийся в Британии, переехал сюда в 1980-х после того, как поработал в Университете Карнеги-Мэллон в Питтсбурге.
Выходя наружу, даже в деловом центре рядом с финансовым кварталом, вы чувствуете, будто оказались на природе. Думаю, всё дело в запахе: пахнет влажным перегноем. Торонто строили в лесистом ущелье, и его называют «городом в парке»; во время урбанизации местные власти наложили строгие ограничения для поддержания роста деревьев. На подлёте к городу его окраины кажутся покрытыми мультяшно буйной растительностью.
Торонто – четвёртый по величине город Северной Америки (после Мехико, Нью-Йорка и Лос-Анджелеса), и наиболее разношёрстный: более половины его жителей родились вне Канады. Это видно при прогулках по городу. Люди в технологическом квартале выглядят не так, как жители Сан-Франциско – молодые белые ребята в толстовках – а более интернационально. Тут есть бесплатная медицина, хорошие общественные школы, люди дружелюбны, политический климат стабилен и склоняется влево; всё это притягивает таких людей, как Хинтон, который говорит, что уехал из США из-за скандала с Иран-контрас. Это одна из первых тем, которые мы поднимаем при первой встрече, незадолго до обеда.
«Большинство людей в Университете Карнеги-Мэллон считают, что для США было разумно вторгаться в Никарагуа, – говорит он. – Они считали, что страна им принадлежит». Он рассказывает, что недавно у него был большой рабочий прорыв: «со мной работает очень хороший молодой инженер», женщина по имени Сара Сабур. Она из Ирана, и ей отказали в рабочей визе в США. Офис Google в Торонто взял её к себе.
Хинтон, 69-и лет, обладает добрым, худым, британского типа лицом «большого доброго великана«, с тонкими губами, большими ушами и выдающимся носом. Он родился в Уимблдоне, в Англии, и его голос в разговоре звучит как голос актёра, читающего детскую книгу о науке: в нём слышно любопытство, обаяние и желание всё объяснить. Он забавный, немного шоумен. Всё время беседы он стоит, поскольку, как оказалось, ему больно сидеть. «В июне 2005 года я сел, и это была ошибка», – говорит он мне, чтобы после паузы объяснить, что у него проблемы с межпозвонковым диском. Из-за этого он не может летать, и ранее тем же днём ему пришлось тащить с собой приспособление, похожее на доску для сёрфинга, чтобы он мог лечь на него в кабинете дантиста, который работал с треснувшим корнем зуба.
В 1980-х Хинтон был экспертом по нейросетям, упрощённой модели сети нейронов и синапсов мозга. Но в то время все решили, что нейросети – это тупик в исследованиях ИИ. И хотя самую первую нейросеть, Perceptron, которую он начал разрабатывать в 1950-х, назвали первым шагом к машинному интеллекту человеческого уровня, книга от 1969 года от авторов из MIT, Марвина Мински и Сеймура Паперта под названием «Perceptrons» математически доказывала, что такие сети могут осуществлять лишь простейшие функции. У таких сетей было всего два слоя нейронов, входной и выходной. Сети с большим количеством слоёв между входящим и выходящим в теории могли решать огромное количество задач, но никто не знал, как их тренировать, поэтому на практике они были бесполезны. И кроме кучки уклонистов вроде Хинтона, «Perceptrons» привела к тому, что люди поставили на нейросетях крест.
Прорыв Хинтона в 1986 году заключался в том, что он показал, как ОРО может тренировать глубокую нейросеть – то есть, сеть с большим количеством слоёв. Но прошло ещё 26 лет до тех пор, пока увеличившаяся вычислительная мощность смогла воспользоваться этим открытием. В работе 2012 от года Хинтон с двумя студентами из Торонто показали, что глубокие нейросети, натренированные при помощи ОРО, обгоняют лучшие системы распознавания изображений. Глубинное обучение начало своё распространение. Для внешнего мира ИИ проснулся за одну ночь. Для Хинтона это был давний должок.
Поле искажения реальности
Нейросеть часто рисуют в виде клубного сандвича, в котором слои наложены друг на друга. Слои содержат искусственные нейроны, туповатые небольшие вычислительные единицы, которые умеют возбуждаться – как возбуждается реальный нейрон – и передавать возбуждение другим нейронам, с которыми они связаны. Возбуждение нейрона представляется числом, типа 0,13 или 32,39, обозначающим его величину. На каждой из связей между нейронами есть ещё одно критичное число, определяющее, возбуждение какой силы может по нему передаваться. Это число моделирует силу синапсов между нейронами мозга. Чем больше число, тем сильнее связь, тем больше возбуждения передаётся другим.
Одно из наиболее успешных применений глубоких нейросетей – распознавание образов, напоминающее сцену из сериала «Кремниевая долина», в которой команда создаёт программу, способную сказать, есть ли на изображении хот-дог. Такие программы существуют, и ещё десять лет назад они были бы невозможны. Чтобы заставить их работать, сначала нужно добыть картинку. Допустим, это небольшое чёрно-белое изображение 100х100 пикселей. Вы скармливаете это изображение в вашу нейросеть, настраивая возбуждение каждого нейрона на входном слое так, чтобы оно равнялось яркости каждого пикселя. Это нижний слой клубного сандвича: 10000 нейронов (100х100), представляющих яркость каждого пикселя картинки.
Затем вы соединяете этот большой слой нейронов с другим большим слоем нейронов над ним, которых, допустим, набирается несколько тысяч, а их, в свою очередь – ещё с несколькими тысячами нейронов, и так далее, в несколько слоёв. Наконец, в верхнем слое сандвича, внешнем слое, есть только два нейрона – один обозначает «есть хот-дог», другой обозначает «нет хот-дога». Идея в том, чтобы научить нейросеть возбуждать только первый из этих нейронов, если на изображении есть хот-дог, и только второй, если его там нет. ОРО – технология, на которой Хинтон построил свою карьеру – и есть метод для осуществления этой задачи.
ОРО удивительно просто работает, хотя лучше всего проявляет себя на больших наборах данных. Поэтому большие данные так важны для ИИ – поэтому их так жаждут Facebook и Google, и поэтому институт «Вектор» решил разместить свой офис на одной улице с четырьмя крупнейшими канадскими госпиталями и выработал партнёрское соглашение с ними.
В нашем случае данные предстают в виде миллионов изображений, на некоторых из которых есть хот-доги, а на некоторых – нет. Трюк в том, что наличие хот-догов на изображениях размечено. При первом создании нейросети у связей между нейронами стоят случайные веса – случайные числа, определяющие размер передаваемого возбуждения. Всё работает так, будто синапсы мозга ещё не настроены. Цель ОРО в том, чтобы поменять эти веса так, чтобы они заставили нейросеть работать: чтобы, когда вы передаёте ей изображение с хот-догом на нижний уровень, нейрон «есть хот-дог» верхнего уровня возбуждался.
Допустим, вы берёте первую тренировочную картинку, на которой изображено пианино. Вы преобразуете интенсивность пикселей картинки размером 100х100 в 10000 чисел, по одному для каждого нейрона в нижнем слое сети. Возбуждение распространяется вверх по сети согласно силам связей между нейронами в соседних слоях, и в итоге оказывается в последнем слое – в том, где есть только два нейрона. Поскольку это изображение пианино, в идеале нейрон «есть хот-дог» должен оказаться нулевым, а «нет хот-дога» должен получить большое число. Но, допустим, этого не случилось. Допустим, нейросеть ошиблась. ОРО – это процедура перетряски сил каждого соединения в сети так, чтобы исправить ошибку для данного тренировочного примера.
Вы начинаете с двух последних нейронов, и смотрите, насколько сильно они ошиблись: какова разница между тем, какие значения для возбуждений должны быть, и какие они были. После этого вы проверяете все соединения, приведшие к этим нейронам – те, что находятся в нижнем слое – и вычисляете их вклад в ошибку. Вы продолжаете это делать, пока не дойдёте до самого первого набора связей, в самом низу сети. В этот момент вы знаете, какой именно вклад в ошибку внесло каждое отдельное соединение, и на последнем шаге меняете все веса в направлении, которое наилучшим образом уменьшает всю ошибку. Техника называется «обратным распространением ошибок», потому что вы распространяете ошибку назад (или вниз) по сети, начиная с выходного слоя.
Удивительный факт в том, что когда вы проделаете это с миллионами или миллиардами изображений, сеть начинает очень хорошо распознавать, есть ли на картинке хот-дог. Что ещё более удивительно, отдельные слои этих сетей распознавания изображений начинают «видеть» изображения примерно так, как видит их наша визуальная система. То есть, первый слой может начать распознавать грани, в том смысле, что его нейроны возбуждаются, когда грани есть, и не возбуждаются, когда их нет; слой повыше может начать распознавать наборы граней, например, углы; слой повыше видит формы; слой выше видит уже такие вещи, как раскрытая или закрытая булочка, в том смысле, что у него появляются нейроны, отвечающие за каждый из вариантов. Сеть организовывает сама себя в иерархические слои, несмотря на то, что её на это никто не программировал.
Эта штука покорила всех. Дело не в том, что нейросети просто хорошо классифицируют изображения хот-догов или чего угодно: они способны строить представление об идеях. В случае с текстом это видно ещё лучше. В простую нейросеть можно скормить текст с Википедии, миллиарды слов, и натренировать её так, чтобы для каждого слова она выводила большой список чисел, соответствующих возбуждению каждого нейрона в слое. Если представить, что эти числа являются координатами в сложном пространстве, тогда вы, по сути, будете искать точку (в этом контексте – вектор) для каждого слова в этом пространстве. Затем натренируйте вашу сеть так, чтобы слова, появляющиеся вблизи друг от друга на страницах Википедии, обладали сходными координатами – и вуаля, произойдёт нечто странное: слова со схожими значениями будут появляться недалеко друг от друга в этом пространстве. То есть, у слов «сумасшедший» и «безумный» координаты будут мало отличаться, как и у слов «три» и «семь», и так далее. Более того, т.н. векторная арифметика позволяет вычесть вектор «Франция» из вектора «Париж», добавить вектор «Италия» и оказаться где-то недалеко от «Рим». И это работает без предварительного объяснения для сети, что Рим относится к Италии так же, как Париж к Франции.
«Это удивительно, – говорит Хинтон. – Это шокирует». Нейросети, можно сказать, берут некие сущности – изображения, слова, записи разговоров, медицинские данные – и размещают их в векторном пространстве высокой размерности, где расстояние между сущностями отражает какую-то важную особенность реального мира. Хинтон считает, что мозг делает то же самое. «Если вы хотите знать, что такое мысль, – говорит он, – я могу выразить её для вас при помощи набора слов. Я могу сказать „Джон подумал: “Опаньки». Но если вы спросите: «В чём состоит эта мысль? Что это значит для Джона – породить эту мысль?» Это ведь не значит, что у него в голове появилась открывающая кавычка, потом «опаньки», потом закрывающая – или даже какая-то версия этих символов. У него в голове появилась некая большая схема нейронной активности». Большие схемы нейронной активности математик может отобразить в векторном пространстве, где активность каждого нейрона соответствует числу, а каждое число – координате очень большого вектора. С точки зрения Хинтона, это и есть мысль: танец векторов.
Джеффри Хинтон
Не случайно главный институт ИИ в Торонто назвали «Вектором». Название придумал сам Хинтон.
Хинтон создаёт какое-то поле искажения реальности, атмосферу уверенности и энтузиазма, в которой вы чувствуете, что не существует ничего, что не могли бы сделать вектора. Ведь смотрите, чего они уже добились: автомобили, ведущие себя сами, компьютеры, распознающие рак, машины, мгновенно переводящие сказанное вслух на другой язык. И посмотрите на этого очаровательного британского учёного, рассказывающего про градиентный спуск в пространствах высоких измерений!
Только выйдя из комнаты, вы вспоминаете: эти системы глубинного обучения пока ещё довольно тупые, несмотря на кажущуюся смекалку. Компьютер, обрабатывающий фотографию кучи пончиков, лежащих кучкой на столе, автоматически подписывает её: «куча пончиков лежит на столе», и вроде бы понимает окружающий мир. Но когда та же программа обрабатывает фото девочки, чистящей зубы, и подписывает его: «мальчик держит бейсбольную биту», вы понимаете, насколько зыбко его понимание, если оно вообще существует.
Нейросети – это бездумные распознаватели нечётких закономерностей, и полезны настолько, насколько могут быть полезными распознаватели нечётких закономерностей – отсюда и спешка, связанная с их интеграцией во всё возможное ПО. Они представляют некий ограниченный вид интеллекта, который легко обмануть. Глубокая нейросеть, распознающая изображения, может оказаться в тупике, если вы поменяете один пиксель, или добавите визуальный шум, который человек даже не воспринимает. И действительно, каждый раз, когда мы находим новые способы применения ГО, мы находим и его ограничения. Робомобили могут не справиться с ориентацией в условиях, доселе им не встречавшихся. Машины с трудом распознают предложения, требующие здравого смысла и понимания работы мира.
ГО в каком-то смысле имитирует процессы, происходящие в мозге человека, но не слишком глубоко – это, возможно, объясняет, почему ИИ иногда оказывается таким неглубоким. ОРО открыли не при помощи зондирования мозга, расшифровывавшего свои сообщения; оно выросло из моделей обучения животных методом проб и ошибок, полученных в старых экспериментах по выработке рефлексов. И в большей части прорывов, пришедших вместе с ним, не было каких-то новых нейробиологических откровений; там были лишь технические усовершенствования, полученные за годы работы математиков и программистов. Наши знания по поводу работы интеллекта – ничто по сравнению с тем, чего мы ещё не знаем о нём.
Дэвид Дувено [David Duvenaud], ассистент-профессор, работающий в том же департаменте Торонтского университета, что и Хинтон, говорит, что ГО напоминает работу инженеров до появления физики. «Кто-то написал работу, где сообщил: „Я построил мост, и он не падает!“ Другой товарищ написал: „Я построил мост, и он упал – а потом я добавил колонн, и он не падал“. После этого колонны становятся горячей темой. Кто-то придумывает арки, и в результате все говорят: „Арки – это круто!“ А после появления физики, говорит он, „можно понять что сработает и почему“. Он утверждает, что мы только недавно начали переходить в фазу реального понимания работы ИИ.
Сам Хинтон говорит: „Большая часть конференций состоит из внедрения небольших изменений, вместо того, чтобы хорошенько подумать и сказать: “Чего нам не хватает в нашей текущей деятельности? С чем у неё есть проблемы? Давайте сконцентрируемся на этом».
Извне это трудно уловить, когда вы видите только одну хвалебную речь по поводу очередного прорыва за другой. Но последний прогресс в области ИИ принадлежит больше инженерам, чем учёным, и напоминает возню наобум. И хотя мы уже лучше понимаем, какие изменения смогут улучшить систему с ГО, мы, по большому счёту, пока остаёмся в неведении относительно того, как работают эти системы, или смогут ли они когда-нибудь приблизиться к такой мощной системе, как человеческий разум.
Стоит поинтересоваться, выжали ли мы уже всё возможное из ОРО. Если так – возможно, что у графика прогресса в ИИ наступило плато.
Терпение
Если вы хотите узнать, где произойдёт следующий прорыв, который сможет сформировать основу для создания машин с более гибким интеллектом, вам стоит изучить процесс исследований, похожих на то, как если бы ОРО придумали в 80-х: очень умные люди играются с идеями, которые пока ещё не работают.
Несколько месяцев назад я был в Центре разума, мозга и машин – совместный проект нескольких институтов, базирующийся в MIT, чтобы посмотреть, как мой друг Иял Дехтер [Eyal Dechter] защищает диссертацию по когнитивистике. Прямо перед докладом его жена Эми, их собака Руби и дочь Сюзанна крутились рядом с ним и желали ему удачи. На экране была фотография Руби, а рядом с ней – фото Сюзанны в младенческом возрасте. Когда папа попросил Сюзанну показать, где она на экране, она с удовольствием хлопнула раскладной указкой по своей младенческой фотографии. Выходя из комнаты, она развернула свою игрушечную детскую коляску и прокричала: «Удачи, папочка!» через плечо. И добавила: “Vámanos!” Ей два года.
Иял начал выступление с вопроса: как так получается, что Сюзанна, имея два года опыта, научилась разговаривать, играть, следить за сюжетом в истории? Каким образом мозг человека может так хорошо обучаться? Сможет ли когда-нибудь компьютер обучаться так же быстро и плавно?
Мы осмысливаем новые явления на основании того, что нам уже понятно. Мы разбиваем целое на части и изучаем части. Иял – математик и программист, и он представляет себе задачи – как, допустим, готовка суфле – в качестве очень сложных компьютерных программ. Но ведь вы не учитесь делать суфле через изучение триллионов микроинструкций вроде «поверните локоть на 30 градусов, посмотрите вниз на столешницу, вытяните указательный палец»… Если бы вам нужно было делать это с каждой новой задачей, обучение было бы слишком сложным, и вы бы остались с тем, что уже знаете. Вместо этого мы пишем программу шагами высокого уровня вроде «взбейте яичные белки», состоящими из подпрограмм типа «разбейте яйца» и «отделите желтки от белков».
Компьютеры этого не делают, и это одна из главных причин их тупости. Чтобы заставить ГО-систему распознавать хот-доги, вам нужно скормить ей 40 миллионов изображений хот-догов. Чтобы научить Сюзанну распознавать хот-дог, вы показываете ей хот-дог. А совсем скоро она уже будет понимать язык на более глубоком уровне, чем осознание того, что определённые слова часто появляются вместе. В отличие от компьютера, у неё в голове есть модель работы всего мира целиком. «Мне удивительно слышать, как люди боятся того, что компьютеры отберут у них работу, – говорит Иял. – Компьютеры не могут заменить юристов, потому что юристы делают очень сложную работу. Юристы читают и беседуют с людьми. Мы к этому и близко не подошли».
Настоящий интеллект не ломается, когда вы немного меняете требования к задаче, которую он пытается решить. Ключевая часть работы Ияла – демонстрация того, как, в принципе, можно заставить компьютер так работать: легко применять уже имеющиеся знания к новым задачам, быстро переходить от состояния почти полного неведения в какой-то области до эксперта.
По сути, это процедура, которую он называет алгоритмом «изучения-сжатия». Компьютер работает похожим на программиста образом, строя библиотеку пригодных для повторного использования, модульных компонентов, с помощью которых можно создавать всё более и более сложные программы. Не получив знаний о новой области, компьютер пытается структурировать знания о ней, просто играясь с этой областью, консолидируя полученную информацию, снова играясь – так, как это делает ребёнок.
Его куратор, Джошуа Тененбаум, один из самых часто цитируемых исследователей ИИ. Его имя всплывало в половине обсуждений, которые я вёл с другими учёными. Некоторые ключевые люди из DeepMind – команды, стоящей за AlphaGo, шокировавшей специалистов по информатике, обыграв чемпиона мира в го в 2016 году – работали с ним как с научным руководителем. Он связан со стартапом, пытающимся наделить робомобили интуицией по поводу основных законов физики и намерений других водителей, чтобы ИИ мог лучше предсказывать исход ситуаций, подобных которым он никогда не видал – как, например, фура, у которой занесло прицеп, или агрессивная попытка перестроения.
Диссертация Ияла не применима к практическим приложениям, не говоря уже о написании каких-нибудь программ, способных обыграть человека и попасть в заголовки газет. Просто проблемы, над которыми работает Иял, «очень, очень сложные, – говорит Тененбаум. – Они займут много, много поколений».
У Тененбаума длинные курчавые седеющие волосы, и когда мы сели с ним выпить кофе, он был в застёгнутой на все пуговицы рубашке и слаксах. Он рассказал, что обратился к истории разработки ОРО за вдохновением. Десятилетиями ОРО было просто прикольной математикой, непригодной ни для чего. Когда компьютеры стали быстрее, а программирование – сложнее, внезапно оно пригодилось. Он надеется, что нечто похожее случится и с его работой, и с работой его студентов, «но это может произойти через пару десятилетий».
Сам же Хинтон уверен, что для преодоления ограничений ИИ необходимо «построить мост между информатикой и биологией». С его точки зрения, ОРО был триумфом вычислений, вдохновлённых биологией; идея изначально пришла не из программирования, а из физиологии. Так что теперь Хинтон пытается проделать схожий трюк.
Сегодняшние нейросети состоят из больших плоских слоёв, но в коре головного мозга реальные нейроны организованы не только в горизонтальные слои, но и в вертикальные столбцы. Хинтон считает, что знает, зачем они нужны – допустим, они критически важны для зрения и его возможности распознавать объекты даже при смене поля зрения. Так что он создаёт искусственную их версию – он зовёт их «капсулами» – чтобы проверить свою теорию. Пока что она не работает – капсулы не смогли заметно улучшить работу сети. Но точно такая же ситуация была и с ОРО в течение почти 30 лет.
«Эта идея просто должна быть правильной, – говорит он о теории капсул, и сам смеётся над своей уверенностью. – А то, что она не работает – это временная неприятность».
Джеймс Сомерс – журналист и программист из Нью-Йорка
Источник