目录

1,训练时拓扑结构变化的网络

1.1 Dropout与 Drop Connect

1.2 Stochastic Depth(随机深度)

2,测试时拓扑结构变化的网络

2.1 BranchyNet

2.2 Blockdrop

2.3 SkipNet


1,训练时拓扑结构变化的网络

有些网络在训练的时候会随机丢弃一些网络节点,节点之间的连接或者网络模块来增强网络的泛化能力。常用的在训练的时候使用的方法有以下两种。

1.1 Dropout与 Drop Connect

1)Dropout

dropout在全连接层使用。在训练阶段,对于每个节点,以p概率将其输出值保留,以1-p概率将其输出值乘以0。在测试阶段,输出结果要乘以p。原因是:保持训练阶段和测试阶段的期望值相同。训练阶段,对于每个节点,dropout之前的输出是x, 经历dropout之后的期望值是p*x+(1-p)*0=px,因此在测试阶段需要将结果乘以p,从而输出的期望值是px。测试阶段乘以p会增加计算量,所以改进的版本是训练阶段将输出值再除以p。这样测试阶段不需要任何增加的计算  

Dropout作用:通过阻止特征检测器的共同作用来提高神经网络的性能可以看出,网络在提取训练集特征时,舍弃掉了一部分特征来提高网络的泛化能力。

2)Drop Connect

Dropout是将输出随机置0,而DropConnect是将权重随机置0。 文章说之所以这么干是因为原来的Dropout进行的不够充分,随机采样不够合理。
  训练的时候,训练过程与Dropout基本相同。测试的时候,我们同样需要一种近似的方法。但其实发现效果并不比Dropout优秀太多,反而计算量要大很多,因此到目前DropConnect并没有得到广泛的应用。下图是两种方法的区别。

1.2 Stochastic Depth(随机深度)

2016年,也就是ResNet被提出的下一年,清华的黄高(也是DenseNet的提出者)在EECV会议上提出了Stochastic Depth(随机深度网络)。这个网络主要是针对ResNet训练时做了一些优化,即随机丢掉一些层,优化了速度和性能(有点类似于Dropout的效果)

ResNet这个里程碑式的创新对AI领域带来了深远的影响。然而,作者发现ResNet网络中不是所有的层都是必要的,因此结合经典的Dropout思想提出在训练过程中随机丢弃丢掉一些层来优化ResNet的训练过程。

首先来看一下原始的ResNet结构,其中f 代表的是残差部分,i d代表的是恒等映射,把这两部分求和经过激活然后然后输出。这个过程可以用下面的式子来表示:

如下图所示:

Stochastic Depth(随机深度网络)就是在训练时加入了一个随机变量b ,其中b的概率分布是满足一个伯努利分布的,然后将f乘以b,对残差部分做了随机丢弃。如果b = 1,这个结构即是原始的ResNet结构,而当b = 0 时,残差支路没有被激活,整个结构退化为一个恒等函数。这个过程可以用下面的等式来表示:

b满足一个伯努利分布(01分布),它的取值只有0和1两种,其中取0的概率为1 − p,取1的概率是p。上面的p又被称为生存概率,这个p 即代表了b = 1 的可能性,因此p的设置相当重要。

Stochastic Depth(随机深度网络)在训练的时候是一个比测试时候更浅的网络(在训练的时候随机删减一些残差模块,在测试的时候使用所有的单元)。实验证明,这不仅减少了训练的时间,而且随机删减后,测试精度在数据集CIFAR10上有所提升。与基础的ResNet结构相比,其拟合程度大大降低,当网络到达1000层以上,性能依旧不错,不仅没有过拟合。相对于ResNet152还有提升。

2,测试时拓扑结构变化的网络

通常网络在训练后网络就是固定的,测试的时候沿着固定的通路进行计算。然而测试本身有不同的难度,简单的样本只需要少量的计算量就可以完成任务,困难的任务则需要更多的计算量。因此研究者设计了一些网络结构,它可以根据不同的难度使用不同的计算支路。这就是在测试的时候拓扑结果变化的网络。

