深度学习tips

来源:互联网 发布:java五子棋人机对战 编辑:程序博客网 时间:2024/06/05 11:24

深度学习超参

参考文献
我搭的神经网络不work该怎么办
如何诊断长短期记忆网络模型的过拟合和欠拟合?
克服过拟合和提高泛化能力的20条技巧和诀窍
深度学习与XGBoost在小数据集上的测评
吴恩达深度学习
李宏毅深度学习技巧

1.防止过拟合

  • dropout 0.2-0.5,每一层都可以加
  • 以一定概率删除节点
  • 在网络中的每个线性层(如卷积层或稠密层)前加入Dropout层。
  • 正则项:
  • bias项正则可以不加,因为W几乎涵盖所有参数,b影响不大
  • L1 正则W 会很稀疏,包含很多0.倾向使用L2。lambda越大模型越简单low variance high bias。

2.batch_size

  • 过大会降低梯度下降的随机性,8,16逐渐增大
  • 较小的能带来更多起伏、跳出局部最小,训练结束平滑。
  • minibatch loss 或许会上升,SGD 噪声低,loss变化震荡,训练慢

3.学习率

  • adaptive learning rates.
    reduce the learning rate by some factor every few epochs.

4.激活函数

  • sigmoid function: deeper不代表好,
    梯度消失Input 层附近梯度小,learn slow
    output 层附近梯度大,learn fast
  • relu function:
    fast to compute
    biological reason
    infinite sigmoid with different biases
    vanishing gradient problems

5.层数

浅层开始,有一定效果,再逐步更深

6.隐藏unit数量

隐藏单元数量256到1024
如果你正在做分类,可以使用类别数目的5到10倍,作为隐藏单元的数量;如果做回归,可以使用输入或输出变量数目的2到3倍。
隐藏单元的数量通常对神经网络性能影响很小

7.参数初始化

  • 优先级较低 fromNG

8.超参选择

Do not use grid。,从最要的开始选择

9.激活函数

relu:计算快速,生物学理由,处理梯度消失

9.模型不好不一定是过拟合,可能在训练数据上也不好

原创粉丝点击