前向计算

含有数据输入层,1个以上隐藏层,1个输出层。各层神经元之间全连接,同一层的神经元之间无连接。

在图中,z(l)=W(l)⋅a(l−1)+b(l)a(l)=f(l)(z(l))z^{(l)}=W^{(l)}\cdot a^{(l-1)}+b^{(l)}\\ a^{(l)}=f^{(l)}(z^{(l)})z(l)=W(l)⋅a(l−1)+b(l)a(l)=f(l)(z(l))
其中f(⋅)f(\cdot)f(⋅)是激励函数,aaa是该层的输出值
变量关系:
z1=g1(x,W1)z2=g2(z1,W2)⋯zl−1=gl−1(zl−2,Wl−1)zl=gl(zl−1,Wl)zl+1=gl+1(zl,Wl+1)⋯zL=gL(zL−1,WL)y=fL(zL)J(W,y)z^{1}=g_{1}(x,W^{1})\\ z^{2}=g_{2}(z^{1},W^{2})\\ \cdots\\ z^{l-1}=g_{l-1}(z^{l-2},W^{l-1})\\ z^{l}=g_{l}(z^{l-1},W^{l})\\ z^{l+1}=g_{l+1}(z^{l},W^{l+1})\\ \cdots\\ z^{L}=g_{L}(z^{L-1},W^{L})\\ y=f_{L}(z^{L})\\ J(W,y)z1=g1​(x,W1)z2=g2​(z1,W2)⋯zl−1=gl−1​(zl−2,Wl−1)zl=gl​(zl−1,Wl)zl+1=gl+1​(zl,Wl+1)⋯zL=gL​(zL−1,WL)y=fL​(zL)J(W,y)
变量依赖:
J(W,y)J(W,y)J(W,y)与xxx的依赖关系:J(W,y)=J(W,f(gL(...g2(g1(x,W1),W2)...,WL))J(W,y)=J(W,f(g_{L}(...g_{2}(g_{1}(x,W^{1}),W^{2})...,W^{L}))J(W,y)=J(W,f(gL​(...g2​(g1​(x,W1),W2)...,WL))
J(W,y)J(W,y)J(W,y)与z1z^{1}z1的依赖关系:J(W,y)=J(W,f(gL(...g2(z1,W2)...,WL))J(W,y)=J(W,f(g_{L}(...g_{2}(z^{1},W^{2})...,W^{L}))J(W,y)=J(W,f(gL​(...g2​(z1,W2)...,WL))
J(W,y)J(W,y)J(W,y)与z2z^{2}z2的依赖关系:J(W,y)=J(W,f(gL(..g3(z2,W3)...,WL))J(W,y)=J(W,f(g_{L}(..g_{3}(z^{2},W^{3})...,W^{L}))J(W,y)=J(W,f(gL​(..g3​(z2,W3)...,WL))
… …
J(W,y)J(W,y)J(W,y)与zlz^{l}zl的依赖关系:J(W,y)=J(W,f(gL(..gl+1(zl,Wl+1)...,WL))J(W,y)=J(W,f(g_{L}(..g_{l+1}(z^{l},W^{l+1})...,W^{L}))J(W,y)=J(W,f(gL​(..gl+1​(zl,Wl+1)...,WL))

反向传播

目标是最小化损失函数,通过梯度下降:
W(l)=W(l)−α∂J(W,b)∂W(l)=W(l)−α∂1N∑i=1NJ(W,b;x(i),y(i))∂W(l)b(l)=b(l)−α∂J(W,b)∂b(l)=b(l)−α∂1N∑i=1NJ(W,b;x(i),y(i))∂b(l)W^{(l)}=W^{(l)}-\alpha \frac{\partial J(W,\bm{b})}{\partial W^{(l)}} =W^{(l)}-\alpha \frac{\partial \frac{1}{N}\sum_{i=1}^{N}J(W,\bm{b};\bm{x}^{(i)},y^{(i)})}{\partial W^{(l)}}\\ \bm{b}^{(l)}=\bm{b}^{(l)}-\alpha \frac{\partial J(W,\bm{b})}{\partial \bm{b}^{(l)}} =\bm{b}^{(l)}-\alpha \frac{\partial \frac{1}{N}\sum_{i=1}^{N}J(W,\bm{b};\bm{x}^{(i)},y^{(i)})}{\partial \bm{b}^{(l)}}W(l)=W(l)−α∂W(l)∂J(W,b)​=W(l)−α∂W(l)∂N1​∑i=1N​J(W,b;x(i),y(i))​b(l)=b(l)−α∂b(l)∂J(W,b)​=b(l)−α∂b(l)∂N1​∑i=1N​J(W,b;x(i),y(i))​
局部梯度迭代:

第lll层zlz^{l}zl的梯度为δ(l)\delta^{(l)}δ(l):
δ(l)=∂J(W,b;x,y)∂z(l)=∂z(l+1)∂z(l)⋅∂J(W,b;x,y)∂z(l+1)=∂a(l)∂z(l)⋅∂z(l+1)∂a(l)⋅∂J(W,b;x,y)∂z(l+1)=∂a(l)∂z(l)⋅∂z(l+1)∂a(l)⋅δ(l+1)\delta^{(l)}=\frac{\partial J(W,b;x,y)}{\partial z^{(l)}}=\frac{\partial z^{(l+1)}}{\partial z^{(l)}}\cdot \frac{\partial J(W,b;x,y)}{\partial z^{(l+1)}}\\ =\frac{\partial a^{(l)}}{\partial z^{(l)}}\cdot \frac{\partial z^{(l+1)}}{\partial a^{(l)}}\cdot \frac{\partial J(W,b;x,y)}{\partial z^{(l+1)}}\\ =\frac{\partial a^{(l)}}{\partial z^{(l)}}\cdot \frac{\partial z^{(l+1)}}{\partial a^{(l)}}\cdot \delta^{(l+1)}δ(l)=∂z(l)∂J(W,b;x,y)​=∂z(l)∂z(l+1)​⋅∂z(l+1)∂J(W,b;x,y)​=∂z(l)∂a(l)​⋅∂a(l)∂z(l+1)​⋅∂z(l+1)∂J(W,b;x,y)​=∂z(l)∂a(l)​⋅∂a(l)∂z(l+1)​⋅δ(l+1)
上述的形式是矩阵优化的形式,下面求具体的某一个连接参数的优化迭代式:
第l+1l+1l+1层的梯度δ(l+1)\delta^{(l+1)}δ(l+1)已知,求此时的lll层的梯度δ(l)\delta^{(l)}δ(l)
对于第jjj个神经元输出值zj(l+1)=∑iai(l)wij(l+1)=∑ifi(l)(zi(l))wij(l+1)z_{j}^{(l+1)}=\sum_{i}a_{i}^{(l)}w_{ij}^{(l+1)}=\sum_{i}f_{i}^{(l)}(z_{i}^{(l)})w_{ij}^{(l+1)}zj(l+1)​=∑i​ai(l)​wij(l+1)​=∑i​fi(l)​(zi(l)​)wij(l+1)​,

由上式可得到:
∂zj(l+1)∂zi(l)=∂ail∂zi(l)⋅∂zj(l+1)∂ai(l)=fi′(l)(zi(l))wij(l+1)\frac{\partial z_{j}^{(l+1)}}{\partial z_{i}^{(l)}}=\frac{\partial a_{i}^{l}}{\partial z_{i}^{(l)}}\cdot \frac{\partial z_{j}^{(l+1)}}{\partial a_{i}^{(l)}}=f_{i}^{'(l)}(z_{i}^{(l)})w_{ij}^{(l+1)}∂zi(l)​∂zj(l+1)​​=∂zi(l)​∂ail​​⋅∂ai(l)​∂zj(l+1)​​=fi′(l)​(zi(l)​)wij(l+1)​
第lll层第iii个输出值zi(l)z_{i}^{(l)}zi(l)​的梯度为:
δi(l)=∂L∂zi(l)=∑j∂zj(l+1)∂zi(l)∂L∂zj(l+1)=∑j∂zj(l+1)∂zi(l)δj(l+1)=∑jfi′(l)(zi(l))wij(l+1)δj(l+1)=fi′(l)(zi(l))∑jwij(l+1)δj(l+1)\delta_{i}^{(l)}=\frac{\partial L}{\partial z_{i}^{(l)}}=\sum_{j}\frac{\partial z_{j}^{(l+1)}}{\partial z_{i}^{(l)}}\frac{\partial L}{\partial z_{j}^{(l+1)}}=\sum_{j}\frac{\partial z_{j}^{(l+1)}}{\partial z_{i}^{(l)}}\delta_{j}^{(l+1)}\\ =\sum_{j}f_{i}^{'(l)}(z_{i}^{(l)})w_{ij}^{(l+1)}\delta_{j}^{(l+1)}=f_{i}^{'(l)}(z_{i}^{(l)})\sum_{j}w_{ij}^{(l+1)}\delta_{j}^{(l+1)}δi(l)​=∂zi(l)​∂L​=j∑​∂zi(l)​∂zj(l+1)​​∂zj(l+1)​∂L​=j∑​∂zi(l)​∂zj(l+1)​​δj(l+1)​=j∑​fi′(l)​(zi(l)​)wij(l+1)​δj(l+1)​=fi′(l)​(zi(l)​)j∑​wij(l+1)​δj(l+1)​
最后一层输出层的梯度为:δo(L)=∂L∂zo(L)=∂aoL∂zo(L)∂L∂aoL=fo′(L)(z0(L))∂L∂aoL\delta_{o}^{(L)}=\frac{\partial L}{\partial z_{o}^{(L)}}=\frac{\partial a_{o}^{L}}{\partial z_{o}^{(L)}}\frac{\partial L}{\partial a_{o}^{L}}=f_{o}^{'(L)}(z_{0}^{(L)})\frac{\partial L}{\partial a_{o}^{L}}δo(L)​=∂zo(L)​∂L​=∂zo(L)​∂aoL​​∂aoL​∂L​=fo′(L)​(z0(L)​)∂aoL​∂L​
梯度更新沿着网络反向计算:

求解zi(l)z_{i}^{(l)}zi(l)​对应的权重{wki(l)}k=1K(K\{w_{ki}^{(l)}\}_{k=1}^{K}(K{wki(l)​}k=1K​(K表示l−1l-1l−1层的神经元个数)和偏置bi(l)b_{i}^{(l)}bi(l)​的梯度:
∂J∂wki(l)=∂zi(l)∂wki(l)∂J∂zi(l)=ak(l−1)δi(l)∂J∂bi(l)=∂zi(l)∂bi(l)∂J∂zi(l)=δi(l)\frac{\partial J}{\partial w_{ki}^{(l)}}=\frac{\partial z_{i}^{(l)}}{\partial w_{ki}^{(l)}}\frac{\partial J}{\partial z_{i}^{(l)}}=a_{k}^{(l-1)}\delta_{i}^{(l)}\\ \ \\ \frac{\partial J}{\partial b_{i}^{(l)}}=\frac{\partial z_{i}^{(l)}}{\partial b_{i}^{(l)}}\frac{\partial J}{\partial z_{i}^{(l)}}=\delta_{i}^{(l)}∂wki(l)​∂J​=∂wki(l)​∂zi(l)​​∂zi(l)​∂J​=ak(l−1)​δi(l)​ ∂bi(l)​∂J​=∂bi(l)​∂zi(l)​​∂zi(l)​∂J​=δi(l)​
可总结出BP算法的一般步骤。

MLP的BP算法的步骤

(1)前向计算,并记录zi(l)z_{i}^{(l)}zi(l)​
(2)反向计算zi(l)z_{i}^{(l)}zi(l)​的梯度δi(l)\delta_{i}^{(l)}δi(l)​:
先计算输出层:δoL=fo′(L)(z0(L))∂L∂aoL\delta_{o}^{L}=f_{o}^{'(L)}(z_{0}^{(L)})\frac{\partial L}{\partial a_{o}^{L}}δoL​=fo′(L)​(z0(L)​)∂aoL​∂L​
从后向前依次计算:
δi(l)=fi′(l)(zi(l))∑jwij(l+1)δj(l+1)\delta_{i}^{(l)}=f_{i}^{'(l)}(z_{i}^{(l)})\sum_{j}w_{ij}^{(l+1)}\delta_{j}^{(l+1)}δi(l)​=fi′(l)​(zi(l)​)j∑​wij(l+1)​δj(l+1)​
(3)计算权重和偏置参数的梯度:
∂J∂wki(l)=∂zi(l)∂wki(l)∂J∂zi(l)=ak(l−1)δi(l)∂J∂bi(l)=∂zi(l)∂bi(l)∂J∂zi(l)=δi(l)\frac{\partial J}{\partial w_{ki}^{(l)}}=\frac{\partial z_{i}^{(l)}}{\partial w_{ki}^{(l)}}\frac{\partial J}{\partial z_{i}^{(l)}}=a_{k}^{(l-1)}\delta_{i}^{(l)}\\ \ \\ \frac{\partial J}{\partial b_{i}^{(l)}}=\frac{\partial z_{i}^{(l)}}{\partial b_{i}^{(l)}}\frac{\partial J}{\partial z_{i}^{(l)}}=\delta_{i}^{(l)}∂wki(l)​∂J​=∂wki(l)​∂zi(l)​​∂zi(l)​∂J​=ak(l−1)​δi(l)​ ∂bi(l)​∂J​=∂bi(l)​∂zi(l)​​∂zi(l)​∂J​=δi(l)​

多层感知机BP算法推导相关推荐

  1. 多层感知机Perceptron反向传播BP算法推导(Back Propagation)

    看了很多BP的推导,都不够简洁直观,这里总结一下.多层Perceptron就是全连接的网络,定义第l层的输入为x(l)x^{(l)}x(l),那么全连接的线性输出z(l)=W(l)x(l)+b(l)z ...

  2. 机器学习必刷题-手撕推导篇(2):BP算法推导

    本系列文章对常见的机器学习面试题进行了搜集.分类和整理,主要包括"手撕推导篇"."模型比较篇"."工程经验篇"以及"基础概念篇&q ...

  3. 多层神经网络(BP算法)介绍

    误差反向传播(Error Back Propagation, BP)算法 1.BP算法的基本思想是,学习过程由信号的正向传播与误差的反向传播两个过程组成. 1)正向传播:输入样本->输入层-&g ...

  4. BP算法推导(python实现)

    这里默认了解前向传播,所以不在重述这块,如果对梯度下降有疑惑的,不知道原理的可以看我这篇博客 http://blog.csdn.net/sxf1061926959/article/details/66 ...

  5. 机器学习--BP算法推导理解

    首先打卡Ng老师的机器学习,今天是第六天. 昨天晚上在b站看了神经网络那节,Ng老师对于反向传播原理并没有做出解释,听了之后满头问号.幸亏开了弹幕,在各种弹幕发的博客链接的帮助下,今天总算把整个过程搞 ...

  6. 全链接神经网络——BP算法推导过程

  7. 神经网络中BP算法的推导

    神经网络BP算法的推导 有关BP算法推导的文章数不胜数,但是好多只讲到了单样本的BP算法的推导,有些虽然讲到了多样本的BP算法的推导,但是没讲清楚甚至是讲错了的都有一些. 1. 单样本BP算法推导 关 ...

  8. BP神经网络算法推导及代码实现笔记

    文章目录 一.前言 二.科普 三.通往沙漠的入口: 神经元是什么,有什么用: 四.茫茫大漠第一步: 激活函数是什么,有什么用 五.沙漠中心的风暴:BP(Back Propagation)算法 1. 神 ...

  9. BP神经网络算法推导及代码实现笔记zz

    一. 前言: 作为AI入门小白,参考了一些文章,想记点笔记加深印象,发出来是给有需求的童鞋学习共勉,大神轻拍! [毒鸡汤]:算法这东西,读完之后的状态多半是 --> "我是谁,我在哪? ...

  10. AI从入门到放弃:BP神经网络算法推导及代码实现笔记

    作者 | @Aloys (腾讯员工,后台工程师) 本文授权转自腾讯的知乎专栏 ▌一. 前言: 作为AI入门小白,参考了一些文章,想记点笔记加深印象,发出来是给有需求的童鞋学习共勉,大神轻拍! [毒鸡汤 ...

最新文章

  1. 基于angularJS和requireJS的前端架构
  2. CVPR 2021 | SquareRootBA:大场景中的平方根集束调整
  3. Oracle 制造死锁和查询死锁
  4. c语言printf函数很长时间,C语言学习之printf()函数特别注意事项
  5. ubuntu 12.04 mysql_Ubuntu 12.04 mysql 源码安装--mysql.5.5.x
  6. 20191127_朴素贝叶斯多分类
  7. Vue+axios+Node+express实现文件上传(用户头像上传)
  8. javaweb网上人才招聘系统的设计与实现
  9. AlphaGo原理分析
  10. STM32驱动SG90舵机
  11. C# WPF MVVM 实战 – 5- 用绑定,通过 VM 设置 View 的控件焦点
  12. 关于openpyxl读取excel中图片(shape)的注意点
  13. Clickhouse多磁盘存储
  14. idea 报错improperly specified vm option. to fix the problem,edit your jvm option and remove the option
  15. 高德地图基于阿里云MaxCompute的最佳实践
  16. arcgis像元大小和分辨率_ArcGIS教程:栅格数据基本词汇
  17. Vue h5 调用微信扫码接口
  18. springsecurity整合jwt实现授权认证,权限分配
  19. document server java_Readme.md · ct_java/DocumentServer - Gitee.com
  20. 学校食堂剩餐怎么办?智慧食堂解决方案来了

热门文章

  1. Mysql数据库规范(阿里巴巴嵩山版java开发手册)
  2. 云服务器安装KALI教程
  3. 计算机考试excel基础试题,计算机基础(Excel2010)试题及答案解析
  4. OpenCV图像预处理常用函数及流程
  5. MySQL批量插入性能优化
  6. ddr3配置 dsp6678_TMS320C6678外部存储器DDR3硬件设计以及软件调试
  7. 《遥感原理与应用》第三版——思维导图
  8. 笔记本自动切换内外网
  9. 5.郝斌C语言笔记——运算符
  10. 大众点评字体_大众点评字体解析