我正在学习 VGG,下面的性能图让我震惊:
我的问题是这样的:从图表上看,似乎首先是快速增长,然后逐渐放缓。这对我来说很有意义,因为损失越小,改进模型就越困难。然而,在 50、75 和 100 纪元标记附近也出现了 3 次突然下降。我很好奇为什么所有模型同时经历这种下降和反弹?是什么原因造成的?
预先感谢您的帮助。
最佳答案
这是复杂模型训练中的常见现象。例如,经典的 CNN 就表现出这种行为:AlexNet 和 GoogleNet 在其训练模式中有两个 drop-and-improve 中断。这是模型整体学习特性的非常复杂和有机的影响。
过于简单化......大多数模型都存在固有的学习瓶颈,即使拓扑看起来很平滑。该模型会学习一段时间,直到后面的层在反向传播过程中适应良好......直到学习遇到瓶颈之一,输入驱动和反馈中的一些干扰往往会进一步停滞真实训练早期层的进展。这表明在较低层的学习中存在一些错误的假设,这些假设现在在较高层中遇到了一些统计现实。
训练过程的自然运行迫使一些早期层的困惑回到有些稳定的后期层——有点有机的退出效应,尽管随机性较小。后期层中的一些“学习”内核被证明是不正确的,并且它们的权重被重新扰乱。由于这种退出,模型的准确性会暂时降低,但很快就会比以前学习得更好,如图所示。
我不知道如何预测给定拓扑中这种情况何时以及如何发生。我个人希望它是拓扑结构中固有的某种谐波共振,就像封闭空间中的音频共振,或者许多动物身上的 Blob /条纹。
关于python - 卷积神经网络性能的奇怪模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51659651/