Теория «модульных» нейросетей: как собирать глубокие модели из LEGO-блоков
Современные нейронные сети строятся как конструктор из готовых функциональных блоков. Однако наше теоретическое понимание того, как эти блоки взаимодействуют, часто отстает от практики. Исследователь из MIT OpenCourseWare предлагает фундаментально новый подход: строить теорию глубокого обучения так же модульно, как мы строим сами нейросети. Вместо абстрактных математических выкладок предлагается рассматривать каждый слой (будь то линейный слой, свертка или embedding) как отдельный LEGO-блок с четко определенными свойствами чувствительности и нормами, что открывает путь к автоматическому теоретическому анализу любых архитектур.
🧱 Нейросеть как LEGO-конструктор 0:39
Идея заключается в том, чтобы наделить каждый базовый слой нейросети «теоретическим описанием». Мы знаем, как комбинировать слои двумя основными способами:
- Серия (Series): установка блоков друг на друга.
- Параллель (Parallel): установка блоков рядом.
Для понимания работы нейросети ключевым параметром является чувствительность выходного значения к изменению входных данных или весов. По мнению автора, этот базовый вопрос — как изменение весов влияет на выход сети — сегодня почти не изучен, хотя он критически важен для оптимизации и надежности (робастности) моделей.
Если мы сможем формализовать свойства каждого отдельного блока и правила, по которым они трансформируются при объединении, мы сможем автоматически «выводить» теоретические характеристики для любой, даже самой сложной архитектуры, построенной из таких модулей.
📉 Оптимизация и нормализация: практические выгоды 6:25
Автор утверждает, что такой модульный подход уже дает практические плоды. При масштабировании сети (например, при увеличении ширины слоев) ландшафт оптимизации часто «дрейфует», что требует подбора новых параметров обучения. Применение описанной теории позволяет:
- Исправить дрейф: нормализация обновлений весов через специально подобранные нормы делает обучение более стабильным при изменении масштаба сети.
- Ускорить обучение: интеграция идей спектрального спуска (steepest descent под спектральной нормой) позволяет достичь существенного ускорения обучения моделей.
Сравнительные тесты показывают, что внедрение этих методов обеспечивает значительный выигрыш в скорости обучения по сравнению с базовыми реализациями, такими как llm.c Андрея Карпатого.
🧩 Математическая база модулей 23:55
Чтобы сделать теорию формальной, вводится понятие «модуля». Каждый модуль — это объект с входами, весами и выходами. Он обладает следующим набором метаданных:
- Функция прохода (forward function).
- Чувствительность (sensitivity): константа Липшица, измеряющая, насколько сильно выход реагирует на вход.
- Масса (mass): гиперпараметр, определяющий важность модуля в системе.
- Норма весового пространства.
«Хорошо нормированный» (well-normed) модуль — это тот, который удовлетворяет строгим условиям непрерывности Липшица. Использование таких модулей позволяет автоматически гарантировать устойчивость всей сети при компоновке блоков.
🔄 Дуальность и «шампунь» для нейросетей 31:14
Одной из самых интересных находок автор считает концепцию «модульной дуальности». В классической оптимизации градиент рассматривается как дуальный вектор. Прямое использование градиента для спуска (обычный градиентный спуск) — это «плохая идея», так как она предполагает евклидову структуру пространства, которой нейросети, как правило, не обладают.
Автор отмечает, что популярный в индустрии метод оптимизации Shampoo (от Google) содержит «скрытый» примитив — преобразование градиента для линейных слоев, которое математически эквивалентно процедуре дуализации, выводимой из их теории. Оказалось, что даже простые итеративные методы реализации этого преобразования показывают выдающиеся результаты, становясь одними из самых быстрых способов тренировки моделей в сообществе.