Введение в нормализацию потоков

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

Другой известный подход - вариационный. Идея состоит в том, чтобы ввести вариационное апостериорное распределение и оптимизировать нижнюю границу логарифмического предельного правдоподобия:

Будучи более стабильным, этот подход также обучает две нейронные сети и оптимизирует только нижнюю границу маргинального правдоподобия журнала (см. Этот пост для реализации PyTorch).

Нормализация потоков - это мощная статистическая модель, хорошо разработанная для генеративного моделирования среди других задач. Они позволяют точно оценить p (y) и, следовательно, их веса можно узнать напрямую, максимизируя общую предельную правдоподобность журнала для набора обучающих данных.

Способность точно оценивать p (y) является мощным преимуществом, и если вы впервые читаете о нормализации потоков, это может показаться вам волшебным. Давайте углубимся в детали.

Идея состоит в том, чтобы построить биективное отображение f так, чтобы y = f (z), где z - это переменная с обычно простой базовой плотностью p (z).

Поскольку f обратимо:

В этом параметре, заданном y, можно оценить его плотность, просто инвертируя f и отслеживая якобиан преобразование (теорема о замене переменной):

Помимо оценки плотностей, можно использовать поток - после обучения - для выборки из целевой плотности:

Подводя итог, будучи обратимыми, нормализующие потоки позволяют как оценивать плотность, так и производить отбор проб. Это представлено на Рисунке 1.

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

Один из распространенных способов сделать вычисление определителя Якоби линейным - сделать якобиан преобразования f нижним треугольником. Например, это можно сделать, сделав преобразование авторегрессивным, чтобы f можно было переписать как вектор скалярных функций d:

Якобиан функции f, следовательно, будет нижнетреугольным, и чтобы сделать каждую скалярную функцию биективной, достаточно, чтобы f биективный.

Нормализация потоков также может быть обусловлена ​​дополнительными переменными, чтобы сделать возможным выборку и оценку условной плотности (см. Рисунок 2).

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

В своих следующих сообщениях я буду реализовывать нормализацию потоков, используя i) обратную дивергенцию KL, чтобы соответствовать плотности, которую можно оценить только с постоянным коэффициентом и ii) прямую дивергенцию KL, чтобы изучить генеративную модель данные из обучающей выборки изображений .

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

Ссылки

  • [1] Вандегар Максим, «Дифференцируемые суррогатные модели для решения нелинейных обратных задач», 2020.