残差网络 ResNet 为什么能训练出1000层的模型 动手学深度学习v2

Posted AI架构师易筋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了残差网络 ResNet 为什么能训练出1000层的模型 动手学深度学习v2相关的知识,希望对你有一定的参考价值。

1. 残差网络 ResNet

假设你在CNN卷积神经网络中只了解一个什么网络,那就是残差网络 ResNet。ResNet 是一个很简单,也很有用的网络。

增加更多的层总是改进精度吗?不一样,比如左边的图F6比F3,距离目标函数f*更远,所以效果是更差的。

残差块 f(x) = x + g(x)



https://cv.gluon.ai/model_zoo/classification.html

2. 代码实现







10个epoch,train acc 0.996, test acc 0.885

3. ResNet为什么能训练出1000层的模型

因为乘法会使得梯度消失或者梯度爆炸;假设都能控制成梯度消失,ResNet就是把累积乘法变成了加法,解决了梯度消失的问题。

4. Q&A

    1. 残差网络ResNet f(x) = x + g(x), 如果g(x) 对网络训练是变化的,不是减弱了这个效果么? 是的,残差网络ResNet是保证深的神经网络下,不会变差。
    1. 为什么ImageNet不能达到测试准确率100%。 因为 ImageNet中的测试集,有一些label是错的。

5. 第二部分完结竞赛:图片分类

竞赛地址:https://www.kaggle.com/c/classify-leaves





参考

https://www.bilibili.com/video/BV1bV41177ap?p=1

以上是关于残差网络 ResNet 为什么能训练出1000层的模型 动手学深度学习v2的主要内容,如果未能解决你的问题,请参考以下文章

论文翻译残差网络

论文翻译残差网络

残差网络

pytorch Resnet网络模型

pytorch Resnet网络模型

论文翻译残差网络