1. 从误差传递的角度以动图演示前、反向传播

①前向传播计算误差

②反向传播传递误差

③前向传播更新梯度

2.从梯度传递的角度以计算演示前、反向传播

使用的网络示例

①前向传播计算误差

首先根据输入 [ x 1 , x 2 ] \left [ x1,x2 \right ] [x1,x2]和 [ w 1 , w 2 , . . . , w 6 ] \left [ w1,w2,...,w6 \right ] [w1,w2,...,w6],计算隐藏层 [ h 1 , h 2 , h 3 ] \left [ h1,h2,h3 \right ] [h1,h2,h3]的输出结果

h 1 = x 1 ∗ w 1 + x 2 ∗ w 2 + b 1 h1=x1\ast w1+x2\ast w2+b1 h1=x1∗w1+x2∗w2+b1
h 1 = 0.05 × 0.15 + 0.10 × 0.20 + 0.45 = 0.4775 h1=0.05\times 0.15+0.10\times 0.20+0.45=0.4775 h1=0.05×0.15+0.10×0.20+0.45=0.4775
f 1 ( h 1 ) = 1 1 + e − h 1 = 1 1 + e − 0.4775 ≈ 0.61715736 f_{1}\left ( h1 \right )=\frac{1}{1+e^{-h1}}=\frac{1}{1+e^{-0.4775}}\approx 0.61715736 f1​(h1)=1+e−h11​=1+e−0.47751​≈0.61715736
f 1 ( h 2 ) = 1 1 + e − h 2 = 1 1 + e − 0.4925 ≈ 0.62069519 f_{1}\left ( h2 \right )=\frac{1}{1+e^{-h2}}=\frac{1}{1+e^{-0.4925}}\approx 0.62069519 f1​(h2)=1+e−h21​=1+e−0.49251​≈0.62069519
f 1 ( h 3 ) = 1 1 + e − h 3 = 1 1 + e − 0.5075 ≈ 0.62422023 f_{1}\left ( h3 \right )=\frac{1}{1+e^{-h3}}=\frac{1}{1+e^{-0.5075}}\approx 0.62422023 f1​(h3)=1+e−h31​=1+e−0.50751​≈0.62422023

其次根据隐藏层输出 [ f 1 ( h 1 ) , f 1 ( h 2 ) , f 1 ( h 3 ) ] \left [ f_{1}\left ( h1 \right ),f_{1}\left ( h2 \right ) ,f_{1}\left ( h3 \right )\right ] [f1​(h1),f1​(h2),f1​(h3)]和 [ w 7 , w 8 , . . . , w 12 ] \left [ w7,w8,...,w12 \right ] [w7,w8,...,w12],计算输出层 [ o 1 , o 2 ] \left [ o1,o2 \right ] [o1,o2]的输出结果

o 1 = f 1 ( h 1 ) ∗ w 7 + f 1 ( h 2 ) ∗ w 8 + f 1 ( h 3 ) ∗ w 9 + b 2 o1=f_{1}\left ( h1 \right )\ast w7+f_{1}\left ( h2 \right )\ast w8+f_{1}\left ( h3 \right )\ast w9+b2 o1=f1​(h1)∗w7+f1​(h2)∗w8+f1​(h3)∗w9+b2
h 1 = 0.61715736 × 0.50 + 0.62069519 × 0.55 + 0.62422023 × 0.60 + 0 ≈ 1.02449317 h1=0.61715736\times 0.50+0.62069519\times 0.55+0.62422023\times 0.60 +0\approx 1.02449317 h1=0.61715736×0.50+0.62069519×0.55+0.62422023×0.60+0≈1.02449317
f 2 ( o 1 ) = 1 1 + e − o 1 = 1 1 + e − 1.02449317 ≈ 0.73584689 f_{2}\left ( o1 \right )=\frac{1}{1+e^{-o1}}=\frac{1}{1+e^{-1.02449317}}\approx 0.73584689 f2​(o1)=1+e−o11​=1+e−1.024493171​≈0.73584689
f 2 ( o 2 ) = 1 1 + e − o 2 = 1 1 + e − 1.30380409 ≈ 0.78647451 f_{2}\left ( o2 \right )=\frac{1}{1+e^{-o2}}=\frac{1}{1+e^{-1.30380409}}\approx 0.78647451 f2​(o2)=1+e−o21​=1+e−1.303804091​≈0.78647451

