优化方法

http://www.cnblogs.com/maybe2030/p/4751804.html

1、梯度下降(批量梯度下降BGD)

思想:用当前位置负梯度方向作为搜索方向,因为该方向为当前位置的最快下降方向,所以也被称为是”最速下降法“。最速下降法越接近目标值,步长越小,前进越慢。

:靠近极小值时收敛速度减慢、迭代次数多训练时间长、直线搜索时可能会产生一些问题、可能会“之字形”地下降。

:简单、结果可靠。

当目标函数是凸函数时,梯度下降法的解是全局解。一般情况下,其解不保证是全局最优解,梯度下降法的速度也未必是最快的。

2、随机梯度下降(SGD)

BGD用来所有样本。SGD每次迭代只使用一个batch样本。

随机梯度下降方法以损失很小的一部分精确度增加一定数量的迭代次数为代价,换取了总体的优化效率的提升。增加的迭代次数远远小于样本的数量。

总结:

BGD:最小化所有训练样本的损失函数,使得最终求解的是全局的最优解,即求解的参数是使得风险函数最小,但是对于大规模样本问题效率低下

SGD:最小化每个batch样本的损失函数,虽然不是每次迭代得到的损失函数都向着全局最优方向, 但是整体的方向是向全局最优解的,最终的结果往往是在全局最优解附近,适用于大规模训练样本情况

3、牛顿法(切线法)

思想:使用函数(x)的泰勒级数的前面几项来寻找方程(x) = 0的根。(神经网络的二阶方法:基于二阶泰勒级数展开在某点\theta _{_{_{0}}}附近来近似J( \theta )的优化方法,其忽略了高阶导数)

牛顿法值适用于海森矩阵是正定的情况,可以用正则化海森矩阵来避免。

优点:二阶收敛,收敛速度快;

缺点:牛顿法是一种迭代算法,每一步都需要求解目标函数的Hessian矩阵的逆矩阵,计算比较复杂。

对比:牛顿法是二阶收敛,梯度下降是一阶收敛,所以牛顿法就更快。相对而言,梯度下降法只考虑了局部的最优,没有全局思想。从几何上说,牛顿法就是用一个二次曲面去拟合你当前所处位置的局部曲面,而梯度下降法是用一个平面去拟合当前的局部曲面,通常情况下,二次曲面的拟合会比平面更好,所以牛顿法选择的下降路径会更符合真实的最优下降路径。

4、拟牛顿法

思想:改善牛顿法每次需要求解复杂的Hessian矩阵的逆矩阵的缺陷,它使用正定矩阵来近似Hessian矩阵的逆,从而简化了运算的复杂度。

常用的有BFGSDFP

5、共轭梯度下降法(CG)

共轭梯度法是介于最速下降法与牛顿法之间的一个方法,它仅需利用一阶导数信息,但克服了最速下降法收敛慢的缺点,又避免了牛顿法需要存储和计算Hesse矩阵并求逆的缺点,共轭梯度法不仅是解决大型线性方程组最有用的方法之一,也是解大型非线性最优化最有效的算法之一。

6、自适应学习率算法:

启发式优化方法种类繁多,包括经典的模拟退火方法、遗传算法、蚁群算法以及粒子群算法等等

Adam

RMSProp

AdaGrad

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值