Нужно ли использовать линейный слой узких мест для автоэнкодера? - PullRequest
0 голосов
/ 05 мая 2018

В настоящее время я пытаюсь использовать сеть автоматического кодирования для уменьшения размерности. (то есть использование активации узкого места в качестве функции сжатия)

Я заметил, что во многих исследованиях, в которых для этой задачи использовался автоэнкодер, используется линейный слой узких мест.

Интуиция, на мой взгляд, имеет смысл, поскольку использование функции нелинейной активации может снизить способность узкого места представлять основную информацию, содержащуюся в исходной функции. (например, ReLU игнорирует отрицательные значения, а сигмовидная оболочка подавляет значения, слишком высокие или слишком низкие)

Однако верно ли это? И необходимо ли использовать линейный слой узких мест для автоэнкодера?

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

Спасибо.

1 Ответ

0 голосов
/ 05 мая 2018

Нет, вы не ограничены линейными функциями активации. Примером этого является эта работа , где они используют скрытое состояние слоев GRU в качестве вложения для ввода. Скрытое состояние получается с помощью нелинейных функций tanh и sigmoid при его вычислении.

Кроме того, нет ничего плохого в том, чтобы «игнорировать» отрицательные значения. На самом деле редкость может быть полезной. Это может улучшить представление. Шум, который может быть создан другими функциями, такими как идентификация или сигмоидная функция, может вводить ложные зависимости там, где их нет. Используя ReLU, мы можем правильно представить отсутствие зависимости (как ноль), а не какое-то близкое к нулю значение, которое, например, вероятно сигмовидная функция.

...