2.1 BranchyNet

这是一个推理时动态变化的网络结构,如下图所示,它在正常网络通道上包含了多个旁路分支,这样的思想是基于观察到随着网络的加深,表征能力越来越强,大部分简单的图片可以在较浅层时学习到足以识别的特征,如图中的Exit 1通道。一些更难的样本需要进一步的学习,如上图中的Exit 2通道,而只有极少数样本需要整个网络,如Exit3通道。这样的思想可以实现精度和计算量的平衡,对于大部分样本,可以用更小的计算量完成任务。
链接:https://www.zhihu.com/question/337470480/answer/766380855

那么如何判断是否可以提前结束呢?在提出该网络的论文中,作者采用分类信息熵,一旦该通道的分类信息熵低于某一个阈值,说明已经以很高的置信度获得了分类的结果,直到最终的通道。

在训练的时候,每一个通道都会对损失有贡献,越靠近浅层的网络权重越大。多通道的损失不仅增强了梯度信息,也在一定程度上实现了正则化。

将BranchyNet的设计思想用于LeNet,AlexNet,ResNet结构后,在维持性能的前提下,加速效果明显。

2.2 Blockdrop

Stochastic Depth(随机深度网络)在训练的时候是一个比测试时候更浅的网络(在训练的时候随机删减一些残差模块,在测试的时候使用所有的单元)。Blockdrop则是从学习到对不同的样本可以丢弃的残差块。两者的根本区别是Stochastic Depth训练的时候变化测试的时候不变化,Blockdrop是训练的时候不变化,测试的时候发生变化,后者节省更多的计算量。

Blockdrop的思想是学习一种策略网络,对于输入图像,它会学习每一个模块是应该保留还是丢弃。假设有4个残差模块。策略网络学习到的是使用第一个和第三个残差结构,在测试的时候就会值使用1和3,而将2和4丢弃。

2.3 SkipNet

SkipNet主要是以此假设出发,通过在传统CNN的每个layer(或module)上设置判断其是否需要执行的Gate module来决定是否需要真的执行此层计算,若判断为否则直接将activation feature maps传入到下一层,越过当下层的运算不做。无益这样做可以有效地节省传统CNN模型在部署时进行推理工作所需的时间。

就这样一旦训练好,SkipNet在做图片推理时可根据输入的feature maps不同灵活地决定是否执行某一网络中的层。下图可反映SkipNet这一根本特点。

