神经网络:3)不一样的角度<-反向传播算法
来源:互联网 发布:vb工控软件开发 编辑:程序博客网 时间:2024/06/05 16:17
本文只对反向传播算法进行简单的解释,具体的推导可以参考《神经网络与深度学习》,在进入反向传播算法学习之前,先了解下多层感知器,比如下图
在上一博文中,我们介绍了简单的感知器,它只包含输入层和输出层(单神经元构成),而上图在输入层和输出层的基础上追加了1到n个隐藏层(隐藏层,暂时可以把它认为功能强大的黑盒),而且每层的神经元都不止一个,这样的网络称为多层感知器。到前为至,我们讨论的神经网络,都是以上一层的输出作为下一层的输入,这种网络络被称为前馈神经网络。我们可以用下面的公式,表示输入和输出的关系:
alj表示第l层第j个神经元的激活值(输入值),blj表示在l层第j个神经元的偏置,这样我们就可以把l层和l-1层的激活值联系在一起了,下面的图可以辅助了解
这里我们重点探讨下权重矩阵W,比如上图我们用sizes=[3,4,2]表示每层神经元的数量,第一层的输入神经元用x11,x12,x13表示即为一个3x1的矩阵记A3x1,第二层输入的神经元x21,x22,x23,x24即4x1的矩阵记A4x1,从而有A4x1=WjkA3x1,根据矩阵乘法原则,这里的k=3,j=4即分别为l层和l-1层神经元的数目,这和上面图解的意思相同。
下面开始进入本文的焦点分析:对于单感知器来说,可以简单地用梯度下降法来确定权重W的值,但是对于多层感知器来说,如何在迭代的过程中,确定不同层与层之间的权重W?换句话来说,我们获得损失函数C对W的偏导呢? 下面就该反向传播算法闪耀登场了!
反向传播算法,最终的目的就是解决了层与层之间损失函数C对权重w或偏置b的偏导问题,然后结合梯度下降法求得目标的w和b值
反向传播其实是对权重和偏置变化影响代价函数过程的理解,首先,我们引入一个中间量δlj,称其为在l层第j个神经元上的误差。定义为
其中z=wx+b,我们通过下面的图来理解,这个调皮鬼在l层的第j个神经元上,当输入进来时,调皮鬼对神经元的操作进行搅局,他会在神经元的带权输入上增加很小的变化△Z,使用输出的神经元输出由σ(Z+△Z)。
如下给出反向传播算法核心的4个公式
这里的 ⊙表示矩阵乘法
下面简单介绍下这几个公式,BP1是从输出层计算获得输出成的误差,BP2是由当前层的误差反推前上一层的误差,BP3是C的偏置的偏导,BP4是C的权重偏导。也就是说利用这4个公式,我们可以从后往前,一层推导出∂c/∂w和∂c/∂b !
上面的公式皆由δlj的定义,通过链式求导法则推导得出,这里不详细介绍,具体可以参考证明方法。
参考:
http://neuralnetworksanddeeplearning.com/chap2.html
- 神经网络:3)不一样的角度<-反向传播算法
- 神经网络-反向传播算法
- 神经网络反向传播算法
- 神经网络的反向传播BP算法
- 神经网络的反向传播算法Backpropagation
- 神经网络反向传播算法的推导
- 卷积神经网络的反向传播算法(笔记)
- 神经网络的反向传播
- BP 神经网络 反向传播算法
- 卷积神经网络反向传播算法
- 神经网络正向反向传播算法
- 神经网络初探:反向传播算法
- 神经网络和反向传播算法
- 神经网络里面的反向传播算法的解释
- 感性认识神经网络的反向传播
- 神经网络的学习(Neural Networks: Learning)-反向传播算法
- 人工神经网络:反向传播算法的数学基础(Part4)
- 吴恩达神经网络反向传播算法matlab作业疑问的解答
- 根据指定日期,获取该日期所在周的其他日期
- 小强学Python+OpenCV之-1.4.1平移、旋转、缩放、翻转-之理论
- 用pscp实现服务器与本地的文件传输
- Linux下常用的压缩与解压命令
- CSS 引入方式及选择器的用法 的初体验
- 神经网络:3)不一样的角度<-反向传播算法
- 勒索病毒WannaCry深度技术分析——详解传播、感染和危害细节
- Netty实现客户端和服务端的通信
- js事件汇总
- bzoj 2152 聪聪可可
- DeepLearning(基于caffe)实战项目(2)--mnist(image转lmdb)
- 重建二叉树
- hibernate.cfg.xml文件配置标签详解
- CV资源整理