深度监督(Deep Supervision)又称为(中继监督 intermediate supervision),就是在深度神经网络的某些中间隐藏层加了一个辅助的分类器作为一种网络分支来对主干网络进行监督的技巧,其实就是在网络的中间部分添加了额外的loss,跟多任务是有区别的,多任务有不同给的GT计算不同的loss,而深度监督的GT都是同一个GT,不同位置的loss按系数求和。深度监督的目的是为了浅层能够得到更加充分的训练,解决深度神经网络训练梯度消失和收敛速度过慢等问题。

深度监督作为一个训练技巧在2014你那就通过DSN《Deeply-Supervision Nets》提出来。

DSN的一个缺点在于使用的网络结构不够深,且辅助的分类器为传统的SVM模型。但是对于极深网络而言则会由于梯度反向传播过程中的“梯度消失”问题,导致网络收敛缓慢或者不收敛或收敛到局部最优解。2015年《Training Deeper Convolutional Networks with Deep Supervision》尝试在更深层结构中使用深度监督技巧。

通常增加神经网络的深度可以一定程度上提高网络的表征能力,但随着深度加深,会逐渐出现神经网络难以训练的情况,其中包括像梯度消失和梯度爆炸等现象。为了更好的训练深度网络,可以尝试给神经网络的某些层添加一些辅助的分支分类器来解决这个问题。这种辅助的分支分类器能够起到一种判断隐藏层特征层质量好坏的作用。

深度监督网络(DSN)可以提高隐藏层学习过程的直接性和透明度。

  • 影响中间层的透明度具有整体分类;
  • 学习特征的辨别力和稳健性,特别是在期阶段;
  • 面对消失的梯度训练有效性。

DSN的核心思想是为隐藏层提供集成的直接监督层,而不是仅在输出层提供监督,并将此监督传播回早期层的标准方法。通过为每个隐藏层引入伴随目标函数来提供这种集成的直接隐藏层监督,这些伴随目标函数可以被视为学习过程中的附加(软)约束。

使用来自随机梯度方法的分析技术来研究限制性设置,其中并入伴随目标函数直接导致提高的收敛率。

  • 对于小型训练数据和相对较浅的网络,对于分类准确性和学习特征问题,深度监督可以提供强大的“正则化”。
  • 用于大型训练数据和更深层次的网络深度监控使得利用极深度网络可以通过改善其他有问题的收敛行为来使的性能增益提升。

通过深度监督来解决深度网络难以训练的问题,那么监督分支结构应该加在神经网络的什么位置,论文作者根据一些经验法则和实验给出了结论,作者先是把深监督放在网络最后一层,然后跑10-50次迭代,绘制出中间层的平均梯度值。最后作者将监督分支添加在平均梯度消失(原文中平均梯度小于10_(-7))的那一层。随迭代次数变化的各卷积层的平均梯度值如下图所示。可以看到,Conv1-4层在迭代次数增加时平均梯度值都要小于10_(-7)。

带有深度监督的一个8层深度卷积网络结构如下图所示。

带有深度监督的一个13层深度卷积网络结构如下图所示。

其中各个模块含义如下:

可以看到,图中在第四个卷积块之后添加了一个监督分类器作为分支。Conv4输出的特征图处理随着主网络进入Conv5之外,也作为输入进入了分支分类器。如上图所示,该分支分类器包括一个卷积块、两个带有Dropout和ReLU的全连接块和一个纯全连接块。

以W和Ws分别表示主干网络和深监督分支的权重,则有:

输出层softmax表示为:

主干网络的损失函数为:

深监督分支的softmax输出表示为:

深监督分支的损失函数为:

可以看到深监督分支的损失函数取决于W,而不是Ws,因为分支结构中倒数第二层的S8特征图关联到主干网络的卷积权重W1-4。

所以联合损失函数可以表示为:

其中αt\alpha_tαt​表示为随随训练epoch衰减的一个值:

看到联合损失函数有种正则化的味道,实际正是如此,辅助loss能够起到一种类似正则化的效果。可以看到,Conv4在加深监督和不加深监督的平均梯度差异。如下图所示:

深度监督方式环境深度网络的训练难度问题,但是它不可避免的会影响深度网络的分层特表达能力,同时会导致前后矛盾的优化目标。众所周知,深度网络具有极强的分层特征表达能力,其特征会随网络深度而变化(底层特征聚焦边缘特征而缺乏语义信息,而高层特征则聚焦于语义信息)。在底层添加强监督信息会导致深度网络的上述特征表达方式被破坏,进而导致模型的性能下降。这从某种程度上解释了为何上述监督方式对模型的性能提升比较小(大概在0.5%左右,甚至无提升)。

