Изменения

Перейти к: навигация, поиск

Автокодировщик

766 байт добавлено, 00:45, 5 апреля 2019
Нет описания правки
[[File:Autoencoder1RUS1998ALEX.png|300px|thumb|Автокодировщик]]
Автокодировщик (англ. autoencoder) — специальная архитектура искусственных нейронных сетей, позволяющая применять обучение без учителя при использовании метода [[ Обратное распространение ошибки | собратного с обратного распространения ошибки ]]. Простейшая архитектура автокодировщика — сеть прямого распространения, без обратных связей, наиболее схожая с перцептроном и содержащая входной слой, промежуточный слой и выходной слой. В отличие от [[ Нейронные сети, перцептрон | перцептрона ]], выходной слой автокодировщика должен содержать столько же нейронов, сколько и входной слой.
Автокодировщик состоит из двух частей: энкодера <tex>g</tex> и декодера <tex>f</tex>. Энкодер переводит входной сигнал в его представление (код): <tex>h = g(x)</tex>, а декодер восстанавливает сигнал по его коду: <tex>x = f(h)</tex>.
<tex>L = |x - f(g(x))|</tex>
===Sparse Autoencoders<ref>[https://web.stanford.edu/class/cs294a/sparseAutoencoder.pdf Sparse Autoencoders]</ref>===Размерность скрытого слоя больше, чем входного. Они все еще могут обнаружить важные особенности из данных. Sparse Autoencoders имеют На скрытый слой накладывается штраф за разреженность, <tex>Ω(h)</tex>, значение, близкое к нулю. На скрытый слой накладывается штраф за разреженность , в дополнение к ошибке восстановления. Это предотвращает переобучение.
<tex>L = |x - f(g(x))| + Ω(h)</tex>
===Denoising Autoencoders(DAE)<ref>[https://towardsdatascience.com/denoising-autoencoders-explained-dbb82467fc2 Denoising Autoencoders]</ref>===Создаем поврежденную копию ввода, внося некоторый шум. Это помогает избежать автоматического копировать входных данные в выходные, не изучая их особенностиобучить убирать шум из данных. DAE минимизирует функцию потерь между выходным узлом и поврежденным вводом.
<tex>L = |x' - f(g(x))|</tex>
===Contractive Autoencoders(CAE)<ref>[http://www.icml-2011.org/papers/455_icmlpaper.pdf Contractive Autoencoders]</ref>===
Целью CAE является получение надежного представления данных, которое менее чувствительно к небольшим изменениям. Надежность представления данных достигается путем регуляризации. Наказание в CAE это норма Фробениуса матрицы Якоби, которая вычисляется для скрытого слоя относительно входных данных. Фробениусовой нормой матрицы Якоби является сумма квадратов всех элементов.
<tex>||J_f(x)||_F^2 = sum_{i, j}(\partial h_j(x) / \partial x_i)^2</tex>
===Stacked Denoising Autoencoders<ref>[http://www.jmlr.org/papers/volume11/vincent10a/vincent10a.pdf Stacked Denoising Autoencoders]</ref>===
Stacked Autoencoders {{---}} это нейронная сеть с несколькими слоями Sparse Autoencoders. Когда мы добавляем в автоэнкодер больше скрытых слоев, это помогает уменьшить объемные код, получаемый кодировщиком. Restricted Boltzmann Machine (RBM) является основной частью сети глубокого убеждения.
===Deep Autoencoders<ref>https://skymind.ai/wiki/deep-autoencoder Deep Autoencoders]</ref>===
Состоит из двух идентичных глубоких сетей. Одна сеть для кодирования и другая для декодирования. Обычно имеют от 4 до 5 уровней для кодирования и следующие от 4 до 5 уровней для декодирования.
 
===[[Вариационный автокодировщик | Вариационный автокодировщик]]===
Автокодировщик, основанный на вариационном выводе.
==Пример реализации==
autoencoder = Model(input_img, decoder(encoder(input_img)), name=<font color="green">"autoencoder"</font>)
return encoder, decoder, autoencoder
 
<font color="green"># Создание модели</font>
encoder, decoder, autoencoder = create_dense_ae()
autoencoder.compile(optimizer='adam', loss='binary_crossentropy')
==См. также==
*[[:Variational autoencoder (VAE)Вариационный автокодировщик |Variational autoencoder (VAE)Вариационный автокодировщик]]
*[[:Generative Adversarial Nets (GAN)|Generative Adversarial Nets (GAN)]]
 
==Примечания==
<references/>
== Источники информации ==
9
правок

Навигация