В Google AI предложили метод для обучения разреженных нейросетей. Метод решает проблемы, с которыми сталкиваются dense-to-sparse подходы.
Оптимизация размера нейросетей
Прошлые исследования показали, что нейросети содержат подсети внутри, которые качеством почти не уступают полной версии модели. Под подсетью понимается подвыборка параметров оригинальной нейросети. Эти исследования про избыточность размера нейросетей привели к росту популярности методов для оптимизации размерности моделей. Один из таких методов — прунинг. При прунинге из полной обученной модели удаляются связи. Таким образом, из плотной нейросети со всеми параметрами получается разреженная. Ограничение такого подхода — необходимость сначала обучить модель с полным набором параметров. Это приводит к вычислительной ресурсоемкости и неэффективности. В Google AI предлагают изначально обучать разреженные модели. Для этого исследователи разработали метод RigL.
Как работает RigL
RigL позволяет обучать нейросети меньшей размерности с зафиксированным количеством параметров и сложностью. Предложенный метод работает таким образом, что распознает активные нейроны во время обучения и используют эту информацию для поиска лучшей разреженной сети. Начинается обучение со случайно инициализированной сети. С регулярными интервалами слабые связи удаляются и новые связи активируются с помощью градиентного потока. Процедура обучения затем повторяется для обновленной сети.
Исследователи оценили метод на популярных датасетах CIFAR-10 и ImageNet-2012. Они сравнили работу RigL с существующими dense-to-sparse методами. По результатам экспериментов, RigL обходит базовые подходы. При этом RigL вычислительно эффективнее аналогов.
Реализация RigL на Tensorflow доступна в открытом репозитории на GitHub.