# Борис Князев о замене SGD и графовых гиперсетях GHN-2

Источник: https://www.youtube.com/watch?v=3HUK2UWzlFA
Канал: Yannic Kilcher
Опубликовано: 24.11.2021

---

В современном машинном обучении обучение нейросетей с нуля требует колоссальных вычислительных ресурсов и времени. Популярный AI-блогер Янник Килхер (Yannic Kilcher) обсудил с исследователем Борисом Князевым (Boris Knyazev) его прорывную работу, посвященную предсказанию параметров для еще не обученных глубоких архитектур. Авторы создали графовую гиперсеть, способную за один прямой проход выдать рабочие веса для любой новой нейросети, что потенциально способно в корне изменить традиционные подходы к оптимизации моделей.

## 🧠 Суть метода: предсказание весов за один прямой проход
[[JUMP:0:00]]

Проект начался, когда Борис Князев проходил стажировку в Facebook AI (Meta AI) летом 2020 года. Основная идея исследования родилась из желания обойти классический и ресурсоемкий процесс обучения нейросетей с помощью обратного распространения ошибки.

В традиционном подходе для нахождения оптимальных параметров матриц весов используется датасет, через который модель прогоняется тысячи раз. В рассматриваемой работе авторы построили специальную графовую гиперсеть (Graph Hypernetwork), которая принимает на вход саму структуру целевой архитектуры и мгновенно генерирует для нее веса. По словам Бориса Князева, ключевое отличие от существующих мета-оптимизаторов заключается в том, что его модель выдает результат за один единственный прямой проход, не требуя итеративного процесса.

Однако Борис Князев делает важное уточнение: на этапе тестирования гиперсеть не принимает в себя данные. Она обучается под конкретный датасет (например, CIFAR-10 или ImageNet) и предсказывает веса, оптимизированные именно под него. По этой причине исследователи выпустили две отдельные гиперсети — одну для CIFAR-10, другую для ImageNet.

## 📊 Результаты и архитектурный датасет DeepNets-1M
[[JUMP:4:42]]

На датасете CIFAR-10 предсказанные нейросетью веса позволяют сходу достичь 60% точности, а на ImageNet — 50% точности в топ-5. Янник Килхер отмечает, что хотя эти цифры значительно ниже результатов полноценного обучения, они все равно выглядят впечатляюще для систем, которые никогда не обучались градиентным спуском напрямую. Борис Князев соглашается, что результат удивил даже самих авторов, ведь стандартное предположение в индустрии гласит, что веса для случайной необученной архитектуры будут выдавать лишь «мусорные» нейроны из-за сложных взаимодействий между ними.

Для обучения такой масштабной гиперсети авторам пришлось создать совершенно новый датасет, получивший название **DeepNets-1M**, который содержит 1 миллион уникальных архитектур. Гость опроверг популярное заблуждение: создатели проекта не обучали веса для этого миллиона сетей. Архитектуры генерировались случайным образом путем равномерной выборки из фиксированного пространства проектирования.

Параметры этого пространства конфигураций включают в себя:

* Различные типы слоев: свертки (включая depth-wise), полносвязные и механизмы внимания (attention).
* Варианты нормализации: Batch Norm, Weight Norm или полное отсутствие нормализации.
* Вложенные декартовы произведения различных размеров ядер свертки (5x5, 3x3, 1x1) и каналов.

Борис Князев поясняет, что в отличие от классического поиска нейроархитектур (NAS), где тяжелые модели вроде ResNet отбрасываются из-за неэффективности, их дизайн-пространство было расширено, чтобы включать современные крупные сети.

## 🔄 Обучение гиперсети и сдвиг распределения
[[JUMP:10:09]]

При создании DeepNets-1M ученые предусмотрели специальные выборки вне распределения (Out-of-Distribution, OOD), чтобы проверить способность модели к генерализации. Сюда вошли архитектуры, которые были значительно шире или глубже тех, что встречались при обучении (например, Wide ResNet или ResNet-150 вместо ResNet-50). Гиперсеть успешно справилась с ними, поскольку была обучена на базовых операциях, хоть и не видела их специфических комбинаций.

