卷积神经网络CNN - 浅层
卷积神经网络CNN - Convolutional neural network
在网络中采用卷积(一种特殊的线性运算)计算,卷积神经网络至少在一层中使用卷积代替一般矩阵乘法。
[In mathematics , the asterisk is the standard symbol for convolution.]
卷积计算用 “ * ”表示。
1.卷积神经网络的结构
(1)卷积层- Convolutional layer
卷积层由若干卷积单元组成,每个卷积单元的参数都是通过反向传播算法(BP)最佳化得到的。
卷积运算的目的是提取输入的不同特征,第一层卷积层可能只能提取一些低级的特征,多层之后便能从低级特征中迭代提取更复杂的特征。
(2)线性整流层 - Rectified Linear Units layer
利用线性整流 作为这一层神经的激励函数(Activation function),可以增强判定函数和整个神经网络的非线性特性,而不改变卷积层。
(3)池化层 - Pooling
缩减模型的大小,提高计算速度,同时提高所提取特征的鲁棒性。
池化层一般没有参数,没有权重。
[ Pooling layers reduce the dimensions of the data by combining the outputs of neuron clusters at one layer into a single neuron in the next layer. ]
一种非线性形式的降采样(down-sampling),运用非线性池化函数
Eg. 最大池化 - Max Pooling
平均池化也有,但是最大池化用得多得多。
将输入的图像划分为若干个矩形区域,对每个子区域输出最大值或平均值。
池化层会不断减小数据的空间大小,降低参数的数量和计算量,在一定程度上控制过拟合。
(4)完全连接层 - fully connected layer
神经网络中的高级推理通过完全连接层来完成。完全连接层中的神经元与前一层中的所有**都有联系。
(5)损失函数层 - Loss layer
用于决定训练过程如何来“惩罚”网络的预测结果和真实结果之间的差异。
2.一个简单卷积计算的例子
一般来说filter的f是奇数。
将左边6*6的矩阵通过一个卷积计算转换成4*4的矩阵
(1)在4*4的矩阵中的第一格,将粉色部分与蓝色部分矩阵中对应位置的数相乘相加得到-5这一结果。
3*1+0+1*(-1)+1*1+0+8*(-1)+2*1+0+2*(-1) = -5
(2)将粉色大小的矩阵向右移一位得到紫色矩阵,再将紫色矩阵与蓝色矩阵对应位置数相乘相加得到下一格子的值(-4)。
(3)照此规律不断移动粉色块与蓝色块进行计算,将得到整个4*4的矩阵值。
设矩阵大小为n*n ,filter大小为f*f,Padding为0,最终得到矩阵为 (n-f+1)*(n-f+1) [这是卷积步长为1的情况]
设卷积步长为S,filter为f,Padding为p,则最终矩阵为 *
3.一个简单Max Pooling的例子
将一个4*4的矩阵利用Max Pooling转换成2*2的矩阵。
将4*4的矩阵划分为4个部分,如图颜色所标注,取其中数值最大的值作为2*2矩阵相对应位置的值。
同理,从5*5的矩阵中推出3*3的矩阵方式如上卷积算法移动矩阵的方式相似。
4.什么是Padding?
在原图像的周围填充边缘。
因为在不断使用卷积运算会出现两个问题,即
(1)最后得到的图像可能很小。
(2)图像边缘信息丢失严重。
为此,通过在原图像的四周添加像素点来改善这两个问题(填充边缘)。
例如,所添加的Padding像素为p,以一层卷积为例,原图像为n*n,filter为f*f,最后得到为(n+2p-f+1)*(n+2p-f+1)。(步长为1时)
设卷积步长(Stride)为S,filter为f,Padding为p,则最终矩阵为 * [与上重复]
Valid and Same Convolution
Valid Convolution :no padding / 不进行边缘填充工作。
Same Convolution:Pad so that the output size is the same of input size / 进行边缘填充工作,使得最后输出图像大小与输入图像大小相等。
5.为什么卷积神经网络中的参数相对而言较少?
(1)参数共享(Parameter Sharing) - A feature detector (such as a vertical edge detector) that's useful in one part of the image is probably useful in another part of the image / 即一个filter如果对图像的一部分有用,也许对其他部分也有用。
(2)稀疏连接(Sparsity of connections) - In each layer , each output value depends only on a small number of inputs / 即在每一层中,每一个输出值仅依赖于一部分的输入值。