频道栏目
首页 > 资讯 > 其他综合 > 正文

深度学习UFLDL教程翻译之卷积神经网络(二)

17-02-09        来源:[db:作者]  
收藏   我要投稿

深度学习UFLDL教程翻译之卷积神经网络(二):一个卷积神经网络(CNN)是由一个或多个卷积层(通常伴随着降采样一步)构成,并加上一个或多个和在标准的多层神经网络一样的全连接层。

CNN的结构是设计用于利用输入图像的2D结构(或其他2D输入例如语音信号)。这是由局部连接、权值共享以及一些引起平移不变特征的池化操作来实现的。

CNN的另一个优点在于它们更容易训练而且比拥有相同数目的隐藏单元的全连接网络而言,参数更少。在这篇文章中,我们会讨论CNN的结构和计算模型参数梯度用于基于梯度的优化方法的反向传播算法。在此之前分别阅读卷积和池化的教程了解它们具体的操作细节。

二、结构

一个CNN由多个卷积和降采样层构成,加上可选的全连接层。卷积层的输入是一个m*m*r的图像,其中m是图像的高和宽,r是图像通道数目,例如RGB图像r=3。卷积层有k个n*n*q的滤波器(或核),其中n比图像的维数小,q可以和图像的通道数r相同或更小,并且每个核的q可以不同。滤波器的大小决定了局部连接的结构,它们各自与图像作卷积产生k个大小为m-n+1的特征映射。接着每个特征图进行降采样,主要采用在p×p连续区域平均或最大化池化,其中p的取值,小图像(例如MNIST)用2,大一点的输入通常不会超过5。在降采样层的前或后,通常有额外的偏执和sigmoid的非线性应用到每个特征映射中。下图阐述了完整的CNN层,由卷积和降采样子层构成。相同颜色的单元使用权值共享。

 

图注:带池化的卷积神经网络第一层。相同颜色的单元使用权值共享,不用颜色的单元代表不同的滤波器图。

在卷积层后面可能有任意数目的全连接层。密集的连接层和标准多层神经网络的层是一样的。

三、反向传播

让δ(l+1)作为网络l+1层的误差项,代价函数是J(W,b;x,y),其中(W,b)是参数,(x,y)是训练数据和标签对。如果第l层与第l+1层密集地连接,那么第l层的误差计算如下:

δ(l)=((W(l))Tδ(l+1))?f′(z(l))

以及梯度是:

?W(l)J(W,b;x,y)=δ(l+1)(a(l))T,

?b(l)J(W,b;x,y)=δ(l+1).

如果第l层是一个卷积和降采样层,那么误差是这么传播的:

 

其中下标k是滤波器数字,f′(z(l)k)是激活函数的偏导数。Upsample操作必须经过池化层传播误差,通过计算每个输入到池化层的单元的误差。例如,如果我们有平均池化层,那么upsample简单一致地将一个池化单元的误差分配到得到该单元的上一层单元中。在最大池化层中,被选为最大值的单元接收到所有的误差,因为输入很小的变化都会干扰通过这个单元的结果。

最后,为计算滤波器图的梯度,我们再次依赖边界处理卷积操作,像在卷积层操作滤波器那样操作误差矩阵δk (l) (来做卷积运算)。

 

其中a(l)是第l层的输入,a(1)是输入图像。操作(ai(l))?δk(l+1)是第l层第i个输入和第k层滤波器误差的卷积。

相关TAG标签
上一篇:人生苦短,我用Python--一起来爬知乎娘
下一篇:java常见面试题
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站