本文主要介绍 最小二乘法原理, 线性模型中的应用, 最小二乘解的本质以及在大规模数据集上的求解方法.
1. 最小二乘法介绍
对模型均方误差最小化时的参数\(\theta\)学习的方法.
均方误差:
\[ J_{LS}(\theta) = \frac{1}{2}\sum_{i=1}^n(f_\theta(x_1)-y_i)^2 \]
LS: Least Squares
学习目标:
\[ \hat\theta_{LS} = \underset{\theta}{\arg\min}J_{LS}(\theta) \]
平方误差\((f_\theta(x_i)-y_i)^2\)是残差\(|f_\theta(x_i)-y_i|\)的\(L2\)范数, 最小二乘法也称 \(L_2\)损失最小化学习法
加权最小二乘法
对训练样本平方差通过权重\(w_i\)加权, 再使用最小二乘法:
\[ \underset{\theta}{min}\frac{1}{2}\sum_{i=1}^nw_i(f_\theta(x_i)-y_i)^2 \]
核模型的最小二乘法求解:
\[ f_\theta(x) = \sum_{j=1}^n\theta_jK(x,x_j) \]
上式, 将设计矩阵\(\Phi\)置换为核矩阵K:
\[ K = \begin{pmatrix} K(x_1,x1) &\cdots &K(x_1,x_n) \\ \vdots &\ddots & \vdots \\ K(x_n,x_1) &\cdots & K(x_n,x_n) \end{pmatrix} \]
2. 线性模型LS
\[ f_\theta(x) = \sum_{j=1}^b\theta_i\phi_i(\mathbf x) = \theta^T\phi(x) \]
平方误差:
\[ J_{LS}(\theta) = \frac{1}{2}\|\Phi \mathbf \theta-\mathbf y\|^2 \]
\(\Phi\)构成的nxb阶设计矩阵:
\[ \Phi = \begin{pmatrix} \phi_1(x_1) &\cdots &\phi_b(x_1) \\ \vdots &\ddots &\vdots \\ \phi_1(x_n) &\cdots &\phi_b(x_n) \\ \end{pmatrix} \]
关于参数向量\(\theta\)的偏微分:
\[ \nabla \theta_{LS} = (\frac{\partial J_{LS}}{\partial \theta_1}, \cdots, \frac{\partial J_{LS}}{\partial \theta_b})= \Phi^T\Phi\theta-\Phi^T\mathbf y \]
\(\nabla \theta_{LS}=0\)时\(J_{LS}(\theta)\)取得最小值, 此时最小二乘解满足\(\Phi^T\Phi \theta=\Phi^T\mathbf y\)
解得:
\[ \hat \theta_{LS} = (\Phi^T\Phi)^{-1}\Phi^Ty \]
注: 只有\(\Phi^T\Phi\)有逆矩阵时上式才成立
广义逆矩阵: 是对逆矩阵的推广, 只有方阵, 非奇异矩阵才有逆矩阵, 单矩形矩阵或奇异矩阵都可以定义广义逆矩阵
令广义逆矩阵为:
\[ \Phi^{\dagger} = (\Phi^T\Phi)^{-1}\Phi^T \]
, 则\(\hat \theta_{LS}\)可写为:
\[ \hat \theta_{LS} = \Phi ^{\dagger}y \]
最小二乘法学习基于三角多项式基函数的线性模型:
3.最小二乘法解的性质
设计矩阵\(\Phi\)的奇异值分解:
\[ \Phi = \sum_{k=1}^{min(n,b)}\kappa _k\psi_{k} \varphi_k^T \]
\(\kappa, _k\psi_{k}, \varphi_k\)分别称为奇异值, 左奇异向量, 右奇异向量.
- 奇异值非负
- 奇异向量满足正交性
\(\Phi\)的广义逆矩阵:
\[ \Phi^{\dagger} =\sum_{k=1}^{min(n,b)}\kappa _k^{\dagger}\psi_{k} \varphi_k^T \]
\(\kappa _k^{\dagger}\)是标量\(\kappa\)的广义逆矩阵, \(\kappa^{\dagger} = \frac{1}{\kappa} (\kappa \neq 0时)\)
最小二乘解表示为:
\[ \hat \theta_{LS}= \sum_{k=1}^{min(n,b)}\kappa _k^{\dagger}(\psi_{k}^Ty) \varphi_k \]
模型输出向量变换为列向量:
\[ (f_{\hat \theta_{LS}}(x_1), \cdots, f_{\hat \theta_{LS}}(x_n))^T = \Phi\hat \theta_{LS} = \Phi\Phi^{\dagger}\mathbf{y} \]
因此, \(\Phi\Phi^{\dagger}\)是\(\Phi\)的正交投影矩阵, 最小二乘法输出向量\(\mathbf y\)是值域\(R(\Phi)\)的正交投影得到的.
带入真实函数中的参数\(\theta^*\):
\[ (f(x_1), \cdots, f(x_n))^T = \Phi \theta^* \]
可知, 真的输出值向量就存在于\(R(\Phi)\)中
结论: 用最小二乘法的向量若是由\(R(\Phi)\)的正投影得到的, 则可以有效去除y中的噪音:
噪声期望为0是, \(\hat \theta_{LS}\)就是真是参数\(\theta^*\)的无偏估计:
\[ E[\hat \theta_{LS}] = \theta^* \]
上式, E为噪声的期望
渐近无偏性:
增加训练样本n, 上式$E[\hat \theta_{LS}]会向着模型中最优参数方向收敛的性质
4. 大规模学习
一般线性模型\(J_{LS}\)为凸函数.
凸函数: 连接人意两点\(\theta_1,\theta_2\)的线段一定在函数上不:
凸函数只有一个峰值,因此通过梯度法一定可以得到均方差\(J_{LS}\)在值域范围内的全局最优解
梯度法的收敛速度强烈依赖梯度下降步长, 以及收敛结果判定方式(提前终止).