当前位置: 首页 > 科技观察

ResNet假说被推翻?Reddit小哥:这么多年都没人明白Ta的原理

时间:2023-03-14 21:11:02 科技观察

2015年发布了里程碑式的神经网络模型ResNet。因为在过深的网络训练中会出现梯度消失和梯度爆炸,而在过度训练的网络中准确率会下降,而RestNet使用残差连接可以轻松让研究人员训练数百甚至数千层。的网络。ResNet论文中观察到的退化问题,即34层网络在整个训练过程中训练误差高于18层网络,但18层网络的解空间显然是34-层网络。一个很自然的假设是,这个问题与RNN网络中观察到的梯度消失问题相同,也是长短期记忆网络(LSTM)的主要改进问题。但论文作者凯明当时并不这么认为。他在论文中写道:“我们认为这种优化困难不太可能是由梯度消失引起的,因为这些普通的神经网络使用BN进行训练,确保前向传播具有非零方差的信号可以缓解这个问题。我们也验证了反向传播的梯度,可以看出BN的结果也是正常的。因此,前向和后向信号都没有消失。事实上,34层的vanilla网络仍然能够达到竞争精度,“表明这种解决方案有些有效。我们推测,香草神经网络的收敛速度可能呈指数级降低,这影响了训练误差的减少。这种优化困难的原因将在未来进行研究。”这种说法也被网友称为“ResNet假说”,ResNet假说的正确性最近在Reddit上引起热议。根据提问者的说法,最近的很多论文和教程似乎都认为ResNet假说是错误的,而论文的作者大多添加跳跃连接来“改善梯度传播的流动”,并引用原始ResNet论文来支持这一说法。虽然添加跳跃连接会改善梯度流动是有道理的,但问题是什么导致了第一名仍然没有答案。skipconnections通过改进梯度流来解决退化问题的想法似乎与ResNet假设明显矛盾;那么这个想法是从哪里来的呢?ResNet假设是否被证伪?有网友认为没有从技术角度完整分析。关于ResNets的工作原理存在三种相互竞争的假设,并给出了相关论文:1.进行迭代求精。本文分析了Resnet是从实证和实证两个方面进行研究的。研究人员通过表明残差连接自然地鼓励残差块的特征沿着损失的负梯度从一个块移动到下一个块,从而在ResNet中形式化了迭代优化的概念。此外,实证分析表明,ResNet能够进行表示学习和迭代优化。通常,Resnet块倾向于将表示学习行为集中在前几层,而更高层执行特征的迭代细化。最后,研究人员观察到共享残差层会导致表示爆炸和反直觉的过度拟合,并提出了一种可以帮助缓解这一问题的简单策略。2.指数集成模型在这项工作中,对残差网络提出了一种新的解释:该模型可以看作是具有不同长度路径的许多模型的集成。此外,残差网络似乎通过在训练期间仅利用短路径来启用非常深的网络。为了支持这一观察,研究人员将残差网络重写为一组显式路径。研究结果表明,这些途径表现出类似整体的行为,并且没有很强的相互依赖性。而且大多数路径比人们预期的要短,并且在训练期间只需要较短的路径,因为较长的路径不会产生任何梯度。例如,具有110层的残差网络中的大部分梯度来自仅10-34层深的路径。本文的结果表明,Resnets能够训练非常深的网络的关键特征之一是残差网络通过引入可以在非常深的网络中承载梯度的短路径来避免梯度消失问题。3.原论文中提到,改进了梯度传播过程下来试着弄清楚真正的解释是什么。不过,他有一个想法,通过考虑具有重叠跳跃连接的网络来测试集成理论,这些连接具有集成论文中定义的最大多重性。并且可以在保持多重性不变的同时改变跳跃连接长度,但是还没有人对此做过任何实验。另一件可以尝试的事情是让Resnets的梯度流保证完美无跳跃连接,但是当用户添加残差连接时,这些东西大部分都不够完美,所以必须考虑新的方法来实现完美的梯度传播。另一位好评网友表示shortcutconnections(快捷连接)改善了丢失情况,可以让优化更容易,很多研究结果都支持这一点。破碎的梯度问题:如果resnet是答案,那么问题是什么?(ICML2017)表明ResNet具有更稳定的梯度。可视化神经网络的损失景观(NeurIPS2018)再次表明ResNet具有更平滑的损失表面。并且也有研究表明,不需要shortcuts来学习有效的representations,但优化会更加困难。例如,FixupInitialization:ResidualLearningwithoutNormalization(ICLR2019)表明,如果多次调整初始化结果,您可以在没有剩余连接的情况下训练ResNet以获得不错的结果。RepVGG:MakingVGG-styleConvNetsGreatAgain(CVPR2021)表明可以在训练后删除快捷方式并仍然拥有性能良好的网络。但这还是符合ResNet最初的想法:将每个block初始化为一个identifyfunction,所以一开始看起来好像参数实际上并不存在,对网络训练没有影响,然后逐渐让块的作用开始发挥作用。也有网友认为标题的写法确实不准确,因为debunked就相当于直接判断Resnet是错误的。提问者还说自己确实是封号党,但是封号不能改。