Метод прунинга (удаления лишних связей) в нейронных сетях обычно требует либо предварительного обучения полной модели, либо наличия обучающих данных для оценки важности весов. В новом видео Янник Килчер (Yannic Kilcher) разбирает статью «SynFlow: Pruning neural networks without any data by iteratively conserving synaptic flow». Авторы работы предлагают алгоритм, который позволяет сжимать сети до экстремальных значений ещё до начала обучения, не используя при этом ни одного байта реальных данных.
✂️ Прунинг и гипотеза «лотерейного билета» 0:00
Традиционный подход к прунингу (сжатию нейросетей) заключается в том, чтобы сначала обучить большую модель, а затем удалить из неё наименее важные веса . Это позволяет уменьшить размер модели для хранения и ускорить её работу на мобильных устройствах или серверах без GPU . Однако этот процесс ресурсозатратен.
Янник Килчер напоминает о «гипотезе лотерейного билета» (Lottery Ticket Hypothesis), согласно которой внутри больших случайно инициализированных сетей существуют разреженные подсети («выигрышные билеты») . Если обучать только их с самого начала, они могут показать результат не хуже, а иногда и лучше полной сети. Проблема в том, что классический поиск такого «билета» всё равно требует обучения полной сети. Авторы SynFlow задались вопросом: можно ли найти эти важные связи до обучения и без использования данных? .
По словам Янника Килчера, основной вклад статьи состоит из трёх пунктов:
- Идентификация проблемы «коллапса слоёв» (layer collapse).
- Формулировка закона сохранения «синаптической значимости» (synaptic saliency).
- Предложение итеративного алгоритма SynFlow, который обходит ограничения существующих методов.
📉 Проблема коллапса слоёв 9:51
Коллапс слоя — это явление, при котором алгоритм прунинга удаляет абсолютно все параметры в одном из слоёв нейросети . Как только один слой полностью «обнуляется», поток информации через сеть прекращается, и точность модели мгновенно падает до уровня случайного угадывания .
Янник отмечает, что многие современные алгоритмы «однопроходного» (single-shot) прунинга страдают от этой проблемы:
- Random Pruning: случайное удаление связей.
- Magnitude Pruning: удаление весов с наименьшим абсолютным значением.
- SNIP и GraSP: более сложные градиентные методы, учитывающие функцию потерь .
Все они, по мнению авторов статьи, вызывают коллапс слоёв гораздо раньше, чем достигается теоретический предел сжатия . В качестве руководящего принципа (аксиомы) авторы предлагают стремиться к «максимально критическому сжатию» — состоянию, при котором в каждом слое остается хотя бы один параметр, обеспечивающий прохождение сигнала через всю сеть .
🧪 Синаптическая значимость и её сохранение 18:29
Центральное понятие работы — «синаптическая значимость» (synaptic saliency). Это оценка веса, которая вычисляется как произведение самого значения веса на градиент функции потерь (или другой функции $R$) по этому весу .
Авторы математически доказывают закон сохранения этой величины :
- На уровне нейрона: сумма входящей синаптической значимости равна сумме исходящей .
- На уровне сети: общая значимость сохраняется при переходе от слоя к слою .
Янник Килчер объясняет, почему это приводит к коллапсу слоёв . Если в сети есть слои разного размера (например, очень широкий слой и очень узкий), то из-за закона сохранения суммарная значимость у них будет одинаковой. Это означает, что средняя значимость каждого отдельного веса в большом слое будет гораздо ниже, чем в малом . В результате обычный алгоритм прунинга начнёт массово «вырезать» веса в больших слоях, что быстро приведёт к их полному исчезновению ещё до того, как будут затронуты мелкие слои .
🛠️ Алгоритм SynFlow: пошаговое руководство 35:45
Чтобы избежать коллапса, авторы SynFlow предлагают использовать итеративный подход без данных. Основная идея: если удалять веса по чуть-чуть и каждый раз пересчитывать их значимость, оставшиеся веса будут «брать на себя ответственность» за поток информации, и их показатели значимости будут расти, спасая слой от уничтожения .
Технический процесс SynFlow:
- Подготовка весов: все веса параметров сети заменяются на их абсолютные значения .
- Создание псевдо-данных: на вход сети подаётся тензор, полностью заполненный единицами (например, изображение, где каждый пиксель равен 1) .
- Прямой проход: данные проходят через сеть с положительными весами.
- Вычисление псевдо-лосса: в качестве функции потерь используется простая сумма всех выходных значений сети .
- Обратное распространение: выполняется backpropagation этого «лосса» для получения градиентов по каждому весу .
- Расчёт скоринга: для каждого параметра вычисляется оценка (значимость) как произведение веса на его градиент.
- Итеративное удаление: удаляется небольшая часть весов с наименьшими оценками во всей сети сразу (global masking) .
- Повтор: процесс повторяется многократно до достижения нужной степени сжатия.
По мнению авторов, такой подход гарантирует достижение максимального критического сжатия без преждевременного разрыва связей в сети .
🧐 Анализ и критика Янника Килчера 40:41
Янник Килчер выражает умеренный скептицизм относительно честности сравнения SynFlow с другими методами в статье. Он указывает на то, что SynFlow — это итеративный (многопроходный) алгоритм, в то время как базовые методы (SNIP, GraSP), с которыми его сравнивают, в экспериментах часто остаются однопроходными .
Основные замечания ведущего:
- Эффект итеративности: не до конца ясно, что именно даёт преимущество — сама формула синаптического потока или просто факт многократного пересчёта оценок .
- Практическая ценность: главное преимущество SynFlow — полное отсутствие необходимости в данных. Это делает его крайне дешёвым и удобным для подготовки архитектур до обучения .
- Будущее: Янник считает, что работа может вдохновить на создание методов «конструктивного» дизайна сетей . Вместо того чтобы инициализировать огромную сеть и обрезать её, исследователи могут научиться сразу строить разреженные структуры с правильными свойствами потока информации .
В экспериментах на архитектурах VGG и ResNet-18 (датасеты CIFAR-10, Tiny ImageNet) SynFlow стабильно превосходит конкурентов при экстремально высоких степенях сжатия, когда другие методы уже «сдаются» из-за коллапса слоёв .