Вывод формулы нейронной сети обратного распространения BP

Предположим, у нас есть следующая трехслойная нейронная сеть:

Входной слой: 2 нейрона
Скрытый слой: 3 нейрона
Выходной слой: 2 нейрона

Предполагая, что в качестве функции активации используется сигмовидная функция, она определяется следующим образом:

σ ( x ) знак равно 1 1 + e - x \sigma(x) = \frac{1}{1+e^{-x}}σ ( х )"="1+ех1

Теперь давайте выведем формулу для каждого шага алгоритма обратного распространения.

Шаг 1: прямое распространение

Для выборки x \mathbf{x}x прямой проход рассчитывается следующим образом:

z 1 знак равно ш 1 ⊤ Икс + б 1 z_1 = \mathbf{w}_1 ^{\top}\mathbf{x} + \mathbf{b}_1г1"="ж1Икс+б1

h 1 = σ ( z 1 ) h_1 = \ sigma (z_1)час1"="с ( г1)

z 2 знак равно ш 2 ⊤ час 1 + б 2 z_2 = \ mathbf {w} _2 ^ {\ top} \ mathbf {h} _1 + \ mathbf {b} _2г2"="ж2час1+б2

h 2 = σ ( z 2 ) h_2 = \ sigma (z_2)час2"="с ( г2)

Среди них w 1 \mathbf{w}_1ж1w 2 \mathbf{w}_2ж2матрица весов, b 1 \mathbf{b}_1б1b 2 \mathbf{b}_2б2- вектор смещения, σ ( ⋅ ) \sigma(\cdot)σ ( ) — сигмовидная функция.

Шаг 2: Рассчитайте ошибку

Предположим, что мы хотим минимизировать квадрат функции потерь:

L знак равно 1 2 ∑ я знак равно 1 м ( y ^ я - yi ) 2 L = \ frac {1} {2} \ sum_ {i = 1} ^ {m} (\ шляпа {y} _i - y_i) ^ 2л"="21я = 1м(у^яуя)2

Из них ммm - размер выборки,y ^ i \hat{y}_iу^ясумма yi y_iуяII _Прогнозируемые и истинные значения i выборок. Для этого примераm = 1 m=1м"="1

Следовательно, мы можем вычислить член ошибки δ 2 \delta_2 выходного слояг2

δ 2 знак равно ( y ^ - y ) ⋅ σ ′ ( z 2 ) знак равно ( y ^ - y ) ⋅ час 2 ⋅ ( 1 - час 2 ) \ delta_2 = (\ hat {y} - y) \ cdot \ sigma' (z_2) = (\шляпа{y} - y) \cdot h_2 \cdot (1 - h_2)г2"="(у^у )п (г2)"="(у^у )час2( 1час2)

где у ^ \ шляпа {у}у^прогнозируемое значение, ггy - действительное значение,σ ′ ( ⋅ ) \sigma'(\cdot)п ()представляет собой производную сигмовидной функции.

Шаг 3: Обратное распространение

Далее нам нужно вычислить член ошибки δ \delta каждого слоя с помощью алгоритма обратного распространенияд .

Для скрытого слоя мы можем использовать следующую формулу для расчета:

δ 1 знак равно W 2 δ 2 ⋅ σ ′ ( z 1 ) знак равно W 2 δ 2 ⋅ час 1 ⋅ ( 1 - час 1 ) \ delta_1 = \ mathbf {W} _2 \ delta_2 \ cdot \ sigma '(z_1) = \ mathbf{W}_2 \delta_2 \cdot h_1 \cdot (1 - h_1)г1"="Вт2г2п (г1)"="Вт2г2час1( 1час1)

где W 2 \mathbf{W}_2Вт2является частью матрицы весов после удаления члена смещения.

Шаг 4: Рассчитайте градиент

Наконец, мы можем использовать член ошибки δ \deltaδ вычисляет градиенты и обновляет параметры. В частности, мы можем вычислить градиенты весов и смещений, используя следующую формулу:

∂ L ∂ ш 2 знак равно час 1 δ 2 \ гидроразрыва {\ парциальное L} {\ парциальное \ mathbf {w} _2} = \ mathbf {h} _1 \ delta_2ш2 л"="час1г2

∂ L ∂ б 2 знак равно δ 2 \ гидроразрыва {\ парциальное L} {\ парциальное \ mathbf {b} _2} = \ delta_2б2 л"="г2

∂ L ∂ ш 1 знак равно Икс δ 1 \ гидроразрыва {\ парциальное L} {\ парциальное \ mathbf {w} _1} = \ mathbf {x} \ delta_1ш1 л"="х д1

∂ L ∂ б 1 знак равно δ 1 \ гидроразрыва {\ парциальное L} {\ парциальное \ mathbf {b} _1} = \ delta_1б1 л"="г1

где ч 1 \mathbf{h}_1час1и х \mathbf{х}x - выход скрытого слоя и вход входного слоя соответственно,δ 1 \delta_1г1δ 2 \delta_2г2является термином ошибки.

Наконец, мы можем обновить веса и смещения, используя градиентный спуск или другие алгоритмы оптимизации.

Guess you like

Origin blog.csdn.net/weixin_44624036/article/details/130487507