О чем речь? Вариационный автоэнкодер – модель, состоящая из двух нейросетей. Одна является кодировщиком, а другая – декодировщиком. Если простыми словами, то первая анализирует данные, а вторая на основе полученного массива выдает нечто похожее.
На что обратить внимание? Вариационный автоэнкодер используют для любых данных: последовательных и непоследовательных, текстовых, изображений. По сути, он придумывает новый вариант, которого еще никто не видел.
В статье рассказывается:
- Что такое вариационный автоэнкодер
- Отличия вариационного автоэнкодера от классического
- Часто задаваемые вопросы о вариационном автоэнкодере
-
Пройди тест и узнай, какая сфера тебе подходит:
айти, дизайн или маркетинг.Бесплатно от Geekbrains
Что такое вариационный автоэнкодер
Вариационный автоэнкодер (Variational Autoencoder – VAE) представляет собой генеративную модель, используемую в разных исследованиях: от создания новых лиц до написания искусственной музыки. В этом его отличие от нейросетей, которые работают как регрессоры или классификаторы.
Генеративные модели применяют для создания произвольных входных данных, имеющих сходство с базовым массивом сведений. Эту же операцию можно выполнить при помощи VAEs. Вместе с тем, в большинстве случаев необходимо изменить или исследовать вариации существующих данных заранее определенным образом. Здесь вариационный автоэнкодер VAE показывает лучшие результаты, чем любой из ранее созданных методов.
Принцип работы автоэнкодера проще понять, если есть представление о свёрточных нейронных сетях (Convolutional Neural Networks — CNNs), которые выполняют сходные операции. Они принимают большое изображение (в частности, тензор третьего ранга размером 299х299х3), трансформируя его в сжатый формат (тензор первого ранга размером 1 000). Этот вид в дальнейшем применяется в нейросети для классификации изображений.
Энкодер работает сходным образом. Он представляет собой нейросеть, принимающую вводные сведения и отправляющую их обратно в компактном виде, при этом данные имеют достаточно информации для преобразования их другим программным/аппаратным воплощением данной математической модели в требуемый формат. Как правило, энкодер проходит обучение вместе с иными элементами нейросети на базе обратного распространения. Это дает возможность выполнять кодирование для определённой задачи. Так, в CNN шифрование графики в массив из 1 000 блоков выполняется так, чтобы полученный массив мог использоваться для классификации.
входят в ТОП-30 с доходом
от 210 000 ₽/мес
Скачивайте и используйте уже сегодня:
Топ-30 самых востребованных и высокооплачиваемых профессий 2023
Поможет разобраться в актуальной ситуации на рынке труда
Подборка 50+ бесплатных нейросетей для упрощения работы и увеличения заработка
Только проверенные нейросети с доступом из России и свободным использованием
ТОП-100 площадок для поиска работы от GeekBrains
Список проверенных ресурсов реальных вакансий с доходом от 210 000 ₽
Работа вариационного автоэнкодера основана на том же принципе, но в нем генерируются зашифрованные данные, которые могут использоваться для восстановления исходной информации. Как правило, нейросеть обучается как единое целое. Функция потерь подбирается как среднеквадратичная ошибка или кросс-энтропия между входными и выдаваемыми сведениями. Эта ошибка – потери восстановления (reconstruction loss), препятствующие созданию нейросетью получаемого массива, который в значительной мере отличен от исходного.
Так как зашифрованная информация как выходные данные скрытого слоя в середине, значительно меньше входной, оказывается, что часть их энкодер утрачивает. Вместе с тем, он обучается корректно обрабатывать зашифрованную информацию и восстанавливать из нее исходные изображения. Совместно эти нейросети образуют автоэнкодер.
Отличия вариационного автоэнкодера от классического
У традиционных вариационных автоэнкодеров архитектура такова, что они обучаются кодировать исходные данные и восстанавливать их, но сфера их использования обычно исчерпывается созданием шумоподавляющих кодеров.
Читайте также!
Существенная проблема автоэнкодеров в том, что шифрование, происходящее в скрытом пространстве, включающем в себя обработанные векторы, не всегда является непрерывным. Это препятствует выполнению интерполяции. В частности, обучение автоэнкодера на основе датасета MNIST и визуализация закодированной информации из двухмерного скрытого слоя позволяют увидеть создание отдельных кластеров. Это целесообразно, так как каждый вектор шифрования для определенного вида изображения упрощает восстановление информации, сгенерированной энкодером.
Проблем с вариационным автоэнкодером не возникает, если требуется только воссоздать исходные изображения. Если же надо сформировать генеративную модель, то нужно не просто скопировать данные, а получить именно новую картинку из непрерывно скрытого слоя.
Если в пространстве есть разрывы (в частности, между кластерами), и пользователь создает изображение на базе закодированной информации, на выходе получит нереалистичную картинку, ведь декодер «не знает», как работать с соответствующей частью скрытого пространства.
Вариационный автоэнкодер (VAE) обладает признаком, которого нет у традиционных. Скрытое пространство у него непрерывное, благодаря чему могут выполняться случайные трансформации и интерполяции.
Скачать файлЭнкодер генерирует не единственный вектор размера n, а два – векторы средних значений µ и типовых отклонений σ. Благодаря этому и обеспечивается непрерывность скрытого слоя.
Вариационные автоэнкодеры образуют вектор длины n на основе произвольных величин Xi, при этом i-е элементы векторов µ и σ составляют среднее и типовое отклонение i-й и произвольной величины Xi.. Совместно они формируют n-мерный произвольный вектор, отправляемый декодеру для восстановления информации.
Читайте также!
В результате для всех исходных данных, включая одинаковые, итог кодирования отличается по причине произвольного выбора вектора изображения.
От средней величины вектора зависит точка, рядом с которой будет определен его пик, а от типового отклонения – допустимое расстояние его от среднего. Соответственно, вершина вектора кодирования оказывается в пределах n-мерного круга.
При этом входному значению теперь уже соответствует определённое непрерывное пространство. В итоге декодер может обрабатывать не единственный вектор, определенный исходными сведениями, а совокупность таковых, что позволяет восстановить даже единичное изображение в несколько видоизмененном виде.
Но в реальности отсутствие ограничении на значения векторов µ и σ делает возможным обучение энкодера генерации значительно разнящихся µ для образцов исходной информации. В результате их представление значительно удаляется друг от друга в скрытой области. Боле того, вариационный автоэнкодер по определению сводит к минимуму σ, чтобы ограничить различия векторов шифрования от исходного образца. В результате формируется информация с небольшой степенью неопределенности, что дает возможность корректно восстанавливать сведения из базовых сетов. В то же время допускается отсутствие непрерывной области.
Нам необходимо, чтобы расположение областей в скрытой зоне оставалось по возможности наиболее близким и, в то же время, чтобы они сохраняли отличные друг от друга элементы. Это позволяет выполнять гладкую интерполяцию и формировать результат с новыми данными. Чтобы обеспечить выполнение этого условия, в функции потерь используют Kullback–Leibler-расходимость (KL divergence). Эта дивергенция показывает величину отличий разных функций друг от друга. Сведение ее к минимальному значению оптимизирует значения распределения µ и σ так, чтобы они оказались приближены к величинам целевого распределения.
Для вариационных автоэнкодеров KL эти потери равнозначны совокупности всех KL-расходимостей между распределением элементов Xi~N(μi, σi²) в векторе Х и типовым распределением. Когда µi = 0 и σi = 1, достигается минимум. Соответственно, помещение энкодером каждой изолированной области шифрования рядом с произвольной точкой в скрытой области обусловлено учётом KL-потерь. Если они применяются, то пространства кодирования размещаются произвольно рядом с выделенной точкой в скрытой области с незначительным учетом похожести входных сведений. Поэтому декодер не может получить существенную информацию из данного пространства.
на курсы от GeekBrains до 24 ноября
При совместной оптимизации обеих частей генеративной модели образуется скрытая область, отражающая сходство рядом расположенных векторов на глобальном уровне, выглядящая совокупностью плотно сгруппированных зон рядом с началом ее координат. Результат – нечто среднее между кластерной природой потерь восстановления, требуемой для функционирования декодера, и стремлением получить близко расположенные векторы, применяя KL-потери.
Часто задаваемые вопросы о вариационном автоэнкодере
В какой сфере может применяться вариационный энкодер?
По сравнению с GAN, VAE отличаются большей гибкостью, позволяя использовать его для создания произведений искусства. В частности, Карл Дёрш предлагает использовать эту нейросеть для создания трехмерных моделей растений в видеоиграх, а блог Machine Learning Insights разработал собственный алгоритм для формирования в них пиксельных образов героев.
В итоге построение настраиваемых изображений дает практически неограниченные возможности для генерации любых произведений искусства, причем не только графических, но и музыкальных.
Какие изображения генерирует вариационный автоэнкодер?
Традиционно GAN формирует картинки лучше исходных, так как эта нейросеть обучается пониманию того, что для человека считается реалистичным, а что нет. Вместе с тем, необходимо принимать во внимание этический аспект, когда VAE/GAN используется для создания фейковых новостей и видео.
Какие данные подходят для обработки вариационным энкодером?
Вариационный энкодер можно использовать для разных типов данных, как логически выстроенных, так и непоследовательных, как дискретных, так и непрерывных. Эта особенность делает данный инструмент одним из наиболее популярных для машинного обучения.