Книга Архитекторы интеллекта. Вся правда об искусственном интеллекте от его создателей - Мартин Форд
Шрифт:
Интервал:
Закладка:
М. Ф.: Вы известны как автор сверточной нейронной сети. Объясните, пожалуйста, что это такое?
Я. Л.: Изначально эта нейронная сеть была оптимизирована под распознавание объектов на изображениях. Но оказалось, что ее можно применить к широкому кругу задач, например распознаванию речи и машинному переводу. Идеей для ее создания послужили особенности зрительной коры мозга животных и людей, изученные в 1950–60-х гг. Дэвидом Хьюбелом и Торстеном Визелом, позднее получившими Нобелевскую премию в области нейробиологии.
Сверточная сеть – это особый способ соединения нейронов, которые не являются точной копией биологических нейронов. В первом слое – слое свертки – каждый нейрон связан с небольшим количеством пикселов изображения и вычисляет взвешенную сумму своих входных данных. В процессе обучения веса меняются. Группы нейронов видят небольшие участки изображения. Если нейрон обнаруживает определенный признак на одном участке, другой нейрон обнаружит точно такой же признак на соседнем участке, а все остальные нейроны – в остальных участках изображения. Математическая операция, которую нейроны выполняют вместе, называется дискретной сверткой. Отсюда название.
Затем идет нелинейный слой, где каждый нейрон включается или выключается, в зависимости от того, выше или ниже заданного порога оказалась вычисляемая слоем свертки взвешенная сумма. Наконец, третий слой выполняет операцию субдискретизации, чтобы убедиться, что небольшое смещение или деформация входного изображения не сильно меняет результат на выходе. Это обеспечивает независимость от деформаций входного изображения.
По сути, сверточная сеть – это стек, организованный из слоев свертки, нелинейности и субдискретизации. Когда они сложены, появляются нейроны, распознающие объекты. Например, нейрон, который включается при нахождении лошади на изображении, другой нейрон – для автомобилей, третий – для людей и так далее, для всех нужных вам категорий.
При этом то, что делает нейронная сеть, определяется силой связей между нейронами, то есть весами. И эти веса не запрограммированы, а являются результатом обучения.
Сети показывается изображение лошади, и, если она не отвечает «лошадь», ее информируют, что это неправильно, и подсказывают правильный ответ. После этого с помощью алгоритма обратного распространения ошибки сеть корректирует веса всех соединений, чтобы в следующий раз при демонстрации такого же изображения результат был ближе к нужному. При этом приходится демонстрировать ей тысячи изображений.
М. Ф.: Это обучение с учителем? Как я понимаю, сейчас это доминирующий подход.
Я. Л.: Именно так. Почти все современные приложения глубокого обучения используют обучение с учителем. Магия в том, что обученная сеть по большей части дает правильные ответы даже для изображений, которых ей раньше не показывали. Но нуждается в огромном количестве примеров.
М. Ф.: А чего можно ожидать в будущем? Можно ли будет учить машину как ребенка, которому достаточно один раз показать кошку и назвать ее?
Я. Л.: На самом деле вы не совсем правы. Первые тренировки сверточной сети действительно проходят на миллионах изображений различных категорий. А потом, если нужно добавить новую категорию, например научить компьютер распознавать кошек, для этого достаточно нескольких образцов. Ведь сеть уже обучена распознавать объекты практически любого типа. Дополнения к обучению касаются пары верхних слоев.
М. Ф.: Это уже похоже на то, как учатся дети.
Я. Л.: Нет, к сожалению, это совсем не похоже. Дети получают большую часть информации до того, как кто-то скажет им: «Это кошка». В первые несколько месяцев жизни дети учатся, не имея понятия о языке. Они узнают устройство мира, просто наблюдая за миром и немного взаимодействуя с ним. Такой способ накопления знаний машинам недоступен. Как это назвать, непонятно. Некоторые используют провокационный термин «обучение без учителя». Иногда это называют предвосхищающим, или индуктивным, обучением. Я называю это самообучением. При обучении этого типа не идет речи о подготовке к выполнению какой-то задачи, это просто наблюдение за миром и тем, как он функционирует.
М. Ф.: А обучение с подкреплением в эту категорию попадает?
Я. Л.: Нет, это совсем другая категория. По сути, выделяют три основные категории: обучение с подкреплением, обучение с учителем и самообучение.
Обучение с подкреплением происходит методом проб и ошибок и хорошо работает для игр, где можно делать сколько угодно попыток. Хорошая производительность AlphaGo была достигнута после того, как машина сыграла больше игр, чем все человечество за последние три тысячи лет. К задачам из реального мира такой подход нецелесообразен.
Человек может научиться водить автомобиль за 15 часов тренировок, ни во что не врезавшись. Если использовать существующие методы обучения с подкреплением, машине, чтобы научиться ездить без водителя, придется 10 тысяч раз упасть с обрыва, прежде чем она поймет, как этого избежать.
М. Ф.: Мне кажется, что это аргумент в пользу моделирования.
Я. Л.: Скорее, это подтверждение того, что тип обучения, которым пользуются люди, сильно отличается от обучения с подкреплением. Это похоже на обучение с подкреплением на базе моделей. Ведь человек, садясь за руль впервые, имеет модель мира и может предсказывать последствия своих действий. Как заставить машину самостоятельно изучать прогностические модели – это главная нерешенная проблема.
М. Ф.: Именно с этим связана ваша работа в Facebook?
Я. Л.: Да, это одна из вещей, над которыми мы работаем. Еще мы обучаем машину наблюдать за разными источниками данных. Строим модель мира, надеясь на отражение в ней здравого смысла, чтобы потом использовать ее как прогностическую.
М. Ф.: Некоторые считают, что одного глубокого обучения недостаточно, и в сетях изначально должна быть структура, отвечающая за интеллект. А вы, похоже, убеждены, что интеллект может органически появиться из относительно универсальных нейронных сетей.
Я. Л.: Вы преувеличиваете. С необходимостью структуры согласны все, вопрос в том, как она должна выглядеть. А говоря о людях, которые считают, что должны быть структуры, обеспечивающие логическое мышление и способность к аргументации, вы, вероятно, имеете в виду Гари Маркуса и, возможно, Орена Этциони. С Гари мы спорили на эту тему сегодня утром. Его мнение не очень хорошо воспринимается в сообществе, потому что, не сделав ни малейшего вклада в глубокое обучение, он критически писал о нем. Орен работал в этой сфере некоторое время и при этом высказывается значительно мягче.
Фактически, сама идея сверточных сетей возникла как попытка добавить в нейронные сети структуру. Вопрос в том, какую: позволяющую машине манипулировать символами или, например, соответствующую иерархическим особенностям языка?
Многие мои коллеги, в том числе Джеффри Хинтон и Иошуа Бенджио, согласны с тем, что рано или поздно мы сможем обойтись без структур. Они могут принести пользу в краткосрочной перспективе, потому что пока не придуман способ самообучения. Этот момент можно обойти, привязав все к архитектуре. Но микроструктура коры, как визуальной, так и префронтальной, кажется полностью однородной.