深度学习调参的技巧

如何调参:

  1. batchsize要合适

  2. epoch要合适,观察收敛情况,防止过拟合

  3. 是否添加batch nomal

  4. dropout是否需要

  5. 激活函数选择:除了gate之类的地方,需要把输出限制成0-1之外,尽量不要用sigmoid,可以用tanh或者relu之类的激活函数.1. sigmoid函数在-4到4的区间里,才有较大的梯度。之外的区间,梯度接近0,很容易造成梯度消失问题。2. 输入0均值,sigmoid函数的输出不是0均值的。

  6. 损失函数一轮加正则,一轮不加正则

  7. 优化器的选择:adam,adadelta等,在小数据上,实验的效果不如sgd, sgd收敛速度会慢一些,但是最终收敛后的结果,一般都比较好。如果使用sgd的话,可以选择从1.0或者0.1的学习率开始,隔一段时间,在验证集上检查一下,如果cost没有下降,就对学习率减半。 很多论文都这么搞,实验的结果也很不错. 当然,也可以先用ada系列先跑,最后快收敛的时候,更换成sgd继续训练.同样也会有提升.据说adadelta一般在分类问题上效果比较好,adam在生成问题上效果比较好。

  8. ensemble

    • 同样的参数,不同的初始化方式

    • 不同的参数,通过cross-validation,选取最好的几组

      k折交叉详解:https://www.cnblogs.com/henuliulei/p/13686046.html

    • 同样的参数,模型训练的不同阶段,即不同迭代次数的模型。

    • 不同的模型,进行线性融合. 例如RNN和传统模型.

你可能感兴趣的:(拾遗,深度学习,神经网络,调参,模型融合)