传统全连接BP网络与CNN的一些总结与联系
本文的目的是:
1、 对刚学知识的温故知新;
2、 作为一个笔记作用;
3、 恳请对错误点或者不恰当点的指正。
下面开始扯皮。
网络前向传播略。
BP网络反馈过程:
证明过程略,主要是链式法则,网上一大堆证明。下面给出结论,各个符号的意义体会到其中道理即可。
(粗体是向量or矩阵,正常体是标量)
一个重要的定义------误差调整项(or灵敏度)δ。
假设网络一共L层(第L层是输出层)
δL = ƒˊ(μL)Ο (yn-tn)
Ο是逐项相乘
第l(小写L)层的δ
δl = (Wl+1)Tδl+1Ο ƒˊ(μl)
W是个权值矩阵;
δ列向量;
μ输入累积和的列向量。
CNN反馈过程:
当前层是卷积层,下一层是pooling层
pooling层是由卷积层下采样得到(压缩),那么在计算卷积层的δ的时候,需要把pooling层的δ上采样回去,使得两个δ的map图大小相等。
其实在计算卷积层的δ的时候,可以套用这个公式
δl = (Wl+1)Tδl+1Ο ƒˊ(μl)
为什么呢?
卷积网络其实就是在全连接网络的基础上,把全连接改为部分连接,然后再利用权值共享的技巧大量减少网络需要修改的权值数量(或者说是数量级),这里共享的权值其实就是卷积核矩阵各个坐标上的元素是什么罢了,想象着把二维图片拉长为一维向量,即可理解这句话。在上采样前,通过卷积核,从卷积层到pooling层是多对一的连接关系。由于是多对一的关系,所以用到了Ο这个计算符号!
所以:
δlj = (βl+1j)T( upsample(δl+1j )Ο ƒˊ(μlj))
βl+1j是个标量,在这里比例系数就是权值。
upsample(.)依赖于原来的下采样方式,means方式或者max方式。
那么:
误差对bias的偏导 = (δlj)u,v
误差对卷积核k的偏导= rot180(conv2(xl-1i,rot180(δlj)),‘valid’)
k是l-1层到l层的卷积核。
当前层是pooling层,下一层是卷积层
还是利用这个公式:
δl = (Wl+1)Tδl+1Ο ƒˊ(μl)
灵活套用即可:
δlj = ( conv2(δl+1j,rot180(kl+1j),‘full’) )Ο ƒˊ(μlj)
则:
误差对bias的偏导= (δlj)u,v
误差对比例因子的偏导= (δljΟdown(xl-1j))u,v
本文探讨了BP全连接网络与CNN的反馈过程,总结了两者的联系。在BP网络中,介绍了误差调整项的计算;在CNN中,阐述了卷积层和池化层的误差反向传播,并解释了权值共享如何减少需要调整的参数数量。通过上采样和卷积操作,详细说明了误差对卷积核和偏置的偏导数计算。

779

被折叠的 条评论
为什么被折叠?



