Исследователи наблюдали, как нейронные сети, по-видимому, перетренировывая их, находят новые решения проблем. Сохранить статью Прочитать позже

Введение
Несмотря на всю свою гениальность, искусственные нейронные сети остаются по-прежнему непостижимыми. По мере роста этих сетей их возможности стремительно растут, но расшифровать их внутренние механизмы всегда было практически невозможно. Исследователи постоянно ищут любую информацию об этих моделях.
Несколько лет назад они обнаружили новый.
В январе 2022 года исследователи из OpenAI, компании, стоящей за ChatGPT, сообщили, что эти системы, если им случайно позволить обрабатывать данные гораздо дольше обычного, разработали уникальные способы решения задач. Обычно, когда инженеры создают модели машинного обучения на основе нейронных сетей, состоящих из единиц вычислений, называемых искусственными нейронами, обучение прекращается в определённой точке, называемой режимом переобучения. В этом случае сеть, по сути, начинает запоминать свои тренировочные данные и часто не может обобщать их на новую, ранее не встречавшуюся информацию. Но когда команда OpenAI случайно обучила небольшую сеть значительно дольше этого момента, она, похоже, пришла к пониманию проблемы, которое выходит за рамки простого запоминания — она внезапно смогла преуспеть в любых тестовых данных.
Исследователи назвали это явление «грокингом» – термином, придуманным писателем-фантастом Робертом А. Хайнлайном, который обозначает понимание чего-либо «настолько глубоко, что наблюдатель становится частью наблюдаемого процесса». Перетренированная нейронная сеть, предназначенная для выполнения определённых математических операций, усвоила общую структуру чисел и усвоила результат. Она грокинга и стала решением.
«Это было очень захватывающе и побуждало к размышлениям», — сказал Михаил Белкин из Калифорнийского университета в Сан-Диего, изучающий теоретические и эмпирические свойства нейронных сетей. «Это дало толчок к проведению множества дальнейших исследований».
Действительно, другие учёные воспроизвели результаты и даже провели их обратную разработку. Последние работы не только прояснили, что делают эти нейронные сети, когда они грокают, но и предоставили новый взгляд на их внутреннее устройство. «Установка для грока — это своего рода модель организма, подходящая для понимания множества различных аспектов глубокого обучения», — сказал Эрик Мишо из Массачусетского технологического института.
Заглянуть внутрь этого организма порой очень познавательно. «Можно не только обнаружить прекрасную структуру, но и эта прекрасная структура важна для понимания того, что происходит внутри», — сказал Нил Нанда, ныне работающий в Google DeepMind в Лондоне.
За пределами ограничений
По сути, задача модели машинного обучения кажется простой: преобразовать заданные входные данные в желаемые выходные данные. Задача алгоритма обучения — найти наилучшую возможную функцию, способную это сделать. Любая модель может использовать лишь ограниченный набор функций, и этот набор часто определяется количеством параметров модели, которое в случае нейронных сетей примерно эквивалентно количеству связей между искусственными нейронами.

