我训练了一个修改后的 VGG 分类 CNN,具有随机初始化的权重;因此验证准确度不足以让我接受(大约 66%)。现在使用训练网络产生的权重,我如何使用这些权重再次训练网络以提高准确性?(例如使用具有不同学习率的先前训练权重,或增加时期,..)
如何在训练中再次利用之前的训练权重来提高准确性?
人工智能
卷积神经网络
训练
喀拉斯
2021-11-11 08:00:21
1个回答
首先,我假设您已经调整了超参数。因为,与其重新训练需要更多时间的网络(使用先前训练过程产生的权重),我将更多地投资于可用网络的超参数调整。
那么,有几种方法和注意事项:
您可以使用第一个网络产生的权重作为下一个训练过程的初始值。但是如果你为你的超参数使用“初始”值(例如高学习率),网络将面临同样的数据/问题,那么我担心它会导致过度拟合。因为它只是您的架构中的“没有任何变化”。
如果您之前没有在训练过程中使用自适应学习(例如 Adadelta、Adam),您可以使用较小的学习率重新训练您的网络。因此,您的模型可以找到更好的结果。
或者,您可以使用selffer网络的概念,使用之前训练过程中某些层的权重(您可以冻结或不冻结)并随机初始化其他层。然后,使用超参数的“初始”值训练网络
您可以阅读有关迁移学习概念(或selffer网络)的更多信息,以获得最适合您的案例的方法。还有一篇关于“CNN 上的增量训练”的论文,我认为它与selffer网络类似,但有一些修改。
希望能帮助到你