Процесс обучения выглядит как минимизация функции потерь (кросс-энтропии) на задачах классификации. Весь пайплайн полностью дифференцируем: ошибка предсказания целевой сети транслируется обратно через генератор весов прямо в параметры графовой гиперсети.

Янник Килхер поинтересовался, пробовали ли авторы использовать простые базовые подходы — например, копировать веса из наиболее похожей архитектуры в обучающей выборке. Борис Князев признался, что пытался это сделать, но задача оказалась слишком сложной из-за несовпадения размерностей и структуры слоев. Разработка такого «простого» алгоритма переноса, по мнению гостя, потянула бы на отдельный исследовательский проект.

## 🛠 Три кита архитектуры GHN-2: как победить взрыв весов
[[JUMP:17:21]]

Графовая нейросеть получает структуру целевой модели в виде матрицы смежности и признаков узлов, где каждый узел соответствует определенной операции. Сами веса гиперсети фиксированы, меняется лишь входной граф. В своей работе авторы усовершенствовали предыдущие подходы, внедрив три ключевых улучшения в модель GHN-2:

* **Дифференцируемая нормализация весов:** в ранних версиях предсказанные параметры имели тенденцию взрываться во время обучения. Авторы внедрили нормализацию, имитирующую классические методы инициализации весов (fan-in и fan-out), что стабилизировало диапазон значений.
* **Виртуальные ребра (Virtual Edges):** стандартные GNN плохо передают информацию на большие расстояния по графу, из-за чего финальные слои «не знают» контекста первых слоев. Введение виртуальных связей на основе кратчайшего пути помогло сохранить глобальный контекст.
* **Мета-батчинг (Meta-batching):** вместо того чтобы на каждой итерации использовать одну архитектуру и батч из 64 изображений, GHN-2 параллельно берет батч разных архитектур и батч картинок, что существенно снижает шум градиента.

Янник Килхер с иронией заметил, что решая проблему чрезмерной глубины в самой гиперсети, авторы фактически переизобрели остаточные связи (residual connections), столкнувшись с теми же проблемами на мета-уровне.

## 🧩 Масштабирование параметров и магия файн-тюнинга
[[JUMP:25:33]]

Одной из сложнейших технических проблем стала выдача весов для слоев с произвольным количеством параметров. Борис Князев охарактеризовал их текущее решение как довольно наивное: гиперсеть генерирует тензор фиксированного максимального размера, который затем циклически размножается (тайлинг) или обрезается под нужную размерность. Гость признает, что это ограничивает выразительную способность модели, но это был единственный эффективный метод, который удалось заставить работать. В качестве альтернативы Килхер предложил использовать неявные нейронные представления (как в моделях NeRF или SIREN), запрашивая у сети веса для конкретных координат матрицы.

Главная практическая ценность GHN-2 на данный момент — использование предсказанных весов в качестве умной инициализации для последующей дообучки (файн-тюнинга). Сама генерация весов занимает менее секунды. При этом дообучение модели на ImageNet всего в течение 5 эпох позволяет достичь результатов, сопоставимых со стандартным обучением с нуля на протяжении 100–200 эпох. По мнению Бориса Князева, если индустрия научится сразу предсказывать веса базового качества, необходимость в обучении с нуля отпадет.

## 🔮 Хайп против реальности: заменит ли это традиционный SGD?
[[JUMP:45:22]]

Комментируя бурную реакцию сообщества на публикацию, Борис Князев отметил, что работа подверглась некоторой переоценке. Многие ошибочно решили, будто алгоритм способен предсказывать параметры для совершенно новых, невиданных ранее задач, что не соответствует действительности.

Янник Килхер в шутку добавил, что кликбейтные превью на YouTube наверняка выходили с заголовками в духе «SGD больше не нужен, мы закончили». Борис Князев подчеркнул, что они сделали лишь маленький шаг в этом направлении и до полной замены градиентного спуска еще очень далеко. В планах на будущее авторы видят объединение их подхода с идеями мета-обучения для обеспечения генерализации не только по архитектурам, но и по новым датасетам.