# Андрей Шмогенов рассказал о генерации весов нейросетей через HyperTransformer

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

---

В современном машинном обучении преобладает подход, при котором гигантские базовые модели адаптируются под конкретные задачи с помощью тонкой настройки. Однако исследователи Андрей Шмогенов, Марк Сандлер и Марк Владимиров предложили альтернативу — нейросеть HyperTransformer, способную за один прямой проход генерировать веса для другой, более компактной архитектуры. В интервью ведущему Яннику Килхеру соавтор работы Андрей Шмогенов подробно рассказал, как их подход кардинально меняет обучение на малом количестве данных (few-shot learning) и почему в будущем искусственный интеллект сможет создавать другие модели по текстовым описаниям.

## 🧠 Смена парадигмы в few-shot learning: от дообучения к генерации весов
[[JUMP:0:00]]

Янник Килхер начинает обзор статьи с объяснения фундаментальной проблемы традиционного мета-обучения. В классических подходах вроде MAML (Model-Agnostic Meta-Learning) исследователи обучают одну большую модель для поиска оптимальной общей инициализации, которую затем дообучают (fine-tune) на нескольких новых примерах. Однако, как отмечает ведущий, у этого подхода есть очевидный недостаток: базовая архитектура остается неизменной по размеру, что мешает эффективно запускать её на оконечных устройствах из-за высокого риска переобучения и колоссальных вычислительных требований.

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

## 🛠 Послойная архитектура HyperTransformer: как обуздать накопление ошибок
[[JUMP:10:11]]

Процесс генерации весов нейросетью является технически сложной задачей, поскольку нейросети традиционно плохо справляются с точной регрессией чисел. Если попытаться заставить трансформер выдать все веса целевой сети одновременно, ошибки предсказания будут катастрофически накапливаться от слоя к слою. Для решения этой проблемы в HyperTransformer применен послойный, почти авторегрессионный подход.



Как подробно описывает Янник Килхер, система состоит из нескольких последовательных этапов:

* Сначала экстрактор признаков (feature extractor) преобразует входные изображения опорного набора (support set) в векторы признаков.
* Затем эти векторы объединяются с эмбеддингами меток классов и передаются в трансформер.
* Трансформер генерирует веса только для первого сверточного слоя.
* Данные опорного набора пропускаются через этот новоиспеченный слой, а полученные скрытые активации (hidden activations) снова подаются на вход трансформеру для генерации весов второго слоя.

Этот огромный вычислительный граф обучается сквозным методом (end-to-end) с помощью обратного распространения ошибки. Эксперименты авторов показали, что для небольших целевых моделей выгодно генерировать все слои целиком, тогда как для крупных сетей можно ограничиться генерацией только последнего классификационного слоя.

## 🔬 Теория самовнимания: как трансформер строит классификатор без градиентного спуска
[[JUMP:22:29]]

Особое внимание в обзоре и статье уделено математическому обоснованию эффективности механизма самовнимания (self-attention) для генерации классификаторов. Авторы теоретически доказывают, что даже однослойный механизм самовнимания способен воссоздать базовый линейный классификатор, работающий по принципу усреднения эмбеддингов классов.

В этой схеме токены весов выступают в роли «запросов» (queries) к адресам слоев, метки классов — в роли «ключей» (keys), а сами данные изображений — в роли «значений» (values). В результате математической свертки трансформер агрегирует векторы данных, принадлежащие к одному классу, вычисляет их центроиды и формирует матрицу весов без выполнения единого шага градиентного спуска.

Более того, система поддерживает полуавтоматическое обучение (semi-supervised learning). Если в выборке есть неразмеченные данные, двухслойный трансформер способен реализовать алгоритм «ближайшего соседа»: на первом слое метки распространяются от размеченных примеров к близлежащим неразмеченным, а на втором слое обновленная информация собирается для построения финального классификатора.

## 🎙 Интервью с Андреем Шмогеновым: разделение знаний о мире и локальных задач
[[JUMP:34:48]]

Во второй части видео к Яннику Килхеру присоединяется соавтор исследования Андрей Шмогенов. Он подтвердил, что отправной точкой работы стал амбициозный вопрос: можно ли обучить модель генерировать абсолютно все веса другой сети за один прямой проход. По словам Андрея Шмогенова, они вдохновлялись более ранними работами по гиперсетям (HyperNetworks), но стремились модулировать веса под конкретную задачу.

Гость подчеркивает важность разделения вычислительного бюджета: большая модель должна аккумулировать в себе все знания о мире и о том, как конструировать нейросети, тогда как маленькая модель должна быть узкоспециализированной под конкретного пользователя. Шмогенов отмечает, что послойная генерация весов оказалась критической для стабилизации процесса: изменение ранних слоев кардинально меняет активации всей последующей сети, поэтому трансформер обязан «видеть», с какими промежуточными признаками предстоит работать новому слою.

## 📊 Стабильность графа и магия карт внимания на неразмеченных данных
[[JUMP:46:59]]

Отвечая на вопрос Янника о сложности и стабильности такого гигантского вычислительного графа, Андрей Шмогенов признался, что система оказалась на удивление стабильной в обучении. Единственным ограничением стало то, что авторам пришлось использовать классический алгоритм градиентного спуска (SGD) вместо более популярных оптимизаторов вроде Adam, поскольку из-за ограничений памяти в одном батче обрабатывалась ровно одна задача (размер батча равен единице). При этом, по мнению Андрея Шмогенова, их метод в ряде сценариев потенциально более стабилен, чем MAML-подобные подходы, где приходится делать обратное распространение через множество шагов развертки оптимизации.

Исследователи также изучили карты внимания (attention maps) в двухслойном режиме с неразмеченными данными. Обнаружился удивительный факт, подтверждающий теоретические выкладки: на первом слое веса полностью игнорируют неразмеченные примеры, собирая информацию только с размеченных, в то время как неразмеченные токены активно «общаются» с размеченными соседями. На втором слое ситуация кардинально меняется: веса начинают считывать информацию преимущественно из обновившихся неразмеченных токенов, практически игнорируя исходные размеченные данные. Шмогенов назвал этот спонтанно зародившийся поток информации самым захватывающим открытием эксперимента.

## 🚀 Будущее генерации моделей: от сверток к робототехнике и текстам
[[JUMP:1:06:18]]

Обсуждая ограничения текущей реализации, Андрей Шмогенов соглашается с тем, что генерация весов для огромных сетей напрямую сталкивается с проблемой масштабирования. В качестве решения этой проблемы он видит интеграцию HyperTransformer с генеративно-состязательными сетями (GAN) или вариационными автокодировщиками (VQ-VAE), когда трансформер будет генерировать не сами веса, а компактные эмбеддинги весов, которые затем будут разворачиваться специализированной моделью.

В небольших моделях HyperTransformer демонстрирует значительный прирост точности по сравнению с MAML, особенно на обучающей выборке, что критично для кастомизации под конечного пользователя. Однако Шмогенов призывает смотреть шире классической классификации изображений. По его мнению, гораздо более перспективным направлением является генерация политик управления (policies) для робототехники. Гость привел яркую аналогию: в будущем пользователь сможет загрузить несколько фотографий собранного им робота и ландшафта, а сервисная модель мгновенно сгенерирует готовую нейросетевую политику для его ходьбы без долгого обучения методом проб и ошибок.