卷积神经网络的组成:
- 输入层(input)
- 卷积层(conv)
- 激活函数(relu)
- 池化层(pool)
- 全连接层(fc)
输入层通常是对输入图像进行预处理。
常见的预处理方法:
(1)去均值
(2)归一化处理
(3)正常白化处理又叫图像标准化处理
(4)PCA
常见的预处理方法
目的:
(1)使得原始图像符合某种既定规则,便于后续处理。
(2)去除图像中的影响后续处理精度、准确度的因素,如噪声等。
(3)在正式处理前进行处理,减少后续的运算量,加速收敛(为什么会提高收敛速度,可以参见这篇博文图像数据预处理对收敛速度的影响),提高后续步骤的可靠性
卷积层的作用通常是用来提取图像的特征。
filter 5x5x3 意味着卷积核的大小是5x5的,对应输入图像的3个通道
e.g. 6 ,意味着有6个卷积核,将对应生成6个特征图
pad(边界填充)=1 意味着在原先的特征图周边加上1圈全0的特征点,目的是为了增加边缘特征点被卷积核覆盖的次数。
卷积核向右滑动,滑动的步长 stride ,通常不能大于卷积核的大小,否则会造成特征点的遗漏。
特征图大小计算:
output =(input+2*pading-filter)/stride +1
变量数:
由于权值共享机制,这个特征层的权重w是一致的,这样减少了变量数,增加了学习效率。
激活函数的目的:
将线性的输入输出变成非线性的,增加神经网络的表达能力。
常用的激活函数
又称下采样层
池化层夹在连续的卷积层中间, 用于压缩数据和参数的量,减小过拟合。
如果输入是图像的话,那么池化层的最主要作用就是压缩图像。
最大池化:
outout = (input - filter)/stride +1
平均池化:
顾名思义
取filter区域的特征值的平均值
全连接层(fully connected layers,FC)在整个卷积神经网络中起到“分类器”的作用。如果说卷积层、池化层和激活函数层等操作是将原始数据映射到隐层特征空间的话,全连接层则起到将学到的“分布式特征表示”映射到样本标记空间的作用。
全连接的核心操作就是矩阵向量乘积 y = Wx
本质就是由一个特征空间线性变换到另一个特征空间。目标空间的任一维——也就是隐层的一个 cell——都认为会受到源空间的每一维的影响。不考虑严谨,可以说,目标向量是源向量的加权和。