CNN基础知识

本篇文章参考其他文章、博客、定义等参考,自己总结的,如有侵权,请联系删除。
CNN全称 卷积神经网络(Convolutional Neural Networks, CNN)

卷积神经网络是通过神经网络反向传播自动学习的手段,来得到各种有用的卷积核的过程。

卷积神经网络通过卷积和池化操作,自动学习图像在各个层次上的特征,这符合我们理解图像的常识。人在认知图像时是分层抽象的,首先理解的是颜色和亮度,然后是边缘、角点、直线等局部细节特征,接下来是纹理、几何形状等更复杂的信息和结构,最后形成整个物体的概念。
典型的卷积神经网络通常由以下三种层结构共同组成:
卷积层(Convolution)、下采样池化层(Pooling)、全连接层(Fully connected)

各个层的作用:
卷积层:对输入图像进行降维和提取特征
无论输入图片多大,卷积层的参数规模都是固定的
池化层:减小卷积核的尺寸,用来降维。
全连接层:实现分类(Classification),在很多分类问题需要通过softmax层进行输出

1.图像就是输入层
2.接着是CNN特有的卷积层(convolution),卷积层的自带激活函数使用的是ReLU
3.接着是CNN特有的池化层(pooling),
4.卷积层+池化层的组合可以在隐藏层中出现很多次。也可以灵活组合,卷积+卷积+池化、卷积+卷积等
5.在若干卷积层+池化层之后是全连接层(fully connected layer),其实就是DNN结构,只是输出层使用了Softmax激活函数来做图像识别的分类
6.一般fc就为CNN的全连接层。全连接层一般包括最后用softmax激活函数的输出层

一、卷积层
图像卷积运算如图
请添加图片描述
卷积层有很多卷积核,通过做越来越多的卷积,提取到的图像特征会越来越抽象。

二、池化层

常见的池化操作有最大池化和平均池化,池化层是由n×n大小的矩阵窗口滑动来进行计算的,类似于卷积层,只不过不是做互相关运算,而是求n×n大小的矩阵中的最大值和平均值。

请添加图片描述

池化层主要有以下几个作用:
降维,缩减模型大小,提高计算速度
降低过拟合概率,提升特征提取鲁棒性
对平移和旋转不敏感

过程:

  1. 挑选不受位置干扰的图像信息。
  2. 对特征进行降维,提高后续特征的感受野,也就是让池化后的一个像素对应前面图片中的一个区域。
  3. 因为池化层是不进行反向传播的,而且池化层减少了特征图的变量个数,所以池化层可以减少计算量。

池化层的具体实现是在进行卷积操作之后对得到的特征图像进行分块,图像被划分成的不相交块,计算这些块内的最大值或平均值,得到池化后的图像。
均值池化和 max 池化都可以完成下采样操作,前者是线性函数,而后者是非线性函数,一般情况下 max 池化有更好的效果。

三、全连接层

池化层的后面一般接着全连接层,全连接层将池化层的所有特征矩阵转化成一维的特征大向量,全连接层一般放在卷积神经网络结构中的最后,用于对图片进行分类到了全连接层,我们的神经网络就要准备输出结果了

理解1
卷积取的是局部特征,全连接就是把以前的局部特征重新通过权值矩阵组装成完整的图。
因为用到了所有的局部特征,所以叫全连接。
不同理解方式请参考这里

如下图所示,倒数第二列的向量就是全连接层的数据请添加图片描述

从池化层到全连接层会进行池化操作,数据会进行多到少的映射,进行降维,也就是为什么上图从20×12×12变成100个神经元了,数据在慢慢减少,说明离输出结果越来越近,从全连接层到输出层会再一次减少数据,变成更加低维的向量,这个操作一般叫做softmax,这个向量的维度就是需要输出的类别数请添加图片描述
因为从卷积层过来的数据大多了,全连接层的作用主要是对数据进行降维操作,不然数据骤降到输出层,softmax操作可能会丢失一些图像特征的重要信息。

对于整个过程的理解:
输入:

如果是2维张量,就是有一个2维矩阵n x n。
如果是3维张量,就是有m个2维矩阵 n x n x m。m不一定是3。
如果是4维张量,就是有k个3维矩阵,每一个三维矩阵又是m个二维矩阵。所以四维输入的矩阵形式其实是 n x n x m x k。 k也不一定是4.

经过卷积层和池化层,输入层被输出成了一堆二维的tensor。
全连接层的每一层都是有许多神经元的平铺。基本结构如下图
请添加图片描述
那么如何将前面输出的tensor转换到1xn的形式呢。n为第一层全连接层的神经元个数。

请添加图片描述

  • 4
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值