欠定方程组的最小范数解

欠定方程组的最小范数解(超曲面和原点的距离,原点球心球面和超曲面的切点)

今天小白问了我一个问题,我觉得颇有意思,做个记录。

问题描述

请添加图片描述
小白:插入一个问题,这个切点怎么求?就是固定超平面Ax=b 怎么求它的最小二范数。

她说得不是很清楚,我再翻译一下。几何的提法是,超平面 A x = b Ax=b Ax=b 到圆心距离是多少?代数的提法是,欠定方程组 A x = b Ax=b Ax=b 的最小范数解是什么?

问题建模

我喜欢代数这个提法。重新描述一下,我们考虑
y = A x y=A x y=Ax
这里的 A ∈ R m × n A \in \mathbf{R}^{m \times n} ARm×n 是个 胖矩阵,即 m < n m<n m<n。我们不妨假定 A A A 是行满秩的。
对于这个问题,我们知道这里未知量的个数比方程的个数多,也就是解是存在不唯一的。代数学知识告诉我们,它的解集是
{ x ∣ A x = y } = { x p + z ∣ z ∈ N ( A ) } \{x \mid A x=y\}=\left\{x_{p}+z \mid z \in \mathcal{N}(A)\right\} { xAx=y}={ xp+zzN(A)}
这里 x p x_p xp 是个特解。零空间的维数 N ( A ) = n − m \mathcal{N}(A)=n-m N(A)=nm 刻画了自由度的数目。那么,我们能否选择一个 z z z ,使得 x p + z x_p+z xp+z 的二范数最小呢?

问题解答

这是个经典的计算数学问题了,如果是低于三维的情况,高中的知识很快就能解出来了。高维情况,答案也很简单,他就是
x ln ⁡ = A T ( A A T ) − 1 y x_{\ln }=A^{T}\left(A A^{T}\right)^{-1} y xln=AT(AAT)1y
因为 A 是行满秩的,所以 A A T AA^T AAT 是可逆的。怎么得到的这个解?对于
A x = b Ax = b Ax=b
我们令 x = A T x ˉ x = A^T\bar x x=ATxˉ x ˉ \bar x xˉ 是个 m 维的。则有
x = A T x ˉ = A T ( A A T ) − 1 b . x = A^T\bar x = A^T(AA^T)^{-1}b. x=ATxˉ=AT(AAT)1b.
事实上,这个 x ln ⁡ x_{\ln} xln 就是最小范数解,它极小化了如下的优化问题,

minimize ∥ x ∥ \|x\| x
subject to A x = y \quad A x=y Ax=y

其中, x ∈ R n x \in \mathbf{R}^{n} xRn。证明如下:

假定其它解满足 A x = y A x=y Ax=y,那么 A ( x − x ln ⁡ ) = 0 A\left(x-x_{\ln }\right)=0 A(xxln)=0,且
( x − x ln ⁡ ) T x ln ⁡ = ( x − x ln ⁡ ) T A T ( A A T ) − 1 y = ( A ( x − x ln ⁡ ) ) T ( A A T ) − 1 y = 0 \begin{aligned} \left(x-x_{\ln }\right)^{T} x_{\ln } &=\left(x-x_{\ln }\right)^{T} A^{T}\left(A A^{T}\right)^{-1} y \\ &=\left(A\left(x-x_{\ln }\right)\right)^{T}\left(A A^{T}\right)^{-1} y \\ &=0 \end{aligned} (xxln)Txln=(xxln)TAT(AAT)1y=(A(xxln))T(AAT)1y=0
也就是说, ( x − x ln ⁡ ) ⊥ x ln ⁡ \left(x-x_{\ln }\right) \perp x_{\ln } (xxln)xln,那么
∥ x ∥ 2 = ∥ x ln ⁡ + x − x ln ⁡ ∥ 2 = ∥ x ln ⁡ ∥ 2 + ∥ x − x ln ⁡ ∥ 2 ≥ ∥ x ln ⁡ ∥ 2 \|x\|^{2}=\left\|x_{\ln }+x-x_{\ln }\right\|^{2}=\left\|x_{\ln }\right\|^{2}+\left\|x-x_{\ln }\right\|^{2} \geq\left\|x_{\ln }\right\|^{2} x2=xln+xxln2=xln2+xxln2xln2
说明了 x ln ⁡ x_{\ln} xln 是范数最小的解。

A † : = A T ( A A T ) − 1 A^{\dagger}:=A^{T}\left(A A^{T}\right)^{-1} A:=AT(AAT)1 叫做行满秩胖矩阵 A A A 的伪逆,实际上是 A A A 的右逆。

几何观点

画个示意图如下,
请添加图片描述

  • 这个解垂直于零空间, x ln ⁡ ⊥ N ( A ) x_{\ln } \perp \mathcal{N}(A) xlnN(A)
  • 这个解是 0 在解空间上的投影。

超定方程组的最小范数解

