newsmode
search
Меню
arrow_back Назад

Autoencoders and Diffusers: A Brief Comparison

auto_awesomeКраткое саммари

Юджин Ян сравнивает автоэнкодеры и диффузионные модели, показывая их сходства и ключевое различие. Автоэнкодеры — это нейросети, обученные воспроизводить вход на выходе через узкое горлышко (bottleneck), при этом существуют варианты: вариационные (VAE с распределением через reparameterization trick) и шумоподавляющие (denoising). Оба класса моделей учат низкоразмерное многообразие данных и используют похожие архитектуры — U-Net можно рассматривать как автоэнкодер с residual-связями. Главное отличие диффузионных моделей — обусловленность шагом времени (t), что позволяет одному набору параметров обрабатывать разные уровни шума: генерировать размытые изображения при высоком t и резко их детализировать при низком. Современные диффузионные модели также обусловлены текстом, что даёт возможность генерации по текстовым подсказкам.

Автоэнкодеры и диффузионные модели: краткое сравнение

[ deeplearning ] · 3 мин чтения

В предыдущем посте мы обсуждали диффузионные модели и сам процесс диффузии, в котором мы постепенно добавляем шум к данным, а затем учимся его убирать. Если вы знакомы с автоэнкодерами, это может показаться похожим на их denoising-вариант. Давайте посмотрим, как они соотносятся. Но сначала — краткий обзор автоэнкодеров.

Автоэнкодеры — это нейронные сети, обученные предсказывать свой же вход: дан вход — воспроизведи его на выходе. Само по себе это бессмысленно, если не наложить на сеть какое-либо ограничение. Типичное ограничение — слой-«бутылочное горлышко» (bottleneck), который ограничивает объём информации, способный через него пройти. Например, скрытый слой между энкодером и декодером, имеющий заметно меньшую размерность по сравнению со входом. С таким ограничением сеть учится тому, какую информацию пропускать через bottleneck, чтобы суметь воспроизвести выход.

Архитектура автоэнкодера со слоем-bottleneck (источник)

Один из вариантов автоэнкодера — вариационный автоэнкодер (VAE). Вместо того чтобы отображать вход в фиксированный вектор (через слой-bottleneck), он отображает его в распределение. В случае гауссовского распределения его среднее (\(\mu\)) и дисперсию (\(\sigma\)) можно выучить с помощью reparameterization trick. (См. также неформальное и формальное объяснения reparameterization trick.)

Вариационный автоэнкодер с предположением о многомерном гауссовском распределении (источник)

Ещё один вариант — denoising-автоэнкодер, в котором вход частично искажается путём добавления шума или случайного маскирования значений. Затем модель обучается возвращать исходный вход без шума. Чтобы очистить зашумлённый вход, автоэнкодер должен выучить взаимосвязи между входными значениями — например, между пикселями изображения, — чтобы достроить недостающие фрагменты. В результате автоэнкодер становится более устойчивым и лучше обобщает. (Идея добавления шума была вдохновлена тем, что люди способны узнавать объект, даже если он частично закрыт.)

Denoising-автоэнкодер с искажённым входом (источник)

Иначе говоря, автоэнкодеры учатся отображать входные данные в низкоразмерное многообразие естественно встречающихся данных (подробнее о manifold learning). В случае denoising-автоэнкодеров, отображая зашумлённый вход в область этого многообразия и затем декодируя его, они могут восстановить вход без шума.

Мне кажется, автоэнкодеры и диффузионные модели в чём-то похожи. У обоих похожая парадигма обучения: дан некоторый набор данных в качестве входа — воспроизведи его как выход (и попутно выучи многообразие данных). Кроме того, у обоих похожие архитектуры со слоями-bottleneck: U-Net можно рассматривать как автоэнкодер с остаточными (residual) связями для улучшения распространения градиента. Также — в случае denoising-автоэнкодера — обоих сближает подход искажения входа и обучения его очищать. В совокупности обе модели похожи в том, что учат низкоразмерное многообразие данных.

Ключевое же различие в том, что диффузионные модели обусловлены шагом времени (\(t\)) как входом. Это позволяет одной диффузионной модели — с одним набором параметров — обрабатывать разные уровни шума. В результате одна и та же диффузионная модель может генерировать (размытые) изображения из шума при больших \(t\), а затем доводить их до резкости при меньших \(t\). Современные диффузионные модели также обусловлены текстом, например подписями к изображениям, что позволяет им генерировать изображения по текстовым подсказкам.

• • •

Вот и весь краткий обзор автоэнкодеров и их сравнения с диффузионными моделями. Я что-то упустил? Пожалуйста, напишите мне!

Если этот материал оказался полезным, пожалуйста, цитируйте его так:

Yan, Ziyou. (Dec 2022). Autoencoders and Diffusers: A Brief Comparison. eugeneyan.com. https://eugeneyan.com/writing/autoencoders-vs-diffusers/.

или

@article{yan2022autoencoder, title = {Autoencoders and Diffusers: A Brief Comparison}, author = {Yan, Ziyou}, journal = {eugeneyan.com}, year = {2022}, month = {Dec}, url = {https://eugeneyan.com/writing/autoencoders-vs-diffusers/} }



К нам присоединились уже 11 800+ читателей, получающих обновления о machine learning, RecSys, LLM и инженерии.