tensorflow 加速优化方法

1. stochastic gradient decent(CGD)

  将data分小批放入神经网络中进行计算

  W += -Learning rate * dx

缺点:选择合适的learning rate比较困难

   速度慢

   容易收敛到局部最优,并且在某些情况下可能被困在鞍点

2. momentum

  模拟物理里动量的概念,积累之前的动量来替代真正的梯度。(利用斜坡的惯性)

  m = b1 * m - Learning rate * dx

  W += m

特点:在相关方向加速SGD,抑制振荡,从而加快收敛

   依靠人工设置全局学习率,中后期分母上梯度平方的累加将会越来越大,使得训练提前结束

3. adagrad

  每一个参数的更新都有自己的学习率(不好走的鞋子)

  v += dx^2

  W += -Learning rate * dx / √v

特点:前期放大梯度,后期约束梯度,适合处理稀疏梯度

4. RMSProp

综合了momentum和adagrad的优势

v = b1 * v + (1 - b1) * dx^2

W += -Learning rate * dx / √v

特点:依赖于全局学习率

   适合处理非平稳目标 - 对于RNN效果很好

5. Adam(又快又好)

m = b1 * m + (1 - b1) * dx

v = b2 * v + (1 - b2) * dx^2

W += -Learning rate * m / √v

特点:结合了Adagrad善于处理稀疏梯度和RMSprop善于处理非平稳目标的优点

   对内存需求较小

   为不同的参数计算不同的自适应学习率

   也适用于大多非凸优化 - 适用于大数据集和高维空间

 6. 优化器

用于改变学习效率

 

posted @ 2018-02-26 16:27  farmerspring  阅读(2630)  评论(0编辑  收藏  举报