卷积神经网络(Convolutional Neural Network, CNN)是深度学习转折的标志性成果,在深度学习的早期,以Hinton等为代表的学者们研究主要集中在RBM(限制波尔兹曼机),AE(自编码器)等传统的全连接神经网络框架上,这个时期虽然出现了很多无监督、优化函数改进之类的研究,使得传统的神经网络层数有所增加,但是终究没有脱离全连接神经网络框架的约束,以至于最终网络可训练的参数量还是遇到了瓶颈。但是2012年的ImageNet竞赛上,Hinton的学生团队用CNN网络一下把图像识别的准确度提高近17个百分点,深度学习自此开始爆发,直到今天成为一个没听过深度学习都不好意说自己是工科大学生的时代。CNN作为新时代深度学习的第一炮,是传统神经网络在视觉领域应用的必然产物。相比于传统的神经网络,CNN的参数量指数级减少但是表达能力并没有下降,因此在相同的参数量情况下,CNN能够满足更大数据量的应用,再加上GPU等高性能计算硬件的发展,造就了深度学习今天的成就。而CNN的原理主要取决于它的三个特性——局部连接、参数共享、池化采样。
卷积
首先我们要学习CNN前馈计算的核心数学操作之一——卷积。卷积是高等数学里面非常基础的一个运算操作,通常在数字信号处理等课程里面都会有所介绍。如果读者不喜欢本文对卷积的介绍,也可以自行百度。
卷积对于连续信号和离散信号拥有不同的计算公式,由于在深度学习领域,所有的数据都是离散信号形式,所以本文只介绍离散信号的卷积公式,对于一维离散信号f(n)(长度为N)和一维离散卷积核信号g(n),卷积结果s(n)(长度为M)表示为:
卷积公式中如果有不存在的信号,则用0代替,这是常见zero padding模式。
例:假设f(n)=[1,2,3];g(n)=[2,3,1];则: