全面讲解最小二乘法

常见的最小二乘法我们就不多说了,下面主要介绍一下最小二乘法的一些先进方法。

  • 正则化的最小二乘法

在使用常见的最小二乘法进行回归分析时,常常会遇到过拟合的问题,也就是在训练数据集上表现的很好,但是在测试数据集上表现的很差。这时候就需要将最小二乘法中引入一个正则化项。常见的正则化有两种。

L2正则化(Ridge回归):

arg min_{w\in D}L(W)=\sum_{i=1}^{n}(y_i-Wx_i)^2+\lambda\sum_{j=1}^{d}W^2_j \\ =||y-Wx||^2_2+\lambda||W||^2_2

L1正则化(Lasso回归):

arg min_{w\in D}L(W)=\sum_{i=1}^{n}(y_i-Wx_i)^2+\lambda\sum_{j=1}^{d}|W_j| \\ =||y-Wx||^2_2+\lambda||W||_1

从概率的角度解释正则化:正则化相当于参数W的先验分布。如果该分布是\mu=0的高斯分布,就是L2正则化;如果该分布是\mu=0的拉普拉斯分布,则是L1正则化。通过加入正则化来限制参数空间,控制模型的复杂度,从而防止过拟合。

  • 阻尼最小二乘法(Levenberg–Marquardt algorithm,LMA)

        我们常用的最小二乘法是拟合线性方程组y=Wx,但是对于非线性的函数,我们就要用阻尼最小二乘法,本质上是一个迭代求解的过程,基本思想是利用泰勒展开把非线性函数线性化。

        设方程y=f(x;c),其中x是变量,c是要拟合的参数。我们要找到一组c使得:

arg min_{c\in D}L(W)=\sum_{i=1}^{n}(y_i-f(x_i;c))^2

将函数f(x;c)泰勒展开,只保留一阶项,可以得到:

Y=f(x;c_0)+J\Delta c

其中J是雅克比矩阵:

J=\begin{pmatrix} \frac{\partial f(x_1)}{\partial c_1} &\frac{\partial f(x_1)}{\partial c_2} & ...&\frac{\partial f(x_1)}{\partial c_n} \\ \frac{\partial f(x_2)}{\partial c_1}& \frac{\partial f(x_2)}{\partial c_2} & ... & \frac{\partial f(x_2)}{\partial c_n}\\ ...& ... & ... &... \\ \frac{\partial f(x_n)}{\partial c_1}& \frac{\partial f(x_n)}{\partial c_2}& .... & \frac{\partial f(x_n)}{\partial c_n} \end{pmatrix}

从而有J \Delta c = Y-F,从而可以解出\Delta c =(J^TJ)^{-1}J^T( Y-F),不断迭代更新c=c+\Delta c,直到\Delta c <\xi

 

你可能感兴趣的:(最小二乘法,算法,机器学习)