【深度学习】嘿马深度学习系统性知识教程第8篇:卷积神经网络,3.3 经典分类网络结构【附代码文档】

举报
程序员一诺python 发表于 2025/09/16 21:52:18 2025/09/16
【摘要】 1.1 深度学习介绍 深度学习与神经网络 1.2 神经网络基础 1.3 浅层神经网络 2.1 多分类与 TensorFlow 5、得出每次训练的准确率(通过真实值和预测值进行位置比较,每个样本都比较) 2.2 梯度下降算法改进 2.3.4 其它正则化方法 2.4 BN 与神经网络调优 3.1 图像数据与边缘检测 3.2 卷积神经网络(CNN)原理 3.3 经典分类网络结构 4.

🏆🏆🏆教程全知识点简介:1.1 深度学习介绍 深度学习与神经网络 1.2 神经网络基础 1.3 浅层神经网络 2.1 多分类与 TensorFlow 5、得出每次训练的准确率(通过真实值和预测值进行位置比较,每个样本都比较) 2.2 梯度下降算法改进 2.3.4 其它正则化方法 2.4 BN 与神经网络调优 3.1 图像数据与边缘检测 3.2 卷积神经网络(CNN)原理 3.3 经典分类网络结构 4.1 循环神经网络 4.1.4 GRU(门控循环单元) 4.1.5 LSTM(长短记忆网络) 4.2 词嵌入与 NLP 学习目标 4.2.2 词嵌入 4.2.3 Word2Vec案例 4.3 seq2seq 与 Attention机制 4.3.2 注意力机制 4.3.3 机器翻译案例 4.3.4 集束搜索(Beam Search) 4.3.5 BLEU-机器翻译的自动评估方法 4.7.3.6 完整代码 5.1 生成对抗网络(GAN) 5.2 自动编码器


📚📚👉👉👉本站这篇博客:   https://bbs.huaweicloud.com/blogs/457828    中查看

📚📚👉👉👉本站这篇博客:   https://bbs.huaweicloud.com/blogs/454418    中查看

📚📚👉👉👉本站这篇博客:   https://bbs.huaweicloud.com/blogs/457828    中查看

✨ 本教程项目亮点

🧠 知识体系完整:覆盖从基础原理、核心方法到高阶应用的全流程内容
💻 全技术链覆盖:完整前后端技术栈,涵盖开发必备技能
🚀 从零到实战:适合 0 基础入门到提升,循序渐进掌握核心能力
📚 丰富文档与代码示例:涵盖多种场景,可运行、可复用
🛠 工作与学习双参考:不仅适合系统化学习,更可作为日常开发中的查阅手册
🧩 模块化知识结构:按知识点分章节,便于快速定位和复习
📈 长期可用的技术积累:不止一次学习,而是能伴随工作与项目长期参考


🎯🎯🎯全教程总章节


🚀🚀🚀本篇主要内容

卷积神经网络

了解卷积神经网络的构成
记忆卷积的原理以及计算过程
了解池化的作用以及计算过程
知道LeNet-5网络结构
了解经典的分类网络结构
知道NIN中1x1卷积原理以及作用
知道Inception的作用
了解迁移学习以及技巧
应用卷积神经网络进行手势识别

3.3 经典分类网络结构

学习目标

  • 目标

  • 知道LeNet-5网络结构

  • 了解经典的分类网络结构
  • 知道一些常见的卷机网络结构的优化

    • 知道NIN中1x1卷积原理以及作用
    • 知道Inception的作用
  • 了解卷积神经网络学习过程内容

  • 应用

下面 主要以一些常见的网络结构去解析,并介绍大部分的网络的特点。这里看一下卷积的发展历史图。

3.3.1 LeNet-5解析

首先 从一个稍微早一些的卷积网络结构LeNet-5(这里稍微改了下名字),开始的目的是用来识别数字的。从前往后介绍完整的结构组成,并计算相关输入和输出。

[Python 官方文档]

3.3.1.1 网络结构

  • 激活层默认不画网络图当中,这个网络结构当时使用的是sigmoid和Tanh函数,还没有出现Relu函数
  • 将卷积、激活、池化视作一层,即使池化没有参数

3.3.1.2 参数形状总结

shape size parameters
Input (32,32,3) 3072 0
Conv1(f=5,s=1) (28,28,6) 4704 450+6
Pool1 (14,14,6) 1176 0
Conv2(f=5,s=1) (10,10,16) 1600 2400+16
Pool2 (5,5,16) 400 0
FC3 (120,1) 120 48000+120
FC4 (84,1) 84 10080+84
Ouput:softmax (10,1) 10 840+10
  • 中间的特征大小变化不宜过快

事实上,在过去很多年,许多机构或者学者都发布了各种各样的网络,其实去了解设计网络最好的办法就是去研究现有的网络结构或者论文。大多数网络设计出来是为了Image Net的比赛(解决ImageNet中的1000类图像分类或定位问题),后来大家在各个业务上进行使用。

3.3.2 AlexNet