作者重新对优化目标进行了分析并给出猜测:最本质的原因在于损失函数中相加的两块损失优化目标不一致。

以分类为例,尽管两者均意在优化交叉熵损失,但两者在中间层的优化方向是不一致的,存在矛盾点,进而导致对最终模型性能产生负面影响。

针对上述问题,作者提出一种新颖的知识匹配损失用于正则化训练过程,并使得不同损失对中间层的优化目标相一致,从而确保了模型的鲁棒性与泛化性能。

既然DSN破坏了深度网络的分层特征表达能力,那么就要想办法去补偿以不同损失反向传播到中间层与底层时优化方向是一致的。

DHM(Dynamic Hierarchical Mimicking)是一种通用的特征学习机制,以增强的泛化能力加速CNN训练。部分受DSN的启发,研究团队从给定神经网络的中间层中,巧妙的设置边界分支,这些分支可以在主干的某些位置动态的出现,不仅保留了骨干网络的特征表达能力,还可以沿着自己的路产生更多的多样化表示。进一步的,作者通过一个带有概率预测匹配损失的优化公式,促进不同分支之间的多级交互,从而保证了更稳健的优化过程和更好的表达能力。

下图中,中间主干支表示预定义好的网络结构,左右两个分支表示作者补偿的结构,通过这样的方式可以确保主损失与右分支损失传播到layer3的优化方向一致,主损失与左分支损失传播到layer2的优化方向一致。

常规训练过程、DSN训练过程以及DHM的训练成果对比。常规的训练过程仅在head部分有一个损失,而DSN(即DSL)则有多个损失,不同的损失回传的速度是不一样的,比如做分支损失直接传给了layer2,这明显快于中间的主损失,这是缓解“梯度消失”的原因所在。DHM类似于DSN具有多个损失,但同时为防止不同损失对中间层优化方向的不一致,而添加了额外的辅助层,用于模拟深度网络的分层特征表达。

DSN存在的问题:

  • 特征逐级提取问题,如果像上述图中GoogLeNet/DSN 那样把head直接在中间层立刻再接classifier,那么强制要求layer2、layer3、layer4都提取high-level语义特征,这和一般网络里layer2、layer3可能还在提取更low-level的特征相违背。
  • 不同分支的gradient都会回传到shared的主支上,如果这些gradient相互冲突甚至抵消,对于整个网络的优化是产生负面影响的。

DHM解决方案:

  • 第一个问题通过图中的分支网络结构的改进来解决;
  • 第二个问题则是通过KL散度损失隐式约束梯度来解决。

缓解梯度消失的两种方式:

  • ResNet与DenseNet中的缓解梯度消失方式,这与网络结构有关。
  • 分支层数少于主干层数,一定程度上缓解了梯度消失。

DML是与DHM方法类似的方法,两者的流程图如下图所示,尽管DML初衷是两个网络采用知识蒸馏的方式进行训练,而DHM则是针对DSN存在的缺陷进行改进。

从上图出发,DHM是DML的特例:

  • 损失函数方面,以图像分类为例,DML和DHM均采用交叉熵损失+KL散度计算不同分支损失。
  • 分支数方面:尽管DML原文是借鉴知识蒸馏的方式,但其分支可以不止两个,比如扩展到三个是不是就一样了呢?
  • 网络结构方面:尽管DML提到的是两个网络,但是两个网络如果共享stem+layer1+layer2部分呢?从这个角度DHM和DML就殊途同归了。

参考资料
深度学习100问-15:什么是深监督(Deep Supervision)?
改进3D/2D U-NET–添加深度监督deep supervision【Keras】
论文解读:深度监督网络(Deeply-Supervised Nets)
不仅搞定“梯度消失”,还让CNN更具泛化性:港科大开源深度神经网络训练新方法
不仅搞定「梯度消失」,还让CNN更具泛化性:港科大开源深度神经网络训练新方法

