На конкурсе ImageNet 2012 г. ставки были высоки. Команды специалистов по информатике состязались между собой: чей алгоритм сумеет правильно отнести каждое из 50 000 тестовых изображений к одной из 1000 заданных категорий? Среди них были самые разные рукотворные и природные объекты, включая множество пород собак. На тестовом изображении могла быть, скажем, компьютерная клавиатура, и задача каждой команды – создать алгоритм, способный ее распознать. Для нас, людей, это не составляет труда, поэтому задача может показаться простой. Но это обманчивое впечатление. Клавиатуры различаются по размеру, типу, форме и цвету. Их фотографируют под разными углами и при разном освещении. На снимках то видны пальцы на клавишах, то нет; клавиатура то подключена к компьютеру, то лежит отдельно. То, что подобные вариации не сбивают нас с толку, – заслуга наших способностей восприятия. С кошками и собаками все еще сложнее: они двигаются и не застывают в одной позе.
Алгоритмы ИИ прошлых лет с трудом справлялись с такой классификацией. Но у Алекса Крижевского были основания для сдержанного оптимизма. Вместе с коллегами он применил к задаче распознавания изображений несколько оригинальных новшеств. Удастся ли им обойти сильных соперников? Мир ИИ затаил дыхание.
Результат оказался разгромным. Алгоритм, получивший название AlexNet, показал точность топ–5 в 84,7% – правильный ответ входил в пятерку его предположений почти в 85% случаев. Ближайший конкурент достиг лишь 73,9% – огромный разрыв для соревнования, где даже однопроцентное улучшение имело большое значение. Компьютерное сообщество не могло не заметить – началась эра современного искусственного интеллекта.
Крижевский и его соавторы опирались на два ключевых принципа работы живого мозга. Во-первых, они использовали детекторы признаков, концептуально схожие с теми, которые были описаны Хьюбелом и Визелем. Во-вторых, эти детекторы взаимодействовали в нейронной сети с иерархической архитектурой, напоминающей устройство человеческой зрительной коры. Нижние слои сети распознавали простые признаки, что позволяло верхним слоям выявлять более сложные.
Но возникла проблема: никто не знал, какие именно признаки должен выявлять каждый слой сети. Например, должен ли второй слой детекторов распознавать прямые линии или лучше настроить его на круги? А может, нужен совсем другой признак? На более высоких уровнях проблема усугублялась. Что именно должны обнаруживать эти слои, чтобы правильно относить объекты к категориям?
Можно было бы попробовать заранее определить детекторы признаков для каждого слоя. Скажем, первый слой распознавал бы линии, второй – углы, третий – элементы сложных форм и т. д. Но такой подход оказался негибким и малоэффективным. Любой набор детекторов, который могли придумать люди, был недостаточно универсален для работы с огромным разнообразием тестовых изображений.
AlexNet решил эту проблему, обучаясь находить наилучшие детекторы признаков. На первый взгляд это кажется невероятным – как нейронная сеть может чему-то учиться, а тем более определять оптимальные детекторы для каждого своего слоя? Идея основана на использовании большого набора обучающих изображений с метками (например, изображение кошки помечено как Кошка, изображение клавиатуры – как Клавиатура) и нейронной сети (подобной показанной на рисунке 1.1) с элементами, организованными во входной слой, выходной слой и несколько промежуточных скрытых слоев (на рисунке 1.1 был один скрытый слой). Суть в том, чтобы обучить сеть так: когда изображение подается на входной слой, сеть выдает соответствующую метку на выходном слое. Например, при подаче изображения кошки мы хотим, чтобы выходной элемент Кошка активировался максимально, а остальные – минимально. Вход сети – это активация входных элементов, выход – активация выходных элементов. Внутри нейронной сети эти активации представлены массивами числовых значений, соответствующих частоте срабатывания нейронов. Когда предъявляется изображение, выходные элементы получают значения активации, которые в сумме дают единицу. В идеале при показе изображения кошки элемент Кошка получит значение, близкое к единице, а Клавиатура – близкое к нулю.
Чтобы сеть выдавала правильную метку для каждого входного изображения, ее необходимо обучить. Обучение здесь означает изменение весов связей в сети. До обучения все связи инициализируются случайным образом. На этом этапе предъявление изображения – допустим, кошки – вызовет размытый, недифференцированный паттерн активации нейронов, соответствующих всем возможным меткам, включая правильную (Кошка). Вот тут и пригождается правильная метка. Подробности мы рассмотрим позже, а пока отметим главное: алгоритм корректирует изначально случайные связи детекторов признаков так, чтобы немного усилить активацию правильной метки и немного ослабить активацию всех неправильных. Этот процесс повторяется многие тысячи раз с разными изображениями. При каждой подаче входных данных сеть корректирует свои связи и постепенно становится все точнее. Попутно она формирует эффективную иерархическую систему детекторов признаков, обеспечивающую все более высокое качество работы.
После завершения обучения детекторы признаков фиксируются, и AlexNet готов к тестированию. Теперь ему предъявляют изображения, которых он никогда не видел. Детекторы признаков, самостоятельно сформированные сетью в процессе обучения, демонстрируют поразительную эффективность в классификации новых изображений. Хотя попытки предпринимались, исследователи в основном отказались от стремления описать словами или даже точными математическими понятиями, какие именно признаки распознаются. Но что бы это ни были за признаки, они оказались исключительно полезными для категоризации изображений.
Многие исследователи склоняются к мысли, что способность AlexNet классифицировать объекты напоминает аналогичный процесс в мозге. Мы согласны, что сходства есть, и считаем это прогрессом, но справедливо и то, что различий остается немало.
Интерлюдия. Реакции на AlexNet
Октябрь 2012 г. Пало-Альто. Анна – профессор нейронаук, изучает зрение человека. К ней обратился за интервью Анил – аспирант, специализирующийся на компьютерном зрении. Анил также работает технологическим редактором в The Stanford Daily и готовит статью об AlexNet. Он хочет узнать мнение нейробиолога о недавнем прорыве.
Анил. Спасибо, что согласились на интервью! Я пишу статью об AlexNet. Не могли бы вы как нейробиолог, изучающий зрение человека, прокомментировать поразительное сходство между архитектурой AlexNet и человеческим зрением?
Анна. Некоторое сходство есть. AlexNet использует детекторы признаков, иерархически организованную нейронную сеть и опирается на знание о ранее распознанных объектах при классификации новых. В этом есть определенное сходство с человеческой зрительной системой.
Анил. Вас, наверное, очень воодушевляет, что принципы биологических нейронных сетей, которые вы изучаете, были воссозданы в искусственных нейронных сетях?
Анна. Нет, они вовсе не были воссозданы.
Анил. Простите, как это?
Анна. Между тем, как распознают объекты люди, и тем, как это делает AlexNet, есть принципиальные различия. Пожалуй, важнейшее из них состоит в том, что в AlexNet используются прямые связи, а в человеческой зрительной системе – двусторонние.
Анил. Понятно. Не ожидал такого поворота. Не могли бы вы пояснить?
Анна. В AlexNet нижние слои передают информацию верхним. Например, активация элементов, распознающих две линии в определенной области пространства, передается следующему слою, который может обнаружить угол. Тот, в свою очередь, передает информацию дальше. Такие соединения называются прямыми связями.
Анил. Полагаю, в человеческой зрительной системе есть и обратные связи?
Анна. Да. Возьмем, к примеру, важную структуру мозга – таламус. Он получает сигналы от глаз и передает их в так называемую первичную зрительную кору, или V1. Это прямые связи. Но существуют и обратные связи – от V1 к таламусу. Причем обратных связей больше, чем прямых. И такая картина наблюдается во всей зрительной системе.
Анил. Ладно. И что с того? Почему это так важно?
Анна (впервые слегка улыбается). Хороший вопрос. Обратные связи нужны нам потому, что мы распознаем объекты не только на основе восходящих сигналов, но и с помощью нисходящих ожиданий. Нисходящие ожидания создают контекст для того, что мы видим. Покажу вам кое-что. (Открывает изображение на компьютере.) Что вы видите?
Рисунок 2.7. Видите корову?
Анил (несколько секунд пристально всматривается). Совершенно ничего. Какие-то случайные пятна.
Анна. Хорошо. А теперь я скажу вам, что на изображении – морда коровы. Видите теперь?
Анил (сначала всматривается с сомнением, потом его лицо озаряется улыбкой). Вижу! Она смотрит прямо на меня с левой части изображения! Маленькие темные точки – это глаза, рядом с ними видны уши, а внизу – нос.
Анна. И теперь вы уже не сможете этого не видеть. Понимаете, что произошло? Нисходящее ожидание увидеть корову изменило ваше восприятие. Многие нейробиологи считают, что в этом и состоит функция обратных связей. То, что мы видим, – это конструкция, которую формируют как восходящие сигналы, так и нисходящие ожидания.
Анил. AlexNet использует только восходящие сигналы. (Ссутулившись, несколько секунд молчит.) Знаете, я шел к вам с мыслью, что вы будете в восторге от AlexNet. Что сочтете его великим достижением.
Анна. В каком-то смысле это действительно великое достижение. Но до копии человеческого мозга ему далеко. AlexNet изобретательно применяет множество приемов машинного обучения, которые в человеческом мозге попросту невозможны. Например, используется оборудование, способное обрабатывать больше 1000 изображений одновременно, а человек обрабатывает изображения последовательно, одно за другим. Для некоторых людей в таких проектах есть большой смысл.
Анил. Но не для вас?
Анна. Меня интересуют вечные вопросы: кто мы такие? Как возникает наш разум? Что делает возможным человеческое зрение? Вот мои вопросы, и я работаю над ними. Другим нравится создавать инструменты, способные улучшить жизнь людей. И они работают над этим.
Анил. Значит, изучение разума и ИИ не имеют между собой ничего общего?
Анна. Нет-нет, общего очень много. И все благодаря простому факту: современный ИИ, тот самый, что демонстрирует впечатляющий прогресс, основан на нейронных сетях. Старый добрый ИИ использовал алгоритмы с явными правилами, созданные людьми, а не нейронные сети. Но сегодняшний ИИ практически целиком построен на нейронных сетях. А нейронные сети во многом разрабатывали люди, стремившиеся понять человеческий разум. Так что теперь у нас общий инструментарий. И потому – много общего.
Анил. Получается, изучение нейронных сетей поможет разобраться как в человеческом, так и в искусственном интеллекте?
Анна. Вполне возможно. Я считаю, что взаимодействия внутри нейронной сети – ключ к пониманию интеллекта, будь то биологического или искусственного. Но для этого потребуется постоянный диалог. Мой совет сообществу ИИ – изучать, как человеческий мозг решает интересующие их задачи. А тем, кто стремится понять человеческий разум, советую не закрываться от мысли, что некоторые достижения в области ИИ могут подсказать новые направления исследований мозга. Надеюсь, эти области будут и дальше обогащать друг друга!
Рисунок 2.8. А теперь вы видите корову?
Мы обсудили, как мы распознаем и классифицируем объекты окружающего мира. Но как активация нейронов порождает сознательное переживание зрения? Мы, люди, в отличие от AlexNet, способны осознанно видеть деревья, а не просто распознавать и относить объект к категории «дерево». Открыв глаза, мы мгновенно воспринимаем богатую визуальную картину вокруг. AlexNet может подсказать, как наш мозг классифицирует объекты вроде дерева, но ничего не говорит о том, как возникает переживание самого акта видения. Как у людей возникают сознательные зрительные переживания?
Теорий множество, но точного ответа нет ни у кого. Мы знаем лишь, что видим не мир как таковой, а конструкцию, существующую целиком и полностью в нашем сознании. Эта конструкция обычно неплохо отражает внешний мир, но сама им не является. Как же активация нейронов связана с сознательным переживанием зрения? К этому фундаментальному вопросу мы вернемся в главе 10.
Но сначала нам предстоит разобраться, что делает нейронная сеть и почему она может дать нам инструменты для понимания разума. Эти важнейшие вопросы мы рассмотрим в следующей главе.