# Как супермаски и лишние нейроны решают проблему катастрофического забывания в ИИ

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

---

В новом видео Янник Кильхер (Yannic Kilcher) разбирает научную работу «Supermasks in Superposition» (SupSup), предлагающую инновационный подход к последовательному обучению множеству задач без потери предыдущих знаний. В основе метода лежит использование бинарных масок поверх фиксированной случайной нейросети, что позволяет эффективно масштабировать обучение до тысяч задач и эффективно определять нужную задачу даже без явных подсказок.

## 🧠 Проблема катастрофического забывания в нейросетях
[[JUMP:00:00]]

Одной из центральных проблем в области непрерывного обучения (lifelong learning) является катастрофическое забывание [01:33]. Когда модель, обученная на задаче А (например, распознавание CIFAR-10), начинает обучаться задаче Б (например, MNIST), веса нейросети корректируются под новые данные, что приводит к резкой потере точности на первой задаче [02:39].

Янник Кильхер отмечает, что теоретически можно было бы обучать модель на всех данных сразу, но в реальности это часто невозможно из-за огромных объемов информации и необходимости постоянной интеграции нового опыта [03:05]. Существуют два основных сценария при тестировании таких систем:

*   **Task-aware:** когда системе сообщают, из какого набора данных пришло изображение.
*   **Task-agnostic:** когда модель должна сама определить тип задачи и классифицировать объект.

Традиционный подход с хранением отдельной модели для каждой задачи неэффективен из-за огромных затрат памяти [04:46]. Проект SupSup предлагает использовать одну фиксированную сеть и набор легких «масок».

## 🎭 Сущность «супермасок» и гипотеза лотерейного билета
[[JUMP:05:24]]

Метод SupSup опирается на «гипотезу лотерейного билета» и концепцию супермасок. Идея заключается в том, что в любой достаточно крупной, случайно инициализированной нейросети уже существуют подсети, которые при правильной конфигурации связей показывают хорошую точность даже без обучения весов [06:44].

Ключевые особенности супермаски:

*   Это бинарная маска (0 или 1), которая накладывается на веса случайной сети [06:06].
*   Если маска равна 1, вес сохраняет свое случайное значение; если 0 — связь полностью отключается.
*   Обучается только сама маска, в то время как веса базовой сети остаются неизменными (замороженными) [05:24].

По мнению Янника Кильхера, супермаски работают преимущественно на относительно простых задачах за счет сильной перепараметризации сети [08:16]. Чем сложнее задача, тем труднее найти подходящую комбинацию случайных весов. Однако для задач классификации изображений этот метод показывает поразительную эффективность. Поскольку маска бинарна (1 бит на вес против 32 бит у стандартного веса float32), модель SupSup позволяет экономить память в десятки раз [10:35].

## 🌌 Суперпозиция: как работать с тысячами задач одновременно
[[JUMP:15:10]]

Когда количество изученных задач исчисляется тысячами, проверка каждой маски по отдельности при инференсе становится слишком долгой [14:42]. Для решения этой проблемы авторы SupSup ввели понятие суперпозиции.

Вместо последовательного перебора всех масок ($m_i$), они смешиваются в единую взвешенную комбинацию с коэффициентами $\alpha_i$ [15:36]. Изначально каждый $\alpha$ равен $1/K$, где $K$ — общее число изученных задач. Итоговый выход сети представляет собой «среднее предсказание» всех масок, что само по себе бесполезно, но дает базу для оптимизации [16:43].

Для определения правильной задачи используется градиентный спуск по коэффициентам $\alpha$:

1.  Проводится один прямой проход через сеть в состоянии суперпозиции.
2.  Вычисляется энтропия выходного распределения ($H$).
3.  Через обратное распространение ошибки вычисляется градиент энтропии по отношению к коэффициентам $\alpha$ [17:12].

Как поясняет Янник Кильхер, интуиция здесь в том, что «правильная» маска должна выдавать наиболее уверенный результат с самой низкой энтропией [18:59]. Анализируя градиенты, система может быстро понять, увеличение какой маски приведет к резкому падению энтропии и росту уверенности модели.

