梯度投影法理论
投影矩阵
我觉得这篇文章写的还行
https://www.cnblogs.com/bigmonkey/p/9897047.html
梯度投影法
例子
minf(x)=x2+y2s.t.x+y≥1
显然当
x=y=0.5时有最小值,且
∇f(x)=(2x12x2)这里我们假设初始点
x(1)=(3,−2),积极约束矩阵
A=(1 1),b=(1)
几何意义
该例的等高面如图所示
其中,绿点是最小值点,红点是初始点,两条黑线箭头分别是负梯度方向
−∇f(x)和负梯度的投影方向
d(1)=−P∇f(x)。这里P是投影矩阵,且
P=I−AT(AAT)−1A=(0.5−0.5−0.50.5)
而
−∇f(x(1))=(−64)
因此
d(1)=−P∇f(x)=(−55)
实际上,
d(1)就是约束矩阵
A的零空间的基。换言之,如果
-
−P∇f(x)=0,则当前点在约束下不存在下降方向。
-
−P∇f(x)=∇f(x),则当前点在约束下的下降方向就是梯度,即
∇f(x)在
A的零空间上。
-
−P∇f(x)̸=0,则其为当前点在约束下的下降方向。
那么,为什么是这样呢?
因为
A是积极约束的矩阵,
A的每一行都是一个向量(行向量),而
A的零空间里的向量与这些向量都正交,该投影矩阵又恰好是
A的零空间投影矩阵,能够把任何向量投影到零空间中(在此题中就是把梯度投影到零空间中)。比如,在上面的例子中,
A的一个行向量是
(1 1),与其正交的向量是
(−kk),k∈R
也即下降可行方向。
不足之处
如果梯度方向在约束范围的内部,会减速。比如在此例中如果把约束改为
x>−1,初始点为
x(1)=(−1,2)时,梯度方向只需一次迭代,而梯度投影则还需要进行进一步判断(待更新)
参考资料
上海交大最优化讲义
陈宝林 《最优化理论与算法》