python - 卷积神经网络性能的奇怪模式

标签 python performance machine-learning statistics conv-neural-network

我正在学习 VGG,下面的性能图让我震惊:

enter image description here

我的问题是这样的:从图表上看,似乎首先是快速增长,然后逐渐放缓。这对我来说很有意义,因为损失越小,改进模型就越困难。然而,在 50、75 和 100 纪元标记附近也出现了 3 次突然下降。我很好奇为什么所有模型同时经历这种下降和反弹?是什么原因造成的?

预先感谢您的帮助。

最佳答案

这是复杂模型训练中的常见现象。例如,经典的 CNN 就表现出这种行为:AlexNet 和 GoogleNet 在其训练模式中有两个 drop-and-improve 中断。这是模型整体学习特性的非常复杂和有机的影响。

过于简单化......大多数模型都存在固有的学习瓶颈,即使拓扑看起来很平滑。该模型会学习一段时间,直到后面的层在反向传播过程中适应良好......直到学习遇到瓶颈之一,输入驱动和反馈中的一些干扰往往会进一步停滞真实训练早期层的进展。这表明在较低层的学习中存在一些错误的假设,这些假设现在在较高层中遇到了一些统计现实。

训练过程的自然运行迫使一些早期层的困惑回到有些稳定的后期层——有点有机的退出效应,尽管随机性较小。后期层中的一些“学习”内核被证明是不正确的,并且它们的权重被重新扰乱。由于这种退出,模型的准确性会暂时降低,但很快就会比以前学习得更好,如图所示。

我不知道如何预测给定拓扑中这种情况何时以及如何发生。我个人希望它是拓扑结构中固有的某种谐波共振,就像封闭空间中的音频共振,或者许多动物身上的 Blob /条纹。

关于python - 卷积神经网络性能的奇怪模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51659651/

相关文章:

python - 在 Scikit-Learn 中使用非线性 SVM 时出错

python - 如何在 Keras 中使用高级激活层?

python - 在 Flask 应用程序中运行 Dash 应用程序

javascript - 我可以编写哪个测试来强制执行以下代码

Python: SSL.Context(SSL.SSLv3_METHOD) = 没有这样的协议(protocol)

c# - VS2010 Test Professional/Team Server 的替代品?

c# - 有效地更新表的详细信息?

python - Pandas 如何对 MultiIndex 进行条件选择

sql - 改进这个可能的5连接SQL语句

python - 可训练的多参数事件。函数 (RBF) NeuPy/Theano