在 ILSVRC12 上学习 ZFNet 时测试精度无法提高

Test accuracy cannot improve when learning ZFNet on ILSVRC12

我已经为我的研究实现了一个自制的 ZFNet (prototxt)。在使用定义进行 20k 次迭代后,测试精度保持在 ~0.001(即 1/1000),测试损失保持在 ~6.9,训练损失保持在 ~6.9,这似乎是网络在 1k 类。我彻底检查了整个定义并尝试更改一些超参数以开始新的训练,但无济于事,屏幕上显示相同的结果....

任何人都可以给我一些光吗?提前致谢!


prototxt中的超参数来源于论文[1]。正如论文中的图 3 所示,各层的所有输入和输出似乎都是正确的。

调整是:

[1] Zeiler, M. 和 Fergus, R. 可视化和理解卷积网络,ECCV 2014。

对于不好的部分...,我粘贴了它here

几点建议:

  1. 将初始化从 gauss 更改为 xavier
  2. 使用 "PReLU" 个激活,而不是 "ReLU"。一旦您的网络收敛,您就可以微调以删除它们。
  3. 尝试将 base_lr 减少一个数量级(甚至两个数量级)。