模型调优

操作建议

在教程结束之前,我们会给一些操作上的经验。之前的教程讨论了很多理论,这不意味着在深度学习日常工作中最重要的是知道很多算法理论,会推导很多数学公式。实际上,正确熟练地使用很多经验技巧至少是同等重要的。

建议一个深度学习实验采用以下的标准动作:

定义指标和目标

由于可能的模型空间非常大,尽量从已有的模型开始实验,发明新的好用的模型结构更像“黑魔法”,要谨慎尝试。

由于模型的复杂度和大数据量,完整的训练可能比较费时,所以可以使用部分数据进行初期的使用,调整超参数,注意记录详细实验数据。

分析实验,判断性能问题原因。过拟合?欠拟合?数据问题?程序bug?

不断进行训练分析迭代,每次都按照分析的结果来或加数据,或调参,或换网络。

如何进行模型调优

增加数据、增加模型表达能力的权衡

首先需要确认模型在训练集上的性能是好的。

如果在训练集上的性能较差,可以尝试

通过增加网络深度和宽度来增强模型表达能力

检查训练数据干净程度,必要时重新清洗训练数据

如果在训练集上的性能较好,可以优先尝试增加数据。深度学习的初学者容易犯的一个错误就是,在第一次跑通模型训练之后,就开始进行各种算法上的调优。但是从经验来看,增加训练数据量很可能是更有效的方法。

确认模型训练充分

找到最大的能收敛的Learning Rate。

用阶梯下降法或倍增总训练轮数,确认使得模型训练充分的总训练轮数。

无论怎么训练,模型性能都抖动很大时,应该做如下动作

确认数据的正确性:可能是每轮的测试集不一样,训练集没有shuffle好。

修正数据集:可能是标注错误较多,部分case太难,或者训练、测试数据量太少。

取最后若干轮中性能最好的一轮,当作该模型的性能。该性能的绝对值可能会虚高(overfit了验证、测试集),但相对值是有意义的,可以用于判断不同超参数的优劣。

在确定数据集、大致的网络规模、LR、训练轮数后,尝试找到最优的网络和超参数

将网络、参数分为相关的几组,分别调优

网络结构优化:BN,InceptionBlock,ResBlock

模型表达能力:网络宽度、深度,Regularization

优化方式:SGD、Adam,LR策略

通过grid search的方式确认每组的最优参数,切忌一次实验改变多个变量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值