深度学习之卷积神经网络(9)经典卷积网络

2023-11-18

深度学习之卷积神经网络(9)经典卷积网络


 自2012年AlexNet [1]的提出以来,各种各样的深度卷积神经网络模型相继被提出,其中比较有代表性的有VGG系列 [2],GoogleLeNet系列 [3],ResNet系列 [4],DenseNet系列 [5]等,他们的网络层数整体趋势逐渐增多。以网络模型在ILSVRC挑战赛ImageNet数据集上面的分类性能表现为例,如下图所示,在AlexNet出现之前的网络模型都是浅层的神经网络,Top-5错误率均在25%以上,AlexNet8层的深层神经网络将Top-5错误率降低至16.4%,性能提升巨大,后续的VGG、GoogleNet模型继续将错误率降低至6.7%; ResNet的出现首次将网络层数提升至152层,错误率也降低至3.57%。

在这里插入图片描述

ImageNet数据及分类任务的模型性能


 本节将重点介绍这几种网络模型的特点。

[1] A. Krizhevsky, I. Sutskever 和 G. E. Hinton, “ImageNet Classification with Deep Convolutional Neural Networks,” 出处 Advances in Neural Information Processing Systems 25, F. Pereira, C. J. C. Burges, L. Bottou 和K. Q. Weinberger, 编辑, Curran Associates, Inc., 2012, pp. 1097-1105.
[2] K. Simonyan 和 A. Zisserman, “Very Deep Convolutional Networks for Large-Scale Image Recognition,” CoRR, 卷 abs/1409.1556, 2014.
[3] C. Szegedy, W. Liu, Y. Jia, P. Sermanet, S. Reed, D. Anguelov, D. Erhan, V. Vanhoucke 和 A. Rabinovich, “Going Deeper with Convolutions,” 出处 Computer Vision and Pattern Recognition (CVPR), 2015.
[4] K. He, X. Zhang, S. Ren 和 J. Sun,“Deep Residual Learning for Image Recognition,” CoRR, 卷 abs/1512.03385, 2015.
[5] G. Huang, Z. Liu 和 K. Q. Weinberger, “Densely Connected Convolutional Networks,”CoRR, 卷 abs/1608.06993, 2016.

1. AlexNet

 2012年,ILSVRC12挑战赛ImageNet数据集分类任务的冠军Alex Krizhevsky提出了8层的深度神经网络模型AlexNet,它接收输入为 224 × 224 224×224 224×224大小的彩色图片数据,经过五个卷积层和三个全连接层后得到样本属于1000个类别的概率分布。为了降低特征图的维度,AlexNet在1、2、5个卷积层后添加了Max Pooling层,如下图所示,网络的参数量达到了6000万个。为了能够在当时的显卡设备NVIDIA GTX 580(3GB显存)上训练模型,Alex Krizhevsky将卷积层、前两个全连接层等拆开在两块显卡上面分别训练,最后一层合并到一张显卡上面,进行反向传播更新。AlexNet在ImageNet取得了15.3%的Top-5错误率,比第二名在错误率上降低了10.9%。

在这里插入图片描述

AlexNet网络结构


 AlexNet的创新之处在于:

  • 层数达到了较深的8层;
  • 采用了ReLU激活函数,过去的神经网络大多采用Sigmoid激活函数,计算相对复杂,容易出现梯度弥散现象;
  • 引入Dropout层。Dropout提高了模型的泛化能力,防止过拟合。

2. VGG系列

 AlexNet模型的优越性能启发了业界朝着更深层的网络模型方向研究。2014年,ILSVRC14挑战赛ImageNet分类任务的亚军牛津大学VGG实验室提出了VGG11、VGG13、VGG16、VGG19等一系列的网络模型(如下图所示),并将网络深度最高提升至19层。

在这里插入图片描述

VGG系列网络结构配置


以VGG16为例。它接受 224 × 224 224×224 224×224大小的彩色图片数据,经过2个Conv-Conv-Pooling单元,和3个Conv-Conv-Conv-Pooling单元的堆叠,最后通过3层全连接层输出当前图片分别属于1000类别的概率分布,如下图所示。VGG16在ImageNet取得了7.4%的Top-5错误率,比AlexNet在错误率上降低了7.9%。

在这里插入图片描述

VGG16网络结构


 VGG系列网络的创新之处在于:

  • 层数提升至19层;
  • 全部采用更小的 3 × 3 3×3 3×3卷积核,相对于AlexNet中 7 × 7 7×7 7×7的卷积核,参数量更少,计算代价更低;
  • 采用更小的池化层 2 × 2 2×2 2×2窗口和步长 s = 2 s=2 s=2,而AlexNet中是步长 s = 2 s=2 s=2 3 × 3 3×3 3×3的池化窗口。

