SIREN: Новый взгляд на представление данных через нейронные сети
Исследователь в области машинного обучения Янник Кильчер (Yannic Kilcher) детально разбирает работу нейросетевой архитектуры SIREN (Sinusoidal Representation Networks), представленную командой исследователей, включая Винсента Ситцмана (Vincent Sitzmann) и Гордона Ветштейна (Gordon Wetzstein). В отличие от классических подходов, где данные хранятся как дискретные массивы (пиксели, аудиосэмплы), SIREN предлагает представлять сигналы как непрерывные функции, отображающие координаты в значения. Ключевой особенностью модели является использование синусоид в качестве функций активации, что позволяет нейросети не только идеально восстанавливать данные, но и точно аппроксимировать их производные.
🧠 Концепция нейронных представлений 0:28
В классическом машинном обучении мы привыкли к задачам «вход — метка» или генеративным моделям типа GAN, где нейросеть обучается отображать латентный вектор в изображение. Авторы SIREN предлагают другой подход:
- Функция как данные: Нейросеть сама по себе становится «представлением» сигнала. Если мы подаем на вход координаты (например, x и y для пикселя), сеть возвращает значение сигнала (например, RGB-цвет) в этой точке.
- Непрерывность: Поскольку мы работаем с непрерывной функцией, мы можем запросить значение в любой промежуточной точке, а не только в тех, что были в исходных данных.
- Оптимизация, а не обучение: В стандартных задачах мы имеем обучающую и тестовую выборки. Здесь же всё изображение (или 3D-сцена) является единственным датасетом. Цель — оптимизировать веса одной нейросети так, чтобы она «выучила» этот конкретный объект наизусть.
🌊 Почему именно синусоиды? 14:31
По словам Кильчера, попытки просто заменить ReLU или другие функции активации на синус часто заканчивались неудачей. Секрет SIREN заключается в специфической схеме инициализации весов.
- Производные — это тоже SIREN: В отличие от ReLU, производная синуса — это косинус (сдвинутая синусоида). Это означает, что производные нейросети SIREN сохраняют те же свойства, что и сама сеть. Это позволяет эффективно решать задачи, где важна не только сама величина сигнала, но и его градиенты.
- Сравнение с ReLU: Модели на базе ReLU часто выдают «мыльные» результаты или теряют детали. Использование ReLU с позиционным кодированием (как в трансформерах) улучшает результат, но всё же уступает SIREN в способности моделировать производные сигнала.
📐 Прикладные возможности и задачи 28:28
Кильчер отмечает несколько впечатляющих способов применения этой архитектуры:
- Композиция изображений: Можно смешивать изображения, складывая их градиентные карты. Сеть, обученная на сумме градиентов, способна реконструировать изображение, объединяя детали обоих источников.
- Работа с 3D (SDF): SIREN отлично справляются с представлением знаковых функций расстояния (Signed Distance Functions — SDF) для 3D-облаков точек. Сеть учится предсказывать расстояние до поверхности: нули на поверхности, плюс снаружи, минус внутри.
- Решение дифференциальных уравнений: Благодаря способности работать с производными, SIREN могут использоваться для численного решения уравнений в частных производных (PDE), например, уравнения Гельмгольца.
⚙️ Масштабируемость и обобщение 50:49
Несмотря на успех в представлении отдельных объектов, архитектура сталкивается с вопросом: как обучать такие модели на целых классах данных? В статье описывается решение, где используется CNN-энкодер. Сначала CNN обрабатывает изображение с пропущенными пикселями, а затем выдает параметры (веса) для нейросети SIREN, которая восстанавливает исходную картину. По мнению автора видео, это возвращает нас в классическое поле машинного обучения, но с более мощным инструментом «непрерывного представления» на выходе.