神经网络之卷积神经网络

一、卷积神经网络概述:

  • 传统的多层感知机每个神经元都与上一层的所有神经元相连接,因此拥有大量超参数。而卷积神经网络(CNN)引入了卷积层和池化层的结构,帮助减少了参数数量,提高了网络的拟合能力和泛化能力。
  • CNN是为了更好地处理高维数据、保留空间结构信息并减少参数数量而设计的。
    在这里插入图片描述

1.卷积层:

1.1卷积核与神经元:

  • 一个卷积核可以被看作是一个神经元的参数,而该神经元通过其卷积核来进行卷积操作以提取特征,并将这些特征作为该神经元的输出。这个输出特征图随后可以作为下一层卷积层或全连接层的输入
  • 同时每个神经元的卷积核作为参数通过反向传播进行更新。

1.2卷积层作用:

  • 特征提取:卷积操作可以提取输入数据的特征,通过滤波器(卷积核)对输入数据进行卷积操作,从而捕捉到图像或其他数据中的局部特征
  • 参数共享:每个卷积核在整个输入数据的不同位置进行卷积操作时使用的是相同的权重,这种参数共享的方式有助于减少参数数量,提高模型的泛化能力。
  • 保留空间结构信息:卷积操作通过卷积核在输入数据上按位置进行卷积,并且输出也是按位置对应的,这样可以保持输入数据的空间结构,有助于捕捉数据中的空间关系。

1.3多通道概念:

一个神经元对应一个卷积核,同一隐藏层的多个神经元会使用各自的卷积核对输入数据进行特征提取,从而得到不同的输出特征图每个特征图对应一个通道,多个神经元提取的各自不同的特征图构成了多通道
如上图所示,该隐藏层为三通道输出,即从三个方面提取到了数据的特征。

2.池化层:

2.1池化层作用:

  • 降维和减少参数:池化操作通过对输入数据进行采样和汇聚,有效减少特征图的大小,减少计算量和参数数量,有助于防止过拟合。
  • 平移不变性:池化操作可以使特征对位置的变化更加稳定,即使输入数据发生平移,模型也能够提取到相同的特征或者对象。这使得模型对于位置的微小变化更加鲁棒,提高模型的泛化能力。(举例来说,假设我们有一张狗的图片,当在这张图片左上角提取到一只狗,那么不管狗的位置上下左右如何变化,依然能够提取到这只狗。)
  • 增强特征(Feature Map):通过池化操作,可以更加突出重要的特征,保留主要的特征信息(最大池化中,将每个区域内的最大值作为输出),有助于提高模型对于关键特征的识别能力。

3.隐藏层与卷积层、池化层关系:

隐藏层是指除输入层和输出层以外的所有层,用来进行中间数据的处理和特征的抽取。因此:一个卷积层就是一个隐藏层,一个池化层也是一个隐藏层。
其中,卷积层的参数为卷积核和偏置项,池化层不包含可学习的参数,在最大池化中,它在每个池化窗口内选择最大值作为输出;而在平均池化中,它在每个池化窗口内计算平均值作为输出。

相关推荐

  1. 神经网络

    2024-07-19 19:08:07       40 阅读
  2. 神经网络

    2024-07-19 19:08:07       34 阅读
  3. 神经网络

    2024-07-19 19:08:07       26 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-19 19:08:07       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-19 19:08:07       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-19 19:08:07       58 阅读
  4. Python语言-面向对象

    2024-07-19 19:08:07       69 阅读

热门阅读

  1. 基于Qsetting的ini类

    2024-07-19 19:08:07       19 阅读
  2. redhat 7服务管理

    2024-07-19 19:08:07       17 阅读
  3. Hystrix参数踩坑

    2024-07-19 19:08:07       22 阅读
  4. redis消息队列

    2024-07-19 19:08:07       15 阅读
  5. UpdateFaculty

    2024-07-19 19:08:07       20 阅读
  6. LC-3 汇编语言实现简易四子棋

    2024-07-19 19:08:07       18 阅读
  7. 浅谈:网络协议及网络连接

    2024-07-19 19:08:07       19 阅读
  8. 带有致命Bug的B-树代码(用C++/Python/Rust还原)

    2024-07-19 19:08:07       20 阅读
  9. 无极与有极电容的区别

    2024-07-19 19:08:07       20 阅读
  10. Flutter 中的基本数据类型:num、int 和 double

    2024-07-19 19:08:07       18 阅读
  11. Docker 常用命令详解

    2024-07-19 19:08:07       25 阅读
  12. 将AWS RDS MySQL实例从存储未加密改为加密的方案

    2024-07-19 19:08:07       24 阅读
  13. C++设计模式

    2024-07-19 19:08:07       18 阅读