神经网络理解:前向传播与反向传播

文章目录

参考资料

神经网络基础: 反向传播推导与卷积公式

神经网络前向传播与反向传播

主要基于参考资料的学习整理。

神经网络

神经网络通俗地可以理解成一个函数近似器,它需要近似一个输入x到输出y的映射函数。我们所要训练的网络参数其实就是在拟合这个映射函数的未知量。神经网络的训练可以分为两个步骤:一个是前向传播,另一个是反向传播。

神经网络理解:前向传播与反向传播

; 前向传播

神经网络前向传播从输入层到输出层:前向传播就是从输入层开始,经过一层层的Layer,不断计算每一层的神经网络得到的结果及通过激活函数的本层输出结果,最后得到输出的过程。

1. 输入层->隐含层

计算神经元 h 1 h1 h 1 的输入加权和:

n e t h 1 = w 1 ∗ i 1 + w 2 ∗ i 2 + b 1 ∗ 1 net_{h1}=w_1i_1+w_2i_2+b_1*1 n e t h 1 ​=w 1 ​∗i 1 ​+w 2 ​∗i 2 ​+b 1 ​∗1

激活后的输出 :

o u t h 1 = 1 1 + e − n e t h 1 out_{h1}=\frac{1}{1+e^{-net_{h1}}}o u t h 1 ​=1 +e −n e t h 1 ​1 ​

其余隐层节点同理。

2. 隐含层->输出层

计算输出神经元o 1 o1 o 1的值:
n e t o 1 = w 5 ∗ o u t h 1 + w 6 ∗ o u t h 2 + b 2 ∗ 1 net_{o1}=w_5out_{h1}+w_6out_{h2}+b_2*1 n e t o 1 ​=w 5 ​∗o u t h 1 ​+w 6 ​∗o u t h 2 ​+b 2 ​∗1

o u t o 1 = 1 1 + e − n e t o 1 out_{o1}=\frac{1}{1+e^{-net_{o1}}}o u t o 1 ​=1 +e −n e t o 1 ​1 ​
其余输出节点同理。

反向传播

  • 前向传播计算出了输出值(也即预测值),就可以根据输出值与目标值的差别来计算损失loss。
  • 反向传播就是根据损失函数loss来反方向地计算每一层的偏导数,从最后一层逐层向前去改变每一层的权重,也就是更新参数,核心就是损失函数对每一网络层的每一个参数求偏导的链式求导法则。

1. 计算总误差

首先,我们需要通过前向传播的输出o u t p u t output o u t p u t和真实样本t a r g e t target t a r g e t计算此时神经网络的损失

神经网络理解:前向传播与反向传播

; 2. 隐藏层与输出层之间的权重更新

以权重 w 5 w_5 w 5 ​为例,对参数 w 5 w_5 w 5 ​求偏导可以看出 w 5 w_5 w 5 ​对整体误差产生的影响,总体误差对 w 5 w_5 w 5 ​求偏导的链式规则如下所示:

神经网络理解:前向传播与反向传播

神经网络理解:前向传播与反向传播
神经网络理解:前向传播与反向传播
神经网络理解:前向传播与反向传播
神经网络理解:前向传播与反向传播

最后三者相乘,下面的任务就是进行梯度下降从而更新参数:

神经网络理解:前向传播与反向传播

η \eta η 为 learning rate,其余权重同理。

3. 输入层与隐藏层之间的权重更新

以权重w 1 w1 w 1为例

∂ E total ∂ w 1 = ∂ E total ∂ o u t h 1 ∗ ∂ o u t h 1 ∂ n e t h 1 ∗ ∂ net h 1 ∂ w 1 \frac{\partial E_{\text {total }}}{\partial w_{1}}=\frac{\partial E_{\text {total }}}{\partial out_{h_1}} * \frac{\partial out_{h_1}}{\partial net_{h_1}} * \frac{\partial \text {net}{h_1}}{\partial w{1}}∂w 1 ​∂E total ​​=∂o u t h 1 ​​∂E total ​​∗∂n e t h 1 ​​∂o u t h 1 ​​​∗∂w 1 ​∂net h 1 ​​​

神经网络理解:前向传播与反向传播
计算方法与上述步骤一致
神经网络理解:前向传播与反向传播
神经网络理解:前向传播与反向传播
最后三者相乘,进行梯度下降从而更新参数:
神经网络理解:前向传播与反向传播

; 4. 梯度下降

神经网络就是通过不断的前向传播和反向传播不断调整神经网络的权重,最终到达预设的迭代次数或者对样本的学习已经到了比较好的程度后,就停止迭代,那么一个神经网络就训练好了。这就是神经网络的本质:通过计算误差、不断修正权重以拟合输入输出的映射函数曲线。

Original: https://blog.csdn.net/weixin_42301220/article/details/123915977
Author: CHH3213
Title: 神经网络理解:前向传播与反向传播

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/623543/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球