我们可以采取什么样的技巧来进一步完善训练后的神经网络模型,使其具有较低的目标函数值?

时间:2019-02-20 15:05:34

标签: python tensorflow caffe pytorch

我问这个问题是因为许多深度学习框架(例如Caffe)都支持模型优化功能。例如,在Caffe中,我们可以使用快照来初始化神经网络参数,然后继续执行训练,如以下命令所示:

./caffe train -solver solver_file.prototxt -snapshot snap_file.solverstate

为了进一步训练模型,我可以使用以下技巧:

  • 使用较小的学习率
  • 更改优化方法。例如,将随机梯度下降更改为ADAM算法

还有其他可以玩的技巧吗?

ps:我知道减少训练样本的损失函数值并不意味着我们可以获得更好的模型。

1 个答案:

答案 0 :(得分:1)

我认为问题太广泛了。但是,这是常见的做法,尤其是在训练量较小的情况下。我将对可能的方法进行排序:

  • 学习率较低
  • 更多/不同的数据增强
  • 给训练集增加噪音(确实与数据增强有关)
  • 微调训练集的子集。

最后一个确实是一种非常强大的方法,可以最终确定在某些极端情况下性能不佳的模型。然后,您可以制作一个“困难的”训练子集,以使其偏向模型。我个人经常使用它。