残差网络 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

猜你喜欢

转载自blog.csdn.net/zgpeace/article/details/124207835