Нил Нанда помог показать, как нейронные сети, понявшие модульную арифметику, преобразовывают числа, используя сложную математику.
По мере обучения сеть, как правило, усваивает более сложные функции, и расхождение между ожидаемым и фактическим результатом на обучающих данных начинает уменьшаться. Более того, это расхождение, известное как потеря, также начинает уменьшаться на тестовых данных, то есть на новых данных, не использованных при обучении. Но в какой-то момент модель начинает переобучаться, и, хотя потери на обучающих данных продолжают уменьшаться, потери на тестовых данных начинают расти. Поэтому, как правило, именно в этот момент исследователи прекращают обучение сети.
Это было общепринятым мнением, когда команда OpenAI начала исследовать возможности нейронной сети в математических вычислениях. Они использовали небольшой трансформатор — сетевую архитектуру, недавно совершившую революцию в области больших языковых моделей — для выполнения различных видов модульной арифметики, в которой вы работаете с ограниченным набором чисел, которые зацикливаются сами на себя. Например, сложение по модулю 12 можно выполнить на циферблате часов: 11 + 2 = 1. Команда продемонстрировала примеры сложения двух чисел, a и b, для получения результата c по модулю 97 (что эквивалентно циферблату с 97 числами). Затем они протестировали трансформатор на неизвестных комбинациях a и b, чтобы проверить, сможет ли он правильно предсказать c.
Как и ожидалось, когда сеть вошла в режим переобучения, потери на тренировочных данных приблизились к нулю (она начала запоминать увиденное), а потери на тестовых данных начали расти. Это не было обобщением. «И вот однажды нам повезло», — сказала руководитель группы Алетея Пауэр, выступая в сентябре 2022 года на конференции в Сан-Франциско. «И под удачей я подразумеваю забывчивость».
Член команды, обучавший сеть, уехал в отпуск и забыл остановить обучение. По мере того, как эта версия сети продолжала обучение, она внезапно стала точной на ранее неизвестных данных. Автоматическое тестирование показало эту неожиданную точность остальным членам команды, и вскоре они поняли, что сеть нашла хитрые способы расположения чисел a и b. Внутренне сеть представляет числа в некоем многомерном пространстве, но когда исследователи спроецировали эти числа в двумерное пространство и отобразили их на карте, они образовали круг.
Это было поразительно. Команда не сообщила модели, что она выполняет вычисления по модулю 97, или даже что это такое — они просто показали ей примеры арифметики. Похоже, модель наткнулась на какое-то более глубокое аналитическое решение — уравнение, которое обобщалось на все комбинации a и b, даже за пределами тренировочных данных. Сеть осознала это, и точность на тестовых данных взлетела до 100%. «Это странно», — сказала Пауэр своим слушателям.
Команда проверила результаты, используя различные задачи и различные сети. Открытие подтвердилось.
О часах и пицце
Но какое уравнение нашла сеть? В статье OpenAI об этом не говорилось, но результат привлёк внимание Нанды. «Одна из главных загадок и раздражающих особенностей нейронных сетей заключается в том, что они очень хороши в своей области, но по умолчанию мы понятия не имеем, как они работают», — сказал Нанда, чья работа сосредоточена на обратном проектировании обученной сети для выяснения алгоритмов, которые она освоила.
Нанда был очарован открытием OpenAI и решил разобрать нейронную сеть, которая дала результат. Он разработал ещё более простую версию нейронной сети OpenAI, чтобы можно было детально изучить параметры модели по мере её обучения модульной арифметике. Он наблюдал то же самое поведение: переобучение, которое сменялось обобщением и резким повышением точности тестирования. Его сеть также выстраивала числа по кругу. Это потребовало некоторых усилий, но Нанда в конце концов понял, почему.
Представляя числа на круге, сеть не просто отсчитывала цифры, словно детсадовец, следящий за часами: она выполняла сложные математические операции. Изучая значения параметров сети, Нанда и его коллеги обнаружили, что она складывала цифры на часах, применяя к ним «дискретные преобразования Фурье» — преобразуя числа с помощью тригонометрических функций, таких как синусы и косинусы, а затем манипулируя этими значениями с помощью тригонометрических тождеств, чтобы получить решение. По крайней мере, именно это делала его конкретная сеть.
Когда команда из Массачусетского технологического института продолжила работу Нанды, они показали, что нейронные сети, работающие по принципу «grokking», не всегда обнаруживают этот алгоритм «часов». Иногда сети вместо этого находят то, что исследователи называют алгоритмом «пиццы». Этот подход представляет собой пиццу, разделенную на куски и пронумерованную по порядку. Чтобы сложить два числа, представьте, что вы рисуете стрелки из центра пиццы к рассматриваемым числам, а затем вычисляете линию, которая делит угол, образованный первыми двумя стрелками, пополам. Эта линия проходит через середину некоторого куска пиццы: Номер куска равен сумме двух чисел. Эти операции также можно записать в терминах тригонометрических и алгебраических преобразований синусов и косинусов a и b, и теоретически они так же точны, как подход с часами.

