2017-04-11 44 views

回答

1

你的问题有点过于笼统,我的看法是,网络是过度拟合训练数据集,你可以看到训练的损失是相当低的,但时代50后验证损失不再有所改善。

我没有深入阅读论文,所以我不知道他们是如何解决问题的,但增加正规化可能会有所帮助。下面的链接将指向您在正确的方向http://cs231n.github.io/neural-networks-3/

下面我复制文本的总结:

摘要

训练神经网络:

  • 梯度检查实施一小批数据并注意陷阱。
  • 作为一个全面的检查,确保您最初的损失是合理的,就可以对 一个非常小的部分达到100%的训练精度的数据
  • 在训练期间,监测的损失,培训/认证准确性,并且如果你觉得更有趣,那么参数值(应该是〜1e-3)与更新幅度有关,并且在处理ConvNets, 的第一层权重。
  • 建议使用的两个更新是SGD + Nesterov Momentum或Adam。
  • 衰减训练期间的学习率。例如,在固定数量的时期后将学习速率减半,或者只要验证准确度达到最高,就会减少学习速率。
  • 使用随机搜索(不是网格搜索)搜索优秀的超参数。舞台由粗搜索(宽超参数的范围,只有 培训1-5时期),罚款(护林员较窄,为 许多多个时期培训)
  • 表格模式集合了额外的性能
1

我会争辩说,数据预处理的差异会导致性能的差异。他使用填充和随机作物,这本质上增加了训练样本的数量并减少了泛化误差。同样如前面的海报所说,你缺少正规化功能,如重量衰减。

你应该再看看论文,并确保你像他们一样实施一切。

+0

在哪个层面上使用正则化更好? –