神经网络解析|CNN
Posted 无远不往
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了神经网络解析|CNN相关的知识,希望对你有一定的参考价值。
只原创,只首发,不转载
在前期文章中我们详细介绍了卷积运算在图像处理中的重要作用,今天小编将为大家介绍神经网络中应用最为广泛的卷积神经网络。
01
CNN的概念及其组成
卷积神经网络,即Convolutional Neural Network(CNN),是在神经网络的基础上进化而来的,也是近些年来在计算机视觉领域里程碑式的算法。
CNN由纽约大学的Yann LeCun于1998年提出。CNN本质上是一个多层感知机,其成功的原因关键在于它所采用的局部连接和共享权值的方式,一方面减少了的权值的数量使得网络易于优化,另一方面降低了过拟合的风险。在学术领域,通常将神经网络视为典型的“黑箱问题”,如果它的输入是一个对象的特征向量,那么输出就是该对象所属的分类,其中分类的具体操作由计算机完成,网络的架构者并不知晓。
CNN网络通常由三部分组成:神经元(Cell)、损失函数(Loss Function)和激活函数(Activation Function)。
其中,神经元可分为输入层、隐含层和输出层三类;损失函数会在每次网络训练后衡量本次分类结果与真实类别之间的差距,并基于此不断更新网络参数,通常有softmax loss、 SVM loss;激活函数通常将线性的分类问题进行非线性转化,使得神经网络可以更好地解决较为复杂的问题,通常由sigmoid、tanh、和ReLu等函数构成。
CNN隐含层的卷积层和池化层是实现卷积神经网络特征提取功能的核心模块。该网络模型通过采用梯度下降法最小化损失函数对网络中的权重参数逐层反向调节,通过频繁的迭代训练提高网络的精度。
CNN的低隐层是由卷积层和最大池采样层交替组成,高层是全连接层对应传统多层感知器的隐含层和逻辑回归分类器。第一个全连接层的输入是由卷积层和子采样层进行特征提取得到的特征图像。最后一层输出层是一个分类器,可以采用逻辑回归,Softmax回归甚至是支持向量机对输入图像进行分类。
在目标检测、对象识别、图像分割、超分辨、对象跟踪、对象检索等等一些问题中,基于CNN算法的识别精度都远远高于传统的算法。
02
CNN中的卷积和池化运算
(一)输入层
CNN通常是图像处理的一种人工智能算法,而图像通常由若干个像素组成,图像中的数字表示像素亮度,0是黑色,255是白色。因此,一张图片在计算机中可以简化为若干个数字组成的多维矩阵。
在CNN的输入层中,输入格式保留了图片本身的结构。对于黑白的图片,CNN的输入是一个二维的神经元;对于RGB格式(彩色)的图片,CNN的输入则是一个三维神经元(RGB中的每一个颜色通道都有一个的矩阵)。
(二)卷积层
CNN中的卷积层由一组滤波器(filter)组成,滤波器可以视为二维数字矩阵,其对应的长度和宽度可自行设置。下图表示对一组4*4的二维黑白图片进行卷积运算,滤波器为3*3。
卷积运算的具体步骤如下:
①在图像的某个位置上覆盖滤波器;
②将滤波器中的值与图像中的对应像素的值相乘;
③把上面的乘积加起来,得到的和是输出图像中目标像素的值;
④将滤波器向右或向下移动若干步长(Stride,可自行设置),对图像的所有位置重复此操作。
以上图为例,在重叠的图像和滤波器元素之间逐个进行乘法运算,按照从左向右、从上到下的顺序移动滤波器,最终得到2*2的二维新矩阵。
同理,如果对于彩色图片,输入的RGB图像是三维的神经元,那么卷积层对应的滤波器也是三维的,具体运算方法与二维相似,也是重叠元素之间逐个进行乘法运算,最后累加,如下图。
(三)池化层
卷积层的作用通常是对图片进行特征提取,但是当卷积得到的feature map(特征图)的长宽还是比较大时,可以通过池化层来对每一个feature map 进行降维操作。
池化的方法也是用一个过滤器(池化矩阵)进行扫描,扫描的过程中同样地会涉及扫描布长stride,扫描方式同卷积层一样,先从左到右扫描,结束则向下移动布长大小,再从左到右。
池化的方法通常有两种,分别为最大池化和平均池化。
最大池化(Max pooling):取“池化视野”矩阵中的最大值
平均池化(Average pooling):取“池化视野”矩阵中的平均值
(四)全连接层及输出层
为了最后得到图片所属分类的一维数字,还要需要对池化得到的二维或三维向量进行进一步操作,通常由全连接层完成。
顾名思义,全连接层的所有神经元均与上一层相连,其作用主要对特征进行重新拟合,减少特征信息的丢失。全连接层的主要特点是参数过多,容易造成过拟合,通常解决的方法是进行Dropot(随机丢失部分数据)。
明天文章将介绍CNN网络中有哪些可以进行自行调整的超参数,并附上案例代码解析,欢迎持续关注!
以上是关于神经网络解析|CNN的主要内容,如果未能解决你的问题,请参考以下文章