Янник Кильхер объяснил феномен гроккинга на алгоритмических датасетах OpenAI

Yannic Kilcher 83,2 тыс. 29 мин 6 мин 06.10.2021
Главное

Исследователи из OpenAI обнаружили поразительный феномен в поведении нейросетей, названный ими «гроккингом» (grokking). В своей работе, представленной на воркшопе конференции ICLR 2021, авторы показали, что искусственный интеллект способен внезапно обретать способность к генерализации спустя огромное количество шагов после полного переобучения. Известный ИТ-блогер Янник Кильхер (Yannic Kilcher) подробно разбирает это открытие, объясняя, почему затянувшийся процесс обучения может превратить бездумное заучивание в истинное «понимание» алгоритмических правил.

🧩 Что такое гроккинг: когда нейросеть «прозревает» 0:00

Классическая теория машинного обучения гласит: если модель полностью переобучилась на тренировочном наборе данных, её способность к обобщению (генерализации) падает. Однако исследователи из OpenAI (Алеша Пауэр, Юрий Бурда, Харри Эдвардс, Игорь Бабушкин и Ведант Мисра) обнаружили явление, опровергающее этот стереотип. Они назвали его «гроккингом» — в честь термина из фантастического романа Роберта Хайнлайна, означающего глубокое, интуитивное понимание.

Суть феномена заключается в следующем: модель обучается на небольшом алгоритмическом датасете. Очень быстро тренировочная точность достигает 100%, а ошибка падает практически до нуля. При этом валидационная точность остается на нуле — модель просто зазубрила примеры и совершенно не понимает скрытые правила. Но если продолжить оптимизацию и обучать сеть дальше — на протяжении десятков и сотен тысяч шагов, — происходит удивительное. В какой-то момент валидационная точность скачкообразно, словно по щелчку пальцев, взлетает до 100%. Сеть внезапно «понимает» общую закономерность.

Янник Кильхер подчеркивает, что на графике обучения этот процесс выглядит захватывающе: валидационная кривая долгое время лежит на дне, пока по оси абсцисс, отсчитывающей шаги в логарифмическом масштабе, сменяются порядки величин ($10^2, 10^3, 10^4$). И лишь в районе $10^5$ шагов происходит резкий щелчок (snap). По словам ведущего, самое ценное здесь то, что когда у инженера опускаются руки и кажется, что модель безнадежно переобучена, нужно просто продолжать обучение. Эксперименты показывают, что однажды перейдя в режим генерализации, нейросеть больше не скатывается обратно в переобучение.

📉 Связь с двойным спуском: параметры против времени 3:50

Чтобы объяснить природу гроккинга, Янник Кильхер проводит аналогию с другим известным феноменом глубокого обучения — «двойным спуском» (double descent). Классический график двойного спуска исследует зависимость ошибки от количества параметров в модели при условии, что каждая конфигурация обучается до сходимости.

В динамике двойного спуска выделяются следующие этапы:

  1. С увеличением числа параметров валидационная ошибка сначала падает, а затем начинает расти, когда модель приступает к банальному запоминанию тренировочного датасета.
  2. Пик плохой генерализации достигается в точке интерполяции, где число параметров сети $N$ примерно совпадает с количеством тренировочных точек.
  3. Если продолжить увеличивать модель (перейти в режим избыточной параметризации), валидационная ошибка снова идет вниз, причем падает ниже первоначального уровня.

Янник Кильхер указывает на принципиальное различие: создатели теории двойного спуска изучали финальное состояние множества разных моделей в зависимости от их размера. Авторы же статьи про гроккинг зафиксировали одну архитектуру и посмотрели, что происходит внутри неё, если запустить процесс оптимизации на экстремально долгое время. Получается, что избыточная параметризация дает модели «свободу» находить гладкие и простые решения, но для их поиска алгоритму оптимизации требуется колоссальное количество шагов.

📊 Экспериментальный стенд: синтетические таблицы и группа $S_5$ 7:48

В качестве подопытных данных авторы исследования использовали синтетические датасеты, представляющие собой таблицы бинарных операций вида:

$$a \circ b = c$$

Здесь $a$, $b$ и $c$ — это дискретные символы, не имеющие внутренней структуры, а кружок — абстрактная бинарная операция. В качестве таких операций тестировались модульное сложение, умножение, полиномы и композиция перестановок.

Особое внимание Янник Кильхер уделяет экспериментам с симметрической группой $S_5$ — группой всех перестановок пяти элементов, которая насчитывает ровно 120 элементов. Таблица бинарных операций для такой группы представляет собой матрицу размером $120 \times 120$ ячеек. Процесс постановки задачи для нейросети выглядит так:

