卷积神经网络

文章目录

    • 一、卷积神经网络与传统网络的区别:
      • 1、区别
      • 2、整体架构
        • 2.1、卷积层
        • 2.2、只做一次卷积就可以了吗?
        • 2.3、卷积层涉及参数
        • 2.4、卷积结果计算公式
        • 2.5、卷积参数共享
    • 二、池化层
      • 1、池化
      • 2、最大化池
    • 三、卷积神经网络全连接层
      • 1、全连接层
      • 2、特征图变化
    • 四、经典网络
      • 4.1、Alexnet:
      • 4.2、Vgg:
      • 4.3、Resnet

一、卷积神经网络与传统网络的区别:

1、区别

NN与CNN
卷积神经网络_第1张图片

2、整体架构

卷积神经网络_第2张图片

  1. 输入层:输入H W C三维图像
    C:Channel,通道数,表示一张图像中的通道数
    H:Height,高度,表示图像垂直维度的像素数
    W:Width,宽度,表示图像水平维度的像素数
  2. 卷积层:特征提取
  3. 池化层:特征压缩
  4. 全连接层
2.1、卷积层
  • 卷积做了什么事?

卷积神经网络_第3张图片

  1. 将输入的图片分割成多个区域

  2. 将多个区域进行特征提取

  3. 假如第一个区域是3×3

  4. 一组权重参数得到一个特征值
    卷积神经网络_第4张图片

  5. 选择特征值最大的保留特征

图像颜色通道
卷积神经网络_第5张图片
三个颜色通道
卷积神经网络_第6张图片
卷积神经网络_第7张图片

特征值
卷积神经网络_第8张图片

  • Filter参数(3 * 3 * 3)卷积核,每3*3个区域进行一个区域选择一个特征值。
  • 内积做计算,对应位置相乘,结果相加。
  • 计算第一个区域特征值=3
  • 特征图(3×3×2)

特征图:通过不同助手filter生成多种特征图
卷积神经网络_第9张图片
更加丰富的特征图
卷积神经网络_第10张图片

2.2、只做一次卷积就可以了吗?

堆叠的卷积层
卷积神经网络_第11张图片

将输入数据32×32×3特征提取28×28×6再次卷积24×24×10

2.3、卷积层涉及参数
  • 滑动窗口步长(步长小了,特征更加细节)
    卷积神经网络_第12张图片

  • 卷积核尺寸(3×3or4×4)
    卷积神经网络_第13张图片

  • 边缘填充(边界的数据利用次数少,内部的数据利用次数多,然而边缘的数据却不一定不重要,所以要将边界填充为0,增加边界利用次数。加0的原因是为了不让增加的扩充对结果产生影响
    卷积神经网络_第14张图片

  • 卷积核个数(要得到多少个特征图)

2.4、卷积结果计算公式

卷积神经网络_第15张图片
其中W1、H1表示输入的宽度长度;W2、H2表示输出特征图的宽度、长度F表示卷积核长和宽的大小S表示滑动窗口的步长;P表示边界填充(加几圈O)。
如果输入数据是32323的图像,用10个5 * 5 * 3的filter来进行卷积操作,指定步长为1,边界填充为2,最终输入的规模为?

(32-5+2 * 2)/1+1=32,所以输出规模为32 * 32 * 10,经过卷积操作后也可以保持特征图长度、宽度不变。

2.5、卷积参数共享

二、池化层

1、池化

压缩特征图
卷积神经网络_第16张图片

2、最大化池

选择最大的值(2×2)
卷积神经网络_第17张图片

三、卷积神经网络全连接层

1、全连接层

卷积神经网络_第18张图片

  • 两次卷积一次池化
  • conv跟relu搭配
  • 最后得到32×32×10特征图
  • FC全连接层
  • 最后的特征图转换为特征向量10240个
  • 全连接层特征矩阵[10240,5]

2、特征图变化

卷积神经网络_第19张图片

四、经典网络

4.1、Alexnet:

8层网络,5层卷积,3层全连接
卷积神经网络_第20张图片
卷积神经网络_第21张图片

4.2、Vgg:

所有卷积大小都是3×3,细密度特征提取,经过pooling后损失一些信息,vgg经过每个pooling为了弥补损失的信息,使得特征图翻倍。
16层到19层

卷积神经网络_第22张图片
卷积神经网络_第23张图片

相同任务vgg准确率比Alex net 高出了15%的准确率,但是Alex net 训练8小时,但是vgg需要训练3天

4.3、Resnet

深层网络遇到的问题:
56层的layer比20层的layer要差,怎么解决这个问题呢,什么造成了这原因。加入的这36层中,有错误的值影响到了整个的正确率。

在加入的这36层中,把能促进正确率提升的数据加入,把不好的数据抛弃
卷积神经网络_第24张图片
解决方案,把表现不好的参数设置权重为0,
卷积神经网络_第25张图片
x假如为20层后的某一层,进行了一次卷积,在进行一次卷积,得到的结果可能不好,所以要额外的连接一条,如果结果不好的话,就把x设置为0,好的就加上,不好的就舍去,取0值

H(x)=F(x)+x

卷积神经网络_第26张图片
卷积神经网络_第27张图片

你可能感兴趣的:(深度学习/MatLab,cnn,人工智能,神经网络)