我在学习VGG时,被以下性能图表所吸引:
我的问题是:从图表来看,首先是快速增长,然后逐渐放缓。这对我来说是有道理的,因为当损失越来越小时,改进模型变得更加困难。然而,在第50、75和100个epoch左右,有三个突然的下降。我很好奇为什么所有模型在同一时间经历这种下降和反弹?是什么原因导致的?
提前感谢您的任何帮助。
回答:
在复杂模型训练中,这是常见的观察。例如,经典的CNN表现出这种行为:AlexNet和GoogleNet在其训练模式中有两次下降和改善的爆发。这是模型整体学习特性的一个非常复杂和有机的效果。
简单来说…大多数模型中都存在学习瓶颈,即使拓扑结构看起来很平滑。模型会学习一段时间,直到后面的层在反向传播过程中适应得很好…直到这种学习碰到一个瓶颈,一些输入驱动和反馈的干扰倾向于阻碍进一步的真正训练早期层的进展。这表明在那些较低层的学习中存在一些错误的假设,这些假设现在在上层遇到了一些统计现实。
训练过程的自然操作迫使一些早期层的混乱重新回到相对稳定的晚层——这有点像有机的 dropout 效应,尽管不那么随机。晚层的一些“学习”内核被证明是错误的,它们的权重被重新打乱。由于这种dropout,模型暂时变得不太准确,但很快就会学得比以前更好,正如图表中所见。
我不知道有什么方法可以预测这种情况何时以及如何在一个给定的拓扑结构中发生。我个人希望这最终被证明是拓扑结构中固有的某种谐波共振,就像封闭空间中的音频共振,或者许多动物身上的斑点/条纹一样。