2012年,Alex Krizhevsky、Ilya Sutskever在多伦多大学Geoff Hinton的实验室设计出了一个深层的卷积神经网络AlexNet,夺得了2012年ImageNet LSVRC的冠军,且准确率远超第二名(top5错误率为15.3%,第二名为26.2%),引起了很大的轰动。AlexNet可以说是具有历史意义的一个网络结构。

  • 总参数量:60M=6000万,5层卷积+3层全连接
  • 使用了非线性激活函数:ReLU
  • 防止过拟合的方法:Dropout,数据扩充(Data augmentation)
  • 批标准化层的使用

3.3.3 卷积网络结构的优化

[asyncio 文档]

3.3.3.1 常见结构特点

整个过程:AlexNet—NIN—(VGG—GoogLeNet)—ResNet

  • NIN:引入1 * 1卷积
  • VGG,斩获2014年分类第二(第一是GoogLeNet),定位任务第一。

  • 参数量巨大,140M = 1.4亿

  • 19layers
  • VGG 版本

    • VGG16
    • VGG19

[pytz 文档]

  • GoogleNet,2014年比赛冠军的model,这个model证明了一件事:用更多的卷积,更深的层次可以得到更好的结构。(当然,它并没有证明浅的层次不能达到这样的效果)

[Plotly Python]

  • 500万的参数量
  • 22layers
  • 引入了Inception模块
    • Inception V1
    • Inception V2
    • Inception V3
    • Inception V4

[datetime 文档]

  • 下面 将针对卷积网络架构常用的一些结构进行详细分析,来探究这些结构带来的好处

3.3.4 Inception 结构

[GeeksforGeeks Python]

首先 要说一下在Network in Network中引入的1 x 1卷积结构的相关作用

3.3.4.1MLP卷积(1 x 1卷积)

  • 目的:提出了一种新的深度网络结构,称为“网络中的网络”(NIN),增强接受域内局部贴片的模型判别能力。
  • 做法

  • 对于传统线性卷积核:采用线性滤波器,然后采用非线性激活。

  • 提出MLP卷积取代传统线性卷积核

  • 作用或优点:

  • 1、多个1x1的卷积核级联加上配合激活函数,将feature map由多通道的线性组合变为非线性组合(信息整合),提高特征抽象能力(Multilayer Perceptron,缩写MLP,就是一个多层神经网络)

  • 2、1x1的卷积核操作还可以实现卷积核通道数的降维和升维,实现参数的减小化

3.3.4.2 1 x 1卷积介绍

从图中,看到1 x 1卷积的过程,那么这里先假设只有3个1x1Filter,那么最终结果还是56x56x3。但是每一个FIlter的三个参数的作用

  • 看作是对三个通道进行了线性组合。

甚至可以把这几个FIlter可以看成就是一个简单的神经元结构,每个神经元参数数量与前面的通道数量相等。

  • 通常在卷积之后会加入非线性激活函数,在这里之后加入激活函数,就可以理解成一个简单的MLP网络了。

图片无法加载

[Psycopg2 文档]

[Programiz Python]

3.3.4.3 通道数变化

那么对于1x1网络对通道数的变化,其实并不是最重要的特点,因为毕竟3 x 3,5 x 5都可以带来通道数的变化,

而1x1卷积的参数并不多, 拿下面的例子来看。

  • 保持通道数不变
  • 提升通道数
  • 减少通道数

3.3.4.4 Inception层

[paramiko 文档]

这个结构其实还有名字叫盗梦空间结构。

  • 目的:

  • 代替人手工去确定到底使用1x1,3x3,5x5还是是否需要max_pooling层,由网络自动去寻找适合的结构。并且节省计算。

  • 特点

  • 是每一个卷积/池化最终结果的长、宽大小一致

  • 特殊的池化层,需要增加padding,步长为1来使得输出大小一致,并且选择32的通道数
  • 最终结果28 x 28 x 256

    • 使用更少的参数,达到跟AlexNet或者VGG同样类似的输出结果

3.3.4.5 Inception改进

[Pillow 文档]

改进目的:减少计算,如5 x 5卷积那的运算量

  • 上面的参数:5 x 5 x 32 x 192 =153600
  • 下面的参数:192 x 16 + 5 x 5 x 16 x 32 = 3072 + 12800 = 15872

所以上面的结构会需要大量的计算, 把这种改进的结构称之为网络的"瓶颈",网络缩小后扩大。

那么这样改变会影响网络的性能和效果吗?

GoogleNet就是如此,获得了非常好的效果。所以合理的设计网络当中的Inception结构能够减少计算,实现更好的效果。

3.3.4.6 GoogleNet结构(了解)

其中包含了多个Inception结构。

完整结构:

3.3.5 卷积神经网络学习特征可视化

肯定会有疑问真个深度的卷积网络到底在学习什么?可以将网络学习过程中产生的特征图可视化出来,并且对比原图来看看每一层都干了什么。

  • 可视化案例使用的网络

![](https://fileserver.developer.huaweicloud.com/FileServer/getFile/communitytemp/20250916/community/383/461/571/0001696944383461571.20250916135127.01091660453297143875773621912970:20250916145128:2415:F5F1A

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。