Я изучаю NN, и я хочу вручную закодировать back-propogation, чтобы понять, как она работает, но у меня возникают трудности с алгоритмом. Я пытаюсь решить вопрос 30 из этой статьи (чтобы у меня был пример того, как это работает).

Краткая версия вопроса: если кто-то может показать мне, как это сделать, чтобы найти ошибку для H2, я буду благодарен за это (ответ должен быть A; -0.0660).

Длинная версия вопроса заключается в том, правильно ли я рассуждаю (чтобы найти ошибку с помощью обратного распространения в H2):

  1. Ошибка (из вопроса 29) для I1, I2 и I3 составляет 0,1479, -0,0929 и 0,1054, соответственно.

  2. Архитектура сети такова:

введите описание изображения здесь

  1. Весы:

введите описание изображения здесь

Так что я подумал, что мне нужно сделать:

  1. Найдите общую сумму весов, которые привели к каждой ошибке на выходе (я взял абсолютные значения, чтобы получить общую сумму ошибок, это правильно?):

    E1 = 1.0 + 3.5 => 4.5

    E2 = 0.5 + 1.2 => 1.7

    E3 = 0,3 + 0,6 => 0,9

  2. Затем я вычислил долю каждого веса, приходящуюся на интересующий меня узел (y2):

    E1 = 3,5/4,5 = 0,777

    E2 = 1,2/1,7 = 0,71

    E3 = 0.6/0.7 = 0.86

  3. А затем я вычислил долю ошибки, которая возникла из-за этой доли веса:

    E1 => (0.14/100)*14 = 0.01078

    E2 => (-0.09/100)*71 = -0.0639

    E3 => (0.1054/100)*86 = 0.090644

Если кто-то может показать мне, где я ошибаюсь (потому что, как уже говорилось выше, я знаю, каким должен быть правильный ответ), я буду благодарен. Также, как упоминалось выше, я добавил ссылку на оригинальный вопрос 30 на оригинальном экзамене, если это поможет (это было 17 лет назад, не экзамен, который я делаю, просто пытаюсь понять его). Я знаю, что могу просто использовать TensorFlow/Keras для автоматической реализации этого, но я пытаюсь понять, как все это работает.

Ответы (1)

В упомянутом вами вопросе приводится функция ошибки:

Функция ошибки

Вам нужно вычислить его значение для j = 2. У вас есть значения для всех delta_k и w_ij.

Вам также дана производная функции активации, f'(Hj):

Производная функции активации

И наконец, вам дана активация скрытого узла 2, которая равна f(H2). Все, что вам нужно сделать, это подставить все имеющиеся у вас значения в уравнения:

f'(H2) = 0,74 * (1 - 0,74) = 0,1924

дельта_2 = 0,1924 * ((0,1479 * -3,5) + (-0,0929 * -1,2) + (0,1054 * 0,6)) = -0,06598

Решение

2022 WebDevInsider