BP与CNN的联系总结

传统全连接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’)

kl-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的联系总结)