Исследователи из OpenAI обнаружили поразительный феномен в поведении нейросетей, названный ими «гроккингом» (grokking). В своей работе, представленной на воркшопе конференции ICLR 2021, авторы показали, что искусственный интеллект способен внезапно обретать способность к генерализации спустя огромное количество шагов после полного переобучения. Известный ИТ-блогер Янник Кильхер (Yannic Kilcher) подробно разбирает это открытие, объясняя, почему затянувшийся процесс обучения может превратить бездумное заучивание в истинное «понимание» алгоритмических правил.
🧩 Что такое гроккинг: когда нейросеть «прозревает» 0:00
Классическая теория машинного обучения гласит: если модель полностью переобучилась на тренировочном наборе данных, её способность к обобщению (генерализации) падает. Однако исследователи из OpenAI (Алеша Пауэр, Юрий Бурда, Харри Эдвардс, Игорь Бабушкин и Ведант Мисра) обнаружили явление, опровергающее этот стереотип. Они назвали его «гроккингом» — в честь термина из фантастического романа Роберта Хайнлайна, означающего глубокое, интуитивное понимание.
Суть феномена заключается в следующем: модель обучается на небольшом алгоритмическом датасете. Очень быстро тренировочная точность достигает 100%, а ошибка падает практически до нуля. При этом валидационная точность остается на нуле — модель просто зазубрила примеры и совершенно не понимает скрытые правила. Но если продолжить оптимизацию и обучать сеть дальше — на протяжении десятков и сотен тысяч шагов, — происходит удивительное. В какой-то момент валидационная точность скачкообразно, словно по щелчку пальцев, взлетает до 100%. Сеть внезапно «понимает» общую закономерность.
Янник Кильхер подчеркивает, что на графике обучения этот процесс выглядит захватывающе: валидационная кривая долгое время лежит на дне, пока по оси абсцисс, отсчитывающей шаги в логарифмическом масштабе, сменяются порядки величин ($10^2, 10^3, 10^4$). И лишь в районе $10^5$ шагов происходит резкий щелчок (snap). По словам ведущего, самое ценное здесь то, что когда у инженера опускаются руки и кажется, что модель безнадежно переобучена, нужно просто продолжать обучение. Эксперименты показывают, что однажды перейдя в режим генерализации, нейросеть больше не скатывается обратно в переобучение.
📉 Связь с двойным спуском: параметры против времени 3:50
Чтобы объяснить природу гроккинга, Янник Кильхер проводит аналогию с другим известным феноменом глубокого обучения — «двойным спуском» (double descent). Классический график двойного спуска исследует зависимость ошибки от количества параметров в модели при условии, что каждая конфигурация обучается до сходимости.
В динамике двойного спуска выделяются следующие этапы:
- С увеличением числа параметров валидационная ошибка сначала падает, а затем начинает расти, когда модель приступает к банальному запоминанию тренировочного датасета.
- Пик плохой генерализации достигается в точке интерполяции, где число параметров сети $N$ примерно совпадает с количеством тренировочных точек.
- Если продолжить увеличивать модель (перейти в режим избыточной параметризации), валидационная ошибка снова идет вниз, причем падает ниже первоначального уровня.
Янник Кильхер указывает на принципиальное различие: создатели теории двойного спуска изучали финальное состояние множества разных моделей в зависимости от их размера. Авторы же статьи про гроккинг зафиксировали одну архитектуру и посмотрели, что происходит внутри неё, если запустить процесс оптимизации на экстремально долгое время. Получается, что избыточная параметризация дает модели «свободу» находить гладкие и простые решения, но для их поиска алгоритму оптимизации требуется колоссальное количество шагов.
📊 Экспериментальный стенд: синтетические таблицы и группа $S_5$ 7:48
В качестве подопытных данных авторы исследования использовали синтетические датасеты, представляющие собой таблицы бинарных операций вида:
$$a \circ b = c$$
Здесь $a$, $b$ и $c$ — это дискретные символы, не имеющие внутренней структуры, а кружок — абстрактная бинарная операция. В качестве таких операций тестировались модульное сложение, умножение, полиномы и композиция перестановок.
Особое внимание Янник Кильхер уделяет экспериментам с симметрической группой $S_5$ — группой всех перестановок пяти элементов, которая насчитывает ровно 120 элементов. Таблица бинарных операций для такой группы представляет собой матрицу размером $120 \times 120$ ячеек. Процесс постановки задачи для нейросети выглядит так:
- Из таблицы случайным образом вычёркивается (скрывается) часть заполненных ячеек.
- Оставшиеся ячейки отдаются нейросети в качестве тренировочного набора данных.
- Задача модели — предсказать значения в скрытых ячейках.
Человек решает подобную задачу логически, пытаясь разгадать математическое правило. Нейросеть же имеет два пути: либо запомнить доступные ячейки (что не поможет угадать скрытые), либо тоже нащупать скрытое правило. Если валидационная точность модели достигает 100%, это прямое доказательство того, что ИИ смог математически восстановить структуру группы.
⚙️ Главные факторы: объем данных и магия Weight Decay 11:03
Поведение гроккинга жестко зависит от трех ключевых параметров: сложности самой операции, размера исходной таблицы и доли данных, оставленных для тренировки. Авторы измерили, сколько шагов требуется сети для достижения 99% валидационной точности при изменении доли обучающей выборки.
Выяснились следующие закономерности:
- Если нейросети доступно лишь 20% таблицы, гроккинг может не наступить вовсе — модель так и останется в состоянии переобучения.
- При увеличении доли тренировочных данных до 30% и более «щелчок» обобщения стабильно происходит, требуя около $10^5$ шагов.
- Чем больше заполненных ячеек предоставлено модели изначально, тем быстрее и легче она совершает переход к полной генерализации.
Помимо объема данных, исследователи протестировали влияние различных компонентов оптимизации: пакетный режим (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 просто забыл вечером выключить рабочий компьютер, а придя утром в лабораторию, обнаружил, что безнадежно переобученная модель внезапно выдала стопроцентную точность обобщения.