Dual Ascent
考虑以下等式约束凸优化问题:
(1.1) m i n i m i z e f ( x ) s . t . A x = b \begin{aligned} \mathrm{minimize} \ \ & f(x) \\ s.t.\ \ &Ax = b \end{aligned} \tag{1.1} minimize s.t. f(x)Ax=b(1.1)
其中 x ∈ R n , A ∈ R m × n , f : R n → R x\in\mathbf{R}^n,A\in\mathbf{R}^{m\times n},f:\mathbf{R^n}\rightarrow \mathbf{R} x∈Rn,A∈Rm×n,f:Rn→R
对应的拉格朗日方程为:
L ( x , y ) = f ( x ) + y T ( A x − b ) L(x,y) = f(x) + y^{T}(Ax - b) L(x,y)=f(x)+yT(Ax−b)
dual function为 L ( x , y ) L(x,y) L(x,y)固定 y y y时的下确界:
g ( y ) = inf x L ( x , y ) = − f ∗ ( − A T y ) − b T y g(y) = \inf_xL(x,y) = -f^*(-A^Ty) - b^Ty g(y)=xinfL(x,y)=−f∗(−ATy)−bTy
对偶问题为最大化该下确界:
m a x i m i z e g ( y ) \mathrm{maximize} \ \ g(y) maximize g(y)
Assuming that strong dualtiy holds, the optimal values of the primal and dual problems are the same.
此时原问题和对偶问题的最优解是相同的。然后就可以根据 y ∗ y^* y∗求解:
x ∗ = arg min x L ( x , y ∗ ) x^* = \arg\min_xL(x, y^*) x∗=argxminL(x,y∗)
通过这种方法,将原问题转化为了求解对偶问题的最大值点,通过gradient ascent求解。
- x k + 1 : = a r g m i n x L ( x , y k ) x^{k + 1} := \mathrm{argmin}_xL(x,y^k) xk+1:=argminxL(x,yk)
- y k + 1 : = y k + α k ( A x k + 1 − b ) y^{k + 1} := y^k + \alpha^k(Ax^{k+1}- b) yk+1:=yk+αk(Axk+1−b)
其中 ▽ g ( y ) = A x − b , α k \triangledown g(y) = Ax-b, \alpha^k ▽g(y)=Ax−b,αk是学习率(步长)。因此该算法叫做dual ascent.
Dual Decompostion
当目标方程f可以分为:
f ( x ) = ∑ i = 1 N f i ( x i ) f(x) = \sum_{i = 1}^{N}f_i(x_i) f(x)=∑i=1Nfi(xi)
其中 x = ( x 1 , x 2 , . . . , x N ) x = (x_1,x_2,...,x_N) x=(x1,x2,...,xN),并且 x i x_i xi为 x x x的子向量( x x x的一部分)。
将矩阵 A A A对应分为 A = [ A 1 , A 2 , . . . , A N ] A = [A_1, A_2, ...,A_N] A=[A1,A2,...,AN],此时 A x = ∑ i = 1 N A i x i Ax = \sum_{i = 1}^NA_ix_i Ax=∑i=1NAixi,原拉格朗日方程为:
L ( x , y ) = f ( x ) + y T ( A x − b ) = ∑ i = 1 N ( f i ( x i ) + y T A i x i − 1 N y T b ) L(x,y) = f(x) + y^T(Ax - b) = \sum_{i = 1}^N(f_i(x_i) + y^TA_ix_i - \frac{1}{N}y^Tb) L(x,y)=f(x)+yT(Ax−b)=