HomeBlogTopicsPublish
  • rss

  • contact

© 2025 MIT Licensed

Topics→Machine Learning→Linear 2

Machine Learning

Fundamentals
Decision TreeBackpropagationLinear 1Linear 2Linear 3Linear DualLinear IntroML Numerical MethodsNaive SolveLagrangian Conditions under Equality ConstraintsLagrangian Conditions under Inequality ConstraintsSupport Vector Machine 1Support Vector Machine 2Support Vector Machine 3Convex
Deep Learning Acceleration
Paper DartsPaper MobileNetsPaper ShuffleNetPaper HashingTricksPaper ShuffleNetV2Neural Architecture Search MilestonePyTorch Training Acceleration
Computer Vision
Paper RobotPaper InceptionV4Dataset Cityscapes
Reinforcement Learning
Paper Deep Q-Network

Linear 2

August 25, 2017

by Frank

上一篇博文介绍了线性方程组的情况之一,即未知数数量小于方程个数的情况,介绍了最小二乘法,在本文中将介绍线性方程组的另一种情况,即方程个数小于未知数数量的情况,此时方程组有无限多的解,但是最接近原点的解,即范数最小的解只有一个,也就是这里将会介绍的线性方程组的**最小范数解**。

线性方程组的最小范数解

上一篇博文介绍了线性方程组的情况之一,即未知数数量小于方程个数的情况,介绍了最小二乘法,在本文中将介绍线性方程组的另一种情况,即方程个数小于未知数数量的情况,此时方程组有无限多的解,但是最接近原点的解,即范数最小的解只有一个,也就是这里将会介绍的线性方程组的最小范数解。

考虑线性方程组\(Ax=b\),其中A∈Rm∗n,m≤nA\in R^{m*n},m\le nA∈Rm∗n,m≤n,要寻找其最小范数解,即相当于求解下列最优化问题:

minimize ∣∣x∣∣subject to Ax=b\begin{align*} minimize\ ||x|| \\ subject\ to\ Ax=b \end{align*}minimize ∣∣x∣∣subject to Ax=b​

这个问题属于等式约束的最优化问题,可以利用拉格朗日乘子法求解,在这里我们介绍另外一种方法。

先给出结论,该方程组的最小范数解为x∗=AT(AAT)−1bx^{*}=A^{T}(AA^{T})^{-1}bx∗=AT(AAT)−1b,下面给出证明:

∣∣x∣∣2=∣∣(x−x∗)+x∗∣∣2=∣∣x−x∗∣∣2+∣∣x∗∣∣2+2x∗T(x−x∗)||x||^{2}=||(x-x^{*})+x^{*}||^{2}\\ =||x-x^{*}||^{2}+||x^{*}||^{2}+2x^{*T}(x-x^{*})∣∣x∣∣2=∣∣(x−x∗)+x∗∣∣2=∣∣x−x∗∣∣2+∣∣x∗∣∣2+2x∗T(x−x∗)

令x∗=AT(AAT)−1bx^{*}=A^{T}(AA^{T})^{-1}bx∗=AT(AAT)−1b代入上式最右边项可以得到2x∗T(x−x∗)=02x^{*T}(x-x^{*})=02x∗T(x−x∗)=0,于是∣∣x∣∣2=∣∣x−x∗∣∣2+∣∣x∗∣∣2||x||^{2}=||x-x^{*}||^{2}+||x^{*}||^{2}∣∣x∣∣2=∣∣x−x∗∣∣2+∣∣x∗∣∣2,∣∣x∗∣∣2||x^{*}||^{2}∣∣x∗∣∣2是一个定值,而当x≠x∗x\neq x^{*}x=x∗时,∣∣x−x∗∣∣2>0||x-x^{*}||^{2}>0∣∣x−x∗∣∣2>0恒成立,因此可以得到x=x∗x=x^{*}x=x∗是该优化问题的唯一最小解,即最小范数解。 ##Kaczmarz 算法 Kaczmarz 算法是一种迭代求解最小范数解的算法,可以省去求解(AAT)−1(AA^{T})^{-1}(AAT)−1的步骤,使计算更为高效,假设A∈Rm∗nA\in R^{m*n}A∈Rm∗n,直接给出迭代公式如下: 在前mmm次迭代中,即k=0,1,...,m−1k=0,1,...,m-1k=0,1,...,m−1时,有:

x(k+1)=x(k)+μ(bk+1−ak+1Tx(k))ak+1ak+1Tak+1x^{(k+1)}=x^{(k)}+\mu(b_{k+1}-a_{k+1}^{T}x^{(k)})\frac{a_{k+1}}{a_{k+1}^{T}a_{k+1}}x(k+1)=x(k)+μ(bk+1​−ak+1T​x(k))ak+1T​ak+1​ak+1​​

对于第(m+1)(m+1)(m+1)次迭代,重新使用AAA的第 1 行以及bbb的第 1 个元素,即

x(m+1)=x(m)+μ(b1−a1Tx(m))a1a1Ta1x^{(m+1)}=x^{(m)}+\mu(b_{1}-a_{1}^{T}x^{(m)})\frac{a_{1}}{a_{1}^{T}a_{1}}x(m+1)=x(m)+μ(b1​−a1T​x(m))a1T​a1​a1​​

每迭代 m 次便从头循环一次,μ\muμ可以视为迭代算法的过程。可以证明得到在 Kaczmarz 算法中,如果x(0)=0x^{(0)}=0x(0)=0,则当k→∞k\to \inftyk→∞时,x(k)→x∗=AT(AAT)−1bx^{(k)}\to x^{*}=A^{T}(AA^{T})^{-1}bx(k)→x∗=AT(AAT)−1b,详细证明过程在这里省略。

后面的文章还会介绍线性方程组的一般解法,伪逆等相关内容

←Previous: Linear 1Next: Linear 3→

Comments