Deep Supervision:深度监督(2014)+DHM相关推荐

  1. 深度学习100问:什么是深监督(Deep Supervision)?

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 所谓深监督(Deep Supervision),就是在深度神经网络 ...

  2. 论文解读:深度监督网络(Deeply-Supervised Nets)

    所谓深监督(Deep Supervision),就是在深度神经网络的某些中间隐藏层加了一个辅助的分类器作为一种网络分支来对主干网络进行监督的技巧,用来解决深度神经网络训练梯度消失和收敛速度过慢等问题. ...

  3. ECCV2022 论文 Contrastive Deep Supervision

    论文链接:https://arxiv.org/pdf/2207.05306.pdf 代码链接:GitHub - ArchipLab-LinfengZhang/contrastive-deep-supe ...

  4. deep supervision

    深度监督学习(deep supervision learning) 和常规的深度学习机制相比,深度监督学习不仅在网络的最后输出结果out,同时在网络的中间特征图,经过反卷积和上采样操作,得到和out尺 ...

  5. Deep Learning | 深度学习介绍与基本概念

    深度学习(Deep Learning) 深度学习是基于机器学习延伸出来的一个新的领域,由以人大脑结构为启发的神经网络算法为起源加之模型结构深度的增加发展,并伴随大数据和计算能力的提高而产生的一系列新的 ...

  6. 收藏 | 从头训练深度监督目标检测

    点上方计算机视觉联盟获取更多干货 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:作者:Sik-Ho Tsang 编译:ronghuaiyang    |     AI公园 AI博士笔记系列推 ...

  7. 【论文笔记】DSIFN:用于高分辨率双时相遥感图像变化检测的深度监督图像融合网络

    本文是论文<A deeply supervised image fusion network for change detection in high resolution bi-tempora ...

  8. 深度学习——day9(外 Q1 2021)基于多尺度特征融合的深度监督卷积神经网络路面裂缝检测

    基于多尺度特征融合的深度监督卷积神经网络路面裂缝检测 导图和笔记资源下载 三级目录# (外 Q1 2021)基于多尺度特征融合的深度监督卷积神经网络路面裂缝检测 chap2 传统裂纹检测方法 1)Tr ...

  9. unet是残差网络吗_基于深度监督残差网络的肝脏及肝肿瘤分割

    摘要: 针对医生手动对肝脏肿瘤CT图像分割耗时,耗力,且易受主观判断影响的问题,该研究提出一种深度监督残差网络(Deeply Supervised Residual Unet,DS-ResUnet)算 ...

最新文章

  1. 【Android Gradle 插件】Android Plugin DSL Reference 离线文档下载 ( GitHub 下载文档 | 查看文档 )
  2. 盖瑞解剖学: 临床实践的解剖学基础 Gray‘s Anatomy: The Anatomical Basis of Clinical Practice 高清英文原版
  3. Java将中文姓名转换为拼音
  4. 打印机打印网页不清晰_针式打印机不开机故障维修
  5. java streamhandler_java中的Lamdba表达式和Stream
  6. 关于卸载Python第三方包的粗暴方法
  7. Unity编辑器扩展之EditorWindow
  8. 广东省计算机考试图片大小,广东省计算机等级考试(20190423051419).doc
  9. python学习之旅(入门)
  10. Hexo中Next主题个性化美化的解决方案
  11. 做tab切换时,点击浏览器返回拿不到实时的tab参数,请求不到实时的数据
  12. rsync本地模式讲解04
  13. 软件项目管理期末复习---项目立项
  14. 知识图谱简介(一)——相关概念
  15. 二线法和四线法测量电阻的原理及区别
  16. 二、生理信号处理 ——1.心电信号(含Matlab代码及数据)
  17. python画表情代码_Python selenium send_keys表情符号支持
  18. 一个计算机毕业生的求职经验
  19. 拍案叫绝的算法(二)
  20. 郑航计算机专业就业率,郑州航空工业管理学院好就业吗?附学校就业率最高的专业名单...

热门文章

  1. 结构建模设计——Solidworks软件之特征成型中异形孔向导和线性阵列功能实战总结
  2. 热爱工作,拥抱明天——读《干法》有感2800字
  3. 一号店首页代码需其他的联系我
  4. emc服务器装什么系统,EMC DD系统安装指南.pdf
  5. 物联网卡不能上网是怎么回事?
  6. wxX11移植到arm板上
  7. hihocoder1245 王胖浩与三角形
  8. UltraEdit-32 v13.20的注册码
  9. 小白从零开始:小程序阿里云平台控制stm32(小程序篇)
  10. mysql java驱动 ibm_Java 通过JDBC连接Mysql数据库