最小二乘法的对偶形式(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 ^ + b e b=\hat{b}+b_e b=b^+be, b e b_e be与X的列空间正交,求取 m i n   ∣ ∣ A x − b ∣ ∣ 2 = m i n   ∣ ∣ ∣ A x − b ^ ∣ + ∣ ∣ b e ∣ ∣ min \ ||Ax-b||_2=min\ |||Ax-\hat{b}|+||b_e|| min Axb2=min Axb^+be的过程等同于使 ∣ ∣ m a x   b e ∣ ∣   s . t .   b e ⊥ C o l ( A ) ||max \ b_e|| \ s.t. \ b_e \perp Col(A) max be s.t. beCol(A),也就是求b中与X列空间正交的部分。
m a x i m i z e   b T v s . t .   ∣ ∣ v ∣ ∣ < = 1 , X T v = 0 maximize \ b^Tv\\ s.t. \ ||v||<=1,X^Tv=0 maximize bTvs.t. v<=1,XTv=0
显然,这个解是 v ∗ = b e / ∣ ∣ b e ∣ ∣ , ∣ ∣ v ∗ ∣ ∣ = 1 v^*=b_e/||b_e||,||v^*||=1 v=be/be,v=1
在这里插入图片描述

第四种形式

和第二种差不多
m i n i m i z e   1 / 2 ∣ ∣ y ∣ ∣ 2 s . t .   A x − b = y minimize \ 1/2 ||y||^2\\ s.t. \ Ax - b = y minimize 1/2y2s.t. Axb=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

首先给出最小二乘法的优化形式
m i n   1 2 b e T b e s . t .   b − A x − b e = 0 min \ \frac{1}{2}b_e^Tb_e\\s.t. \ b - Ax-b_e=0 min 21beTbes.t. bAxbe=0
拉格朗日方程式:
L ( b e , x , v ) = 1 2 b e T b e + v T ( b − A x − b e ) ∂ L ∂ b e = b e − v ∂ L ∂ x = − A T v ∂ L ∂ v = b − A x − b e \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\\ L(be,x,v)=21beTbe+vT(bAxbe)beL=bevxL=ATvvL=bAxbe
令偏导数为0得到
b e = v − A T v = 0 b − A x − b e = 0 b_e=v\\-A^Tv=0\\b-Ax-b_e=0 be=vATv=0bAxbe=0
带入拉格朗日公式得到
g ( v ) = i n f x ( f ( x ) + v T h ) = − 1 2 v T v + b T v g(v)=\underset{x}{inf}\left ( f(x) +v^Th\right )=-\frac{1}{2}v^Tv+b^Tv g(v)=xinf(f(x)+vTh)=21vTv+bTv
这里, f ( x ) = ∣ ∣ A x − b ∣ ∣ f(x)=||Ax-b|| f(x)=Axb,假设其最优解为 f ( x ∗ ) f(x^*) f(x)。g(v)为凹函数,是 L ( b e , x , v ) \mathcal{L(b_e,x,v)} L(be,x,v)的下界.
因此,对偶形式如下:
m a x   g ( v ) = − 1 2 v T v + b T v s . t .   A T v = 0 max \ g(v)=-\frac{1}{2}v^Tv+b^Tv\\s.t. \ A^Tv=0 max g(v)=21vTv+bTvs.t. ATv=0

在所有可行解 x ∈ D x \in \mathcal{D} xD里面,有 L ( b e , x , v ) = f ( x ) + v T h = f ( x ) ≥ f ( x ∗ ) ≥ g ( b e , v ) \mathcal{L(b_e,x,v)}=f(x) +v^Th= f(x) \ge f(x^*)\ge g(b_e,v) L(be,x,v)=f(x)+vTh=f(x)f(x)g(be,v)

第三种形式和第五种形式很像,如果给个 ∣ ∣ v ∣ ∣ = 1 ||v||=1 v=1的约束,两者就是一样的形式了

参考

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

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值