最后根据真实数据 [ O 1 , O 2 ] \left [ O1,O2 \right ] [O1,O2]和输出层输出结果 [ f 2 ( o 1 ) , f 2 ( o 2 ) ] \left [ f_{2}\left ( o1 \right ),f_{2}\left ( o2 \right ) \right ] [f2​(o1),f2​(o2)],计算总体误差

E = 1 2 [ O 1 − f 2 ( o 1 ) ] 2 + 1 2 [ O 2 − f 2 ( o 2 ) ] 2 E=\frac{1}{2}\left [ O1-f_{2}\left ( o1 \right ) \right ]^{2}+\frac{1}{2}\left [ O2-f_{2}\left ( o2 \right ) \right ]^{2} E=21​[O1−f2​(o1)]2+21​[O2−f2​(o2)]2
E ≈ 0.5 × ( 0.01 − 0.73584689 ) 2 + 0.5 × ( 0.99 − 0.78647451 ) 2 ≈ 0.28413817 E\approx 0.5\times \left ( 0.01-0.73584689 \right )^{2}+0.5\times \left ( 0.99-0.78647451 \right )^{2}\approx0.28413817 E≈0.5×(0.01−0.73584689)2+0.5×(0.99−0.78647451)2≈0.28413817

至此,前向传播过程结束

②反向传播计算梯度

首先我们从整个网络中把o1节点连接的几个权重都摘出来,先计算w7的梯度

然后我们再从上图中抽象出计算w7的梯度的链式法则:

首先,我们可以列出如下的链式求导法则,计算误差E对w7的梯度:
∂ E ∂ w 7 = ∂ ( E 1 + E 2 ) ∂ w 7 = ∂ E 1 ∂ w 7 = ∂ E 1 ∂ f 2 ( o 1 ) ∗ ∂ f 2 ( o 1 ) ∂ o 1 ∗ ∂ o 1 ∂ w 7 \frac{\partial E}{\partial w7}=\frac{\partial \left ( E_{1}+E_{2} \right )}{\partial w7}=\frac{\partial E_{1}}{\partial w7}=\frac{\partial E_{1}}{\partial f_{2}\left ( o1 \right )}\ast \frac{\partial f_{2}\left ( o1 \right )}{\partial o1}\ast\frac{\partial o1}{\partial w7} ∂w7∂E​=∂w7∂(E1​+E2​)​=∂w7∂E1​​=∂f2​(o1)∂E1​​∗∂o1∂f2​(o1)​∗∂w7∂o1​
然后针对其中三个因子,逐个计算其结果:

  1. E 1 = 1 2 [ O 1 − f 2 ( o 1 ) ] 2 E_{1}=\frac{1}{2}\left [ O1-f_{2}\left ( o1 \right ) \right ]^{2} E1​=21​[O1−f2​(o1)]2
    ∂ E 1 ∂ f 2 ( o 1 ) = 2 × 1 2 [ O 1 − f 2 ( o 1 ) ] × ( − 1 ) ≈ 2 × 1 2 × ( 0.01 − 0.73584689 ) × ( − 1 ) ≈ 0.72584689 \frac{\partial E_{1}}{\partial f_{2}\left ( o1 \right )}=2\times \frac{1}{2}\left [ O1-f_{2}\left ( o1 \right ) \right ]\times \left ( -1 \right )\approx 2\times \frac{1}{2}\times \left ( 0.01-0.73584689 \right )\times \left ( -1 \right )\approx 0.72584689 ∂f2​(o1)∂E1​​=2×21​[O1−f2​(o1)]×(−1)≈2×21​×(0.01−0.73584689)×(−1)≈0.72584689

  2. f 2 ( o 1 ) = 1 1 + e − o 1 f_{2}\left ( o1 \right )=\frac{1}{1+e^{-o1}} f2​(o1)=1+e−o11​

