Релу не работает, сигмовидная работает нормально - PullRequest
0 голосов
/ 06 января 2020

Меня смущает одно явление, когда я использую сигмоид в выходном слое network сеть работает нормально. Но сеть не сходится, если я установлю активацию выхода как Relu. Потери обучения не уменьшатся после первой эпохи. Кто-нибудь может объяснить это явление.

Вводом сети является изображение. пиксель масштабируется в 0-1. выходное значение одно значение варьируется от 0-1.

спасибо.

1 Ответ

0 голосов
/ 07 января 2020

Насколько я понимаю из вашего вопроса выше, когда вы используете ReLu в качестве окончательной активации, модель не сходится:

Если это так, то ответ в функции ReLu само по себе то, что ReLu делает, это не масштабирует выходной сигнал сети между [0,1], а вместо этого возвращает max(0, x), что вам не нужно, так как ваш output/ground truth масштабируется между [0, 1] и sigmoid масштабируйте выходной сигнал сети между [0, 1], что соответствует вашей основополагающей истине.

Чтобы лучше понять, рассмотрим, какой последний уровень вашей сети возвращает вероятность между [0, 1], что достигается с помощью sigmoid но не может быть достигнуто ReLu из-за определения функции.

Таким образом, чтобы вычислить потери, ваши ground-truth и ваши network output должны находиться в одном диапазоне, который достигается сигмоидом, и, следовательно, модель сходится для sigmoid в вашем случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...