【最优化】梯度投影法的几何意义

梯度投影法理论

投影矩阵

我觉得这篇文章写的还行
https://www.cnblogs.com/bigmonkey/p/9897047.html

梯度投影法

例子

min f ( x ) = x 2 + y 2 s . t . x + y 1 \min\quad f(x)=x^2+y^2\\ s.t.\quad x+y≥1
显然当 x = y = 0.5 x=y=0.5 时有最小值,且
f ( x ) = ( 2 x 1 2 x 2 ) \nabla f(x)= \left( %左括号 \begin{array}{cc} %该矩阵一共3列,每一列都居中放置 2x_1 \\ %第一行元素 2x_2 \\ %第二行元素 \end{array} \right) 这里我们假设初始点 x ( 1 ) = ( 3 , 2 ) x^{(1)}=(3,-2) ,积极约束矩阵 A = ( 1     1 ) , b = ( 1 ) A=(1 \ \ \ 1),b=(1)

几何意义

该例的等高面如图所示
在这里插入图片描述
其中,绿点是最小值点,红点是初始点,两条黑线箭头分别是负梯度方向 f ( x ) -\nabla f(x) 和负梯度的投影方向 d ( 1 ) = P f ( x ) d^{(1)}=-P\nabla f(x) 。这里P是投影矩阵,且
P = I A T ( A A T ) 1 A = ( 0.5 0.5 0.5 0.5 ) P=I-A^T(AA^T)^{-1}A= \left( %左括号 \begin{array}{cc} %该矩阵一共3列,每一列都居中放置 0.5 & -0.5 \\ %第一行元素 -0.5 & 0.5 \\ %第二行元素 \end{array} \right)

f ( x ( 1 ) ) = ( 6 4 ) -\nabla f(x^{(1)})= \left( %左括号 \begin{array}{cc} %该矩阵一共3列,每一列都居中放置 -6 \\ %第一行元素 4 \\ %第二行元素 \end{array} \right)
因此
d ( 1 ) = P f ( x ) = ( 5 5 ) d^{(1)}=-P\nabla f(x)= \left( %左括号 \begin{array}{cc} %该矩阵一共3列,每一列都居中放置 -5 \\ %第一行元素 5 \\ %第二行元素 \end{array} \right)
实际上, d ( 1 ) d^{(1)} 就是约束矩阵 A A 的零空间的基。换言之,如果

  • P f ( x ) = 0 -P\nabla f(x)=0 ,则当前点在约束下不存在下降方向。
  • P f ( x ) = f ( x ) -P\nabla f(x)=\nabla f(x) ,则当前点在约束下的下降方向就是梯度,即 f ( x ) \nabla f(x) A A 的零空间上。
  • P f ( x ) 0 -P\nabla f(x)\ne 0 ,则其为当前点在约束下的下降方向。

那么,为什么是这样呢?
因为 A A 是积极约束的矩阵, A A 的每一行都是一个向量(行向量),而 A A 的零空间里的向量与这些向量都正交,该投影矩阵又恰好是 A A 的零空间投影矩阵,能够把任何向量投影到零空间中(在此题中就是把梯度投影到零空间中)。比如,在上面的例子中, A A 的一个行向量是 ( 1      1 ) (1\ \ \ \ 1) ,与其正交的向量是 ( k k ) , k R \left( %左括号 \begin{array}{cc} %该矩阵一共3列,每一列都居中放置 -k \\ %第一行元素 k \\ %第二行元素 \end{array} \right) ,k\in R
也即下降可行方向。

不足之处

如果梯度方向在约束范围的内部,会减速。比如在此例中如果把约束改为 x > 1 x>-1 ,初始点为 x ( 1 ) = ( 1 , 2 ) x^{(1)}=(-1,2) 时,梯度方向只需一次迭代,而梯度投影则还需要进行进一步判断(待更新)

参考资料

上海交大最优化讲义
陈宝林 《最优化理论与算法》

发布了19 篇原创文章 · 获赞 29 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_41987033/article/details/84927642