优化技巧都是针对问题来的,下面列出了训练神经网络存在的问题,及其优化技巧
一、过拟合
优化方法:1
- 训练更多数据
- 降低网络容量
- 早期停止
- 正则化(L1 和 L2)
- Dropout,在每个 epoch 中随机关闭一些节点
二、局部最优
优化方法:
- 随机重新开始
- 动量,
β
,
0
<
β
<
1
\beta,0 <\beta<1
β,0<β<1
第 n 步步长,step(n) := step(n) + β \beta βstep(n-1) + β 2 \beta^2 β2step(n-2) + …
三、梯度消失
方法:
- 采用其他激活函数,如 reLu(修正线性单元)、tanh(双曲正切)
四、数据量大时,收敛速度慢
优化方法:
- 批量梯度下降(BGD)
- 随机梯度下降(SGD)
五、学习速度慢
优化方法:
- 学习速率衰退,在模型越来越接近解决方案时降低学习速率,SGD.Nesterov 动量
https://tensorflow.google.cn/tutorials/keras/overfit_and_underfit ↩︎