用同一数据集训练卷积神经网络,但每次训练结果不一样,有时正确率很高,有时正确率却很低,为什么?

关注者
11
被浏览
42,416
登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏

这是很正常的,造成这种情况有很多因素。

首先你要知道,你在训练神经网络时,可能会搜索到局部最优解。你可以将这个结果域想象成一个三维面,局部最优解是较浅的凹陷,全剧最优解是最深的凹陷。

你在进行训练时会采用梯度下降的方法,这些方法可能会找到局部最优解,但是因为你的学习率也就是你的步长设置的不够大,就会导致模型被困在局部最优解,无法跳出。

其次,你每次训练的时候,神经网络的参数和权重每次都是随机的,所以肯定每次的结果都不一样。除非你保存了权重和参数。这样也会导致你不断地陷入局部最优解中,当然也可能是全局最优解。

因此,这种情况是很常见的。这也是为什么,现在的神经网络在训练时都要进行多次训练,并使用Adam等能自动调整步长的优化方法。