当前位置: 首页 > news >正文

深度学习之卷积神经网络

一 背景导入

在之前我们对图像做一些识别和分类的时候,我们的做法通常是,把图像像素点拉成一个一维的,然后对这个进行分类,这样对图片要求比较苛刻,例如,我们识别的图像要识别的主题必须要处于图片的中心,而且颜色鲜艳程度必须相同。例如下面

这图中展示的是一个陶瓷像,虽然一直是一个东西,但是在处理的过程中会大有不同。所以这时我们导入了一个卷积神经网络。一个专门用于识别图像的算法。

传统机器学习图像识别

我们可以看到同样的一个图像识别的结果并不相同。

二 卷积神经网络

卷积

卷积的相乘并不是像矩阵那样,卷积就是点对点的相乘,然后把相乘的结果相加,这样就把这一个矩阵的特征给提取出来了。如下图所示

卷积效果

如下图所示,所展示的卷积效果,不同的卷积核会有不同的卷积效果,看到这里如果看过我opencv的小伙伴可能就知道了,卷积核就是一种滤波。

池化层

池化层分为最大池化,平均池化,全局最大池化,全局平均池化。

平均池化(average pooling):计算图像区域的平均值作为该区域池化后的值。

最大池化(max pooling):选图像区域的最大值作为该区域池化后的值。是最为常见的。

通常来说,CNN的卷积层之间都会周期性地插入池化层。

下面举出一个最大池化的示例来讲述。

这里是最大池化,池化核为2x2的,步长为2.感觉这个也和滤波好像。

卷积神经网络的大致框架

讲完上面几种,下面我们来学习一下卷积神经网络的大致框架,卷积神经网络就是由上面讲述的组合而成。首先我先来讲解下我自己的理解:卷积神经网络就是输入层->卷积层卷积->激活层激活->池化层池化.......(反复几次,调整卷积核的尺寸)........->全连接层连接。这样就是一个卷积神经网络。下面我给出神经网络的几个经典网络。

经典神经网络

1. LeNet-5

总层数​:7层(3卷积 + 2池化 + 2全连接)

  • 输入层​:32×32 灰度图像
  • C1卷积层​:6个5×5卷积核 → 输出6张28×28特征图
  • S2池化层​:2×2平均池化 → 输出6张14×14特征图
  • C3卷积层​:16个5×5卷积核(部分连接) → 输出16张10×10特征图
  • S4池化层​:2×2平均池化 → 输出16张5×5特征图
  • C5卷积层​:120个5×5卷积核 → 输出120个1×1特征图(等效全连接)
  • F6全连接层​:84个神经元
  • 输出层​:10个神经元(径向基函数,现多改用Softmax)
    备注​:首个实用化CNN,奠定“卷积-池化-全连接”基础架构。

2. AlexNet

总层数​:8层(5卷积 + 3全连接)

  • 输入层​:227×227×3 RGB图像(原论文为224×224)
  • 卷积层C1-C5​:
    • C1:96个11×11卷积核(步长4)
    • C2:256个5×5卷积核(填充2)
    • C3-C4:各384个3×3卷积核
    • C5:256个3×3卷积核
  • 池化层​:3个最大池化(3×3,步长2),位于C1、C2、C5后
  • 全连接层FC6-FC8​:
    • FC6/FC7:各4096个神经元(含Dropout)
    • FC8:1000个神经元(ImageNet分类输出)
      创新点​:首次引入ReLU、Dropout、多GPU训练,开启深度学习复兴。

3. VGGNet

总层数​:16层(VGG-16)或19层(VGG-19)

  • 输入层​:224×224×3 RGB图像
  • 卷积层​:13层(VGG-16)或16层(VGG-19),全部使用3×3卷积核(步长1,填充1)
  • 池化层​:5个最大池化(2×2,步长2),每阶段后降采样
  • 全连接层​:3层(FC1/FC2各4096神经元,FC3输出1000类)
    设计思想​:通过堆叠小卷积核增加深度,提升特征提取能力,参数量达1.38亿(90%来自全连接层)。

4. GoogLeNet (Inception v1)​

