• 最小二乘法


            1、前言

                    a、本文主性最小二乘的标准形式,非线性最小二乘求解可以参考Newton法

                 b、对于参数求解问题还有另外一种思路:RANSAC算法。它与最小二乘各有优缺点:

                 --当测量值符合高斯分布(或者说测量误差符合期望为0的高斯分布),使用最小二乘比较合适,可以获得比较稳定且很高的精度。

                    而当误差服从高斯分布的情况下, 最小二乘法等价于极大似然估计。

                 --当测量值离散性比较大,存在很多outliers,那么使用最小二乘求解就会存在很大的误差,此时使用RANSAC算法更合适。

                    线性最小二乘只适用于参数模型会线性关系的情形,RANSAC则没有此限制。

                c、线性最小二乘又分为齐次线性最小二乘和非齐次线性最小二乘。

            2、非齐次方程组的最小二乘解

                    a、非齐次线性最小二乘的标准形式:

                              AX = B      (1)
                     其中A、B分别为测量数据构成的矩阵与向量,X为待求参数向量。

                     这里主要针对方程数多于未知元素的情形--超定方程组。

                 b、为什么要用最小二乘求解参数:

                     举例:{a_1}{x_1}+{a_2}{x_2}+{a_3}{x_3}=b,其中({a_1},{a_2},{a_3},b)为测量已知量,({x_1},{x_2},{x_3})为待求量。

                     那么只需要三组({a_1},{a_2},{a_3},b)就可以求出({x_1},{x_2},{x_3})。实际情况是某次实验不止测了三组数据:

                                 left{egin{array}{l}
{x_1}+2{x_2}+3{x_3}=29\
2{x_1}+{x_2}+{x_3}=13\
3{x_1}+2{x_2}+4{x_3}=37\
2{x_1}+4{x_2}+2{x_3}=33\
4{x_1}+2{x_2}+{x_3}=23
end{array}
ight.

                     如何在(1,2,3,29)(2,1,1,13)(3,2,4,37)(2,4,2,33)(4,2,1,23)这些测量数据中求出最准确的({x_1},{x_2},{x_3})

                     结论:当数据存在冗余,且数据噪声偏差不大的情况下适合用最小二乘求解。

                 c、如何转化为最小二乘形式:

                     例1:y = ax+b,已知(x,y)求(a,b)?

                            转化为标准形式:

                                [x,1]left[{egin{array}{*{20}{c}}
a\
b
end{array}}
ight]=left[y
ight]    

                            带入测量数据:

                               left[{egin{array}{*{20}{c}}
{{x_1}}&1\
{{x_2}}&1\
{{x_3}}&1\
{{x_4}}&1
end{array}}
ight]left[{egin{array}{*{20}{c}}
a\
b
end{array}}
ight]=left[{egin{array}{*{20}{c}}
{{y_1}}\
{{y_2}}\
{{y_3}}\
{{y_4}}
end{array}}
ight] 

                     例2:y=ax+b{x^2},已知(x,{x^2},y),求(a,b)?

                            转化为标准形式:

                                [x,{x^2}]left[{egin{array}{*{20}{c}}
a\
b
end{array}}
ight]=[y]

                            带入测量数据:

                              

                     例3:

                              

                              求??

                              转化为标准形式:

                               left[{egin{array}{*{20}{c}}
u\
v
end{array}}
ight]=left[{egin{array}{*{20}{c}}
x&y&1&0&0&0\
0&0&0&x&y&1
end{array}}
ight]left[{egin{array}{*{20}{c}}
{{p_1}}\
{{p_2}}\
{{p_3}}\
{{p_4}}\
{{p_5}}\
{{p_6}}
end{array}}
ight]

                              带入测量数据:

                              

                       总结:对于线性表达式,通过适当的变型即可,如例1。

                               在例2中,通过选取xx^2为基实现了线性化。

                               对于非线性表达式,可以通过合适的基、变型,有时候也可以转化为标准形式,如例2、例3。

                               在例3中,对参数p矩阵选取合适的基实现了线性化。

                               即选取基:

                               left[{egin{array}{*{20}{c}}
1&0&0\
0&0&0
end{array}}
ight]left[{egin{array}{*{20}{c}}
0&1&0\
0&0&0
end{array}}
ight]left[{egin{array}{*{20}{c}}
0&0&1\
0&0&0
end{array}}
ight]left[{egin{array}{*{20}{c}}
0&0&0\
1&0&0
end{array}}
ight]left[{egin{array}{*{20}{c}}
0&0&0\
0&1&0
end{array}}
ight]left[{egin{array}{*{20}{c}}
0&0&0\
0&0&1
end{array}}
ight]

                               那么矩阵p在该组基下:

                               {p_1}left[{egin{array}{*{20}{c}}
1&0&0\
0&0&0
end{array}}
ight]+{p_2}left[{egin{array}{*{20}{c}}
0&1&0\
0&0&0
end{array}}
ight]+{p_3}left[{egin{array}{*{20}{c}}
0&0&1\
0&0&0
end{array}}
ight]+...{p_6}left[{egin{array}{*{20}{c}}
0&0&0\
0&0&1
end{array}}
ight]

                 c、标准形式下最小二乘的求解:

                     对于(1)式,最小二乘的求解,相当于求解正规方程:

                                         {A^T}AX={A^T}B      (2)

                     标准形式下最小二乘解为:

                                         X={left({{A^T}A}
ight)^{-1}}{A^T}B     (3)

                 d、证明:

                     方法1:

                         AX = B ,对于实际测量数据,(AX – B),即残差将不为0,为了得到最准确的解,应使残差的范数最小:

                                         E=min||AX-B|{|^2}    (4)

                         对E展开:

                                         E={x^T}({A^T}A)x-2{x^T}({A^T}B)+||b|{|^2}

                         令E的导数等于0,即可求出X:

                                         X={left({{A^T}A}
ight)^{-1}}{A^T}B

                     方法2:

                          根据(4)式 (B - AX)所构成的向量需要垂直于A的列空间,此时距离最短,E最小:

                                         A(AX - B)= 0   (5)

                          根据(5)式:

                                         X={left({{A^T}A}
ight)^{-1}}{A^T}B

            3、齐次方程组的最小二乘解

                    a、齐次线性最小二乘的标准形式:

                                        AX = 0   (6)

                     其中A为测量数据构成的矩阵与向量,X为待求参数向量。

                     这里主要针对方程数多于未知元素的情形--超定方程组。

                     这个模型和min||AX||是等价的。

                 b、齐次方程组的最小二乘解的约束

                     因平凡解 X = 0不是我们感兴趣的解,因此我们主要是寻求该方程组的非零解。

                     注意,如果 X 是这个方程组的解,那么对于任何标量k,使得kX也是解,因此可以建立一个合理的约束:||X||=1的解:

                     齐次最小二乘相当于求解:min||AX||    且||X||=1

                                       或者求解: minfrac{{{
m{||AX|}}{{
m{|}}^2}}}{{||X|{|^2}}}      

                 c、齐次方程组的最小二乘解

                     通过前面a、b两部分的说明,此时问题的标准形式为:求使||AX||最小化并满足||X|| = 1时的X。其结论为:

                                      {A^T}A最小特征值对应的特征向量即为待求解

                     证明:

                           对A矩阵SVD分解(可参加我另外一篇博客),令A{
m{=}}UD{V^T},那么问题变成:

                                    min||UD{V^T}X||    且 ||X||=1  (7)

                           由于:||UD{V^T}X||=||D{V^T}X||,即U矩阵不影响范数。

                           同时:||X||=||{V^T}X||,和U矩阵一样,V矩阵不影响范数。

                           那么(7)式变为:

                                    min||D{V^T}X||     且 ||{V^T}X||=1  (8)

                           令 ||y|| = 1,则(8)式变为:

                                    min||Dy||       且||y||=1   (9)

                           由SVD分解的规则可知,D是对角元素按降序排列的一个对角矩阵,

                           因此该问题的解是y={(0,0,...0,1)^T},它具有一个非零元素1并在最后的位置上。

                           X={V^T}y就是V的最后一列。

            4、加权最小二乘问题

                    这是对非齐次方程组的最小二乘问题的补充。

                 对于每一组测量数据,都存在(4)式所定义的误差E,当对不同的E进行加权时,便成了加权最小二乘问题。

                 此时,(5)式应变为:{A^T}C(AX-B)=0,(2)应变为:({A^T}CA)X={A^T}CB,其中C为加权矩阵。

                 加权最小二乘问题的解为:X={({A^T}CA)^{-1}}{A^T}CB

            5.1、带约束方程组的最小二乘解(1)

                    如果3、齐次方程组的最小二乘模型存在约束,即:

                                   min||AX||    且||X||=1,且CX=0   (10)

                 求解思路分析:

                        对C矩阵进行SVD分解,C=UD{V^T},如果C不是方阵,如何行数少于列数那就在C矩阵后面一行行补0。

                        如果对角矩阵D有r个非零对角元素,此时C的秩为 r 且C的行空间由V^T的前 r 行生成,则C的行空间的正交补

                        由{C^ot}余下的行生成,记{C^ot}V的消去前 r 列得到的矩阵,则 C{C^ot}=0,对比CX=0,可以得到:

                        X的解由{C^ot}的列生成,把所有满足这一条件的 X 记为: X={C^ot}{X^'}

                        由于{C^ot}的列具有正交性,因此:|X||=||{C^ot}{X^'}||=||{X^'}||

                        此时,(10)变成:

                                  min||A{C^ot}{X^'}||  且|{X^'}||=1    (11)

                       (10)求解算法总结:

                        a、如果C的行数少于列数,则在C矩阵的后面添加若干行0从而扩展成方阵,通过对C进行SVD分解,求出 C=UD{V^T} 

                        b、分解的时候将非零元素排在D矩阵的前面,将矩阵V消去前 r 列(r为D矩阵对角线上非零元素个数)得到矩阵{C^ot}

                        c、根据3、齐次方程组的最小二乘模型的求解方法求解(11)。

            5.2、带约束方程组的最小二乘解(2)

            5.3、带约束方程组的最小二乘解(3)

  • 相关阅读:
    dp的小理解
    POJ
    isolate-user-vlan隔离用户vlan的配置
    【mvrp多协议vlan注册协议给予三种注册方式的验证】
    【Commare中关于理论范畴和技术常用的技术术语】
    BGP映射和联盟
    filter-policy和AS-PATH-FILTER过滤BGP路由条目
    【路由过滤工具小结】
    【ISIS(中间系统到中间系统)路由链路状态信息协议初识】
    【poe设备加电配置】
  • 原文地址:https://www.cnblogs.com/monoSLAM/p/5252917.html
Copyright © 2020-2023  润新知