Теория и реализация PyTorch

Поскольку эта статья будет обширной, я предоставлю читателю индекс для лучшей навигации:

  1. Введение
  2. Краткое введение в вариационные автоэнкодеры (VAE)
  3. Расхождение Кульбака – Лейблера (KL)
  4. потеря VAE
  5. Трюк с репараметризацией
  6. Выборка из категориального распределения и трюк Gumbel-Max
  7. Выполнение

Введение

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

Краткое введение в вариационные автоэнкодеры (VAE)

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

Основная идея VAE заключается в изучении вероятностного распределения данных в скрытом пространстве. Это скрытое пространство представляет собой низкоразмерное представление входных данных, где каждая точка соответствует определенной выборке данных. Например, учитывая вектор в скрытом пространстве размерности 3, мы можем думать, что первое измерение представляет форму глаз, 2-е — количество бороды и 3-е — загар на лице сгенерированного изображения человека.

VAE состоят из двух ключевых компонентов:

  1. Кодировщик. Сеть кодировщика принимает входные данные и сопоставляет их с параметрами распределения вероятностей (обычно гауссовского) в скрытом пространстве. Вместо того, чтобы напрямую создавать единую точку в скрытом пространстве…