Цзымин Лю продолжил работу Нанды и обнаружил второй способ обработки данных сетями гроккинга, а также несколько других подходов, которые, по-видимому, не имели интерпретаций.
«И алгоритмы часов, и алгоритмы пиццы имеют это круговое представление», — сказал Цзымин Лю, член команды Массачусетского технологического института. «Но… то, как они используют эти синусы и косинусы, различается. Поэтому мы называем их разными алгоритмами».
И это ещё не всё. Обучив множество сетей модульным вычислениям, Лю и его коллеги обнаружили, что около 40% алгоритмов, обнаруженных этими сетями, представляли собой разновидности алгоритмов пиццы и часов. Команда не смогла расшифровать, чем сети занимаются в остальное время. Что касается алгоритмов пиццы и часов, «просто так получилось, что они находят что-то, что мы, люди, можем интерпретировать», — сказал Лю.
И какой бы алгоритм ни изучала сеть, когда она разбиралась в проблеме, её способность к обобщению оказалась даже более эффективной, чем предполагали исследователи. Когда команда из Мэрилендского университета предоставила простой нейронной сети тренировочные данные со случайными ошибками, сеть сначала вела себя ожидаемо: переобучивала тренировочные данные, со всеми ошибками, и плохо работала на неповреждённых тестовых данных. Однако, как только сеть «поняла» и начала правильно отвечать на тестовые вопросы, она смогла выдавать правильные ответы даже на неправильные записи, забывая запомненные неверные ответы и обобщая даже свои тренировочные данные. «Задача «понимания» на самом деле довольно устойчива к такого рода искажениям», — сказал Даршил Доши, один из авторов статьи.
Битва за контроль
В результате исследователи теперь начинают понимать процесс, который приводит к тому, что сеть начинает грокингить свои данные. Нанда рассматривает кажущуюся внешнюю внезапность грокинга как результат постепенного внутреннего перехода от запоминания к обобщению, которые используют два разных алгоритма внутри нейронной сети. Он сказал, что когда сеть начинает обучаться, она сначала выбирает более простой алгоритм запоминания; однако, несмотря на простоту алгоритма, он требует значительных ресурсов, поскольку сети необходимо запоминать каждый экземпляр обучающих данных. Но даже в процессе запоминания части нейронной сети начинают формировать схемы, реализующие общее решение. Два алгоритма конкурируют за ресурсы во время обучения, но обобщение в конечном итоге побеждает, если сеть обучается с дополнительным компонентом, называемым регуляризацией.
«Регуляризация медленно приближает решение к решению-обобщению», — сказал Лю. Этот процесс снижает функциональную ёмкость модели — сложность функции, которую модель может обучить. По мере того, как регуляризация снижает сложность модели, обобщающий алгоритм, который менее сложен, в конечном итоге побеждает. «Обобщение проще при том же [уровне] производительности», — сказал Нанда. В конце концов, нейронная сеть отбрасывает алгоритм запоминания.
Итак, хотя отложенная способность к обобщению, кажется, появляется внезапно, внутренние параметры сети постепенно усваивают алгоритм обобщения. Только когда сеть одновременно освоит алгоритм обобщения и полностью уберёт алгоритм запоминания, вы начинаете понимать, что происходит. «Возможно, вещи, кажущиеся внезапными, на самом деле являются постепенными в глубине души», — сказал Нанда, — и эта проблема также поднималась в других исследованиях машинного обучения.
Несмотря на эти прорывы, важно помнить, что исследования в области грокинга всё ещё находятся в зачаточном состоянии. До сих пор исследователи изучали лишь очень маленькие сети, и неясно, будут ли эти результаты актуальны для более крупных и мощных сетей. Белкин также предупреждает, что модульная арифметика — это «капля в море» по сравнению со всеми многообразными задачами, которые выполняют современные нейронные сети. Обратного проектирования решения нейронной сети для такой математики может быть недостаточно для понимания общих принципов, которые ведут эти сети к обобщению. «Изучать деревья — это здорово, — сказал Белкин. — Но нам также нужно изучать лес».
Тем не менее, возможность заглянуть внутрь этих сетей и понять их аналитически имеет огромное значение. Для большинства из нас преобразования Фурье и деление дуг окружностей пополам — весьма странный способ сложения по модулю — человеческие нейроны просто не мыслят таким образом. «Но если вы созданы на основе линейной алгебры, то на самом деле имеет смысл делать это именно так», — сказал Нанда.
«Эти странные [искусственные] мозги работают не так, как наши», — сказал он. «[У них] свои правила и структура. Нам нужно научиться мыслить так, как мыслит нейронная сеть».
Источник: www.quantamagazine.org



























