Почему не работает, если мы вычисляем ошибку NN как target - output?
У меня есть нейронная сеть, где я вычисляю дельту выходного слоя, как:
delta_L = Output(i) - L;
И это хорошо работает. Но если я изменю это, чтобы:
delta_L = L - Output(i);
Тогда это не работает. (Несмотря на курс Эндрю Нг рекомендует второй)
Зачем?
1 ответ
Давайте возьмем 3-слойный nn с 2 скрытыми слоями, со стандартными обозначениями nn показан ниже:
с и функция стоимости как сумма (или средняя) квадрата потерь по набору обучающих данных (для регрессии, с непрерывным значением вывода)
с выражениями обратного распространения:
Как вы видете, delta_L
является output[i] - L
в вашей записи, предполагая, что L=y
ваше действительное значение выходной переменной и a=output[i]
это предсказание nn, это выражение совпадает с выражением курса Эндрю Нга, более подробную информацию см. в этой статье. Мы можем показать то же самое для классификации / потери перекрестной энтропии тоже.