f 2 ( o 1 ) ∂ o 1 = e − o 1 ( 1 + e − o 1 ) 2 = f 2 ( o 1 ) [ 1 − f 2 ( o 1 ) ] ≈ 0.73584689 × ( 1 − 0.73584689 ) ≈ 0.19437624 \frac{f_{2}\left ( o1 \right )}{\partial o1}=\frac{e^{-o1}}{\left ( 1+e^{-o1} \right )^{2}}=f_{2}\left ( o1 \right )\left [ 1-f_{2}\left ( o1 \right ) \right ]\approx 0.73584689\times \left ( 1-0.73584689 \right )\approx 0.19437624 ∂o1f2​(o1)​=(1+e−o1)2e−o1​=f2​(o1)[1−f2​(o1)]≈0.73584689×(1−0.73584689)≈0.19437624

  1. o 1 = f 1 ( h 1 ) ∗ w 7 + b 2 o1=f_{1}\left ( h1 \right )\ast w7+b2 o1=f1​(h1)∗w7+b2

∂ o 1 ∂ w 7 = f 1 ( h 1 ) ≈ 0.61715736 \frac{\partial o1}{\partial w7}=f_{1}\left ( h1 \right )\approx 0.61715736 ∂w7∂o1​=f1​(h1)≈0.61715736

  1. total

∂ E ∂ w 7 = 0.72584689 × 0.19437624 × 0.61715736 ≈ 0.08707312 \frac{\partial E}{\partial w7}=0.72584689\times 0.19437624\times 0.61715736\approx 0.08707312 ∂w7∂E​=0.72584689×0.19437624×0.61715736≈0.08707312

至此,我们便算出了w7的梯度,同理我们也可以算出剩余权重的梯度。

类似于w7的链式法则,这里同样帮助各位列出w1对应的链式法则:

计算过程便不列出来了,方式也一样,只不过是多了一条分支,计算出的各个梯度如下:

∂ E ∂ w 1 ≈ 0.00056889 \frac{\partial E}{\partial w1}\approx 0.00056889 ∂w1∂E​≈0.00056889 ∂ E ∂ w 2 ≈ 0.00113779 \frac{\partial E}{\partial w2}\approx 0.00113779 ∂w2∂E​≈0.00113779 ∂ E ∂ w 3 ≈ 0.00063182 \frac{\partial E}{\partial w3}\approx 0.00063182 ∂w3∂E​≈0.00063182 ∂ E ∂ w 4 ≈ 0.00126364 \frac{\partial E}{\partial w4}\approx 0.00126364 ∂w4∂E​≈0.00126364
∂ E ∂ w 5 ≈ 0.00069474 \frac{\partial E}{\partial w5}\approx 0.00069474 ∂w5∂E​≈0.00069474 ∂ E ∂ w 6 ≈ 0.00138949 \frac{\partial E}{\partial w6}\approx 0.00138949 ∂w6∂E​≈0.00138949 ∂ E ∂ w 7 ≈ 0.08707312 \frac{\partial E}{\partial w7}\approx 0.08707312 ∂w7∂E​≈0.08707312 ∂ E ∂ w 8 ≈ 0.08757226 \frac{\partial E}{\partial w8}\approx 0.08757226 ∂w8∂E​≈0.08757226
∂ E ∂ w 9 ≈ 0.08806960 \frac{\partial E}{\partial w9}\approx 0.08806960 ∂w9∂E​≈0.08806960 ∂ E ∂ w 10 ≈ 0.02109352 \frac{\partial E}{\partial w10}\approx 0.02109352 ∂w10∂E​≈0.02109352 ∂ E ∂ w 11 ≈ 0.02121444 \frac{\partial E}{\partial w11}\approx 0.02121444 ∂w11∂E​≈0.02121444 ∂ E ∂ w 12 ≈ 0.02133492 \frac{\partial E}{\partial w12}\approx 0.02133492 ∂w12∂E​≈0.02133492

至此,所有权重对应的梯度计算完毕,接下来可以进行更新权重和偏置了

③前向传播更新权重和偏置

采用的权重更新公式为
w + = w − η ∂ E ∂ w , η = 0.5 w^{+}=w-\eta \frac{\partial E}{\partial w},\eta=0.5 w+=w−η∂w∂E​,η=0.5