## 🔍 Стратегии быстрого поиска маски
[[JUMP:20:06]]

Авторы предлагают несколько алгоритмов для поиска нужной маски в суперпозиции:

*   **One-shot (Одношаговый):** просто берется маска с самым большим отрицательным градиентом энтропии. Это самый быстрый, но эвристический метод [20:58].
*   **Binary Search (Бинарный поиск):** на каждом шаге отсеивается половина масок с худшими показателями градиента, после чего коэффициенты пересчитываются для оставшихся. Это компромисс между скоростью и точностью [31:01].

Янник Кильхер указывает на техническую деталь: при использовании суперпозиции библиотеки автоматического дифференцирования неявно отслеживают вклад каждой маски на уровне слоев, что делает процесс эффективным, но требует аккуратной реализации [23:11].

## 📊 Экспериментальные результаты: ImageNet и Permuted MNIST
[[JUMP:24:19]]

В экспериментах использовались сложные сценарии разделения данных:

*   **Split ImageNet:** 1000 классов ImageNet разбиваются на 100 задач по 10 классов в каждой [24:31].
*   **Permuted MNIST:** пиксели изображений MNIST перемешиваются случайным образом для каждой новой задачи, что создает бесконечное количество вариантов [34:57].

Результаты тестирования:

*   Верхний порог (обучение отдельной модели на каждую задачу) дает точность около 92% на ImageNet [25:55].
*   Модель SupSup достигает 88%, что крайне близко к идеалу, учитывая компактность масок [26:10].
*   В сценарии Permuted MNIST система успешно справляется с обучением до 2500 задач [37:27].

Особый интерес вызывает сценарий, когда модель не знает о смене задачи даже во время обучения. По словам Янника Кильхера, в этом случае SupSup использует эвристику: если при поступлении новых данных ни одна из существующих масок не дает низкой энтропии (уверенного предсказания), система делает вывод, что это новая задача, и выделяет под нее новую супермаску [39:52].

## ➕ Сверхнормативные нейроны (Superfluous Neurons)
[[JUMP:45:17]]

Один из «секретных ингредиентов» SupSup, который, по мнению Янника Кильхера, критически важен для успеха метода — это добавление лишних нейронов в выходной слой [51:17].

Например, для классификации 10 цифр MNIST авторы используют выходной слой из 500 нейронов [45:31]. Несмотря на то что классов всего 10, эти дополнительные 490 нейронов выполняют роль «детекторов аномалий».

Механизм работы:

1.  Во время обучения задачи $J$ веса корректируются так, чтобы 10 целевых нейронов работали корректно, а остальные 490 всегда «подавлялись» (стремились к низким значениям) [48:08].
2.  Если подать на вход данные из другой задачи, для которой эта маска не предназначена, нейронная активация на лишних нейронах начнет «флуктуировать», так как маска не обучена их подавлять для этих данных [50:52].
3.  Это приводит к резкому скачку энтропии, что позволяет легко отсеять неверные маски.

Янник Кильхер считает, что этот прием создает своего рода «ловушку» для неверных моделей, заставляя их выдавать высокую неуверенность на чужих данных [56:26].

## 💾 Сжатие в сети Хопфилда
[[JUMP:57:52]]

В завершение статьи авторы исследуют возможность хранения всех найденных масок не в виде отдельных файлов, а внутри единой структуры — сети Хопфилда [58:18].

*   Сеть Хопфилда представляет собой матрицу размера $d^2$.
*   Она способна кодировать и восстанавливать бинарные строки через градиентный спуск внутри самой сети [58:45].
*   Хотя это не «магия» и объем памяти все равно ограничен, такой подход позволяет еще сильнее сжать информацию о тысячах задач в одну фиксированную структуру [58:58].

Янник Кильхер резюмирует, что хотя SupSup во многом сводится к обучению множества сжатых моделей, идеи по их автоматическому выбору через суперпозицию и градиенты энтропии открывают интересные перспективы для создания систем действительно непрерывного обучения.