Оптимизатор без гиперпараметров
Во время обучения нейронная сеть обычно обновляет свои веса в соответствии с оптимизатором, который настраивается с помощью вручную подобранных гиперпараметров. Новая работа устраняет необходимость в гиперпараметрах оптимизатора.
Что нового
Люк Метц, Джеймс Харрисон и их коллеги из Google разработали VeLO - систему, предназначенную для работы в качестве полностью настроенного оптимизатора. Она использует нейронную сеть для вычисления обновлений целевой сети.
Ключевой момент
Инженеры, занимающиеся машинным обучением, обычно находят оптимальные значения гиперпараметров оптимизатора, таких как скорость обучения, график скорости обучения и затухание веса, методом проб и ошибок. Это может быть обременительно, поскольку требует многократного обучения целевой сети с использованием различных значений. В предлагаемом методе другая нейронная сеть берет градиенты, веса и текущий шаг обучения целевой сети и выводит свои обновления весов - гиперпараметры не нужны.
Как это работает
На каждом временном шаге обучения целевой сети LSTM генерирует веса ванильной нейронной сети, которую мы назовем оптимизирующей сетью. Сеть-оптимизатор, в свою очередь, обновляла целевую сеть. LSTM научилась генерировать веса сети-оптимизатора путем эволюции - итеративно генерируя большое количество похожих LSTM со случайными различиями, усредняя их, основываясь на том, какие из них работают лучше, генерируя новые LSTM, похожие на средние, и так далее - а не обратным распространением.
Авторы случайным образом сгенерировали множество (порядка 100 000) целевых нейронных сетей различных архитектур - ванильные нейронные сети, конволюционные нейронные сети, рекуррентные нейронные сети, трансформаторы и так далее - для обучения на задачах, включающих классификацию изображений и генерацию текста.
Получив LSTM (изначально со случайными весами), они копировали и случайным образом изменяли ее веса, создавая LSTM для каждой целевой сети. Каждая LSTM генерировала веса ванильной нейронной сети, основываясь на статистике целевой сети. Эта статистика включала среднее и дисперсию ее весов, экспоненциальное скользящее среднее градиентов за время обучения, долю завершенных шагов обучения и величину потерь при обучении.
Авторы обучили каждую целевую сеть за фиксированное количество шагов с помощью сети-оптимизатора. Сеть-оптимизатор брала градиенты, веса и текущий шаг обучения целевой сети и обновляла каждый вес по очереди. Ее целью было минимизировать функцию потерь для поставленной задачи. В результате обучения были получены пары (LSTM, значение потерь).
Они сгенерировали новую LSTM, взяв средневзвешенное значение (чем меньше потери, тем больше вес) каждого веса для всех LSTM по всем задачам. Авторы взяли новую LSTM и повторили процесс: Они копировали и случайным образом изменяли LSTM, генерировали новые сети-оптимизаторы, использовали их для обучения новых целевых сетей, обновляли LSTM и так далее.
Результаты
Авторы оценили VeLO на наборе данных, масштабированном таким образом, что обучение на одном GPU потребовало не более одного часа на любой из 83 задач. Они применили метод к новому набору случайно сгенерированных архитектур нейронных сетей. На всех задачах VeLO обучал сети быстрее, чем Adam tuned для поиска оптимальной скорости обучения - в четыре раза быстрее на половине задач. Кроме того, в пяти из шести задач MLCommons, включающих классификацию изображений, распознавание речи, перевод текста и классификацию графов, потери были ниже, чем у Adam.
Да, но
Подход авторов показал низкие результаты именно там, где оптимизаторы требуют больших затрат на ручную настройку, например, в моделях с более чем 500 миллионами параметров и моделях, требующих более 200 000 шагов обучения. Авторы предположили, что VeLO не справляется с большими моделями и длительным обучением, потому что они не обучали его на сетях такого размера и с таким количеством шагов.
Почему это важно
VeLO ускоряет разработку моделей двумя способами. Он избавляет от необходимости проверять значения гиперпараметров и ускоряет саму оптимизацию. По сравнению с другими оптимизаторами, он использует более широкий спектр статистических данных об обучении целевой сети от момента к моменту. Это позволяет вычислять обновления, которые приближают модели к оптимальному решению поставленной задачи.
Мы считаем
Похоже, что VeLO слишком сильно подстраивается под размер задач, которые выбрали авторы. Сравнительно простые алгоритмы, такие как Adam, оказываются более устойчивыми к более широкому разнообразию сетей. Мы с нетерпением ждем появления алгоритмов, подобных VeLO, которые будут хорошо работать на более крупных архитектурах, требующих большего количества шагов обучения.
Мы не думаем
Теперь нейронные сети отнимают работу у оптимизаторов!
Источник: https://www.deeplearning.ai/the-batch/issue-206/