caffe study(2) 关于forward和backward - backward
2015-07-14 09:35
363 查看
1. 在本质上backward解决的是导数计算的问题,用的就是BP算法,所谓的BP算法就是使用当前层权重对于当前误差加权然后传递到下层节点的一个流程。下图是caffe的doc中示意的,这里面有两部分,一个部分就是向下传递的对于g的偏导数,这个数值就是反向传播的输出;另外一部分就是在当前层中对于当前权重的求导。
2. 下面将通过一个简单的三层网络来说明一下caffe的backward过程所传递的内容的具体形式。
a. 如下图所示,这是一个简单的NN的结构,其输出层就一个节点。其中x代表输入数据,a代表每一层的激活值,对应h。在下面的描述中采用z来对应g。
在加入正则项之后,loss形式为
b. 对于输入层net的求导
对于第n_{l} 输出层 的每个输出单元i ,我们根据以下公式计算对于z的导数,把z看成一个局部net的话,这个就是对于net进行的求导。
其中s_{nt}为当前输出层的神经元的个数,a为第j个神经元的激活值,这个值是通过激活函数f计算得到(如的logistic函数),f的输入就是z。因为当 i != j 的时候,导数为0,因此得到了第三行的求导结果。
c. 对于非输入层net的求导
根据基本的链式法则可以推导到倒数第二行,里面的导数部分就变成了当前层的每一个神经元z_{j}对于下一层的z_{i}求导的一个过程,将z_{j}做一个展开,就是z_{i}层激活的一个加权和,如b所示,得到了最终的对于非输入层的导数。其中W_{ji}指的的是输出层和隐藏层之间的权重链接。
这个导数分为两部分,一部分就是括号内的,是上层导数在当前层节点上的加权和,这个定义了误差专递的方式,也就是反向传播的一个核心;第二项就是当前层激活函数对于net的导数。这样就得到了一个反向转播的递推公式。caffe中backward的就是在传递每一个节点的导数的计算值。
d. 在传递完基本的残差后,在本层还需要计算的就是对于当前w_{ij}的一个求导。只需要对于上述结果后边再加入一个net对于w_{ij}的求导就可以了,令l = n - 1, n-2,…
2. 下面将通过一个简单的三层网络来说明一下caffe的backward过程所传递的内容的具体形式。
a. 如下图所示,这是一个简单的NN的结构,其输出层就一个节点。其中x代表输入数据,a代表每一层的激活值,对应h。在下面的描述中采用z来对应g。
在加入正则项之后,loss形式为
b. 对于输入层net的求导
对于第n_{l} 输出层 的每个输出单元i ,我们根据以下公式计算对于z的导数,把z看成一个局部net的话,这个就是对于net进行的求导。
其中s_{nt}为当前输出层的神经元的个数,a为第j个神经元的激活值,这个值是通过激活函数f计算得到(如的logistic函数),f的输入就是z。因为当 i != j 的时候,导数为0,因此得到了第三行的求导结果。
c. 对于非输入层net的求导
根据基本的链式法则可以推导到倒数第二行,里面的导数部分就变成了当前层的每一个神经元z_{j}对于下一层的z_{i}求导的一个过程,将z_{j}做一个展开,就是z_{i}层激活的一个加权和,如b所示,得到了最终的对于非输入层的导数。其中W_{ji}指的的是输出层和隐藏层之间的权重链接。
这个导数分为两部分,一部分就是括号内的,是上层导数在当前层节点上的加权和,这个定义了误差专递的方式,也就是反向传播的一个核心;第二项就是当前层激活函数对于net的导数。这样就得到了一个反向转播的递推公式。caffe中backward的就是在传递每一个节点的导数的计算值。
d. 在传递完基本的残差后,在本层还需要计算的就是对于当前w_{ij}的一个求导。只需要对于上述结果后边再加入一个net对于w_{ij}的求导就可以了,令l = n - 1, n-2,…
相关文章推荐
- AJAX基于XML二级联动下拉菜单<jsp>
- caffe study(3) 关于激活函数以及loss function
- LintCode Delete Node in the Middle of Singly Linked List 在O(1)时间复杂度删除链表节点
- 【CSS】less 学习小结
- grootJsAPI文档
- js中浮点型运算 注意点
- nodejs连接mysql查询 第一次不报错 之后一直报错Cannot enqueue quit after invoking quit.
- Code Conventions for the JavaScript Programming Language
- caffe study(5) - AlexNet 之算法篇
- 2015.7.8 第三课 课程重点(css样式)
- HTML5开发手机应用--viewport的作用
- 在前端一定要了解的HTML,CSS知识
- 基于jquery hover图片遮罩层滑动
- Html.DropDownList
- sticker.js贴纸效果
- js跳转页面的几种方式
- javascript中==的数据类型转换规则
- jQuery简介
- jQuery实现模拟marquee标签效果
- 2015.7.6 第一课 课程重点(html、列表、表格、相对路径、超链接)