最小二乘法的表示形式很多,其对偶形式也很多。这里学习了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 ∣∣Ax−b∣∣2=min ∣∣∣Ax−b^∣+∣∣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. be⊥Col(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/2∣∣y∣∣2s.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
首先给出最小二乘法的优化形式
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. b−Ax−be=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(b−Ax−be)∂be∂L=be−v∂x∂L=−ATv∂v∂L=b−Ax−be
令偏导数为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=v−ATv=0b−Ax−be=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)=∣∣Ax−b∣∣,假设其最优解为
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} x∈D里面,有 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