虽然主题是欠定方程组,但对于超定方程组
A x = b Ax = b Ax=b
我们左乘 A T A^T AT,可以得到 A T A x = A T b A^TAx=A^Tb ATAx=ATb,则我们得到胖矩阵的伪逆 A † = ( A T A ) − 1 A T A^{\dagger}=\left(A^{T} A\right)^{-1} A^{T} A=(ATA)1AT,它实际上是 A A A 的左逆。容易证明,它也是满足最小二乘误差相同的最小范数解。

QR 分解表示

我们找 A T A^T AT 的 QR 分解,满足 A T = Q R A^{T}=Q R AT=QR,且

  • Q ∈ R n × m , Q T Q = I m Q \in \mathbf{R}^{n \times m}, Q^{T} Q=I_{m} QRn×m,QTQ=Im
  • R ∈ R m × m R \in \mathbf{R}^{m \times m} RRm×m 是个非奇异的上三角矩阵,那么,我们得到一个更简单的表达
    x ln ⁡ = A T ( A A T ) − 1 y = Q R − T y x_{\ln }=A^{T}\left(A A^{T}\right)^{-1} y=Q R^{-T} y xln=AT(AAT)1y=QRTy
    ∥ x ln ⁡ ∥ = ∥ R − T y ∥ \left\|x_{\ln }\right\|=\left\|R^{-T} y\right\| xln= RTy

拉格朗日乘子法推导

除了上述的分裂法推导外,我们也可以用拉格朗日乘子法得到这个最小范数解。

最小范数解无非是求解如下优化问题,

minimize x T x \quad x^{T} x xTx
subject to A x = y A x=y Ax=y

引入拉格朗日乘子,
L ( x , λ ) = x T x + λ T ( A x − y ) L(x, \lambda)=x^{T} x+\lambda^{T}(A x-y) L(x,λ)=xTx+λT(Axy)
最优性条件是,
∇ x L = 2 x + A T λ = 0 , ∇ λ L = A x − y = 0 \nabla_{x} L=2 x+A^{T} \lambda=0, \quad \nabla_{\lambda} L=A x-y=0 xL=2x+ATλ=0,λL=Axy=0

从第一个条件,我们可以得到 x = − A T λ / 2 x=-A^{T} \lambda / 2 x=ATλ/2,把它代入第二个条件,我们有 λ = − 2 ( A A T ) − 1 y \lambda=-2\left(A A^{T}\right)^{-1} y λ=2(AAT)1y,因此
x = A T ( A A T ) − 1 y x=A^{T}\left(A A^{T}\right)^{-1} y x=AT(AAT)1y

和正则最小二乘的关系

定义 J 1 = ∥ A x − y ∥ 2 , J 2 = ∥ x ∥ 2 J_{1}=\|A x-y\|^{2}, J_{2}=\|x\|^{2} J1=Axy2,J2=x2,最小化加权目标函数
J 1 + μ J 2 = ∥ A x − y ∥ 2 + μ ∥ x ∥ 2 J_{1}+\mu J_{2}=\|A x-y\|^{2}+\mu\|x\|^{2} J1+μJ2=Axy2+μx2
可得
x μ = ( A T A + μ I ) − 1 A T y x_{\mu}=\left(A^{T} A+\mu I\right)^{-1} A^{T} y xμ=(ATA+μI)1ATy
那么正则最小二乘解其实是收敛到最小范数解的,即当 μ → 0 \mu \rightarrow 0 μ0,我们有
( A T A + μ I ) − 1 A T → A T ( A A T ) − 1 \left(A^{T} A+\mu I\right)^{-1} A^{T} \rightarrow A^{T}\left(A A^{T}\right)^{-1} (ATA+μI)1ATAT(AAT)1

更一般的等式约束范数极小化框架

考虑问题

minimize ∥ A x − b ∥ \|A x-b\| Axb
subject to C x = d C x=d Cx=d

这个问题包含了上述的最小范数和最小二乘问题。它等价于

minimize ( 1 / 2 ) ∥ A x − b ∥ 2 \quad(1 / 2)\|A x-b\|^{2} (1/2)Axb2
subject to C x = d C x=d Cx=d

