最小二乘法

    技术2022-07-10  190

    1. 核心思想

    最小二乘法是勒让德( A. M. Legendre)于1805年在其著作《计算慧星轨道的新方法》中提出的。其核心的思想就是说求解未知参数,使得理论值与观测值之差(误差,或者说残差)的平方和(一般叫做损失函数)达到最小: 其中 y i y_i yi 就是我们的观测样本, y ^ \hat y y^ 就是我们的理论值(也叫你和函数),目标函数就是我们说的损失函数 E ,我们的目标就是得到使得 E 最小时候的参数取值。所谓最小二乘,其实也可以叫做最小平方和,其目的就是通过最小化误差的平方和,使得拟合对象无限接近目标对象。换句话说,最小二乘法可以用于对函数的拟合.

    2. 通用解法

    列出损失函数 E E E,样本值用 x i x_i xi 来表示求损失函数关于参数的导数,使导数为0,代表损失函数最小时的参数即为我们所求解得未知参数

    3.解决超定问题

    假定一个线性系统表示为: A x = b Ax=b Ax=b 其中A是一个mn的矩阵,b是一个m1的矩阵,且 m > n m>n m>n;同时,A是列满秩,即 r a n k ( A ) = n rank(A)=n rank(A)=n。系统通常是不一致的(没有解决方案),并且是一种通用方法寻找近似解的方法是选择结果最小的解残差r = Ax-b的平方范数: 问题(LS)是使整个空间的二次函数最小化的问题。的 二次目标函数为 A是一个列满秩,它遵循对于一切的x有 ∇ 2 f ( x ) = 2 A T A > 0 \nabla ^2f(x)=2A^TA>0 2f(x)=2ATA>0,可以得出: x L S = ( A T A ) − 1 A T b x_{LS}=(A^TA)^{-1}A^Tb xLS=(ATA)1ATb x L S x_{LS} xLS被称为最小二乘解。

    MATLAB中实现:使用“\”,即左除。

    4.正则最小二乘

    在几种情况下,最小二乘解不会产生对“真实”向量x的良好估计。 例如,当A不确定时,即方程组少于变量时,存在最小二乘问题的多个最优解,尚不清楚应该考虑哪个最优解。 在这些情况下,应将有关x的某种先验信息纳入优化模型。 一种方法是考虑一个惩罚问题,其中将正则化函数 R ( . ) R(.) R(.)添加到目标函数。 正则化最小二乘(RLS)问题的形式为 正常数A是正则化参数。 随着A变大,正则化函数将获得更多权重。 在许多情况下,正则化被认为是二次的。 特别地, R ( x ) = ∣ ∣ D x ∣ ∣ 2 R(x)= ||Dx||_2 R(x)Dx2其中D为p*n阶给定矩阵。 二次正则函数旨在控制Dx的范数,其公式如下 其可以等效写为: 由于目标函数的Hessian是 ∇ 2 f R L S ( x ) = 2 ( A T A + λ D T D ) > = 0 \nabla ^2f_{RLS}(x)=2(A^TA+\lambda D^TD)>=0 2fRLS(x)=2(ATA+λDTD)>=0,任何固定点都是全局最小点。静止点是那些满足 ∇ 2 f R L S ( x ) = 0 \nabla ^2f_{RLS}(x)=0 2fRLS(x)=0的点,即 因此,只要 ( A T A + λ D T D ) > 0 (A^TA+\lambda D^TD)>0 (ATA+λDTD)>0,那么RLS可以根据下式求解。

    5.去噪

    通常使用正则化的一种应用领域是降噪。假设 给出信号x e Rn的噪声测量: b = x + w b=x+w b=x+w x是未知信号,w是位置噪声向量,b是已知测量向量。去噪问题如下:给定b,找到一个“好的”估计值x,与近似方程 x ≈ b x \approx b xb相关的最小二乘问题是: min ⁡ ∣ ∣ x − b ∣ ∣ \min ||x-b|| minxb

    但是,此问题的最佳解决方案显然是x = b,这毫无意义。在这种情况下,即使相关矩阵(恒等矩阵)的列数是完整的,最小二乘解也无法提供足够的信息。 为了找到更相关的问题,我们将添加一个正则项。 为此,我们需要利用信号上的一些先验信息。 例如,我们可能事先知道信号在某种意义上是平滑的。 在这种情况下,添加二次惩罚是很自然的,这是向量连续分量之差的平方之和。 即正则化函数为 该二次函数也可以写成 R ( x ) = ∣ ∣ L x ∣ ∣ 2 R(x)=||Lx||^2 R(x)=Lx2,其中L为(n-1)*n阶矩阵: 所得的正则化最小二乘问题为(给定一个正则参数 λ \lambda λ),使 其最优解为:

    备注:具体公式推导等可以参考Introduction to Nonlinear Optimization: Theory, Algorithms, and Applications with MATLAB

    Processed: 0.071, SQL: 9