
Haoran You, Chaojian Li, Pengfei Xu, Yonggan Fu, Yue Wang, Xiaohan Chen, Richard G. Baraniuk, Zhangyang Wang, Yingyan Lin
Статья: https://arxiv.org/abs/1909.11957
Код: https://github.com/RICE-EIC/Early-Bird-Tickets
Давно мы не писали про Lottery Tickets, а уже накопилось всякого. Можете поискать в канале по этой фразе предыдущие статьи, что мы разбирали.
Вот, например, работа с ICLR 2020 про перевод всей этой истории про разреженные сети высокого качества в более практическую плоскость — поиск Early-Bird Tickets.
Цель проста — находить качественные разреженные сети с меньшими вычислительными затратами. Классический подход в парадигме Lottery Ticket Hypothesis заключался в итеративной процедуре: обучение-прунинг-повтор. Это долго и требует много ресурсов, особенно начальное полное обучение.
В данной работе авторы фокусируются на быстром нахождении хороших подсетей в начальной фазе обучения, это и есть “ранние пташки”, Early-Bird tickets.
Идея эффективного нахождения ранних пташек в использовании недорогих схем обучения (early stopping, low-precision) с большими learning rates. Но сначала надо показать, что найденное на таких ранних этапах, во-первых, существует, а, во-вторых, достаточно стабильно и полезно.
Про существование. Запускаем классическую процедуру (проверяют VGG16 и PreResNet-101 на CIFAR-10/100) на 160 эпох, и проверяем начиная с ранних эпох, находится ли хороший “билет”. Находится, причём начиная уже с 20-й эпохи. И они даже превосходят по качеству билеты, полученные полной процедурой (а заодно и исходную неотпруненную сеть тоже).
Второй вопрос, получаются ли они при использовании более “дешёвой” процедуры? Получаются, и процедура с более высоким learning rate даёт такие билеты раньше. А обучение с низкой точностью (8 бит) их не разрушает.
Остаётся ещё вопрос, как эти билеты идентифицировать на практике. Для этого авторы вводят mask distance, это хэммингово расстояние между бинарными масками двух билетов (=подсетей), маски показывают какие каналы остались, а какие удалились. Подсети получают структурированным прунингом (это когда удаляют каналы целиком, а не отдельные веса как в неструктурированном, для большинства железа структурированный метод более френдли), выкидывая топ-p% каналов с минимальным “весом”. Вес, что интересно, берётся из масштабирующего множителя из BatchNorm, здесь исходим из интуиции (как-то подтверждённой в других работах), что большее значение этого коэффициента относится к более значимым фильтрам. Эти маски быстро становятся достаточно стабильными и изменения между ними по mask distance уменьшаются. Билет отбирается, когда это расстояние оказывается меньше эпсилон (в работе 0.1). Для пущей стабильности это проверяется по пяти последним маскам.
Итоговый алгоритм называется EB Train (гусары, молчать!).
Алгоритм экспериментально проверяют и сравнивают с дефолтным LT, а также некоторыми другими алгоритмами прунинга типа SNIP, ThiNet, network slimming (NS). Качество EB Train выше.
Есть хорошая находка в плане измерения реальной экономии энергии. FLOPSы показывают не всё, только вычислительные операции, а в реальной работе много энергии уходит также на перемещение данных. Авторы применили классный лайфхак — обучают модели на внешнем Jetson TX2, а энергию измеряют через power meter, к которому он подключен.
С точки зрения вычислений по FLOPS метод требует в пару-тройку раз меньше вычислений, чем стандартный LT, и 1.2-2.5х меньше относительно лучшего из перечисленных конкурентов. По энергии метод ощутимо более экономный — более 10x относительно стандартного LT, в районе 6-7х относительно лучшего конкурента. Достойно. Это на мелких CIFAR-ах. На более серьёзных ResNet18/50 на ImageNet разница не столь велика, но всё равно достойна.
Ещё из позитивных моментов, у проекта на редкость неплохо выглядит репа с кодом и описанием.
