拉格朗日乘子是
L ( x , λ ) = ( 1 / 2 ) ∥ A x − b ∥ 2 + λ T ( C x − d ) = ( 1 / 2 ) x T A T A x − b T A x + ( 1 / 2 ) b T b + λ T C x − λ T d \begin{aligned} L(x, \lambda) &=(1 / 2)\|A x-b\|^{2}+\lambda^{T}(C x-d) \\ &=(1 / 2) x^{T} A^{T} A x-b^{T} A x+(1 / 2) b^{T} b+\lambda^{T} C x-\lambda^{T} d \end{aligned} L(x,λ)=(1/2)Axb2+λT(Cxd)=(1/2)xTATAxbTAx+(1/2)bTb+λTCxλTd
最优性条件是,
∇ x L = A T A x − A T b + C T λ = 0 , ∇ λ L = C x − d = 0 \nabla_{x} L=A^{T} A x-A^{T} b+C^{T} \lambda=0, \quad \nabla_{\lambda} L=C x-d=0 xL=ATAxATb+CTλ=0,λL=Cxd=0
写成块矩阵的形式,
[ A T A C T C 0 ] [ x λ ] = [ A T b d ] \left[\begin{array}{cc} A^{T} A & C^{T} \\ C & 0 \end{array}\right]\left[\begin{array}{l} x \\ \lambda \end{array}\right]=\left[\begin{array}{c} A^{T} b \\ d \end{array}\right] [ATACCT0][xλ]=[ATbd]
如果块矩阵是可逆的,我们有
[ x λ ] = [ A T A C T C 0 ] − 1 [ A T b d ] \left[\begin{array}{l} x \\ \lambda \end{array}\right]=\left[\begin{array}{cc} A^{T} A & C^{T} \\ C & 0 \end{array}\right]^{-1}\left[\begin{array}{c} A^{T} b \\ d \end{array}\right] [xλ]=[ATACCT0]1[ATbd]
进一步,如果 A T A A^TA ATA 是可逆的,我们有更加漂亮的写法,从第一块我们可以得到
x = ( A T A ) − 1 ( A T b − C T λ ) x=\left(A^{T} A\right)^{-1}\left(A^{T} b-C^{T} \lambda\right) x=(ATA)1(ATbCTλ)
代入 C x = d C x=d Cx=d 可得
C ( A T A ) − 1 ( A T b − C T λ ) = d C\left(A^{T} A\right)^{-1}\left(A^{T} b-C^{T} \lambda\right)=d C(ATA)1(ATbCTλ)=d
因而
λ = ( C ( A T A ) − 1 C T ) − 1 ( C ( A T A ) − 1 A T b − d ) \lambda=\left(C\left(A^{T} A\right)^{-1} C^{T}\right)^{-1}\left(C\left(A^{T} A\right)^{-1} A^{T} b-d\right) λ=(C(ATA)1CT)1(C(ATA)1ATbd)
那么 x x x 就可以不太优雅地表达为
x = ( A T A ) − 1 ( A T b − C T ( C ( A T A ) − 1 C T ) − 1 ( C ( A T A ) − 1 A T b − d ) ) x=\left(A^{T} A\right)^{-1}\left(A^{T} b-C^{T}\left(C\left(A^{T} A\right)^{-1} C^{T}\right)^{-1}\left(C\left(A^{T} A\right)^{-1} A^{T} b-d\right)\right) x=(ATA)1(ATbCT(C(ATA)1CT)1(C(ATA)1ATbd))

复习 KKT

很多人把优化忘记了,我们复习一下 KKT 系统相关。
考虑问题
min ⁡ x ∈ R n f ( x )  subject to  c i ( x ) = 0 , i ∈ E = { 1 , … , m e } c i ( x ) ≥ 0 , i ∈ I = { m e + 1 , … , m } \begin{array}{ll} \min _{x \in \mathbb{R}^{n}} & f(x) \\ \text { subject to } & c_{i}(x)=0, \quad i \in \mathcal{E}=\left\{1, \ldots, m_{e}\right\} \\ & c_{i}(x) \geq 0, \quad i \in \mathcal{I}=\left\{m_{e}+1, \ldots, m\right\} \end{array} minxRn subject to f(x)ci(x)=0,iE={ 1,,me}ci(x)0,iI={ me+1,,m}
它的拉格朗日函数是,
L ( x , λ ) = f ( x ) − ∑ i ∈ E ∪ I λ i c i ( x ) \mathcal{L}(x, \lambda)=f(x)-\sum_{i \in \mathcal{E} \cup \mathcal{I}} \lambda_{i} c_{i}(x) L(x,λ)=f(x)iEIλici(x)
那么,它的 KKT 条件可以写为
∇ x L ( x ∗ , λ ∗ ) = 0 , c i ( x ∗ ) = 0 , ∀ i ∈ E c i ( x ∗ ) ≥ 0 , ∀ i ∈ I λ i ∗ ≥ 0 , ∀ i ∈ I λ i ∗ c i ( x ∗ ) = 0 , ∀ i ∈ E ∪ I \begin{aligned} \nabla_{x} \mathcal{L}\left(x^{*}, \lambda^{*}\right) &=0, & & \\ c_{i}\left(x^{*}\right) &=0, & & \forall i \in \mathcal{E} \\ c_{i}\left(x^{*}\right) & \geq 0, & & \forall i \in \mathcal{I} \\ \lambda_{i}^{*} & \geq 0, & & \forall i \in \mathcal{I} \\ \lambda_{i}^{*} c_{i}\left(x^{*}\right) &=0, & & \forall i \in \mathcal{E} \cup \mathcal{I} \end{aligned} xL(x,λ)ci(x)ci(x)λiλici(x)=0,=0,0,0,=0,iEiIiIiEI
当然,这些条件都有一些奇奇怪怪的名字,比如“互补性条件”之类的,可以不用管。当然,如果只有等式约束,那么其实只有前两条,很简单,也很好记。如果有不等式约束,需要看一下最后两条的互补性。

代码

no code

猜你喜欢

转载自blog.csdn.net/lusongno1/article/details/126541297
今日推荐