优化算法知识点整理

 

 

ä¼åç®æ³ç¥è¯ç¹

 

几种优化算法,梯度下降的种类 
考虑无约束优化问题 
minxf(x)
minxf(x)
梯度下降
梯度下降法是一种常用的一阶优化方法,是求解无约束优化问题最简单、最经典的方法之一。

其中,f(x)连续可微。若能构造一个序列x0,x1,x2,...x0,x1,x2,...满足

f(xt+1)<f(xt),t=0,1,2...
f(xt+1)<f(xt),t=0,1,2...
则不断执行该过程即可收敛到局部极小点。

根据泰勒一阶展开:

f(x+Δx)≈f(x)+ΔxT∇f(x)
f(x+Δx)≈f(x)+ΔxT∇f(x)
要满足f(x+Δx)<f(x)f(x+Δx)<f(x), 可选择:

Δx=−γ∇f(x)Δx=−γ∇f(x)
选择合适的步长,就能通过梯度下降法收敛到局部最小

(1) 批梯度下降

原始的梯度下降算法

(2) 随机梯度下降

每次梯度计算只使用一个样本:

避免在类似样本上计算梯度造成的冗余计算
增加了跳出当前的局部最小值的潜力
在逐渐缩小学习率的情况下,有与批梯度下降法类似的收敛速度
(3) 小批量梯度下降

每次梯度计算使用一个小批量的样本:

梯度计算比单样本更加稳定
可以很好的利用现成的高度优化的矩阵运算工具

2. 牛顿法

若f(x)二阶连续可微,则f(x)的二阶泰勒展开:

f(x)=f(x(k))+gkT(x−x(k))+12(x−x(k))TH(x(k))(x−x(k))
f(x)=f(x(k))+gkT(x−x(k))+12(x−x(k))TH(x(k))(x−x(k))
其中

gk=g(x(k))=∇f(x(k))gk=g(x(k))=∇f(x(k))
上式表示f(x)的梯度向量在点x(k)x(k)处的值

定义海塞矩阵

H(x)=[∂2f∂xi∂xj]n×n
H(x)=[∂2f∂xi∂xj]n×n
H(x(k))H(x(k))为海塞矩阵在x(k)x(k)处的值

牛顿法利用极小点的必要条件∇f(x)=0∇f(x)=0,每次迭代中从点x(k)x(k)开始,求目标函数的极小点,作为第k+1次迭代值x(k+1)x(k+1)。

假设x(k+1)x(k+1)满足∇f(x(k+1))=0∇f(x(k+1))=0
对f(x)的二阶泰勒展开求一阶偏导数

∇f(x)=gk+H(x(k))(x−x(k))
∇f(x)=gk+H(x(k))(x−x(k))
令上式为0即可求x(k+1)x(k+1)
x(k+1)=−x(k)−H(x(k))−1gk
x(k+1)=−x(k)−H(x(k))−1gk
牛顿法的优缺点总结:
优点:二阶收敛,收敛速度快;

缺点:

牛顿法是一种迭代算法,每一步都需要求解目标函数的Hessian矩阵的逆矩阵,计算比较复杂;
使用小批量的情形下,牛顿法对于二阶导数的估计噪音太大
在目标函数非凸时,牛顿法更容易受到暗点甚至最大值点的吸引 
.
3.拟牛顿 
在牛顿迭代中,需要计算海塞矩阵的逆矩阵H−1H−1,这一计算比较复杂,考虑使用一个n阶的矩阵Gk=G(x(k))Gk=G(x(k))来近似代替H(x(k))−1H(x(k))−1。这就是拟牛顿法的基本想法。 
- 拟牛顿条件 
由海塞矩阵H_k满足的条件: 
∇f(x)=gk+H(x(k))(x−x(k))
∇f(x)=gk+H(x(k))(x−x(k))

令x=x(k+1)x=x(k+1),即 
gk+1=gk+H(x(k))(x(k+1)−x(k))
gk+1=gk+H(x(k))(x(k+1)−x(k))

记yk=gk+1−gk,δk=(x(k+1)−x(k))yk=gk+1−gk,δk=(x(k+1)−x(k)),则拟牛顿条件表示为: 
yk=Hkδkyk=Hkδk 或者Hk−1yk=δkHk−1yk=δk 
用一个n阶的矩阵Gk=G(x(k))Gk=G(x(k))来近似代替 H(x(k))−1H(x(k))−1,则GkGk也满足拟牛顿条件 
Gk+1yk=δk
Gk+1yk=δk

每次更新:Gk+1=Gk+ΔGkGk+1=Gk+ΔGk 
(1) DFP算法 
DFP算法选择用Gk+1Gk+1的方法是,假设每一步迭代中矩阵Gk+1Gk+1是由GkGk加上两个附加项构成的,即 
Gk+1=Gk+Pk+Qk
Gk+1=Gk+Pk+Qk

其中Pk,QkPk,Qk是待定矩阵,两边同时右乘ykyk 
Gk+1yk=Gkyk+Pkyk+Qkyk
Gk+1yk=Gkyk+Pkyk+Qkyk

为使Gk+1Gk+1满足拟牛顿条件,可使Pk,QkPk,Qk满足: 
Pkyk=δkQkyk=−Gkyk
Pkyk=δkQkyk=−Gkyk

取: 
Pk=δkδkTδkTykQk=−GkykykTGkykTGkyk
Pk=δkδkTδkTykQk=−GkykykTGkykTGkyk

(2)BFGS算法
最流行的拟牛顿算法,考虑使用B_k逼近海塞矩阵H,这时,相应的拟牛顿条件是

Bk+1δk=ykBk+1δk=yk
首先令 
Bk+1=Bk+Pk+Qk Bk+1δk=Bkδk+Pkδk+Qkδk
Bk+1=Bk+Pk+Qk Bk+1δk=Bkδk+Pkδk+Qkδk

考虑使PkPk和QkQk满足: 
Pkδk=yk Qkδk=−Bkδk
Pkδk=yk Qkδk=−Bkδk

找出合适条件的PkPk和QkQk,得到BFGS算法矩阵Bk+1Bk+1的迭代公式: 
Bk+1=Bk+ykykTykTδk−BkδkδkTBkδkkBkδk
Bk+1=Bk+ykykTykTδk−BkδkδkTBkδkkBkδk
4 三种求解无约束优化问题的方法的比较

梯度下降法并不是下降最快的方向,它只是目标函数在当前的点的切面上下降最快的方向;牛顿法下降的方向一般被认为是下降最快的方向。
梯度下降不一定能够找到全局最优解,也有可能只是一个局部最优解。如果损失函数是凸函数,梯度下降法得到的解就一定是全局最优解。
从收敛速度上看 ,牛顿法是二阶收敛,梯度下降是一阶收敛,前者牛顿法收敛速度更快。但牛顿法仍然是局部算法,只是在局部上看的更细致,梯度法仅考虑方向,牛顿法不但考虑了方向还兼顾了步子的大小,其对步长的估计使用的是二阶逼近。
根据wiki上的解释,从几何上说,牛顿法就是用一个二次曲面去拟合你当前所处位置的局部曲面,而梯度下降法是用一个平面去拟合当前的局部曲面,通常情况下,二次曲面的拟合会比平面更好,所以牛顿法选择的下降路径会更符合真实的最优下降路径。
文字内容来源大萍的博客
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值