Как учится машина. Революция в области нейронных сетей и глубокого обучения - Ян Лекун
Рис. 9.9. Внутренняя архитектура автономного агента с прогностической моделью
Чтобы действовать разумно и минимизировать свою цель, агент должен иметь три компонента: модель прогнозирования среды, дискриминатор, который предсказывает среднее значение цели в будущем, и субъект, предлагающий последовательность действий. При планировании модуль восприятия оценивает состояние мира s[0]. В каждый момент t мы предоставляем модели гипотезу действия a[t] и значение переменной z[t], и прогнозируем следующее состояние мира, используя модель s[t + 1] = g (s[t], a[t], z[t], w). Дискриминатор берет прогнозируемое состояние s[t] и вычисляет стоимость. Он пытается предсказать, приведет ли состояние модели к благоприятному или неблагоприятному исходу. Дискриминатор обучен предсказывать будущий средний результат целевого модуля. Он рассчитывает прогноз средней долгосрочной неудовлетворенности.
Чтобы спланировать действие, агент выдвигает гипотезу о последовательности действий и разворачивает модель (справа). Он уточняет гипотетическую последовательность действий, чтобы минимизировать среднюю стоимость, рассчитанную на траектории. Это уточнение может быть выполнено с помощью градиентного спуска, поскольку модель и стоимость являются дифференцируемыми функциями (нейронными сетями). Агент выполняет первое действие оптимизированной последовательности, наблюдает за новым состоянием мира и повторяет процесс. Полученные таким образом действия могут служить в качестве целей для обучения субъекта прямому прогнозированию наилучшего действия без необходимости какого-либо планирования или использования модели, то есть перехода от разумного действия к инстинктивному.
Архитектура может использоваться в двух режимах, более или менее соответствующих «системе 2» Даниэла Канемана (сознательное планирование) и «системе 1» (быстрое реагирование).
Начнем с сознательного планирования, которое инженеры в области оптимального управления называют «управлением по модели предсказания удаляющегося горизонта». Эпизод начинается с оценки состояния мира модулем восприятия. Такое состояние инициализирует модель мира. Затем модель имитирует эволюцию мира в течение определенного периода времени (определенное количество шагов – это горизонт), используя случайную последовательность z и последовательность гипотетических действий: s[t + 1] = g(s[t], a[t], z[t]). В каждый момент времени рассчитывается стоимость c[t] = C(s[t]). Теперь нужно уточнить гипотетическую последовательность действий, чтобы минимизировать среднюю стоимость по последовательности. Это можно сделать с помощью градиентного спуска. К сожалению, данную операцию приходится повторять для нескольких случайных последовательности скрытой переменной z[t]. Цель состоит в том, чтобы найти первое действие, которое ведет к благоприятному исходу (низкая стоимость) независимо от скрытой переменной. В конце эпизода, как только мы определили оптимальное действие, мы выполняем его, наблюдаем новое состояние мира и повторяем операцию для следующего момента времени t. Это довольно затратно с точки зрения вычислительного времени, поскольку модель создает множество очень разных сценариев всякий раз, когда скрытая переменная меняет значение.
Второй метод – обучить модуль субъекта; его иногда называют «стратегическая сеть». Как и раньше, мы «прогоняем» модель определенное количество раз и вычисляем среднюю стоимость. Но на этот раз последовательность гипотетических действий создается модулем субъекта, функцией p, которая принимает состояние мира в качестве входов и производит действие a[t] = p(s[t]). Чтобы обучить субъекта, мы распространяем обратно градиенты стоимости на весь эпизод (правая часть рис. 9.9) и настраиваем параметры p, чтобы минимизировать среднюю стоимость по всей последовательности.
Вот типичное приложение такой модели. Допустим, мы хотим научить беспилотный автомобиль ездить по трассе. Разумеется, речь не идет о том, чтобы отправить необученный автомобиль на настоящую трассу: он далеко не уедет. Во-первых, для модели было бы неплохо предсказать, что будут делать окружающие этот автомобиль машины в течение нескольких секунд. Состояние мира, или, скорее, непосредственного окружения автомобиля, состоит из прямоугольного изображения с центром на автомобиле, на котором представлены соседние автомобили и разметка полосы движения на дороге. По нескольким прошлым кадрам этого прямоугольника ConvNet обучается предсказывать несколько будущих кадров. В нем есть скрытые переменные, которые могут создавать несколько сценариев: без них прогнозы будут нечеткими. Данные для обучения поступают с камер, наблюдающих за движением на участке трассы. После обучения прогнозирующей модели мы обучаем субъектную сеть путем обратного распространения ошибки с течением времени, как показано на рис. 9.9. Функция стоимости измеряет близость других автомобилей и отклонение от центра полосы движения. Добавим к функции стоимости условие, которое измеряет степень неопределенности прогноза модели. Это условие заставляет систему оставаться в зоне надежных прогнозов. В этих условиях система учится водить «мысленно», даже не взаимодействуя с реальным миром[129].
Такой подход применяется в простых случаях. Но быстро возникают трудности:
1. Как получить модели мира, достаточно мощные, чтобы справиться со многими задачами и ситуациями?
2. Как обучить модель со скрытыми переменными, чтобы она могла предсказывать большинство возможных будущих сценариев?
3. Как обеспечить использование модели в тех областях, где ее прогнозы надежны?
Я не верю, что будет достигнут значительный прогресс в создании систем, интеллект которых приближен к человеческому, пока не будет найдено удовлетворительное решение этих вопросов.
Мы все еще далеки от цели.
Глубокое обучение и рассуждения: динамические сети
Вторая проблема. Упомянутые нами сети способны к восприятию, а иногда и к действию. Но как научить их рассуждать и сделать по-настоящему умными?
Мы только что говорили об особой форме рассуждений: планирование последовательности действий на основе прогностической модели путем минимизации функции стоимости. Многие рассуждения сводятся к поиску последовательности векторов (или символов), которые минимизируют конкретную функцию (как решение проблемы удовлетворения ограничений).
Но многие формы рассуждений имеют иную природу. Возьмем изображение на рис. 9.10. Чтобы ответить на вопрос: «Справа от металлического серого цилиндра находится блестящий объект. Он такого же размера, что и большая резиновая сфера?», необходимо найти сферу, найти нужный цилиндр и сравнить их размеры. Вместо того чтобы обучать сеть с фиксированной архитектурой отвечать на все такие вопросы, нужно обучить ее создавать вторую сеть, специально адаптированную для ответа на этот вопрос. Эта вторая сеть будет построена динамически (то есть реконструироваться с каждым новым вопросом) и состоять из пяти модулей: один для обнаружения сферы на изображении, второй для обнаружения металлического цилиндра, третий для определения местоположения объекта справа от него, четвертый, чтобы убедиться блестящий ли объект или нет, и последний, чтобы сравнить размеры. Первая сеть выглядит как сеть языкового перевода, но вместо того, чтобы переводить предложение с одного языка на другой, она «переводит» вопрос в последовательность инструкций, описывающих архитектуру второй сети. Все это от начала до конца основано на базе данных CLEVR (A Diagnostic Dataset for Compositional Language and Elementary Visual Reasoning, т. е. диагностический набор данных для творческого языка и элементарного рассуждения, основанного на образах), созданной FAIR