给定一个可微的凸函数坐标下降,如果在某一点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了。

 

相关文章:

  • 2021-06-26
  • 2021-09-16
  • 2021-11-12
  • 2021-09-15
  • 2021-12-29
猜你喜欢
  • 2021-11-19
  • 2021-08-03
  • 2021-12-06
  • 2022-01-17
  • 2021-12-24
相关资源
相似解决方案