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

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

enter image description here

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

提前感谢您的任何帮助。


回答:

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

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

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

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

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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