• AlexNet
    • 网络结构
    • 多GPU
    • Relu
    • Dropout
    • 层叠池化
    • 图片的随机采样
    • 其他
  • VGGNet
    • 网络结构
    • 3*3 卷积核
    • 1*1 卷积核
    • LRN
    • 其他
  • ResNet
    • 退化问题
    • 残差学习
    • 残差网络子结构
    • 网络结构
  • reference

AlexNet

网络结构

  • 输入层: 224 * 224, 3通道
  • 第一层卷积: 96个11 * 11的卷积核, stride 是 4
    • 可以利用计算公式 输出大小 = (输入大小 - 卷积核大小 + padding) / stride + 1 来计算
    • 参数数目: 3 * 11 * 11 * 96
  • 第二层卷积: 256个5*5的卷积核
  • 第二层Max pooling
  • 第一层全连接: 4096
  • 第二层全连接: 4096
  • 输出层: 1000个数的向量, 表示总共1000种类别的概率值

多GPU

结构图中可以看到模型分为了上下两部分, 两部分分别用一个GPU来运算, 可以提高运行速度, 因此也可以增大网络的规模

Relu

数学表达
f ( x ) = m a x ( 0 , x ) f(x) = max(0, x) f(x)=max(0,x)
使用 Relu 训练速度更快

Dropout


每一运算都会随机地将一些神经元置为 0
Dropout 用在了全连接层上, 因为全连接层的参数较多(4096 * 4096), 容易过拟合
AlexNet 中设置的 Dropout = 0.5

工作原理:

  • 每次 Dropout 都相当于训练一个原来的网络的子网络, 最后的结果相当于很多子网络的组合, 所以训练的效果会好些
  • 模型的泛化能力差的原因在于神经元记住了训练的样本, 要记住样本的特征显然需要多个神经元, 而 Dropout 是随机选择神经元的, 能够消除神经元之间的依赖关系, 增强泛化能力
  • Dropout 也相当于数据增强

层叠池化

AlexNet 中使用的是 Overlapping Max Pooling, 池化的窗口每次移动的步长小于它的长度
AlexNet 使用的是 3 * 3 的正方形, 每次移动步长为 2, 重叠池化可以避免过拟合
但其实也可以用步长较大的卷积层代替

图片的随机采样

图片的原大小是[256, 256], 但是输入图片的大小为[224, 224], 每次只输入图像的一部分, 每次取原来图像的一部分, 相当于换了一个角度看图片, 也相当于增加了训练的数据(数据增强), 训练出来的模型泛化能力会更强

其他

  • SGD momentum = 0.9 动量梯度下降
  • Batch size = 128
  • Learning rate = 0.01, 每训练一定次数, 学习率缩小10倍
  • 训练读多个CNN模型, 然后做投票ensemble

VGGNet

Very Deep Convolutional Networks

网络结构

  • 每经过一个pooling层, 通道数目翻倍, 因为pooling会丢失某些信息, 所以通过增加通道数来弥补, 但是增加到512后, 便不再增加了, 可能是考虑到算力, 内存的问题
  • FC全连接层, 最后输出的是1000个类的分类结果
  • 看D, E, 加卷积层都是在后面加, 因为前面的图片太大, 运算起来太耗时, maxpooling后, 神经图变小
  • 纵向地看, 可以看到神经网络是由浅到深的. VGGNet采用递进式训练, 可以先训练浅层网络A, 然后用A初始化好的参数去训练后面深层的网络

3*3 卷积核


如图所示, 2层的 3*3 卷积核可以替代1层的 5*5 卷积核 (步长为1)

  • 两种方式的视野域是一样的, 输入输出格式都不变
  • 2层比1层多一次非线性变化, 网络深度增加也能够保证学习更复杂的模式
  • 采用堆积的小卷积核还可以减少参数数目, 还是拿上图举例(一个绿色方形代表一个参数), 假定输入输出通道数都是 C C C, 那么两层结构的参数数目为 2*3*3* C 2 C^2 C2, 单层结构的参数数目是 5*5* C 2 C^2 C2, 多了28%的数目

