为什么在相同的迭代中,非常深的非 resnet 架构与较浅的架构相比表现更差?他们不应该训练得慢一点吗?

人工智能 深度学习 训练 反向传播 建筑学
2021-11-12 02:22:15

我对深度网络中梯度消失问题的理解是,随着反向传播在各层中进行,梯度会变小,因此训练进度会变慢。我很难将这种理解与下面的图像调和起来,其中更深的网络的损失高于更浅的网络。是否应该不仅需要更长的时间来完成每次迭代,而且即使不是更高的准确度也应该达到相同的水平?

在此处输入图像描述

2个回答

从理论上讲,较深的架构可以编码比较浅的架构更多的信息,因为它们可以对输入执行更多的转换,从而在输出端产生更好的结果。训练速度较慢,因为反向传播非常昂贵,随着深度的增加,需要计算的参数和梯度的数量也会增加。

您需要考虑的另一个问题是激活函数的效果。像 sigmoid 和双曲正切这样的饱和函数会导致它们边缘的梯度非常小,其他激活函数只是平坦的,例如。ReLU 在负数上是平坦的,因此不会传播错误,因为梯度要么非常小(如在饱和函数中)要么为零。Batch Norm 极大地帮助了此操作,因为它在梯度不接近于零的更好范围内折叠值。

这些图表并不能反驳您的“梯度消失”理论。较深的网络最终可能会比较浅的网络做得更好,但可能需要更长的时间才能做到。

顺便说一句,ReLU 激活函数旨在缓解梯度消失问题。