Resnet论文阅读记录

总结一下Resnet中residual learning module的优点:

1、易于优化。
2、随着深度越深,准确度越高【部分解决了degration问题】
3、可以加很多层,但复杂度依旧很低。

发现问题:随着神经网络的深度加深,会发生梯度消失/爆炸问题,网络不容易收敛。

解决问题:normalized initialization和immediate normalization layers.使几十层的神经网络可以用SGD方法训练并收敛(convergence)。

发现问题:尽管网络可以开始收敛了,但是随着深度加深,网络的表现性能不一定会变好,即网络的degration问题。

分析问题:首先,degration问题不是由overfitting造成的(怎么证明的?参考论文10/41-码住待看)。

解决问题:提出了一个深度残差学习框架。基本形式为F(x)=H(x)-x,即网络真实预测的函数H(x)是网络的输出F(x)与输入值x的和,这里的求和操作即图2中的shortcut路径。shortcut本质上是为了恒等映射。

思路要点:

1、最有趣的地方,为什么神经网络可以这么设计?

POINT: x不仅能看成是输入,也能看成是关于x的一个一次函数y = x

已知 – 1、非线性函数H(x)是关于输入x的函数;2、线性函数g(x)=x也是关于x的函数;3、假设神经网络DNN可以拟合H(x)级别的非线性函数。

由1和2可以得到 – 4、H(x)-g(x)也是关于输入x的非线性函数,并且与H(x)同等级别。

由3和4可以得到 – 5、DNN可以拟合H(x)-g(x),即DNN的输出函数可以是F(x)=H(x)-x

2、为什么要设计这种恒等映射?

a) 为了让高层的解法空间包含低层的解法空间。

3、当输出f(x)的维度和输入x的维度不同时(f(x)的深度是x的2倍,长宽各是x的一半)怎么相加?

一共有三种办法:

a) parameter-free方法:取stride==2,x中对应位置缺失的值填0。这种方法本质上并不是恒等映射,因此表现最差。

b) 需要部分参数:当维度不同时,对输入x进行1x1的卷积,stride==2。论文中采取了这种方式,在精度和计算量之间tradeoff。

c) 都需要参数:不管f(x)和x的维度是否相同,都对输入x进行1x1的卷积,stride==2。这种方式虽然表现比b好一点点,但是消耗的计算量过于庞大。因此舍弃。

4、当深度越来越深,有没有方法可以进一步降低计算量?

有。采用Bottleneck结构后,152层的Resnet比VGG-16/19复杂度更低。

如fig.5右图。第一个1x1卷积层负责降低维度,使第二个3x3的卷积层计算量变小,然后第三个1x1的卷积层再将维度变回去。

采用这种结构后,右图中输入256维的图像经过bottleneck时的计算量与左图的计算量相同,而左图的输入x只有64维。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值