本文共 1604 字,大约阅读时间需要 5 分钟。
首先,需要明确的是最小二乘法(Least-square, LS)是一种优化技术(optimization technique),它是用于解决优化问题的,其中,能适用于最小二乘解决的优化问题被称作最小二乘问题(Least-squares problems)。除此之外,像线性规划、梯度下降算法、牛顿法和拟牛顿法、共轭梯度法、拉格朗日成数法以及一些启发式算法如PSO、遗传算法都属于解决优化问题的方法,所以最小二乘法只是作为其中的一种solution method,用于解决一类优化问题。
一个最小二乘问题通常是一个没有约束项的优化问题,它的表现形式通常是 a i T x − b i a_{i}^{T}x-b_{i} aiTx−bi的平方和,其中 a i T x a_{i}^{T}x aiTx常对应与我们建立的机器学习模型的预测值或者估计值, b i b_{i} bi则对应真实值。将变量 x x x的系数 a i T a_{i}^{T} aiT作为矩阵 A ∈ R k × n A \in R^{k×n} A∈Rk×n的行,这个优化问题的形式可以如下: m i n m i z e f ( x ) = ∣ ∣ A x − b ∣ ∣ 2 2 = ∑ i = 1 k ( a i T x − b i ) 2 minmize \ f(x) = ||Ax - b||_{2}^{2}=\sum_{i=1}^{k}(a_{i}^{T}x-b_{i})^{2} minmize f(x)=∣∣Ax−b∣∣22=i=1∑k(aiTx−bi)2上面的问题可以在时间复杂度 O ( k n 2 ) O(kn^{2}) O(kn2)内解决,但是通常情况下 x x x的系数矩阵 A A A具有一种稀疏的形式,也就意味着它具有比 n × k n×k n×k更少的非零值,所以我们通常解决这个问题时要比时间复杂度 O ( k n 2 ) O(kn^{2}) O(kn2)更低。
上面的最小二乘是一个简单的形式,所以也称之为普通最小二乘法(Ordinary Least-squares, OLS),为了考虑每一项 a i T x − b i a_{i}^{T}x - b_{i} aiTx−bi在求和的过程中不同的作用时,接下来引入了加权最小二乘法(Weighted Least-squares, WLS),它的形式是: ∑ i = 1 k w i ( a i T x − b i ) 2 \sum_{i=1}^{k}w_{i}(a_{i}^{T}x - b_{i})^{2} i=1∑kwi(aiTx−bi)2另外的一种应用最小二乘的技巧就是正则化,也就是在最小二乘的基础上加入了额外项,其中最简单的形式如下,也即是加入了 L 2 L2 L2正则项: ∑ i = 1 k ( a i T x − b i ) 2 + θ ∑ i = 1 n x i 2 \sum_{i=1}^{k}(a_{i}^{T}x - b_{i})^{2}+\theta \sum_{i=1}^{n}x_{i}^{2} i=1∑k(aiTx−bi)2+θi=1∑nxi2额外项作为惩罚项,会惩罚较大的 x x x值。关于正则化的问题也可以参考我前面的写的博客:
除此之外,均方误差(Mean Squares Errors,MSE)也是一种最小二乘的形式,它作为目标函数相当于等权的加权最小二乘。 M S E = 1 k ∑ i = 1 k ( a i T x − b i ) 2 MSE = \frac{1}{k}\sum_{i=1}^{k}(a_{i}^{T}x - b_{i})^{2} MSE=k1i=1∑k(aiTx−bi)2转载地址:http://izklf.baihongyu.com/