卷积神经网络

2023-12-13 16:34:14

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

1、区别

NN与CNN
在这里插入图片描述

2、整体架构

在这里插入图片描述

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

请添加图片描述

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

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

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

  4. 一组权重参数得到一个特征值
    在这里插入图片描述

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

图像颜色通道
在这里插入图片描述
三个颜色通道
在这里插入图片描述
在这里插入图片描述

特征值
请添加图片描述

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

特征图:通过不同助手filter生成多种特征图
在这里插入图片描述
更加丰富的特征图
在这里插入图片描述

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

堆叠的卷积层
在这里插入图片描述

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

2.3、卷积层涉及参数
  • 滑动窗口步长(步长小了,特征更加细节)
    在这里插入图片描述

  • 卷积核尺寸(3×3or4×4)
    在这里插入图片描述

  • 边缘填充(边界的数据利用次数少,内部的数据利用次数多,然而边缘的数据却不一定不重要,所以要将边界填充为0,增加边界利用次数。加0的原因是为了不让增加的扩充对结果产生影响
    在这里插入图片描述

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

2.4、卷积结果计算公式

在这里插入图片描述
其中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、池化

压缩特征图
在这里插入图片描述

2、最大化池

选择最大的值(2×2)
在这里插入图片描述

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

1、全连接层

在这里插入图片描述

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

2、特征图变化

在这里插入图片描述

四、经典网络

4.1、Alexnet:

8层网络,5层卷积,3层全连接
在这里插入图片描述
在这里插入图片描述

4.2、Vgg:

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

在这里插入图片描述
在这里插入图片描述

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

4.3、Resnet

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

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

H(x)=F(x)+x

在这里插入图片描述
在这里插入图片描述

文章来源:https://blog.csdn.net/qq_52108058/article/details/134841273
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。