最近开始学习卷积神经网络的相关内容,学习了许多博主的文章,在最后列出了参考的部分链接。在学习了别人的文章后,加以自己的理解,整理了以下内容,方便自己和其他小白日后的学习与复习。如有遗漏链接,请联系我,谢谢。
一、卷积神经网络的组成结构
卷积神经网络一共可以划分为五层,分别是数据输入层,卷积计算层,ReLU激励层,池化层与全连接层。
• 数据输入层( Input layer)
• 卷积计算层( CONV layer)
• ReLU激励层(ReLU layer)
• 池化层 (Pooling layer)
• 全连接层 (FC layer)
二、具体介绍各部分组成内容
1.数据输入层
该层要做的处理主要是对原始图像数据进行预处理,其中包括:
• 去均值:把输入数据各个维度都中心化为0,如下所示,其目的就是把样本的中心拉回到坐标系原点上。
• 归一化:幅度归一化到同样的范围,如下所示,即减少各维度数据取值范围的差异而带来的干扰。比如,我们有两个维度的特征A和B,A范围是0到10,而B范围是0到10000,如果直接使用这两个特征是有问题的,好的做法就是归一化,即A和B的数据都变为0到1的范围。
• PCA/白化:用PCA降维;白化是对数据各个特征轴上的幅度归一化
2.卷积计算层
卷积可以理解为,在原始的输入上进行特征的提取。特征提取简言之就是,在原始输入上一个小区域一个小区域进行特征的提取,下面讲解卷积的计算过程。
对于任何一张图片来说,image以RGB的形式保存,如果对于一张 32*32 pixels的图片来说,我们会得到3个32*32的矩阵(分别为R,G,B)。那么把这三个矩阵放在一起,就可以得到原来图像可以看作一个32*32*3的矩阵。
如上图,左边的方块可以看作是一个输入图片,也就是数据输入层( Input layer),而右边的图片可以看作是一个滤波器(filter),尺寸为5*5,深度为3,最终通过滤波器的不断移动(滑动窗口),与输入层做运算,最终可以得到一个深度为1的特征图。但一般会采用多个filter分别对原图片进行卷积,最终可以得到多个特征图。