最小二乘法的對偶形式(CVX)

最小二乘法的表示形式很多,其對偶形式也很多。這裏學習了CVX官網的例子,求解最小二乘法的幾種形式,這裏進行簡單的分析,看看是怎麼得到的。

數據生成部分

randn('state',0);
n = 4;
m = 2*n;
A = randn(m,n);
b = randn(m,1);
p = 2;
q = p/(p-1);

第一種形式

cvx_begin quiet
    variable x(n)
    minimize ( norm ( A*x - b , p) )
cvx_end

第二種形式

cvx_begin quiet
    variables x(n) y(m)
    minimize ( norm ( y , p ) )
    A*x - b == y;
cvx_end

第三種形式

cvx_begin quiet
    variable nu(m)
    maximize ( b'*nu )
    norm( nu , q ) <= 1;
    A'*nu == 0;
cvx_end

這個形式怎麼推導出來的並清楚,不過意思容易解釋
如下圖所示,b=b^+beb=\hat{b}+b_e,beb_e與X的列空間正交,求取min Axb2=min Axb^+bemin \ ||Ax-b||_2=min\ |||Ax-\hat{b}|+||b_e||的過程等同於使max be s.t. beCol(A)||max \ b_e|| \ s.t. \ b_e \perp Col(A),也就是求b中與X列空間正交的部分。
maximize bTvs.t. v<=1,XTv=0 maximize \ b^Tv\\ s.t. \ ||v||<=1,X^Tv=0
顯然,這個解是v=be/be,v=1v^*=b_e/||b_e||,||v^*||=1
在這裏插入圖片描述

第四種形式

和第二種差不多
minimize 1/2y2s.t. Axb=y minimize \ 1/2 ||y||^2\\ s.t. \ Ax - b = y

cvx_begin quiet
    variables x(n) y(m)
    minimize ( 0.5 * square_pos ( norm ( y , p ) ) )
    A*x - b == y;
cvx_end

第五種形式

cvx_begin quiet
    variable nu(m)
    maximize ( -0.5 * square_pos ( norm ( nu , q ) ) + b'*nu )
    A'*nu == 0;
cvx_end

首先給出最小二乘法的優化形式
min 12beTbes.t. bAxbe=0min \ \frac{1}{2}b_e^Tb_e\\s.t. \ b - Ax-b_e=0
拉格朗日方程式:
L(be,x,v)=12beTbe+vT(bAxbe)Lbe=bevLx=ATvLv=bAxbe\mathcal{L(b_e,x,v)}=\frac{1}{2}b_e^Tb_e +v^T(b-Ax-b_e)\\ \frac{\partial \mathcal{L}}{\partial b_e}=b_e-v\\ \frac{\partial \mathcal{L}}{\partial x}=-A^Tv\\ \frac{\partial \mathcal{L}}{\partial v}=b-Ax-b_e\\
令偏導數爲0得到
be=vATv=0bAxbe=0b_e=v\\-A^Tv=0\\b-Ax-b_e=0
帶入拉格朗日公式得到
g(v)=infx(f(x)+vTh)=12vTv+bTvg(v)=\underset{x}{inf}\left ( f(x) +v^Th\right )=-\frac{1}{2}v^Tv+b^Tv
這裏,f(x)=Axbf(x)=||Ax-b||,假設其最優解爲f(x)f(x^*)。g(v)爲凹函數,是L(be,x,v)\mathcal{L(b_e,x,v)}的下界.
因此,對偶形式如下:
max g(v)=12vTv+bTvs.t. ATv=0max \ g(v)=-\frac{1}{2}v^Tv+b^Tv\\s.t. \ A^Tv=0

在所有可行解xDx \in \mathcal{D}裏面,有L(be,x,v)=f(x)+vTh=f(x)f(x)g(be,v)\mathcal{L(b_e,x,v)}=f(x) +v^Th= f(x) \ge f(x^*)\ge g(b_e,v)

第三種形式和第五種形式很像,如果給個v=1||v||=1的約束,兩者就是一樣的形式了

參考

http://web.cvxr.com/cvx/examples/cvxbook/Ch05_duality/html/norm_approx.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章