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

我在学习VGG时,被以下性能图表所吸引:

enter image description here

我的问题是:从图表来看,首先是快速增长,然后逐渐放缓。这对我来说是有道理的,因为当损失越来越小时,改进模型变得更加困难。然而,在第50、75和100个epoch左右,有三个突然的下降。我很好奇为什么所有模型在同一时间经历这种下降和反弹?是什么原因导致的?

提前感谢您的任何帮助。


回答:

在复杂模型训练中,这是常见的观察。例如,经典的CNN表现出这种行为:AlexNet和GoogleNet在其训练模式中有两次下降和改善的爆发。这是模型整体学习特性的一个非常复杂和有机的效果。

简单来说…大多数模型中都存在学习瓶颈,即使拓扑结构看起来很平滑。模型会学习一段时间,直到后面的层在反向传播过程中适应得很好…直到这种学习碰到一个瓶颈,一些输入驱动和反馈的干扰倾向于阻碍进一步的真正训练早期层的进展。这表明在那些较低层的学习中存在一些错误的假设,这些假设现在在上层遇到了一些统计现实。

训练过程的自然操作迫使一些早期层的混乱重新回到相对稳定的晚层——这有点像有机的 dropout 效应,尽管不那么随机。晚层的一些“学习”内核被证明是错误的,它们的权重被重新打乱。由于这种dropout,模型暂时变得不太准确,但很快就会学得比以前更好,正如图表中所见。

我不知道有什么方法可以预测这种情况何时以及如何在一个给定的拓扑结构中发生。我个人希望这最终被证明是拓扑结构中固有的某种谐波共振,就像封闭空间中的音频共振,或者许多动物身上的斑点/条纹一样。

Related Posts

在使用k近邻算法时,有没有办法获取被使用的“邻居”?

我想找到一种方法来确定在我的knn算法中实际使用了哪些…

Theano在Google Colab上无法启用GPU支持

我在尝试使用Theano库训练一个模型。由于我的电脑内…

准确性评分似乎有误

这里是代码: from sklearn.metrics…

Keras Functional API: “错误检查输入时:期望input_1具有4个维度,但得到形状为(X, Y)的数组”

我在尝试使用Keras的fit_generator来训…

如何使用sklearn.datasets.make_classification在指定范围内生成合成数据?

我想为分类问题创建合成数据。我使用了sklearn.d…

如何处理预测时不在训练集中的标签

已关闭。 此问题与编程或软件开发无关。目前不接受回答。…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注