总层数​:22层(含9个Inception模块)

  • 初始卷积层​:7×7卷积(步长2) → 最大池化
  • Inception模块​:9个(如3a、3b、4a等),每模块含4分支:
    • 1×1卷积
    • 1×1卷积 → 3×3卷积
    • 1×1卷积 → 5×5卷积
    • 3×3最大池化 → 1×1卷积
  • 辅助分类器​:2个(训练时加权融合损失)
  • 输出层​:全局平均池化 → 全连接层(Softmax)
    核心创新​:多尺度特征融合,1×1卷积降维减少计算量,参数量仅500万。

5. ResNet

总层数​:按变体区分(如ResNet-18/34/50/101)

  • 输入层​:224×224×3 RGB图像
  • 初始卷积层​:7×7卷积(步长2) → 最大池化
  • 残差阶段​:4个(Stage 1-4),每阶段含多个残差块:
    • ResNet-18/34​:基础残差块(2个3×3卷积)
      • ResNet-18:各阶段残差块数 [2, 2, 2, 2] → 共18层
      • ResNet-34:各阶段残差块数 [3, 4, 6, 3] → 共34层
    • ResNet-50/101/152​:瓶颈残差块(1×1降维 → 3×3卷积 → 1×1升维)
      • ResNet-50:各阶段残差块数 [3, 4, 6, 3] → 共50层
  • 输出层​:全局平均池化 → 全连接层
    突破性设计​:跳跃连接解决梯度消失,支持超深网络训练(如ResNet-152)。

细节讲解

1 输入层

        
输入层接收原始图像数据。图像通常由三个颜色通道(红、绿、蓝)组成,形成一个二维矩阵,表示像素的强度值。

2 卷积和激活


卷积层将输入图像与卷积核进行卷积操作。然后,通过应用激活函数(如ReLU)来引入非线性。这一步使网络能够学习复杂的特征。

3 池化层


池化层通过减小特征图的大小来减少计算复杂性。它通过选择池化窗口内的最大值或平均值来实现。这有助于提取最重要的特征。

4 多层堆叠


CNN通常由多个卷积和池化层的堆叠组成,以逐渐提取更高级别的特征。深层次的特征可以表示更复杂的模式。

5 全连接和输出        


最后,全连接层将提取的特征映射转化为网络的最终输出。这可以是一个分类标签、回归值或其他任务的结果。

http://www.dtcms.com/a/351524.html

相关文章:

  • 组件版本升级 - MySQL_8.4对比MySQL_8.0
  • 用 mem0 构建一个简单的 AI Healthcare 助手
  • 基于Vue通用组件定制化的场景解决
  • UNet改进(35):基于WGAM模块的PyTorch实战
  • Qt在Linux下编译发布 -- linuxdeployqt的使用
  • 第十九节:阴影进阶 - 软阴影与性能平衡技术
  • FileMenu Tools for Win:突破 Windows 文件管理困境的利器
  • Git:基本使用
  • 数字化转型三阶段:从信息化、数字化到数智化的战略进化
  • Leetcode+Java+动态规划II
  • 知行——同为科技24周年庆典
  • Thingsboard 租户管理员权限,增加租户普通用户权限
  • Go errgroup:高效并发控制与错误处理
  • WPF基于LiveCharts2图形库,实现:折线图,柱状图,饼状图
  • 03. 协程入门_Android异步处理机制
  • 系统架构设计师备考第7天——网络协议中间件软件构件
  • WebSocket简单了解
  • 线性代数之深入理解旋转矩阵
  • lesson46-2:Linux 高级指令全解析:从文件操作到系统管理
  • mybatisplus 配置二级缓存
  • 【系统编程】线程简介
  • 【人工智能】2025年AI代理开源革命:社区驱动的智能体生态重塑未来
  • Linux--seLinux的概述
  • FRET、PLA、Co-IP和GST pull-down有何区别? 应该如何选择?
  • 原型模式系统开发中的原型分类全景:水平、垂直、抛弃式与演化式
  • nvm切换node版本之后报错,无法将“node”项识别为 cmdlet、函数、脚本文件或可运行程序的名称
  • 嵌入式C语言进阶:结构体封装函数的艺术与实践
  • IUV5G专网排障(上)
  • 支持向量机(SVM)学习笔记
  • SOME/IP服务发现PRS_SOMEIPSD_00277的解析