坐标下降

给定一个可微的凸函数,如果在某一点x,使得f(x)在每一个坐标轴上都是最小值,那么f(x)是一个全局的最小值。如果f(x)不可微,则不满足。

同理:对所有的,其中g是可微的凸函数,每一个hi都是凸的,我们可以使用坐标下降寻求一个最小值。

一 综述

坐标下降法属于一种非梯度优化的方法,它在每步迭代中沿一个坐标的方向进行搜索,通过循环使用不同的坐标方法来达到目标函数的局部极小值

二 算法过程

假设目标函数是求解f(x)f(x)的极小值,其中x=(x1,x2,…,xn)x=(x1,x2,…,xn)是一个n维的向量,我们从初始点x0x0开始(x0x0是我们猜想的一个初值)对k进行循环:

 

相当于每次迭代都只是更新xx的一个维度,即把该维度当做变量,剩下的n-1个维度当作常量,通过最小化f(x)f(x)来找到该维度对应的新的值。坐标下降法就是通过迭代地构造序列x0,x1,x2,…x0,x1,x2,…来求解问题,即最终点收敛到期望的局部极小值点。通过上述操作,显然有:

 

f(x0)≥f(x1)≥f(x2)≥…f(x0)≥f(x1)≥f(x2)≥…

=========================================================================

证明如下:

当k=0k=0时,对应的f(x)f(x)的值为f(x0)=f(x01,x02,…,x0n)f(x0)=f(x10,x20,…,xn0)

由于x11=argminf(x1,x02,…,x0n)x11=argminf(x1,x20,…,xn0),所以f(x11,x02,…,x0n)≤f(x01,x02,…,x0n)=f(x0)f(x11,x20,…,xn0)≤f(x10,x20,…,xn0)=f(x0),以此类推

所以f(x11,x12,…,x0n)≤f(x11,x02,…,x0n)≤f(x01,x02,…,x0n)=f(x0)f(x11,x21,…,xn0)≤f(x11,x20,…,xn0)≤f(x10,x20,…,xn0)=f(x0)

所以f(x1)=f(x11,x12,…,x1n)≤…f(x11,x12,…,x0n)≤f(x11,x02,…,x0n)≤f(x01,x02,…,x0n)=f(x0)f(x1)=f(x11,x21,…,xn1)≤…f(x11,x21,…,xn0)≤f(x11,x20,…,xn0)≤f(x10,x20,…,xn0)=f(x0)

同理可得f(x2)≤f(x1)≤f(x0)f(x2)≤f(x1)≤f(x0),命题得证。

======================================================================

相比梯度下降法而言,坐标下降法不需要计算目标函数的梯度,在每步迭代中仅需求解一维搜索问题,所以对于某些复杂的问题计算较为简便。但如果目标函数不光滑的话,坐标下降法可能会陷入非驻点。

三 注意事项

关于坐标下降法,有几点需要注意的:

1.坐标下降的顺序是任意的,不一定非得按照从x1…xnx1…xn的顺序来,可以是从1到n的任意排列。

2.坐标下降的关键在于一次一个地更新,所有的一起更新有可能会导致不收敛。

3.坐标上升法和坐标下降法的本质一样,只不过目标函数成为求f(x)f(x)的极大值了,每次迭代过程minmin变成maxmax了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值