Человек решает подобную задачу логически, пытаясь разгадать математическое правило. Нейросеть же имеет два пути: либо запомнить доступные ячейки (что не поможет угадать скрытые), либо тоже нащупать скрытое правило. Если валидационная точность модели достигает 100%, это прямое доказательство того, что ИИ смог математически восстановить структуру группы.

⚙️ Главные факторы: объем данных и магия Weight Decay 11:03

Поведение гроккинга жестко зависит от трех ключевых параметров: сложности самой операции, размера исходной таблицы и доли данных, оставленных для тренировки. Авторы измерили, сколько шагов требуется сети для достижения 99% валидационной точности при изменении доли обучающей выборки.

Выяснились следующие закономерности:

Помимо объема данных, исследователи протестировали влияние различных компонентов оптимизации: пакетный режим (full batch против mini-batch), дропаут и изменение скорости обучения. Настоящим открытием, по мнению Янника Кильхера, стало то, что регуляризация весов (Weight Decay) является главным катализатором гроккинга. При выкрученном вверх параметре Weight Decay нейросеть «прозревает» значительно быстрее. Также ускорению гроккинга способствуют симметричные бинарные операции.

🧠 Геометрия весов и природа «понимания» 15:49

Чтобы доказать, что нейросеть действительно выучила математический закон, авторы провели визуализацию весов выходного слоя с помощью алгоритма t-SNE. На примере операции модульного сложения ($x + y \pmod 8$) проекция весов наглядно показала строгие геометрические структуры: элементы выстроились в красивые циклы и цепочки, отражающие суть операции остатка от деления.

«Мы никогда явно не призывали сеть учить эти правила. Мы не строили внутренний граф, не заставляли её делать символьную регрессию — мы просто обучали стандартную нейросеть, и она сама обнаружила закон», — восхищается Янник Кильхер.

Янник предлагает метафору ландшафта потерь (loss landscape) для объяснения этого феномена. В процессе обучения на малом объеме данных у сети есть множество локальных минимумов, где она идеально запоминает тренировочные точки. Модель хаотично скачет между этими минимумами. Однако существует глобальное, фундаментальное решение — выучить само правило.

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

Этот факт заставляет Кильхера поднять философский вопрос: можно ли утверждать, что нейросети ничего не понимают? Если математическое правило физически запечатано в геометрии весов, это можно назвать полноценным пониманием. В будущем это позволит обучать сети на сырых массивах данных, а затем, анализируя их ландшафт весов, извлекать неизвестные человечеству физические или социальные законы.

🛠️ Архитектура модели и влияние шума 26:39

С технической точки зрения эксперимент OpenAI был поставлен на относительно скромной архитектуре: авторы использовали стандартную модель Transformer, состоящую всего из двух слоев и четырех голов внимания (attention heads). Датасеты также были небольшими и изолированными от внешних шумов.

Янник Кильхер делает важное критическое замечание: в реальном мире, на огромных зашумленных датасетах и гигантских моделях, столь идеальный скачок генерализации вряд ли будет происходить так же резко. Более того, при увеличении общего размера таблицы феномен гроккинга проявляется значительно тяжелее.

Отдельный эксперимент в приложении к статье был посвящен исследованию устойчивости к шуму. Авторы добавляли в таблицы ошибочные значения (выбросы):

В завершение обзора Янник демонстрирует одну из бинарных таблиц увеличенного размера из приложения к статье и с иронией предлагает зрителям самим угадать, какая математическая операция зашифрована в этом визуальном паттерне. Подводя итог, ведущий шутит, что, возможно, само открытие гроккинга произошло случайно: кто-то из исследователей OpenAI просто забыл вечером выключить рабочий компьютер, а придя утром в лабораторию, обнаружил, что безнадежно переобученная модель внезапно выдала стопроцентную точность обобщения.

💬 Цитаты

«Мы никогда явно не призывали сеть учить эти правила... мы просто обучали стандартную нейросеть, и она сама обнаружила закон»

Янник Кильхер 16:57
👥 Спикер
📖 Термины
Гроккинг (Grokking)
Феномен в машинном обучении, при котором модель переходит от простого заучивания тренировочных данных к полной генерализации спустя долгое время после переобучения.
Двойной спуск (Double descent)
Эффект, при котором валидационная ошибка модели сначала растет из-за переобучения, но затем снова падает при значительном увеличении числа параметров.
Weight Decay
Метод регуляризации в обучении нейросетей, который штрафует модель за слишком большие значения весов, заставляя её искать более простые решения.
t-SNE
Алгоритм нелинейного снижения размерности, используемый для визуализации многомерных данных (например, весов нейросети) на плоскости.
📊 Цифры
⚖️ Другая сторона
Искусственный интеллект гроккинг двойной спуск OpenAI Янник Кильхер