深度学习笔记----拓扑结构动态变化网络(Dropout,Drop Connect, Stochastic Depth, BranchyNet,Blockdrop,SkipNet)相关推荐

  1. 深度学习笔记5:正则化与dropout

    出处:数据科学家养成记 深度学习笔记5:正则化与dropout 在笔记 4 中,笔者详细阐述了机器学习中利用正则化防止过拟合的基本方法,对 L1 和 L2 范数进行了通俗的解释.为了防止深度神经网络出 ...

  2. 生成对抗网络入门详解及TensorFlow源码实现--深度学习笔记

    生成对抗网络入门详解及TensorFlow源码实现–深度学习笔记 一.生成对抗网络(GANs) 生成对抗网络是一种生成模型(Generative Model),其背后最基本的思想就是从训练库里获取很多 ...

  3. 深度学习笔记(12) Batch归一化网络

    深度学习笔记(12) Batch归一化网络 1. Batch归一化 2. 激活值归一化 3. 特殊情况不归一化 4. mini-batch上的Batch归一化 1. Batch归一化 Batch归一化 ...

  4. HALCON 21.11:深度学习笔记---网络和训练过程(4)

    HALCON 21.11:深度学习笔记---网络和训练过程(4) HALCON 21.11.0.0中,实现了深度学习方法.关于网络和训练过程如下: 在深度学习中,任务是通过网络发送输入图像来执行的.整 ...

  5. HALCON 20.11:深度学习笔记(4)--- 网络和训练过程

    HALCON 20.11:深度学习笔记(4)--- 网络和训练过程 HALCON 20.11.0.0中,实现了深度学习方法.关于网络和训练过程如下: 在深度学习中,任务是通过网络发送输入图像来执行的. ...

  6. 2020-4-22 深度学习笔记20 - 深度生成模型 5 (有向生成网络--sigmoid信念网络/可微生成器网络/变分自编码器VAE/生产对抗网络GAN/生成矩匹配网络)

    第二十章 深度生成模型 Deep Generative Models 中文 英文 2020-4-17 深度学习笔记20 - 深度生成模型 1 (玻尔兹曼机,受限玻尔兹曼机RBM) 2020-4-18 ...

  7. 深度学习笔记(28) 残差网络

    深度学习笔记(28) 残差网络 1. 残差块 2. 深度网络的训练错误 3. ResNets的作用 4. ResNets的细节 5. ResNets的结构 1. 残差块 非常深的神经网络是很难训练的, ...

  8. 深度学习笔记(46) 深度卷积网络学习

    深度学习笔记(46) 深度卷积网络学习 1. 学习内容 2. 第一层 3. 第二层 4. 第三层 5. 第四层 6. 第五层 1. 学习内容 深度卷积网络到底在学什么? 来看一个例子,假如训练了一个卷 ...

  9. 深度学习笔记(43) Siamese网络

    深度学习笔记(43) Siamese网络 1. Siamese网络 2. 建立人脸识别系统 3. 训练网络 1. Siamese网络 深度学习笔记(42) 人脸识别 提到的函数ddd的作用: 输入两张 ...

  10. 深度学习笔记(30) Inception网络

    深度学习笔记(30) Inception网络 1. Inception模块 2. 瓶颈层 3. Inception网络 4. Inception网络的细节 1. Inception模块 构建卷积层时 ...

最新文章

  1. 信息化基础建设 开发框架
  2. 17种元器件PCB封装图鉴,美翻了
  3. garch模型python步骤_GARCH模型的建模步骤?
  4. java 继承调用_【JAVA学习】继承中函数调用机制
  5. android里R.layout.的问题
  6. tableciewCell 样式
  7. 组队训练3回放 ——hnqw1214
  8. mysql 初始化_MySQL安装与初始化
  9. lopatkin俄大神Windows精简版系统 安装教程 简单版
  10. 数字化让企业精益管理梦成真,技术成核心驱动
  11. 导致无线网卡连接不上wifi的几种原因|为什么无线网卡连不上wifi?
  12. [渝粤教育] 天水师范学院 高等数学(一) 参考 资料
  13. Python 基础|while 循环语句
  14. 服务器IIS架设网站无法增加log文件
  15. 小程序 _ 学习笔记
  16. cat3速度 rj45_常用RJ45网线的规格及型号总结
  17. SVG进阶-SMIL动画
  18. photoshop 自学网站
  19. 如何把数字转换成汉字
  20. 【渝粤教育】 广东开放大学21秋期末考试法律职业伦理10214k2

热门文章

  1. 快捷连接 残差_残差网络解决了什么问题
  2. Pr cc 2019 v13.0 添加字幕文本不显示,输入字符后无选中框解决方案
  3. 七种应刻意训练的顶级思维方法
  4. 2018.12.26 Jquery 使用 slideBox 实现滚动 效果
  5. cubemx配置时调试SYS显示警报
  6. python去除图片马赛克_【Night Beam】去除文本马赛克的随机算法!
  7. 小学生如何用计算机写字,小学生练字笔顺电脑文章大全短文
  8. 2016 PayPal商家账户界面 如何集成支付按钮
  9. IMDB 电影打分规则
  10. gitlab多人协同工作