w 1 + = w 1 − η ∂ E ∂ w 1 ≈ 0.14971556 w1^{+}=w1-\eta \frac{\partial E}{\partial w1}\approx0.14971556 w1+=w1−η∂w1∂E​≈0.14971556 w 2 + = w 2 − η ∂ E ∂ w 2 ≈ 0.19943111 w2^{+}=w2-\eta \frac{\partial E}{\partial w2}\approx0.19943111 w2+=w2−η∂w2∂E​≈0.19943111
w 3 + = w 3 − η ∂ E ∂ w 3 ≈ 0.24968409 w3^{+}=w3-\eta \frac{\partial E}{\partial w3}\approx0.24968409 w3+=w3−η∂w3∂E​≈0.24968409 w 4 + = w 4 − η ∂ E ∂ w 4 ≈ 0.29936818 w4^{+}=w4-\eta \frac{\partial E}{\partial w4}\approx0.29936818 w4+=w4−η∂w4∂E​≈0.29936818
w 5 + = w 5 − η ∂ E ∂ w 5 ≈ 0.36965263 w5^{+}=w5-\eta \frac{\partial E}{\partial w5}\approx0.36965263 w5+=w5−η∂w5∂E​≈0.36965263 w 6 + = w 6 − η ∂ E ∂ w 6 ≈ 0.39930523 w6^{+}=w6-\eta \frac{\partial E}{\partial w6}\approx0.39930523 w6+=w6−η∂w6∂E​≈0.39930523
w 7 + = w 7 − η ∂ E ∂ w 7 ≈ 0.45646344 w7^{+}=w7-\eta \frac{\partial E}{\partial w7}\approx0.45646344 w7+=w7−η∂w7∂E​≈0.45646344 w 8 + = w 8 − η ∂ E ∂ w 8 ≈ 0.50621387 w8^{+}=w8-\eta \frac{\partial E}{\partial w8}\approx0.50621387 w8+=w8−η∂w8∂E​≈0.50621387
w 9 + = w 9 − η ∂ E ∂ w 9 ≈ 0.55596520 w9^{+}=w9-\eta \frac{\partial E}{\partial w9}\approx0.55596520 w9+=w9−η∂w9∂E​≈0.55596520 w 1 0 + = w 10 − η ∂ E ∂ w 10 ≈ 0.63945324 w10^{+}=w10-\eta \frac{\partial E}{\partial w10}\approx0.63945324 w10+=w10−η∂w10∂E​≈0.63945324
w 1 1 + = w 11 − η ∂ E ∂ w 11 ≈ 0.68939278 w11^{+}=w11-\eta \frac{\partial E}{\partial w11}\approx0.68939278 w11+=w11−η∂w11∂E​≈0.68939278 w 1 2 + = w 12 − η ∂ E ∂ w 12 ≈ 0.73933254 w12^{+}=w12-\eta \frac{\partial E}{\partial w12}\approx0.73933254 w12+=w12−η∂w12∂E​≈0.73933254

采用的偏置更新公式为
b + = b − η ∂ E ∂ b , μ = 0.5 b^{+}=b-\eta \frac{\partial E}{\partial b},\mu=0.5 b+=b−η∂b∂E​,μ=0.5
这里就不放LaTeX公式了,这个太长一大串了,偷个懒放个图片