如果上面两张图不能理解可以结合一下这张神图
(左边一列表示输入, 通道数3, 中间两列就是参数, 两个神经元, 右边是输出, 通道数2, 总共3*3*3*2个参数)

1*1 卷积核

  • 1*1卷积核不改变长宽, 只改变通道数
  • 1*1卷积核相当于通道间的非线性变化
  • 可以对通道数降维, 同时不损失信息
    • 比如原来是32*32*100, 经过1*1*20的卷积后得到32*32*20

LRN

局部归一化, 把相邻的几个通道进行归一化
快过时了

其他

  • 多尺度输入: AlexNet中也有用到(就是从不同的角度看图片), VGGNet做的更极端, 它随机使用不同的尺度缩放训练多个分类器, 然后做ensemble

ResNet

Residual Network

退化问题


VGGNet中我们可以看出深度对于神经网络的重要性, 但从图中可以看出网络深度达到一定程度时, 深层网络的总体表现不如浅层网络, 这种现象称为退化问题(degradation problem)
为什么会这样?
如果是因为梯度消失, 梯度爆炸, 可以通过中间层标准化(batch normalization)等缓解
也不是过拟合造成的, 因为训练集上深层网络也不如浅层的

可能是因为网络越深, 参数越多, 优化也就更难

ResNet的提出就是为了解决这种退化问题

残差学习

  • Identity: 恒等变换, shortcuts, 没有引入额外的参数, 不会增加计算复杂性
  • H ( x ) H(x) H(x): 期望的结果
  • F ( x ) = H ( x ) − x F(x) = H(x)-x F(x)=H(x)−x, 为残差 (残差定义: 数理统计上, 残差表示实际观测值与估计值(拟合值)的差, 蕴含模型的重要信息.), F F F通常包括卷积, 激活等操作, 上图是2层网络, 当然也可以更多层, 如果只有1层, 就退化为线性

H ( x ) − x H(x)-x H(x)−x对 x x x求偏导后会有一个恒等项1, 使用链式法则求导时,

残差网络子结构

网络结构

下图为VGG-19, 34层的普通卷积神经网络, 34层的ResNet网络的对比图

  • conv1: 普通卷积层, 步长是2
  • 经过3*3的maxpooling层, 就是一堆残差网络结构
  • 深层网络相对于浅层网络主要是在conv4层增加了更多层
  • 最后只有一个全连接层, 所以参数数目会少, 可以加到卷积层上

reference

  • AlexNet: Sunita Nayak, https://www.learnopencv.com/understanding-alexnet/
  • ResNet: nowgood, https://www.cnblogs.com/nowgood/p/resnet.html
  • ResNet: Kaiming He, https://developer.aliyun.com/article/176771
  • ResNet: 木瓜子, https://zhuanlan.zhihu.com/p/43200566
  • ResNet 论文: Kaiming He, https://www.cv-foundation.org/openaccess/content_cvpr_2016/papers/He_Deep_Residual_Learning_CVPR_2016_paper.pdf
  • KOUSTUBH, https://cv-tricks.com/cnn/understand-resnet-alexnet-vgg-inception/

