Функция потери для автоэнкодеров


21

Я немного экспериментирую с автоэнкодерами, и с помощью tenorflow я создал модель, которая пытается восстановить набор данных MNIST.

Моя сеть очень проста: X, e1, e2, d1, Y, где e1 и e2 - уровни кодирования, d2 и Y - уровни декодирования (а Y - восстановленный выход).

X имеет 784 единиц, e1 имеет 100, e2 имеет 50, d1 снова имеет 100 и Y 784 снова.

Я использую сигмоиды в качестве функций активации для слоев e1, e2, d1 и Y. Входные данные находятся в [0,1] и должны быть выходными данными.

Ну, я попытался использовать кросс-энтропию в качестве функции потерь, но на выходе всегда был блоб, и я заметил, что веса от X до e1 всегда будут сходиться к матрице с нулевым значением.

С другой стороны, использование среднеквадратичных ошибок в качестве функции потерь даст хороший результат, и теперь я могу восстановить входные данные.

Почему это так? Я думал, что могу интерпретировать значения как вероятности и, следовательно, использовать перекрестную энтропию, но, очевидно, я делаю что-то не так.


1
Вы упомянули использование sigmoid для функций активации в первых слоях. Они демонстрируют «насыщенность», как более подробно объясняется в примечаниях CS231n . Вы пробовали другую функцию активации, такую ​​как ReLUs?
Джерри

Я не могу вспомнить прямо сейчас, если я попробовал другой, но спасибо за обмен!
AkiRoss

Ответы:


17

Я думаю, что лучший ответ на это заключается в том, что функция кросс-энтропийной потери просто не подходит для этой конкретной задачи.

Принимая этот подход, вы, по сути, говорите, что истинные данные MNIST являются двоичными, а интенсивность ваших пикселей отражает вероятность того, что каждый пиксель включен. Но мы знаем, что на самом деле это не так. Неправильность этого неявного предположения вызывает у нас проблемы.

-[(цель)журнал(прогнозирование)+(1-цель)журнал(1-прогнозирование)]

кросс-энтропия против потери mse

Мы видим, что потеря кросс-энтропии асимметрична. Почему мы хотим этого? Действительно ли хуже прогнозировать 0,9 для этих 0,8 пикселей, чем прогнозировать 0,7? Я бы сказал, что может быть лучше, если что.

Мы могли бы, вероятно, углубиться в детали и выяснить, почему это приводит к конкретным сгусткам, которые вы видите. Я бы рискнул предположить, что это потому, что интенсивность пикселей в среднем выше 0,5 в регионе, где вы видите пятно. Но в целом это тот случай, когда предположения о неявном моделировании, которые вы сделали, не соответствуют данным.

Надеюсь, это поможет!


3
wo, какая функция потерь подходит, если входное значение находится в диапазоне от 0 до 1?
Джемшит Искендеров

Binary Cross Entropy Loss
torayeff
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.