# Как предсказать параметры нейросети без обучения: разбор статьи GHN-2 с Борисом Князевым

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

---

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

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

Основная идея исследования Бориса Князева заключается в создании специальной гиперсети на базе графовых нейронных сетей (GNN). В классическом машинном обучении мы имеем фиксированную архитектуру и обучаем её веса $W$ на наборе данных $X$, чтобы получить результат $Y$. Борис Князев предлагает иной подход: на вход гиперсети подается сама структура нейросети (её вычислительный граф), а на выходе генерируются веса для этой структуры [02:24].

Важные уточнения по механике работы:

*   **Специфичность данных:** Гиперсеть не является универсальной для всех задач. Она обучается под конкретный датасет (например, CIFAR-10 или ImageNet). На этапе инференса (тестирования) данные в гиперсеть не подаются — только архитектура целевой сети [03:07].
*   **Один проход:** Параметры предсказываются за один «forward pass» через GNN, что отличает метод от мета-оптимизаторов, требующих множества итераций [04:01].
*   **Результаты:** На датасете CIFAR-10 метод достиг 60% точности, а на ImageNet — около 50% (top-5 accuracy) без какого-либо градиентного обучения целевой сети [04:56].

По мнению Бориса Князева, такие цифры удивительны, так как общепринятое мнение в индустрии гласит, что веса для новой архитектуры нельзя просто угадать: сложные взаимодействия между нейронами обычно приводят к тому, что нетренированная сеть выдает «мусор» [05:22].

## 📊 Датасет DeepNets-1M: миллион архитектур в подарок
[[JUMP:06:29]]

Для обучения такой гиперсети потребовался колоссальный объем данных. Команда создала датасет **DeepNets-1M**, включающий 1 миллион различных архитектур [06:29].

Ключевые характеристики датасета:

1.  **Случайная генерация:** Архитектуры строились путем равномерного сэмплирования из заданного пространства дизайна (design space).
2.  **Широкий спектр операций:** Пространство включает свертки (convolution), линейные слои, механизмы внимания (attention), различные типы нормализации (BatchNorm, WeightNorm) или их отсутствие [07:46].
3.  **Отсутствие готовых весов:** Важно понимать, что авторы НЕ обучали этот миллион сетей. Веса в датасете отсутствуют — гиперсеть учится их создавать «с нуля» [06:56].

Борис Князев отмечает, что они намеренно расширили пространство дизайна по сравнению с типичными работами по поиску архитектур (NAS), включив туда такие модели, как ResNet, которые в NAS-сообществе иногда считают избыточными [09:43].

## 🛠 Математика обучения: как «учить учителя»
[[JUMP:13:30]]

Процесс обучения гиперсети выглядит как мета-задача. Вместо того чтобы минимизировать ошибку конкретной сети, алгоритм минимизирует общую ошибку по всем возможным архитектурам из датасета DeepNets-1M [13:57].

Алгоритм выглядит так:

*   Сэмплируется архитектура $A$.
*   Гиперсеть предсказывает веса для этой архитектуры.
*   Изображение $X$ пропускается через архитектуру $A$ с предсказанными весами.
*   Ошибка (loss) вычисляется по результату классификации.
*   **Критический момент:** Градиент ошибки пробрасывается обратно через веса архитектуры прямо в параметры гиперсети [16:28]. Весь путь дифференцируем [16:54].

## 🕸 Архитектура GHN-2: графы и виртуальные связи
[[JUMP:18:36]]

В качестве «предсказателя» используется улучшенная графовая гиперсеть (**GHN-2**). Каждый узел графа соответствует операции в нейросети (например, свертке).

Технические особенности GHN-2:

*   **Сообщения (Message Passing):** Узлы обмениваются признаками со своими соседями. Авторы используют два алгоритма прохода: один имитирует прямой проход (forward), другой — обратный (backward) в реальной сети [23:56].
*   **Рекуррентность:** Для экономии параметров функции обновления узлов разделяются между всеми слоями и шагами времени (RNN-подход) [22:49].
*   **Проблема «глубоких» графов:** При работе с очень глубокими архитектурами информация из первых слоев плохо доходит до последних. Чтобы решить это, Борис Князев ввел **виртуальные ребра (virtual edges)** [32:31]. Они соединяют далекие узлы на основе кратчайшего пути, позволяя информации течь быстрее — аналог Residual-связей, но на уровне графа [33:54].

## 📐 Проблема размерности и «тайлинг» весов
[[JUMP:25:33]]

Один из самых сложных вопросов: как предсказывать разное количество параметров (например, свертку 3х3 и 5х5) одной сетью?

По словам Бориса Князева, они использовали достаточно наивную стратегию — **тайлинг (tiling)** [26:24]. Гиперсеть генерирует тензор фиксированного максимального размера. Если целевой сети нужен тензор побольше, предсказанный блок копируется («размножается» плиткой) до нужного размера, а лишнее обрезается [26:51]. Борис признает, что это ограничивает выразительную способность и является зоной для будущих улучшений, возможно, с использованием неявных нейронных представлений [27:56].

## 🚀 Практическая ценность: тонкая настройка и ускорение
[[JUMP:42:07]]

Может ли этот метод заменить обучение? Пока нет, но он может стать идеальным «стартом».

*   **Скорость:** Предсказание весов для ResNet-50 занимает менее секунды [42:47].
*   **Эффективность:** Веса, предсказанные GHN-2, эквивалентны примерно 5 эпохам полноценного обучения на ImageNet [43:39].
*   **Fine-tuning:** Если взять предсказанные веса как инициализацию и немного доучить их (fine-tuning), можно достичь высоких результатов гораздо быстрее, чем при обучении со случайной инициализации.

## 📉 Реакция сообщества и «оправданный хайп»
[[JUMP:45:35]]

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

По мнению Бориса, возникло заблуждение, что их модель может предсказывать веса для любых *задач* [45:48]. На самом деле, модель жестко привязана к датасету, на котором училась. «Мы еще очень далеки от того, чтобы полностью заменить SGD (стохастический градиентный спуск)», — утверждает исследователь [46:14]. Янник Кильчер пошутил, что кликбейтное название видео могло быть «SGD больше не нужен», но Борис настоял на более осторожных оценках [46:27].