Rigging the Lottery: Making All Tickets Winners

Utku Evci, Trevor Gale, Jacob Menick, Pablo Samuel Castro, Erich Elsen

Статья: https://arxiv.org/abs/1911.11134

Код: http://github.com/google-research/rigl



Статья гугловцев про новый метод обучения разреженных сеток, при котором начальная инициализация не играет роли — “все билеты выигрышные”.



Наиболее популярные сейчас методы получения разреженных сетей, когда сначала обучается обычная dense сетка, которая потом урезается (т.н. dense-to-sparse методы), имеют ограничения. В первую очередь таким образом мы ограничиваем сверху размер (и вероятно качество) разреженной сети. Ну и к тому же это неэффективно — мы производим много вычислений для параметров, которые будут нулевыми.



Есть также методы (и появляется всё больше), получающие разреженность в процессе обучения (DeepR, SET, DSR, SNFS — dynamic sparsity стратегии) или даже инициализации (SNIP, т.н. one-shot pruning алгоритм). Эту группу можно назвать sparse-to-sparse методами или sparse training алгоритмами.



Авторы предлагают свой метод обучения разреженных сетей с заданным числом параметров, способный находить модели более высокого качества по сравнению с текущими лучшими методами. Для метода не требуется “удачная инициализация”, поэтому его назвали RigL (читается как wriggle), “The Rigged Lottery”. Метод динамически обновляет сеть в процессе обучения, это dynamic sparse training.



Идея метода в том, что мы регулярно убираем часть соединений (зануляем веса) и создаём новые.



Улучшения в качестве достигаются благодаря двум вещам: новому методу для создания новых соединений и улучшению метода распределения параметров по свёрточным слоям.



Среди методов распределения разреженности рассматриваются три:



1) Равномерное распределение (все слои получают одинаковую разреженность)

2) Эрдёш-Реньи (число соединений масштабируется с учётом числа входящих и выходящих каналов)

3) Эрдёш-Реньи с ядром, ERK (модификация предыдущего, учитывающая размерность свёрточных фильтров)



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



ERK показывает себя лучше всех.



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



Кроме того используется косинусная функция для определения доли обновляемых соединений.



RigL сравнивали с кучей текущих dense-to-sparse и sparse-to-sparse методов (какие-то имея реализацию, другие по репортам из статей), с плотными сетями аналогичного числа параметров, а также с алгоритмами structured pruning (SBP, L0, VIB).



RigL (или RigL+, стартующий с архитектуры, найденной RigL) рулят.



Показано, что инициализация Lottery Ticket’ом не даёт преимуществ, с RigL выигрывают все билеты.



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



Также здорово, что в работе есть список багов, которые они нашли у себя в процессе реализации, и как с ними бороться. Полезно. Больше бы такого.