卷积神经网络(Convolutional Neural Network,CNN)的提出最初是为解决图像识别问题,但是随着技术的发展,现在CNN的应用也不仅局限于图像和视频,也可以用于音频和文本等时间序列数据。CNN作为一个深度学习架构被提出的最初目的是为了降低对图像数据预处理的要求,避免复杂的特征工程。CNN的最大特点在于卷积的权值共享结构,可以减少神经网络的参数量,防止过拟合的同时也减少了神经网络模型的复杂度。
CNN的结构
1、输入层
卷积神经网络的输入层可以处理多维数据,常见地,一维卷积神经网络的输入层接收一维或二维数组,其中一维数组通常为时间或频谱采样;二维数组可能包含多个通道;二维卷积神经网络的输入层接收二维或三维数组;三维卷积神经网络的输入层接收四维数组 。由于卷积神经网络在计算机视觉领域有广泛应用,因此许多研究在介绍其结构时预先假设了三维输入数据,即平面上的二维像素点和RGB通道。
2、隐含层
卷积神经网络的隐含层包含卷积层、池化层和全连接层3类常见构筑,在一些更为现代的算法中可能有Inception模块、残差块(residual block)等复杂构筑。在常见构筑中,卷积层和池化层为卷积神经网络特有。卷积层中的卷积核包含权重系数,而池化层不包含权重系数,因此在文献中,池化层可能不被认为是独立的层。以LeNet-5为例,3类常见构筑在隐含层中的顺序通常为:输入-卷积层-池化层-卷积层-池化层-全连接层-输出。
2.1、卷积层
2.1.1、卷积核
一个卷积层中可以有多个不同的卷积核,而每个卷积核都对应一个滤波后映射出新的图像。
2.1.2、卷积层参数
卷积层参数包括卷积核大小、步长和填充,三者共同决定了卷积