# Янник Килхер разобрал концепт обучения на основе энергетических моделей от OpenAI

Источник: https://www.youtube.com/watch?v=Cs_j-oNwGgg
Канал: Yannic Kilcher
Опубликовано: 11.05.2020

---

В области машинного обучения идет непрерывный поиск архитектур, способных не просто запоминать паттерны, но и гибко адаптироваться к новым абстрактным правилам. Известный ИИ-исследователь и блогер Янник Килхер (Yannic Kilcher) подробно разобрал интригующую научную работу исследователя Игоря Мордача из OpenAI, посвященную обучению концептам с помощью энергетических моделей (Energy-Based Models, EBM). Этот подход предлагает радикальную альтернативу привычным нейросетям прямого распространения, интегрируя градиентный спуск непосредственно в процесс генерации ответов на этапе вывода.

## 🔋 Что такое энергетические модели?
[[JUMP:0:54]]

Для понимания сути предложенного метода необходимо сначала разобраться в базовой концепции энергетических моделей. По сути, энергетическая функция — это математическая функция, которая принимает на вход один или несколько параметров (обозначим их как $X$) и возвращает числовое значение, отражающее «совместимость» или «правильность» этих параметров. 

Работа такой функции подчиняется простому правилу:

* Если система находится в оптимальном, «правильном» состоянии, функция выдает минимальную энергию (в идеале — 0).
* Если параметры не согласуются друг с другом, функция возвращает высокое значение энергии.

Почти любую классическую задачу машинного обучения можно переформулировать на языке энергетических моделей. Например, в обычном классификаторе изображений кошек и собак в качестве энергетической функции можно использовать функцию потерь (loss function). Если на вход подается картинка кошки с правильной меткой «кошка», модель выдает нулевую энергию. Если же подставить ошибочную метку «собака», энергетическая функция зафиксирует резкий всплеск значений, сигнализируя о внутренней ошибке. 



Аналогичным образом принципы EBM прослеживаются в алгоритме кластеризации k-means, где энергией выступает расстояние от точки данных до ближайшего центра кластера. В генеративно-состязательных сетях (GAN) роль энергетической функции берет на себя дискриминатор. Он обучается опускать уровень «энергии» до минимума в точках расположения реальных данных, формируя своеобразные глубокие «долины», и поднимать его там, где находятся фальшивые генерации.

## 🧬 Три переменные: Состояние, Внимание и Концепт
[[JUMP:10:10]]

В разбираемой Игорем Мордачем архитектуре энергетическая функция оперирует тремя ключевыми компонентами, взаимодействие которых определяет логику работы системы:

1.  **Состояние ($X$):** В рамках данного исследования состояние представляет собой вектор, описывающий набор геометрических объектов (сущностей) и их атрибутов, таких как координаты на плоскости ($x, y$) и цвет в формате RGB.
2.  **Маска внимания ($A$):** Дифференцируемый вектор, указывающий, на какие конкретно объекты из общего состояния модель должна обратить внимание в данный момент.
3.  **Вектор концепта ($W$):** Векторное представление (эмбеддинг) абстрактного правила или формы, например понятия «линия», «квадрат», «близко» или «между».

Суть концептуального обучения сводится к проверке взаимной совместимости этих трех элементов. Если вектор концепта $W$ кодирует правило «располагаться близко», а маска внимания $A$ выделяет два объекта, которые действительно находятся вплотную друг к другу в пространстве $X$, энергетическая функция будет абсолютно «счастлива» и выдаст нулевой результат. Если же объекты удалены друг от друга, уровень энергии окажется высоким. 

Поскольку все три компонента ($X$, $A$, $W$) являются строго дифференцируемыми, мы получаем уникальную гибкость: зафиксировав любые два элемента из этой тройки, мы можем вычислить третий с помощью обычного градиентного спуска.

## 🔄 Оптимизация на этапе вывода: Генерация и Идентификация
[[JUMP:15:30]]

Большинство современных нейросетей работают по принципу «однократного прохода» (one-shot): они принимают входные данные и за один шаг выдают готовый ответ. В энергетических моделях Игоря Мордача градиентный спуск становится неотъемлемой частью работы алгоритма не только во время обучения, но и на этапе инференса (вывода). 

Автор работы выделяет два основных режима работы обученной энергетической функции:

* **Генерация (Generation):** Модели передаются начальное хаотичное состояние $X_0$, маска внимания и вектор концепта (например, «квадрат»). Запуская градиентный спуск по пространству $X$, модель начинает плавно двигать объекты на экране до тех пор, пока они не выстроятся в идеальный квадрат, минимизируя общую энергию системы.
* **Идентификация (Identification):** Модели демонстрируется готовое пространственное расположение объектов $X$ и задается концепт. С помощью градиентного спуска по маске внимания $A$ система определяет, к каким именно объектам применимо данное геометрическое правило.

Самым интригующим процессом Янник Килхер называет «выведение концепта». Если показать модели пример абстрактной ситуации (допустим, несколько точек, выстроенных в ряд) и зафиксировать для них маску внимания, алгоритм через градиентный спуск может самостоятельно сформировать вектор концепта $W$. 

Этот извлеченный вектор можно без изменений перенести в совершенно другое окружение с новыми объектами. В новой сцене модель, используя полученный вектор $W$, безошибочно выделит маской внимания элементы, подчиняющиеся тому же самому абстрактному правилу, даже если объекты имеют другой цвет или размер.

## 🏋️ Трудности обучения: Обратное распространение через градиентный спуск
[[JUMP:23:47]]

Несмотря на элегантность подхода, его практическая реализация сталкивается с колоссальным вычислительным барьером. Чтобы обучить параметры самой энергетической функции (которая в работе реализована как реляционная нейросеть), исследователям приходится осуществлять обратное распространение ошибки через целые цепочки шагов оптимизации.

Один шаг обучения такой модели превращается в сложнейшую многоуровневую процедуру:

1.  Генератор данных создает демонстрационную сцену с определенным скрытым правилом.
2.  Модель выполняет полноценный цикл градиентного спуска, чтобы нащупать вектор концепта $W$.
3.  Полученный вектор применяется к тестовой сцене, где запускается второй цикл градиентного спуска для поиска маски внимания.
4.  Итоговый результат сравнивается с истинным значением, после чего запускается процедура *Backpropagation through Time* сквозь все проделанные шаги оптимизации.

По оценке Янника Килхера, если классическая сеть ResNet-50 требует всего одного прямого прохода для получения предсказания, то в данной схеме обратное распространение приходится делать через условные 50 проходов градиентного спуска. Это создает запредельную вычислительную нагрузку, из-за чего подобные исследования пока проводятся исключительно на простых синтетических («игрушечных») задачах.

## 🧪 Эксперименты, роботы и критика автора
[[JUMP:30:09]]

В практической части работы энергетическая модель продемонстрировала способность успешно осваивать самые разные геометрические и логические концепты на синтетических двумерных средах. Система научилась распознавать и воспроизводить правила пространственного удаления объектов, выстраивания треугольников и кругов, нахождения объектов «между» другими, а также базовые количественные понятия (один, два или больше трех объектов).

Исследователи также провели эксперимент с переносом навыков на симулированного робота, где модель должна была поместить манипулятор строго между двумя объектами. Робот успешно справился с задачей, извлекая концепт «нахождения посередине» из демонстраций.

Тем не менее Янник Килхер высказал долю здорового скептицизма относительно масштабов этого успеха. По его мнению, демонстрация с роботом выглядит скорее как дань эффектным презентациям OpenAI, поскольку реального физического переноса в сложные условия не происходило — позиции суставов и объектов все так же кодировались простыми векторами координат. 

Кроме того, Янник Килхер считает, что модель пока не демонстрирует истинного «понимания» концептов с нуля (zero-shot). Вместо этого она лишь выбирает и распознает правильные абстракции из тех, что уже были жестко заложены в ее обучающий датасет на этапе симуляции.

Тем не менее Янник Килхер подчеркивает фундаментальную важность этого направления. Модели, использующие оптимизацию непосредственно в момент инференса, обладают несравнимо большей выразительной мощностью, чем классические ИИ-архитектуры прямого прохода. Автор выразил надежду, что как только индустрия найдет математически более изящный и менее затратный способ дифференцирования через шаги оптимизации, энергетические модели могут спровоцировать совершенно новую технологическую волну в искусственном интеллекте.