卷积神经网络在处理图象、语音和音频信息等方面都有着良好的特性。卷积神经网络主要包括了卷积层、全连结层和池化层等,各层次设置的不同的数量与构造方法,以此来适应复杂多变的检测环境,接下来本文将对各层进行分别介绍。
一、卷积层
卷积层是CNN的核心,CNN中大部分计算也都发生在卷积层。卷积运算需要输入数据、滤波器和特征图。
如上图,输入数据是一个4*4大小的排列图,滤波器是一个3*3大小的二维图像,我们可以把其当作前几节提到的人工感知器的权重,第一次卷积操作对应与和滤波器大小相同的输入图像的一部分,通过点积计算得到输出为16,这就是输出的特征图的第一个特征值。随后滤波器继续移动遍历完整个的输入图像,在这个过程中也就填满了最终的输出数组,即特征图。
对于输入数据和滤波器进行卷积操作时,可以使用权重共享来减少参数数量,从而提高了模型的训练效率和泛化性能。同时,通过调整超参数,如滤波器的多少、步幅和填充方式等,可以控制输出特征图的大小和数量,进而影响模型的复杂度和表现力。具体来说,如果使用多个不同的滤波器,则会在卷积后产生多个不同的特征图,每一个特征图都可以提取输入数据的某种特征。步幅可以决定卷积核在输入数据上移动的步长,即每次移动多少个像素点,从而影响输出图像的尺寸和分辨率。填充方式可以通过在输入矩阵边缘添加一圈或多圈零值,从而扩大卷积核有效作用的范围,使得输出和输入的尺寸保持相同或者增大。在实际应用中,超参数的选择需要根据具体任务和数据集特征来确定。通常需要做多次实验,通过交叉验证和实验结果来选择最优的超参数组合,以获得最好的模型性能。
二、池化层
池化层的作用就是对卷积层的中提取的特诊进行挑选,池化操作不仅仅保留原始数据的一些重要特诊,还减少了模型的计算量,常见的池化操作有最大池化和平均池化,池化层是由n*n大小的矩阵窗口滑动来计算的,池化层的计算很简单,就是求矩阵窗口的最大值或者平均值。
三、全连接层
全连接层一般位于卷积神经网络的最后,用于将卷积输出的二维特征图转化成一维向量,从而实现端到端的学习过程。全连接层的每个节点都与上一层的所有节点相连,因此也被称作全相连层。由于其特性,全连接层通常具有最多的参数。
在分类任务中,卷积层只能提取局部特征,但许多不同物体可能具有相同的一类特征,例如,猫、狗和鸟都有眼睛。若仅使用局部特征则无法准确确定具体类别,此时需要使用组合特征来进行判别。我们可以使用多个卷积核对多个特征进行提取,得到多个特征图。全连接层的作用是组合这些特征图来确定具体分类,因此起到关键作用。
下图给出了对一个图片进行卷积,池化,全连接的过程:
四、随机构成一个卷积神经网络
如今常见的卷积神经网络结构,如著名的VGG-16,VGG-19都是由卷积层,池化层叠加,再穿插激活函数,最后通过全连接层得来的,下图是随机构成的一个卷积神经网络。