前言

        深度神经网络:处理复杂数据,并自动提取特征。

        卷积神经网络:专用来处理图像数据。

数据类型:

  • 结构化数据:全连接神经网络。
  • 图像数据:CNN卷积神经网络。(CV领域)
  • 文本数据:RNN循环神经网络等。(NLP领域)

卷积神经网络(CNN)

  • 背景:传统神经网络的线性层Linear对图像处理效果不佳,计算量太大
  • 概念:包含卷积层的神经网络。

其实是在全连接神经网络的隐藏层中增加了卷积层和池化层

1.结构
  • 输入层
  • 隐藏层:
    • 卷积层
    • 池化层
    • 全连接层
  • 输出层

因此以下只讲述隐藏层的部分

2. 卷积层

作用:提取图像特征。

2. 1 卷积核(神经元)

特点:

  • 有权重
  • 形状:一般是3*3、5*5、7*7、9*9、11*11等奇数尺寸。
  • 卷积核的通道数:不是超参数,等于输入数据的通道数。
  • 卷积核的数量:是超参数,等于特征图的通道数。

特征图是个整体,由多个通道组成。一个卷积核对应一个通道数,多个卷积核则对应多个通道数。

2.2 特征图
  • 尺寸公式                
  • 向下取整

                

2.3 超参
  • Padding(填充)
    • 在图像的边界周围添加额外像素(通常是0或1)
    • 作用
      • 保留图像的边缘信息,防止丢失
      • 提高性能
      • 可以使卷积后的特征图尺寸与原图像尺寸相同。

                ​​​​​​​        

  • Stride(步长)
    • 卷积核在图像上滑动的步伐大小:通常为1或2。
    • 作用
      • 影响特征图尺寸
      • 降低计算复杂度

        

2.4 卷积计算

核心就是做加权求和:图像数据 点积 卷积核=特征图

分为:

  • 多通道 卷积计算

  • 多卷积核 卷积计算

                        

每个数据图像的每个(3个)通道 和 每个(2个)卷积核的每个(3个)通道 点积 得到每个(2个)特征图,每个(2个)特征图上对应位置上的元素相加(最后每个位置再加偏置值)

2.5 计算API
nn.Conv2d()

3. 池化层

作用:降维,让计算量提速。

3.1特点
  • 池化层的窗口没有权重,只有大小:一般设置窗口大小为3*3,步长为2。这两个都是超参数。
  • 池化层的输出和输入的通道数是相等:对宽、高两个维度进行池化,通道数不能池化。
3.2 超参
  • stride(步长):通常设为2
  • padding(填充):通常设为1
3.3 分类
  • 单通道池化
  • 多通道池化
3.4 计算API
  • 最大池化
    • 一般使用,计算量小
    • 实现方法nn.MaxPool2d()

  • 平均池化
    • 实现方法nn.AvgPool2d()

        

4. 全连接层

        经过卷积和池化的特征图仍然是空间结构化的。全连接层的作用是将这些分散的、空间化的特征整合成一个一维向量,然后通过学习权重,将这些高级特征组合起来,做出最终的分类决策。

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