3. GoogleLeNet

 3×3的卷积核参数量更少,计算代价更低,同时在性能表现上甚至更优越,因此业界开始探索卷积核最小的情况: 1 × 1 1×1 1×1卷积核。如下图所示,输入为3通道的 5 × 5 5×5 5×5图片,与单个 1 × 1 1×1 1×1的卷积核进行卷积运算,每个通道的数据与对应通道的卷积核运算,得到3个通道的中间矩阵,对应位置相加得到最终的输出张量。对于输入shape为 [ b , h , w , c i n ] [b,h,w,c_{in}] [b,h,w,cin] 1 × 1 1×1 1×1卷积层的输出为 [ b , h , w , c o u t ] [b,h,w,c_{out}] [b,h,w,cout],其中 c i n c_{in} cin为输入数据的通道数, c o u t c_{out} cout为输出数据的通道数,也是 1 × 1 1×1 1×1卷积核的数量。 1 × 1 1×1 1×1卷积核的一个特别之处在于,它可以不改变特征图的狂傲,而只对通道数 c c c进行变换。

在这里插入图片描述

1×1卷积核示意图


 2014年,ILSVGC14挑战赛的冠军Google提出了大量采用 3 × 3 3×3 3×3 1 × 1 1×1 1×1卷积核的网络模型: GoogleLeNet,网络层数达到了22层[3]。虽然GoogleLeNet的层数远大于AlexNet,但是它的参数量却只有AlexNet的 1 12 \frac{1}{12} 121,同时性能也远好于AlexNet。在ImageNet数据集分类任务上,GoogleNet取得了6.7%的Top-5错误率,比VGG16在错误率上降低了0.7%。

 GoogleLeNet网络采用模块化设计思想,通过大量堆叠Inception模块,形成了复杂的网络结构。如下图所示,Inception模块的输入为 X \boldsymbol X X,通过4个子网络得到4个网络输出,在通道轴上面进行拼接合并,形成Inception模块的输出。这4个子网络是:

  • 1 × 1 1×1 1×1卷积层。
  • 1 × 1 1×1 1×1卷积层,再通过一个 3 × 3 3×3 3×3卷积层。
  • 1 × 1 1×1 1×1卷积层,再通过一个 5 × 5 5×5 5×5卷积层。
  • 3 × 3 3×3 3×3最大池化层,再通过 1 × 1 1×1 1×1卷积层。


    在这里插入图片描述
Inception模块


 GoogleLeNet的网络结构如下图所示,其中红色框中的网络结构即为上图所示的网络结构。

在这里插入图片描述

GoogleLeNet网络结构
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

深度学习之卷积神经网络(9)经典卷积网络 的相关文章

