最小二乘准确来说是损失函数,梯度下降是优化方法。
线性最小二乘的超定方程通常可以通过一步解法、SVD分解来求解;
非线性的最小二乘可以通过牛顿高斯迭代、LM算法、梯度下降求解。
链接:https://blog.csdn.net/DSbatigol/article/details/9625211
AX=0
在非齐次方程组中,A到底有没有解析解,由增广矩阵来判断:
(r(A | b) =r(A | 0)=r(A) )
r(A)=未知数个数n(约束较强)
1.A是方阵
由克莱姆法则可知:
如果A是n*n的方阵而且r(A)=n,那么该方程组有唯一的零解。
2.A不是方阵,A是m×n的(m>n)
由另一个定理:齐次线性方程解空间维数 = n - r(A) 可知,该解空间维数为0, 也就是说该解空间只含有零向量。
1.1.1.2 r(A)<未知数个数n(约束不够)
这里A是不是方阵已经无所谓了,也没有什么法则可以用,就只分成一种情况。
由齐次线性方程组解空间维数 = n - r(A) >0,所以该齐次线性方程组有非零解,而且不唯一(自由度为 n - r(A))。
AX=b
在非齐次方程组中,A到底有没有解析解,可以由增广矩阵来判断:
r(A)
r(A)=r(A | b)
a/b相当于a乘b的逆
a./b是a的每个元素与b的每个元素对应相除
A\B : 表示inv(A)B 解Ax=B
B/A:表示Binv(A) 解xA=B
直线拟合。这里(ATA)-1被称为A的伪逆。因为根据可逆性质,可逆矩阵一定为方阵,而这里A并不是为方阵。所以称为A的伪逆。
当 A的秩等于r 小于n,因此 在之前的例子 n是2 ,2列 ,因此 如果秩小于2 ,那么我们只有一个点 ,因此 ,该问题的答案是 取A得逆 , 然后 将所有可能的线性解加上A的零空间 因此此问题有许多的答案
当A的秩等于n时 在之前的线性拟合的例子中 A的秩为2 (这)说明了A的许多不同行 不同点 但是 他们确实拟合于同一直线 而确切的答案是 仅仅是A的逆乘以b
当A的秩大于n,通过伪逆来求解 在MATLAB中这非常简单 就是A\b 而其为我们计算了伪逆
https://www.cnblogs.com/monoSLAM/p/5252917.html
举例: a 1 x 1 + a 2 x 2 + a 3 x 3 = b {a_1}{x_1}+{a_2}{x_2}+{a_3}{x_3}=b a1x1+a2x2+a3x3=b,其中 ( a 1 , a 2 , a 3 , b ) ({a_1},{a_2},{a_3},b) (a1,a2,a3,b)为测量已知量, ( x 1 , x 2 , x 3 ) ({x_1},{x_2},{x_3}) (x1,x2,x3)为待求量。
那么只需要三组 ( a 1 , a 2 , a 3 , b ) ({a_1},{a_2},{a_3},b) (a1,a2,a3,b)就可以求出 ( x 1 , x 2 , x 3 ) ({x_1},{x_2},{x_3}) (x1,x2,x3)。实际情况是某次实验不止测了三组数据——超定方程组,需要采用最小二乘。
a,如何转化为最小二乘形式:
例子:y = ax+b,已知(x,y)求(a,b)?
标准化:
带入测量数据:
例1: y = a x + b x 2 y=ax+b{x^2} y=ax+bx2,已知 ( x , x 2 , y ) (x,{x^2},y) (x,x2,y),求 ( a , b ) (a,b) (a,b)?
转化为标准形式:
带入测量数据:
例2:
转化为标准形式:
带入测量数据:
总结:对于线性表达式,通过适当的变型即可。
在例1中,通过选取x和x^2为基实现了线性化。
对于非线性表达式,可以通过合适的基、变型,有时候也可以转化为标准形式,如例1、例2。
b, 标准形式下最小二乘的求解:
对于(1)式,最小二乘的求解,相当于求解正规方程:
A T A X = A T B {A^T}AX={A^T}B ATAX=ATB
标准形式下最小二乘解为:
X = ( A T A ) − 1 A T B X={\left({{A^T}A}\right)^{-1}}{A^T}B X=(ATA)−1ATB
图源:https://blog.csdn.net/u013802188/article/details/40181601
理论上,有正规方程组可以得到线性最小二乘问题的精确解,但是由于正规方程组会出现条件数平方效应(叉积矩阵的条件数是原矩阵条件数的平方),所以往往得不到所期待的效果。https://blog.csdn.net/LCCFlccf/article/details/84875534
参考:https://blog.csdn.net/LCCFlccf/article/details/84875534
参考:https://blog.csdn.net/qq_29721419/article/details/69676770
QR分解法是目前求一般矩阵全部特征值的最有效并广泛应用的方法,一般矩阵先经过正交相似变化成为Hessenberg矩阵,然后再应用QR方法求特征值和特征向量。它是将矩阵分解成一个正规正交矩阵Q与上三角形矩阵R,所以称为QR分解法,与此正规正交矩阵的通用符号Q有关。可以巧妙的绕过了条件数被平方的操作
AX = 0
其中A为测量数据构成的矩阵与向量,X为待求参数向量。
这里主要针对方程数多于未知元素的情形–超定方程组。
b、齐次方程组的最小二乘解的约束
因平凡解 X = 0不是我们感兴趣的解,因此我们主要是寻求该方程组的非零解。
注意,如果 X 是这个方程组的解,那么对于任何标量k,使得kX也是解,因此可以建立一个合理的约束:||X||=1的解:
齐次最小二乘相当于求解:
m i n ∣ ∣ A X ∣ ∣ 且 ∣ ∣ X ∣ ∣ = 1 min||AX|| 且 ||X||=1 min∣∣AX∣∣且∣∣X∣∣=1
或者求解:
m i n ∣ ∣ A X ∣ ∣ 2 ∣ ∣ X ∣ ∣ min\frac{||AX||^2}{||X||} min∣∣X∣∣∣∣AX∣∣2
c、齐次方程组的最小二乘解——SVD分解得到“解”
通过前面a、b两部分的说明,此时问题的标准形式为:求使||AX||最小化并满足||X|| = 1时的X。其结论为:
A T A A^TA ATA最小特征值对应的特征向量即为待求解
对A矩阵SVD分解:
A = U D V T A=UDV^T A=UDVT
那么问题变成:
m i n ∣ ∣ U D V T X ∣ ∣ 且 ∣ ∣ X ∣ ∣ = 1 min||UDV^TX|| 且 ||X||=1 min∣∣UDVTX∣∣且∣∣X∣∣=1
由于:
m i n ∣ ∣ U D V T X ∣ ∣ = m i n ∣ ∣ D V T X ∣ ∣ min||UDV^TX|| = min||DV^TX|| min∣∣UDVTX∣∣=min∣∣DVTX∣∣
即U矩阵不影响范数。
同时
∣ ∣ X ∣ ∣ = ∣ ∣ V T X ∣ ∣ ||X||=||V^TX|| ∣∣X∣∣=∣∣VTX∣∣
和U矩阵一样,V矩阵不影响范数。
则有:
m i n ∣ ∣ D V T X ∣ ∣ 且 ∣ ∣ V T X ∣ ∣ = 1 min||DV^TX|| 且 ||V^TX||=1 min∣∣DVTX∣∣且∣∣VTX∣∣=1
令 ||y|| = 1,
m i n ∣ ∣ D y ∣ ∣ 且 ∣ ∣ y ∣ ∣ = 1 min||Dy|| 且 ||y||=1 min∣∣Dy∣∣且∣∣y∣∣=1
由SVD分解的规则可知,D是对角元素按降序排列的一个对角矩阵,因此该问题的解是:
y = ( 0 , 0 , 0...0 , 1 ) T y=(0,0,0...0,1)^T y=(0,0,0...0,1)T
它具有一个非零元素1并在最后的位置上。
X = ∣ ∣ V T y ∣ ∣ 就 是 V 的 最 后 一 列 。 X=||V^Ty|| 就是V的最后一列。 X=∣∣VTy∣∣就是V的最后一列。
齐次下的直线拟合。注意最后方程组的解是V的最后一列。但SVD分解直接中得到的是VT,因此对应也就是VT的最后一行。
只有通过矩阵A计算奇异值U D V的转置 行向量之间相互正交
取VT的最后一行 或者V的最后一列
那便是我们用来最小化ax等于0的向量
m i n ∣ ∣ A X ∣ ∣ 且 ∣ ∣ X ∣ ∣ = 1 且 ∣ ∣ C X = 0 ∣ ∣ ( 公 式 一 ) min||AX|| 且 ||X||=1 且||CX=0||(公式一) min∣∣AX∣∣且∣∣X∣∣=1且∣∣CX=0∣∣(公式一)
求解算法总结:
a、通过对C进行SVD分解,求出 C = U D V T C=UDV^T C=UDVT 。(如果C的行数少于列数,则在C矩阵的后面添加若干行0从而扩展成方阵)
b、如果对角矩阵D有r个非零对角元素,此时C的秩为 r 且C的行空间由 V T V^T VT的前 r 行生成。
c、C的行空间的正交补 C ⊥ {C^\bot} C⊥由余下的行生成,记 C ⊥ {C^\bot} C⊥为V的消去前 r 列得到的矩阵
d、则 C C ⊥ = 0 C{C^\bot}=0 CC⊥=0,对比 C X = 0 CX=0 CX=0,可以得到:
X的解由 C ⊥ {C^\bot} C⊥的列生成,把所有满足这一条件的 X 记为: X = C ⊥ X ′ X={C^\bot}{X'} X=C⊥X′。
由于 C ⊥ {C^\bot} C⊥的列具有正交性,因此: ∣ ∣ X ∣ ∣ = ∣ ∣ C ⊥ X ′ ∣ ∣ = ∣ ∣ X ′ ∣ ∣ ||X||=||{C^\bot}{X'}||=||{X'}|| ∣∣X∣∣=∣∣C⊥X′∣∣=∣∣X′∣∣
此时,公式一 变成:
min ∣ ∣ A C ⊥ X ′ ∣ ∣ 且 ∣ X ′ ∣ ∣ = 1 \min||A{C^\bot}{X'}|| 且|{X'}||=1 min∣∣AC⊥X′∣∣且∣X′∣∣=1
非线性的最小二乘可以通过牛顿高斯迭代、LM算法、梯度下降求解。
参考:https://blog.csdn.net/tina_ttl/article/details/56833251
参考:https://www.jianshu.com/p/bf6ec56e26bd