В прошлом месяце я писал о Вариационных автоэнкодерах и некоторых их сценариях использования. На этот раз я взгляну на другой тип автоэнкодера: автоэнкодер с шумоподавлением, который может восстанавливать поврежденные данные.

Автоэнкодеры - это нейронные сети, которые обычно используются для выбора и извлечения функций. Однако, когда в скрытом слое больше узлов, чем входов, Сеть рискует изучить так называемую «функцию идентичности», также называемую «нулевой функцией», что означает, что выходной сигнал равен входному, что указывает на бесполезность автоэнкодера. .

Снижение шума Автоэнкодеры решают эту проблему, намеренно искажая данные путем случайного обнуления некоторых входных значений. Как правило, процент входных узлов, для которых устанавливается нулевое значение, составляет около 50%. Другие источники предлагают меньшее количество, например 30%. Это зависит от количества данных и узлов ввода, которые у вас есть.

При вычислении функции потерь важно сравнивать выходные значения с исходными входными данными, а не с искаженными входными данными. Таким образом, исключается риск изучения функции идентификации вместо извлечения признаков.

Отличная реализация была опубликована на сайте opendeep.org, где они используют Theano для создания очень простого автоэнкодера с шумоподавлением и обучения его на наборе данных MNIST. Статьи OpenDeep очень общие и предназначены для начинающих. Так что, даже если у вас нет большого опыта работы с нейронными сетями, статью определенно стоит прочитать!

Автоэнкодеры с шумоподавлением - важный и решающий инструмент для выбора и извлечения функций, и теперь вы знаете, что это такое! Наслаждайтесь и спасибо за чтение!