了解卷积神经网络CNN

卷积神经网络(CNN)是深度学习中重要的代表算法之一,在计算机视觉、自然语言处理等人工智能领域都有重要运用。通俗来说,我们可以将CNN理解成函数或者黑箱,通过给定输入来获得输出,比如下图,通过输入图片,经过CNN黑箱后,即能识别出图片中的字母是X和字母O。

图一

CNN一般由卷积运算、池化、全连接等几个部分组成:
卷积神经网络结构

卷积Conv

卷积核:卷积核的功能就是从原图像中将和卷积核特征一样的部分提取出来,卷积核代表了局部特征。通过卷积运算将原图中的特征提取出来得到feature map,用不同的卷积核对原图进行卷积操作会得到不同的feature map,当用其他非原图特征的卷积核对原图进行卷积,通常会得到乱码,因为原图像中不含有该卷积核的所有特征。所以可以将卷积运算可理解为特征提取的过程。
在这里插入图片描述
上面的动图展示了卷积运算的过程,卷积核通过分别与紫色部分的模块运算(矩阵对应位置的数字相乘后在相加),最终得到一个feature map,这样我们通过卷积操作将77的矩阵浓缩成33的保留原图特征的矩阵。
步长:卷积核滑动的距离称为步长,上面动图的步长为2。如果我们想保留原图周边的有用信息,往往会在原矩阵四周补上一圈0,这个过程称为padding。

激活(eg:Relu函数)

在卷积运算后往往会跟上激活函数,引入非线性函数作为激活函数,深层神经网络将不再是输入的线性组合,可以逼近任意函数,relu是神经网络中常用的激活函数,它可用来修正线性单元。relu会保留正数值,将负数变为0。这种处理会有2个好处:(1)简化计算;(2)利于梯度下降
激活函数图像
在这里插入图片描述

ReLU函数是分段线性函数,将负值都变为0,而正值保持不变,这种操作叫单侧抑制。这使得神经网络中的神经元也具有了稀疏激活性,尤其体现在深度神经网络模型(如CNN)中,当模型增加N层之后,理论上ReLU神经元的激活率将降低2的N次方倍。

池化(Pooling)

池化又叫下采样,池化的目的在于在可接受范围内保留原图特征,同时减少运算数据量。一般有以下三种池化方法:一种是取平均值mean-pooling,一种是取最大值max-pooling,一种是Stochastic-pooling方法
一般来说,
mean-pooling能减小第一种误差(邻域大小受限造成的估计值方差增大),更多的保留图像的背景信息。
max-pooling能减小第二种误差(卷积层参数误差造成估计均值的偏移),更多的保留纹理信息。
Stochastic-pooling则介于两者之间,通过对像素点按照数值大小赋予概率,再按照概率进行亚采样,在平均意义上,与mean-pooling近似,在局部意义上,则服从max-pooling的准则。

全连接

通过卷积运算、激活和池化操作后,将原始特征映射到隐特征空间,而全连接层将学到的“分布式特征表示”映射到样本标记空间中。可以这样通俗的理解,全连接层之前的作用是提取局部特征,全连接层则利用了图像的全局信息,进行分类。
由于卷积层通过窗口划动进行局部特征的提取,因此对卷积层输入的大小没有要求。而全连接层使用了图像的全局信息,该层的每个节点都与上一层的所有节点连接,这里要求其输入的feature map的大小要固定。这个连接的权重则属于模型要学习的参数的一部分

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值