AlexNet VGGNet ResNet 对比 简介相关推荐

  1. DL之VGGNet:VGGNet算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略

    DL之VGGNet:VGGNet算法的简介(论文介绍).架构详解.案例应用等配图集合之详细攻略 目录 VGG系列神经网络算法简介 1.网络架构 2.实验结果 VGG系列神经网络的架构详解 VGG系列集 ...

  2. 卷积神经网络AlexNet和ResNet比较[2021论文]

    本文是一篇人工智能前沿算法课设小论文,主要内容是对于经典模型AlexNet和ResNet的比较.整体上比较完整,由于是从文档上搬上来,所以在排版上有一些不规范,需要完整论文或者参考文献私信可免费提供. ...

  3. 计算机视觉识别简史:从 AlexNet、ResNet 到 Mask RCNN

    点上方计算机视觉联盟获取更多干货 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:数据派THU AI博士笔记系列推荐 周志华<机器学习>手推笔记正式开源!可打印版本附pdf下载链接 ...

  4. 常用损失函数(L1、L2、SSIM和MS-SSIM)对比简介

    https://research.nvidia.com/publication/loss-functions-image-restoration-neural-networks 常用损失函数(L1.L ...

  5. 花书+吴恩达深度学习(十四)卷积神经网络 CNN 之经典案例(LetNet-5, AlexNet, VGG-16, ResNet, Inception Network)

    目录 0. 前言 1. LeNet-5 2. AlexNet 3. VGG-16 4. ResNet 残差网络 5. Inception Network 如果这篇文章对你有一点小小的帮助,请给个关注, ...

  6. 【深度学习】MLP/LeNet/AlexNet/GoogLeNet/ResNet在三个不同数据集上的分类效果实践

    本文是深度学习课程的实验报告 使用了MLP/LeNet/AlexNet/GoogLeNet/ResNet五个深度神经网络模型结构和MNIST.Fashion MNIST.HWDB1三个不同的数据集,所 ...

  7. CNN 常用的几个模型 LeNet5 AlexNet VGGNet Google Inception Net 微软ResNet残差神经网络

    LeNet5 LeNet-5:是Yann LeCun在1998年设计的用于手写数字识别的卷积神经网络,当年美国大多数银行就是用它来识别支票上面的手写数字的,它是早期卷积神经网络中最有代表性的实验系统之 ...

  8. CNN经典网络模型综述及发散思考(LeNet/ AlexNet/VGGNet/GoogLeNet/ResNet)

    目录 一. 背景 成功原因 设计目标 二. 经典网络模型 LeNet(1990 年) 网络特点 AlexNet(2012年) 网络特点 VGGNet(2014年) 网络特点 发散思考 GoogLeNe ...

  9. CNN经典网络模型:LeNet,Alexnet,VGGNet,GoogleNet,ReSNet

    关于卷积神经网络CNN,网络和文献中有非常多的资料,我在工作/研究中也用了好一段时间各种常见的model了,就想着简单整理一下,以备查阅之需.如果读者是初接触CNN,建议可以先看一看"Dee ...

最新文章

  1. OptiTrack专为VR主题公园推出了主动追踪方案,可降低40%成本
  2. Kotlin------函数和代码注释
  3. 22、Power Query-文本字符的精确提取
  4. 毕业生推荐表特长计算机专业,优秀毕业生推荐表个人简历怎么写
  5. 苹果平板做ppt方便吗_“你不是大学生吗,怎么连PPT都做不好?”
  6. 文件或目录损坏且无法读取
  7. 利用windbg简单调试dump文件
  8. Zend_Cache
  9. 如何删除hao123?
  10. STM32开发笔记27:STM32L0低功耗设计——RTC模块1秒时钟的产生方法
  11. 指定定时任务,可改变任务定时时间
  12. Java咖啡价格问题_【转】咖啡—根据咖啡品种选购杯具
  13. Java字节码框架ASM简介
  14. 抗旋转matlab算法,抗旋转核心训练:2个动作推荐
  15. 台湾--护照正则表达式
  16. 我们的23种设计模式(一)
  17. 2022开年书单:7本程序员专业书籍与您相约
  18. 索尼sw2刷android wear,SmartWatch2 apk下载|SmartWatch2 SW2软件安卓版下载 v1.6.31 - 跑跑车安卓网...
  19. 《天幕红尘》笔记与思考(五)强势文化与弱势文化
  20. 怎么对Revit族三个方向旋转

热门文章

  1. 1638_chdir函数的功能
  2. 6.4.1-packet-tracer---implement-etherchannel
  3. java 由低位到高位倒序输出
  4. linux 怎样安装 nginx
  5. 什么事LLVM和Clang?Clang与GCC有什么区别?Clang如何使用?
  6. 内存、主存、外存、主存储器、外存储器等之间的区别
  7. pdo_dblib.dll for php7,php_pdo_dblib.dll,下载,简介,描述,修复,等相关问题一站搞定_DLL之家...
  8. Windows 更改密码策略
  9. 可积 连续 可微 可导关系
  10. Bootstrap字体图标