随机推荐

  • Linux命令基础

    一 Linux命令新手 cd 意思是到上一级目录 cd 意思是返回到上次的目录 类似windows返回 cd 意思是回到根目录 1 增 使用mkdir 命令创建文件夹 先使用命令 cd home 意思是打开home目录 再使用命令 ls 意
  • oracle数据库 创建用户 并授权访问

    oracle数据库 创建用户 并授权访问 create user USER TEST 1 identified by USER TEST 1 创建用户 设置密码 grant connect to USER TEST 1 授权 连接 gran
  • 零经验也可以入职大厂吗,毕业生的第一份实习如何成功逆袭?

    很多小伙伴在找实习的时候都遇到了一个拷问灵魂深处的问题 第一次找实习 面试官嫌弃没有相关经验 应该怎么办 不管是刚回国的留学生还是没有经验的大二大三在校学生 在找实习的时候 很多企业连一个 第一次 的机会都不会给 在筛选简历时直接pass掉
  • Android实现支付宝支付遇到的问题记录--主要是和服务器的合作上

    一 已解决 1 客户端需要处理的很简单 跟服务器接口要带有签名的商品信息 即支付宝api需要的入参 2 服务器的联合排查工作 由于服务器工作较忙 需要联合定位 且自己对php不了解 过程比较头疼和耗时 主要出现两个问题 1 ALI64 解决
  • IOS开发笔记 - 基于wsdl2objc调用webservice

    为了方便在ios下调用webserivce 找来了wsdl2objc这样一个开源的框架来解析webservice方便在ios下引用 下面做个小例子 1 首先是用Asp net搭建一个测试的webserivce并放在IIS服务器上面 核心代码
  • Android篇——使用第三方视频框架GSYVideoPlayer时,报错:the sensor listeners size has exceeded the maximum limit 128

    背景 在列表 ListView RecyclerView 中使用GSYVideoPlayer播放视频时 闪退报错the sensor listeners size has exceeded the maximum limit 128 原因是
  • MySQL基础篇--自用笔记

    MySQL基础篇 数据库相关概念 名称 全称 简称 数据库 存储数据的仓库 数据是有组织的进行存储 DataBase DB 数据库管理系统 操纵和管理数据库的大型软件 DataBase Management System DBMS SQL
  • QT中使用 QProcess接口 执行 fmmpeg命令,实现简单的音视频处理

    QProcess 介绍 QProcess 是 Qt 框架中用于启动外部进程和与之进行交互的类 它提供了一个方便的接口 允许你执行外部命令并捕获其输出 错误信息以及监控其运行状态 通过使用 QProcess 类 你可以在你的 Qt 应用程序中
  • 安装程序的原理与制作

    安装程序其实很简单 但却是很多软件特别是商业软件不可缺少的重要组成部分 在linux这个开源的世界中大部分软件都是源码发布的 下载下来一个configure make make install就完事了 在或者在不同平台上达成rpm或者deb
  • 如何用Python实现支持向量机(SVM)?

    SVM支持向量机是建立于统计学习理论上的一种分类算法 适合与处理具备高维特征的数据集 SVM算法的数学原理相对比较复杂 好在由于SVM算法的研究与应用如此火爆 CSDN博客里也有大量的好文章对此进行分析 下面给出几个本人认为讲解的相当不错的
  • 在IDEA中使用Scala

    1 本地下载Scala安装包 解压到指定路径 2 配置环境变量 1 新增系统环境变量 此电脑 右键 属性 高级系统设置 环境变量 系统变量 新建 SCALA HOME 2 配置PATH环境变量新增 SCALA HOME bin 3 配置CL
  • 进程的描述与组织

    1 1 1进程的资源 进程需要一定资源才能运行 最重要的资源是内存地址空间 此外还可能需要使用文件 设备等 这些资源均由内核负责管理和分配 分配给进程的资源登记在进程的PCB中 1 进程的地址空间 进程的一个重要构成成分是进程映像 即进程所
  • VS CODE 配色HBuilderX 雅蓝主题

    VS CODE 自配色HBuilderX 雅蓝主题 VS CODE 和 HBuilderX都是优秀的前端编辑器 对于个人而言 喜欢code 的插件和功能 喜欢HBuilderX的雅蓝主题UI 那怎么办呢 网上找了很久也只找到一篇code别的
  • 基础算法【算法习题及模板】下

    目录 前缀和与差分 前缀和 子矩阵的和 差分 差分矩阵 双指针算法 最长连续不重复子序列 数组元素的目标和 判断子序列 位运算 二进制中1的个数 离散化 区间和 区间合并 前缀和与差分 前缀和 输入一个长度为n的整数序列 接下来再输入 m个
  • ubuntu 防火墙简单设置攻略

    ufw是一个主机端的iptables类防火墙配置工具 比较容易上手 一般桌面应用使用ufw已经可以满足要求了 安装方法 sudo apt get install ufw 当然 这是有图形界面的 比较简陋 在新立得里搜索gufw试试 使用方法
  • Python提取pdf所有页面为图片(PyPDF2 + PhthonMagick + GS方法)

    主要参考 https blog csdn net sweeper freedoman article details 53000145 以下是在Python3 6 64位环境下 Anaconda3安装的 操作 1 下载PyPDF2源代码 再
  • Android与Unity3D交互。启动UnityActivity出现黑屏、第一次要加载、第二次则秒开

    Android工程 新建两个类 MyUnityPlayerActivity MyUnityPlay import android app Activity import android content res Resources impor
  • 1034 Head of a Gang (30 分)

    题目 题目链接 题解 并查集 注意坑点 帮派的人数必须大于2 代码 include
  • 网络安全工程师是做什么的?

    顾名思义 网络安全工程师主要是维护网络的安全和稳定 对网页篡改 计算机病毒 系统非法入侵 数据泄密 网站欺骗 服务瘫痪 漏洞非法利用等信息安全事件进行维护 从社会角度来看 网络安全工程师在维护个人信息安全和解开黑客攻击上发挥着巨大的作用 是
  • 深度学习之卷积神经网络(9)经典卷积网络

    深度学习之卷积神经网络 9 经典卷积网络 1 AlexNet 2 VGG系列 3 GoogleLeNet 自2012年AlexNet 1 的提出以来 各种各样的深度卷积神经网络模型相继被提出 其中比较有代表性的有VGG系列 2 Google