牛顿法,拟牛顿法,梯度下降,随机梯度下降

10 篇文章 0 订阅
8 篇文章 0 订阅

本文总结了牛顿法, 拟牛顿法,梯度下降和随机梯度下降的概念和计算公式.

牛顿法

首先考虑一维问题.
对于一个一维的函数,如果这个函数连续可微, 并且导数可以计算,
那么计算这个函数的最优解可以看成求解方程 f(x)=0 的根.
F(x)=f(x) , 这个求解过程就变成了求解方程 F(x)=0 的过程.
使用上述迭代的方法就可以进行计算.

迭代的方程为:

xk+1=xkf(xk)f′′(xk)

对于多维情况, f(x1,x2,x3,,xn) , 需要求这个函数的最优解,
就是求 f(x⃗ )=0⃗  的解.

其中 f(x⃗ )=(f(x⃗ )x0,f(x⃗ )x1,,f(x⃗ )xn)

按照求解一维函数的方法, 设 Fi(x⃗ )=f(x⃗ )xi .
f(x⃗ )=F⃗ (x⃗ ) .

那么对于多维函数来说, 牛顿法的公式为:

{x⃗ =x⃗ k=x⃗ k(DF⃗ (x⃗ k))1F⃗ (x⃗ k),k=0,1,2,

由于求解矩阵的逆的计算复杂度较高, 因此,需要使用替换的方法.
s⃗ =(DF⃗ (x⃗ k))1F⃗ (x⃗ k) ,
DF⃗ (x⃗ k)s⃗ =F⃗ (x⃗ k) .

牛顿法的公式变为:

x⃗ =x⃗ k=x⃗ k+s⃗ DF⃗ (x⃗ k)s⃗ =F⃗ (x⃗ k),k=0,1,2,

拟牛顿法

牛顿法虽然收敛速度很快, 但是计算海森矩阵时计算量特别大.
由此演化出了拟牛顿法.
拟牛顿法是模拟牛顿法的意思, 并不是一种算法, 而是几种算法的总称, 这些算法包括DFP算法, BFGS算法, L-BFGS算法.

牛顿法中, 设 gk=f(xk) 为梯度向量, Hk=2f(xk) 为海森矩阵.
拟牛顿法是对 Hk 或者 H1k 取近似值, 从而减少计算量.
BH , DH1 , yk=gk+1gk , sk=xk+1xk

根据拟牛顿法条件, 可得到近似公式:

Bk+1=yksk

Dk+1=skyk

下面是几种拟牛顿法:

DFP算法

DFP算法采用的是 D ,但并不直接计算D,而是计算每一步 D 的增量D来间接的求出 D 。这也是很多优化算法的做法,因为一般上一步的中间结果对下一步的计算仍有价值,若直接抛弃重新计算耗时耗力耗内存,重新发明了轮子。

Dk+1=Dk+Dk

D0 通常取单位矩阵 I ,关键导出每一步的Dk
通过一系列艰苦而又卓绝的推导计算假设取便,最终的导出结果为:

Dk=sksTksTkykDkykyTkDkyTkDkyk

BFGS算法

BFGS算法与DFP算法类似,只是采用的 B 来近似H。最终的公式为:

Bk=ykyTkyTkxkBksksTkBksTkBksk

L-BFGS算法

L-BFGS算法对BFGS算法进行改进,不再存储矩阵 Dk ,因为 Dk 有时候比较大,计算机的肚子盛不下。
但是我们用到 Dk 的时候怎么办呢?答案是根据公式求出来。

从上面的算法推导可知, Dk 只跟 D0 和序列 {sk} {yk} 有关。
即我们知道了后者,即可以求得前者。
进一步近似,我们只需要序列 sk yk 的最近m个值即可。
这样说来,我们的计算机内存中只需要存储这两个序列即可.

最终的递推关系为:

Dk+1=VTkDkVk+ρksksTk

其中

ρk=1yTksk,Vk=IρkyksTk

梯度下降法

首先是梯度的介绍, 对于单变量的的函数中, 梯度是导数, 对于线性函数而言, 梯度就是线的斜率.

假设 h(x) 是要拟合的函数, J(θ) 是损失函数, θ 是参数:

g(θ)=nj=0θjxj

J(θ)=12mmi=1(yihθ(xi))2

  1. J(θ) θ 求偏导, 得到每个 θ 对应的梯度:

h(θj)=J(θ)θj=1mmi=1(yihθ(xi))xij

  1. 对于每个 θj 都按照它的梯度负方向更新它的值, 其中 α 为学习速度:

θj=θjαh(θj)

这种算法有许多缺点:

  • 靠近极小值时速度减慢
  • 直线搜索可能会产生一些问题
  • 可能会’之’字型地下降

当数据量比较大时, 这种方法收敛速度比较慢.

随机梯度下降法

同样假设 h(x) 是要拟合的函数, J(θ) 是损失函数, θ 是参数:

g(θ)=nj=0θjxj

J(θ)=12mmi=1(yihθ(xi))2

  1. 与批量梯度下降(上面提到的普通梯度下降)不同, 随机梯度下降选择其中一个 θk .
    J(θ) θk 求偏导, 得到的梯度为:

h(θk)=J(θ)θk=1mmi=1(yihθ(xi))xik

  1. 对于每个 θj , 使用 θk 的梯度负方向更新每个 θ :

θj=θjαh(θk)

相对于批量梯度下降, 随机梯度下降在每次更新操作时, 并没有选择全局最优解, 这也导致随机梯度下降可能陷入局部最优解.

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
matlab最优化程序包括:无约束一维极值问题、进退、黄金分割、斐波那契牛顿法基本牛顿法、全局牛顿法、割线、抛物线、三次插值、可接受搜索、Goidstein、Wolfe Powell、单纯形搜索、Powell、最速下降、共轭梯度牛顿法、修正牛顿法拟牛顿法、信赖域、显式最速下降、Rosen梯度投影、罚函数、外点罚函数、內点罚函数、混合罚函数、乘子、G-N、修正G-N、L-M、线性规划、单纯形、修正单纯形、大M、变量有界单纯形、整数规划、割平面、分支定界、0-1规划、二次规划、拉格朗曰、起作用集算、路径跟踪、粒子群优化算、基本粒子群算、带压缩因子的粒子群算、权重改进的粒子群算、线性递减权重、自适应权重、随机权重、变学习因子的粒子群算、同步变化的学习因子、异步变化的学习因子、二阶粒子群算、二阶振荡粒子群算 (matlab optimization process includes Non-binding one-dimensional extremum problems Advance and retreat method Golden Section Fibonacci method of basic Newton s method Newton s method Newton s Law of the global secant method parabola method acceptable to the three interpolation search method Goidstein France Wolfe.Powell France Simplex search method Powell steepest descent method Conjugate gradient method Newton s method Newton s method to amend Quasi-Newton Method trust region method explicitly steepest descent method, Rosen gradient projection method Penalty function method outside the penalty function method within the penalty function method Mixed penalty function multiplier method G-N was amended in G-N method L-M method Of linear programming simplex method, revised simplex method Big M method variables bounded simplex method, Cutting Plane Method integer programming branch and bound method 0-1 programming quadratic programming )

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值