分享

优化算法总结

 印度阿三17 2019-08-07

1、梯度下降法

给定一个目标函数f(x)和初始点x0

△xt = -▽f(xt)

xt 1 = x  η△xt

停止条件:当 |△xt| < ε时停止

三大问题:局部最小值、鞍点、停滞区。

1.1 局部最小值(极值)

1.2 停滞区

函数有一段很平的区域,这时梯度很小,权值就更新的特别慢。

1.3 鞍点

鞍点处梯度为0,但不是局部最大值也不是局部最小值。

鞍点坐在的位置在一个方向上式最大值,在另一个方向上是最小值。

二、带冲量的梯度下降法

给定一个目标函数f(x)和初始点x0,初始动量v0

△xt = -▽f(xt)

vt 1 = γvt  η△xt

xt 1 = xt  vt 1

停止标准:冲量小于一个值,或梯度小于一个值,或给定一个迭代次数

在梯度下降法的基础上,加上一个冲量的项,每次迭代乘一个衰减系数。

三、NAG(Nesterov accelerated gradient descent)

改进带冲量的梯度下降法。

给定一个目标函数f(x)和初始点x0,初始动量v0

△xt = - ▽f( xt   γvt )

vt 1 = γvt   η△xt

xt 1 = xt   vt 1

可以发现,求梯度的位置不在是当前位置的梯度,而是沿着当前冲量乘衰减系数前进一步之后所在的位置。

例如骑自行车下坡,原来是根据当前的坡度决定车怎么走,而现在是根据前方的坡度来决定车往哪儿拐。

四、牛顿法

1、牛顿-拉普森算法(NR newton-Raphson)

用来寻找实值方程的近似解。

给定方程f(x)= 0,初始点x0

△x = - f(xt) / f'(xt)

xt 1 = xt  △x

停止:如果|f(x)| < ε

2、牛顿法求极值

给定f(x)和初始点x0

xt 1 = xt - f'(xt)/f''(xt)

停止:| f'(xt| < ε

若f(x △x)是极小值点,将其泰勒展开到二阶:

函数对称轴出就是极值,则:

牛顿法每次迭代,在所在的位置对要求解的函数做一次二次近似,然后直接用这个近似的最小值作为下一次迭代的位置。在高维下计算量有点大。

五、学习率衰减

前期使用叫大的学习率,后期使用较小的学习率。

lr = lrbase x γ| step/stepsize |

基础学习率;

γ是小于1 的衰减系数;

step:当前迭代步数

stepsize:总共迭代次数

 

来源:https://www./content-1-381651.html

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多