深度学习——卷积神经网络原理解析(Convolution layer)
简介
- 卷积主要应用于计算机视觉领域,经常用于特征的提取、目标检测、人脸检测与识别等任务。卷积是同于一系列加乘法运算完成,核心是卷积核(filter),还有一些参数:strid(s)、pad、weights。下面介绍卷积层的前向传播和反先传播过程。
前向传播(fowardpropagation)
- 前向传播比较容易理解,就是卷积核和对应输入数据的区域先进行点积运算,再把一个矩阵里面数据求和得到一个数。
-
l:代表第l层(conv layer)
-
f(l):卷积核的尺寸( filter size)
-
pl:pad的大小
-
s(l): stride的大小
-
ncl: 卷积核个数
- 每个卷积&的尺寸 f=fl∗fl∗ncl−1
- 卷积完输出的尺寸: al=nHl∗nWl∗ncl
- nH=⌊slnHl−1+2p(l)−fl⌋+1,nW=⌊slnWl−1+2p(l)−fl⌋+1
- z(nh,nw,c)l=np.sum(Wc∗aslice+bc)
- 一个卷积层参数个数: numbers= (f∗f∗nCl−1∗+1)∗nCl,1代表参数b
比如输入数据data 维度3∗3∗3,filter大小为3,nCl=20,参数总个数为:(3∗3∗3+1)∗20=560
反向传播(backpropagation)
dAl−1+=c=1∑nCi=1∑nHj=1∑nWWcl∗dZ(i,j,c)l(1)
dWcl=i=1∑nHj=1∑nWal−1∗dZ(i,j)l(2)
dbl=i=1∑nHj=1∑nWdZ(i,j)l(3)