前向传播、反向传播、更新梯度相关推荐

  1. 卷积神经网络前向及反向传播过程数学解析

    卷积神经网络前向及反向传播过程数学解析 文章目录 <center>卷积神经网络前向及反向传播过程数学解析 1.卷积神经网络初印象 2.卷积神经网络性质 3.前向传播 3.1.卷积层层级间传 ...

  2. Pytorch 自定义激活函数前向与反向传播 Tanh

    看完这篇,你基本上可以自定义前向与反向传播,可以自己定义自己的算子 文章目录 Tanh 公式 求导过程 优点: 缺点: 自定义Tanh 与Torch定义的比较 可视化 import matplotli ...

  3. 神经网络的前向和反向传播

    1.前向传播 前向传播的作用就是为了获取误差损失:现在以示例来说明: 上图是一个典型的神经网络结构,包括了输入层.隐含层和输出层,为了更好的讲解,现在对其进行赋值: 目标:给出输入数据i1,i2(0. ...

  4. numpy实现简单的二层网络------前向和反向传播

    会推导神经网络的前向和反向传播是深度学习的基础,也许大家在实验使用Tensorflow框架,只需要调用某一个损失函数,传入参数就可以得到损失,或者Mxnet框架,你都不需要调用任何函数,给个标志就可以 ...

  5. meanpool maxpool 前向和反向传播

    mean max 前向和反向传播 感觉平均迟化对值不太公平,应该加个权重,让算法自动去决定哪个 cnn中关于平均池化和最大池化的理解 接触到pooling主要是在用于图像处理的卷积神经网络中,但随着深 ...

  6. 4.6 前向和反向传播-深度学习-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 4.5 搭建深层神经网络快 回到目录 4.7 参数 vs. 超参数 前向和反向传播 (Forward and Backward Propagation) 之前我们学习了构成深 ...

  7. Pytorch 自定义激活函数前向与反向传播 sigmoid

    文章目录 Sigmoid 公式 求导过程 优点: 缺点: 自定义Sigmoid 与Torch定义的比较 可视化 import matplotlib import matplotlib.pyplot a ...

  8. 007-卷积神经网络03-前向传播-反向传播

    前向传播: 前向传播就是求特征图的过程 通常x和w有四个维度[编号,深度,高度,宽度] 反向传播: 先来复习一下反向传播的知识: 反向传播回来的是梯度,也就是偏导数 反向传播力有一个链式法则:对于反向 ...

  9. 深度学习-正向传播反向传播

    正向传播 对于神经元来说,训练的目标就是确认最优的w和b,使得输出值和真实值之间的误差变得最小. 数据从输入到输出,一层一层的进行运算,在输出层输出一个预测值y (理解:正向传播,多个输入层-> ...

  10. Pytorch 自定义激活函数前向与反向传播 ReLu系列 含优点与缺点

    文章目录 ReLu 公式 求导过程 优点: 缺点: 自定义ReLu 与Torch定义的比较 可视化 Leaky ReLu PReLu 公式 求导过程 优点: 缺点: 自定义LeakyReLu 与Tor ...

最新文章

  1. Python爬虫利器之Beautiful Soup的用法,以及实例!
  2. 部署P2P扩容的脚本
  3. grafana 画拓扑图 能不能_Grafana之ImageIt实现动态可感知网络拓扑(第十七篇)
  4. 日积月累-从细节做起
  5. C语言程序设计II—第八周教学
  6. 前端学习(1986)vue之电商管理系统电商系统之建立新分支
  7. Elasticsearch之中文分词器插件es-ik(博主推荐)
  8. 【更新】Infragistics Ultimate UI for Windows Forms v18
  9. 电脑时钟倒计时_倒计时久坐休息提醒工具
  10. Helm 3 完整教程(十二):Helm 函数讲解(6)字典函数
  11. 【 PG 入门系列 】PostgreSQL的客户端工具(五)
  12. 小马哥------山寨苹果6s(A9900-912G61-B 尾插盖板A953标示刷机拆机准图与开机识别图 低配机
  13. WebStorm2016.1.1免注册破解方法
  14. 计算机在通风网络中的应用,普适计算在煤矿通风网络解算中的应用研究
  15. 以核心素养为导向的计算机教学方式,“雨花学术论坛”再开讲:让核心素养在课堂“落地生根”...
  16. c语言rand函数源码路径,C语言中的rand()函数
  17. ffmpeg 将一个视频裁剪多个部分,然后合并所有的裁剪为一个视频
  18. 三极管(如NPN)集电极正偏 发射极反偏会怎么样呢? 电流会倒流吗? 其他三种都知道,就是不知道这种情况...
  19. [cf] 752 div2 B. XOR Specia-LIS-t
  20. 【leetcode】377. 组合总和 Ⅳ(combination-sum-iv)(DP)[中等]

热门文章

  1. ELDK on AMCC PowerPC 405EP (2)
  2. 如何从word中直接复制图片到编辑器中
  3. USB转串口芯片:CH340
  4. strncat越界,踩内存
  5. CP2102六合一多功能串口模块使用
  6. 嵌入式系统:基本定时器
  7. ZigbeeCC2530-- I/O端口
  8. realsense R200转成costmap_2d
  9. 【223】python 中的 time 模块常用方法
  10. 郑渊洁作品精彩语言辑录[转载]