1.好的实验环境是成功的一半
(a) 将各个参数的设置部分集中在一起
(b)可以输出模型的损失函数值以及训练集验证集上的准确率
(c)可以考虑设计一个子程序,可以根据给定的参数,启动训练并监调和周期性保存评估结果。再由一个主程序,分配参数以及并行启动一系列子程序。
2.画图
(a) 一般是训练数据遍历一轮后,就输出一下训练集和验证集的准确率,同时画到一张图上,这样训练一段时间后,如果模型一直没有收敛,那么就停止训练,尝试其他参数,节省时间。
(b)如果训练到最后,训练集、验证集的准确率都很低,那么说明模型有可能欠拟合。需要增强模型拟合能力:1.增加网络的层数,增加节点数、减少dropout的值、减少l2正则值等等。
(c)如果训练集的准确率很高,但是测试集的准确率很低,那么模型有可能过拟合,这个时候需要提高模型的泛化能力,调节参数。
3.从粗到细分阶段调参
(a)建议参考论文,以论文中给出的参数作为初始参数
(b)如果找不到参考,只能自己尝试了,先从比较重要,对实验结果影响比较大的参数开始,同时固定其他的参数,得到一个差不多的结果之后,在这个结果的基础上,在调其他的参数。例如:学习速率一般比正则值、dropout值重要
(c)如果实在找不到一组参数可以让模型收敛,那么需要检查,是不是其他地方出问题。例如模型的实现、数据等等
4.提高速度
调参是为了寻找合适的参数,而不是产出最终模型,一般在小的数据集上合适的参数,在大的数据集上的效果也不会太差,因此可以尝试对数据进行精简,以提高速度,在有限的时间内尝试更多的参数。
(a)对训练数据集进行采样
(b)减少训练类别,例如:首先数字识别任务,10个类别,我们先可以在2个类别上训练,看看效果如何
5.经验参数
(a)lear