2019-12-10

    看代码的过程中,发现自己的基础特别薄弱。要慢慢积累呀。

1、深度学习网络是越深越好吗?——网络的degradation问题

    在我的一般印象中,深度神经网络区别于一般神经网络的地方,就在于它的“深度”两个字。那神经网络的深度对神经网络具体有什么影响呢?

    从Alexnet采取的7层神经网络开始,后有VGG为了探索神经网络最多能有多深,而采取的16/19层神经网络,再到Googlenet的22层。有人已经发现深度CNN网络在到达一定的深度后,即便再增加层数,网络的分类性能也不会提高,网络反而收敛的更慢,在测试集上的准确率也变差了(排除了数据集国小带来的过拟合等问题)。这个问题就是网络的degradation问题

    《Identity Mappings in Deep Residual Networks》中证明了degradation的产生是由于优化性能不好,这说明越深的网络反向梯度越难传导。


2、Resnet——前向:恒等映射 / 反向:对梯度敏感

    已知有网络degradation的情况下,不求加深度能提高准确性,能不能至少让深度网络实现和浅层网络一样的性能,即让深度网络后面的层至少实现恒等映射的作用

    从而提出了Residual Module,提高了网络能采取的深度。

    在前向过程中,当浅层的输出已经足够成熟(optimal),那残差模块能使深层网络后面的层实现恒等映射的作用

    在反向过程中,residual模块会明显减小模块中参数的值从而让网络中的参数对反向传导的损失值有更敏感的响应能力,虽然根本上没有解决回传的损失小得问题,但是却让参数减小,相对而言增加了回传损失的效果,也产生了一定的正则化作用

    加强版的resnet部分我还没有看,以上内容都是学习博文:https://blog.csdn.net/weixin_43624538/article/details/85049699

3、deeplab代码中input_stride和output_stride分别的意义 ——input_stride是参数,output_stride是现象

    input stride为我们正常进行卷积时候,给filter设置的stride值,

    output stride为该矩阵经过多次卷积pooling操作后,尺寸缩小的值,例如:

    input image为224 * 224,经过多次卷积pooling操作后,feature map为7*7,那么output stride为224/7 = 32.(Approximate of what happened to the image after down sampling .)

    参考:https://blog.csdn.net/weixin_39610043/article/details/87165968

4、对dilation,stride,paddings,transposed更直观的理解——理解新名词dilation

       参考:https://github.com/vdumoulin/conv_arithmetic/blob/master/README.md

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 声明:作者翻译论文仅为学习,如有侵权请联系作者删除博文,谢谢! 翻译论文汇总:https://github.com...
    SnailTyan阅读 12,731评论 3 13
  • java基础面试题及答案 1、String类可以被继承吗? 不能。String类在声明时使用final关键字修饰,...
    依米_xx阅读 6,908评论 0 1
  • 尘归尘,路归路,繁华落尽,我只取一瓢。 风起云息,花自飘零。 忆往已,看来生,今朝不论昨日。 旧岁已去,逝日已逝。...
    小样1105阅读 284评论 0 0
  • net 常用命令 控制本地 p2p 网络连接。使用方式 cleos net SUBCOMMAND。 1. conn...
    furnace阅读 287评论 0 1
  • 10 每天看会书,无关成功 最后,我建议你每天抽出一个小时看会书。 我知道很多人不喜欢看书,也看不进去,但仍要告诉...
    小桥_98a8阅读 327评论 0 1