VAE кодирует объект не точкой, а распределением в latent space. Реконструкция просит сохранить детали, KL-дивергенция — организовать коды около простого prior. Именно их спор делает пространство пригодным и для восстановления, и для новых samples.
Почему обычный autoencoder плохо сэмплируется
Encoder сжимает изображение, decoder восстанавливает. Если обучать только reconstruction loss, коды training objects могут образовать разрозненные острова. Сэмпл из промежутка попадёт в область, которую decoder не видел.
Variational autoencoder задаёт вероятностный encoder:
prior
и likelihood decoder .
Мы хотим максимизировать , интегрируя неизвестный latent:
Интеграл обычно недоступен, поэтому появляется нижняя граница.
Слева deterministic codes образуют раздельные острова; случайные prior-точки часто лежат между ними. Справа эллипсы показывают , а KL стягивает aggregate область к стандартной нормали. Стрелки ведут от одних и тех же объектов к кодам.
ELBO по шагам
Вставим произвольный :
KL неотрицательна, значит
Первое слагаемое — качество реконструкции в вероятностной модели. Второе штрафует отличие posterior-кода от prior. Максимизация ELBO одновременно обучает decoder и приближённый inference.
Для diagonal Gaussian KL имеет закрытую форму:
Reparameterization trick
Нельзя обычным backprop пройти через случайную операцию , если sampling скрывает зависимость от параметров. Перепишем:
Случайность теперь находится в независимом , а дифференцируем по . Это pathwise gradient estimator.
На inference для реконструкции можно использовать , для генерации — . Эти режимы проверяют разные свойства.
Encoder выдаёт и , независимый входит через умножение и сложение. Красные стрелки gradient проходят через к обоим выходам encoder; sampling-узел параметров не имеет.
Лаборатория latent space
Меняйте вес KL. При нуле коды становятся островами и reconstruction резкая, но prior samples плохи. При слишком большом весе коды похожи на prior, а изображения теряют детали.
Выберите два объекта и интерполируйте . Смотрите не только на плавность картинки, но и на плотность prior вдоль пути. В высокой размерности линейный отрезок может проходить через нетипичную область; spherical interpolation иногда лучше.
-VAE и rate–distortion
Обобщённый objective:
Reconstruction term — distortion, KL — rate: сколько информации код несёт об относительно prior. Большая ограничивает канал и иногда делает факторы более disentangled, но ухудшает детали.
Disentanglement оценивают на данных с известными generative factors: угол, размер, положение. Красивое плавное изменение одной координаты не достаточно; нужно измерять независимость факторов и устойчивость к seed.
Posterior collapse
Сильный autoregressive decoder может предсказывать без . Тогда
и latent ничего не кодирует. ELBO может быть хорошей, а representation бесполезным.
Диагностика: KL по координатам, mutual-information proxy, изменение output при перестановке , число active units. KL annealing постепенно увеличивает вес, free bits разрешают каждой координате небольшую бесплатную информацию.
Это пример того, как оптимизатор честно находит обходной путь. Архитектура decoder и расписание objective входят в постановку.
По горизонтали KL rate, по вертикали reconstruction distortion. Точки для разных образуют frontier. Справа показаны reconstruction и prior samples в трёх режимах: острова, рабочий компромисс и collapse с нулевым rate.
Fashion-MNIST и честное сравнение
На Fashion-MNIST можно взять latent dimension 2 для прямой карты, затем 16 для качества. Для Bernoulli likelihood пиксели должны трактоваться соответственно; для непрерывных grayscale данных Gaussian или discretized likelihood может быть осмысленнее. MSE — это предположение о шуме, не нейтральная мера.
Сравните:
- reconstruction test objects;
- random prior samples;
- latent traversal;
- KL по координатам;
- nearest train neighbors;
- linear probe класса по ;
- negative ELBO на test.
Не выбирайте только удачные samples. Используйте фиксированную сетку quantiles prior.
VAE, GAN и diffusion
GAN оптимизирует adversarial качество samples без явного encoder-а и likelihood. VAE даёт encoder и probabilistic objective, но pixel likelihood часто ведёт к размытию. Diffusion тоже использует Gaussian noise, однако строит длинную цепь denoising в пространстве данных.
VAE часто служит latent compressor внутри diffusion systems. Тогда качество reconstruction определяет потолок деталей, а меньший latent удешевляет denoising.
Мини-исследование: prior sample и aggregate posterior
Хотя каждый штрафуется к , смесь
не обязана точно совпадать с prior. Возьмите двумерный VAE, нанесите , samples из aggregate posterior и независимые samples prior. Сравните radial distribution, covariance и occupancy сетки.
Декодируйте три группы точек: typical prior, области высокой и «дыры», где prior mass есть, а encoded data почти нет. Если в дырах outputs плохи, средний KL скрывает mismatch. Можно fit более гибкий prior или увеличить регуляризацию, но это снова меняет rate–distortion.
Проведите two-sample test classifier-ом, различающим и . Accuracy около 0,5 означает, что простой classifier не нашёл различия, а не доказательство равенства. Сопоставьте с качеством generated samples.
Мини-исследование: что именно делает изображение размытым
На synthetic dataset создайте две возможные позиции тонкой линии при одинаковом входном условии. Обучите deterministic MSE decoder: optimum проведёт две слабые линии или одну среднюю. Затем probabilistic decoder с latent может выбрать одну из мод.
Измерьте pixel MSE, sharpness и coverage обеих позиций. MSE-модель может победить по своей метрике и проиграть по реалистичности. Это пример различия loss и предметной метрики.
Повторите с Bernoulli и Gaussian likelihood. Формула observation model задаёт, что считается естественной ошибкой. Когда VAE называют «размытым», полезно уточнить: ограничена ли архитектура, слишком силён KL или likelihood усредняет мультимодальное будущее.
Представление для downstream-задачи
Заморозьте encoder и обучите linear probe класса на . Затем обучите probe на nuisance-признак, например положение. Хороший generative latent не обязан быть class-invariant. При разных class signal может сначала очищаться, затем исчезать вместе со всей информацией.
Сравните с контрастивным embedding, где objective явно выбирает invariances через пары. VAE сохраняет то, что нужно реконструкции, а не то, что удобно classifier-у.
Мини-исследование: uncertainty реконструкции
Для одного сэмплируйте сто и декодируйте. Посчитайте pixel-wise variance и variation предметных признаков. Высокая variance на границе объекта может означать uncertainty положения, но diagonal Gaussian posterior не гарантирует калибровку.
Сравните reconstruction из и среднее ста stochastic reconstructions. Из-за нелинейного decoder
Покажите разницу численно. «Средний код» и «средняя картинка» являются разными объектами.
Мини-исследование: latent arithmetic под контролем
Найдите среднее направление между двумя размеченными группами, например рукав/без рукава, и примените его к независимым объектам. Измерьте target classifier и сохранение других признаков. Если направление работает только на training examples, это переобученная геометрия.
Повторите после случайного orthogonal rotation latent и переобучения только линейного направления. Функция генератора та же при согласованном преобразовании, а координатная история меняется. Это хороший антидот к буквальным названиям отдельных нейронов.
Для conditional VAE публикуйте две сетки samples: с равным числом объектов каждого класса и с естественными частотами. Они отвечают на разные вопросы о качестве и покрытии.
Проверьте prior predictive до обучения decoder: samples из prior через случайную сеть бессмысленны, а после обучения должны соответствовать диапазону данных. Но хороший prior predictive не гарантирует хорошие reconstructions. Две панели отвечают на противоположные направления модели.
Для условного VAE держите label balance при sampling. Иначе редкий класс может выглядеть слабым из-за малого evaluation sample, а не posterior. Публикуйте равные сетки и естественные доли отдельно.
Полезный latent живёт между крайностями
VAE превращает compression в probabilistic inference. ELBO раскладывает задачу на reconstruction и согласование с prior, reparameterization проводит gradient через sampling, управляет rate–distortion. Успех нельзя измерить одной реконструкцией: нужны prior samples, активность latent и проверка collapse.