【机器学习】卷积神经网络 CNN (Convolutional Neural Network)
卷积神经网络(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网络由一个或多个卷积层和顶端的全连通层(对应经典的神经网络)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网络能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网络在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网络,卷积神经网络需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。
以上内容来自*。
卷积神经网络在我们生活中的应用很常见,例如:身份照相识别系统、无人驾驶系统、图像识别系统。它的性质是层级网络,那么它其实是和传统神经网络的区别只是在于层的功能和形式发生变化,那么也就是在原有基础上加以改进的产物。它层级为三层,分别为输入层;隐含层;输出层。
-
输入层(input layer):其主要功能是接收原始数据,对原始的图像数据进行预处理,一维卷积神经网络输入层通常接收一维或二维数组,而二维卷积神经网络可接收二维或者三维数组。卷积神经网络通常在计算机视觉领域内应用较广,所以通常设定数据为三维数组,即二维像素*RGB通道。
-
隐含层:这一层级常见的构造为三类,卷积层、池化层、全连接层。需要注意的一点是,在常见构筑中,卷积层和池化层都是卷积神经网络独有,而卷积核中包括权重系数,而池化层没有。因此在文献中通常池化层不被认为是独立层级。
-
卷积层(convolution layer):卷积的计算过程如下图:
几个术语参数:
1.depth
2.stride
3.padding:根据所取的stride,如果不够的情况下做填充
4.filter
Example:
input volume:32×32×3
receptive fields:5×5,stride 3
number of neurons:5
output volume:(32-5)/3+1=10
so 10×10×5
4.激励层(activation layer):主要是对卷积结果进行非线性映射,CNN中采用的是ReLU(The Rectified Linear Unit),它的特点是收敛快,求的梯度简单,但是比较脆弱。
5. 池化层(pooling layer):它是夹在许多连续的卷积之间,对卷积结果进行优化,减少过拟合的情况,在保留有价值信息基础之上,减少数据量。如果输入者是图像,那么他的作用就是压缩图片。
常见的池化方法两种:mean、max。
mean-pooling:对所选区域值处理后取平均值作为池化值。
max-pooling:所选区域的最大值作为池化值。
- 全连接层(fully-connected layer):它让所有神经元都有权重连接,而连接方法和传统神经网络的连接方法是一样的,一般出现在卷积神经网络尾部。
- 输出层(output layer):直接输出分类结果。
常用框架:tensorflow
一个基于数据流编程(dataflow programming)的符号数学系统,被广泛应用于各类机器学习(machine learning)算法的编程实现,其前身是谷歌的神经网络算法库DistBelief。