Насколько я понимаю из вашего вопроса выше, когда вы используете 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
в вашем случае.