Почему не работает, если мы вычисляем ошибку 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, это выражение совпадает с выражением курса Эндрю Нга, более подробную информацию см. в этой статье. Мы можем показать то же самое для классификации / потери перекрестной энтропии тоже.

Другие вопросы по тегам