CNN卷积神经网络原理

这篇文章属于总结性文章,文中引用了其他博主的概述和图片,如有不妥,请联系删除。

1、机器识图

当人看见一张图片时可以直观的看出图片里面的具体信息到底有上面,但是机器也是一下子就可以识别图片的吗?当然不是!机器需要将图片切分成很多个小块,然后从每一个小块中提取某些低级特征,然后再在取得的低级特征再次提取中级特征,然后再提取高级特征。这些提取特征过程都是抽象化的,因为你很难用语言描述出机器到底提取了什么特征。提取完特征以后就需要把特征全部联合在一起然后判断出图片描述的到底是什么东西
下面这张就是提取特征的过程。

在这里插入图片描述

二、卷积伸进网络原理

完成上面特征提取的过程就需要用到CNN(卷积神经网络),CNN识别图片一般包括:

  1. 卷积层提取特征
  2. 池化层提取主要特征
  3. 在全连接层汇总各个特征
  4. 分类器进行预测识别

卷积层原理

明确一点,图片不仅有宽和高,还有厚。灰度图厚度为1,彩色图厚度为3。其中厚度一般被描述为图片的通道数(channels)
在这里插入图片描述
此彩色图的通道数为3。
下面就是就是有红绿蓝三颜色通道的直观图
在这里插入图片描述
同理灰度图,但是只有一个颜色通道

在这里插入图片描述

卷积层中的作用就是提取图片中每个小部分的特征

卷积层中会遇到的一些概念
  1. 卷积核:kernel, 也有人叫过滤器(filter),卷积核的宽和高一般为3x3,或者5x5(本例子以3x3)。我们的卷积核的数值怎么确定?其实只要确定了卷积核的大小和数量以后,我们通常一开始是由符合正态分布的随机数进行填充,在后续进行反向传播时,计算机会自动调整参数。还有我们需要定义卷积核不止一个,可以有16个、32个等等,并且每个卷积核都带有不同的数值,这些数值都是自己设定的,这些卷积核会提示进行运作。
  2. 步长(stride):假设现在步长现在设置为1,那他代表什么意思?其实就是卷积核,每次往右或者往下移动多少步数,在下面动态图中就是步长为1进行移动去遍历图片,设置步长的原因就是减少计算量
  3. padding:padding较为复杂,可以看看别人的博客吴恩达的padding笔记

假如现在我已经有一个6x6x3的彩色图,现在就要对图片进行卷积操作,在卷积前就需要先定义一个卷积核,其通道数保持和图片一致。
在本例子中, 计算机眼中6x6x3的彩色图都是6x6x3的[0, 255]间的数字,卷积核也是3x3x3的[0-255]间的数字。

在这里插入图片描述
上面这张动态图就是就是卷积做的事情,但是上面只有一层,实际中是有三层在进行卷积。在这里插入图片描述
2个卷积核
在这里插入图片描述
需要注意的时上面的两个图都没有进行padding的SAME操作,因此图片会压缩!
前文也提到过卷积的数量不只是一个可能有16,32等等,因此在只有一个卷积核时6x6x3在步长为1的情况下输出4x4x1,这里的1代表就是一个卷积,当有16个、32个时就会输出4x4x(16或者32)。(下面以16为例)

现在就已经完成了一个卷积过程,已经提取到某些特征,现在对图片进行池化(pooling)操作

pooling和卷积比较类似,池化层的选取大小一般为2x2,stride为2,padding为SAME.池化有两种形式,max_pooling和mean_pooling,max_pooling就是选取2x2窗口内的最大值代表这个2x2窗口,mean_pooling就是去2x2窗口的均值作为代表这个2x2窗口
一般都是使用max_pooling,经过2x2的pooling层以后原来的size就发生了改变,卷积后是4x4x16,pooling后宽、高缩半,实现降维。
max_pooling的作用是:

  1. invariance(不变性),这种不变性包括translation(平移),rotation(旋转),scale(尺度)
  2. 保留主要的特征同时减少参数(降维,效果类似PCA)和计算量,防止过拟合,提高模型泛化能力
    下面就是max_pooling的一个图例
    在这里插入图片描述
    完成pooling后会接一个激活函数,在实际问题当中,学要解决的问题都是非线性问题,但是卷积以及pooling后都还是线性关系,这需要激活函数,将线性转化为非线性。一般使用的激活函数为ReLU
    上面卷积、pooling、激活就已经完成特征提取的一个重要操作,然后再次重复上面的过程就会再次进行特征提取,就得到更深层次的特征,需要注意的是图像已经变为2x2x16(以16个kernels为例),假设目前得到的特征已经可以解决某些简单问题(卷积层越多,得到的信息越详细,但是还会带来过拟合风险)
    可视化卷积层
    在这里插入图片描述

全连接层

全连接层(fully connected layers,FC)在整个卷积神经网络中起到“分类器”的作用。如果说卷积层、池化层和激活函数层等操作是将原始数据映射到隐层特征空间的话,全连接层则起到将学到的“分布式特征表示”映射到样本标记空间的作用。
在这里插入图片描述
在分类作业中,经过全连接层输出的是一维,长度为类别的数量,这个以为向量的就代表分为这一类的权重值,权重值越大,分为这一类的可能性越大。接下来softmax将其归一化,其实就类似与概率,最后softmax后值越大的,该model就会预测这张图片归为这一个类别。
下面是2层卷积2层全连接的结构图
在这里插入图片描述

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值