有监督回归:最小二乘学习法

来源:互联网 发布:单片机实验认识实验 编辑:程序博客网 时间:2024/05/18 02:07

1.前言

接下来几篇博客将总结回归问题中的各种有监督学习算法。
本片博客介绍回归问题中的最基本算法——最小二乘学习法;下一篇介绍为了避免过拟合而设置约束条件的最小二乘学习法。之后,我也会介绍难度高一点的稀疏学习法和鲁棒学习法。
在以下几篇文章中,我们将对以d次方的实数向量X作为输入、以实数值y作为输出。可以描述为y=f(X)。这里,真实的函数关系f是未知的,通过学习过程中作为训练集进行学习。
一般情况下,输出样本yi的真实值f(xi)中经常会观测到噪声。

2.最小二乘学习法

最小二乘学习法是对模型的输出fΘ(xi)和训练集输出{yi}i=1->n的平方误差为最小时的参数Θ进行学习。核心原理如下公式所示:



LS是Least Square的首字母。这一要说明的是:1/2是自己添加的,目的是为了约去对Jls进行微分时得到的2。平方误差可以理解为每一次观测残差的L2范数。所以很多情况下,最小二乘学习法也被称为L2范数损失最小化学习法

如果使用线性模型:


训练样本的平方差Jls就能够表示为下面的形式:

在这里,y=(y1,..,yn)是训练输入的n维向量(更多的时候,我们把它称为标签),Φ是下式中定义的n*b阶矩阵,也称为设计矩阵。


训练样本的平方差Jls的参数向量Θ的偏微分可以计算得到:


当偏微分等于0时,可以取得极值,最小二乘关系可以表示为下式:


求解参数Θ的过程,实际上就是计算逆矩阵的过程,即:


我们需要注意的是:相对于只有方阵、非奇异矩阵才能定义逆矩阵,广义逆矩阵则是矩形矩阵或奇异矩阵都可以定义,是对逆矩阵的推广

2.1 最小二乘学习法MATLAB实例


目标:使用三角多项式基函数:


基于参数的线性模型进行最小二乘法学习,实现对复杂非线性函数的近似。

2.2 加权最小二乘学习法


对顺序为i的训练样本的平方差通过权重wi≥0进行加权,然后再采用最小二乘学习,这称为加权最小二乘学习法。

加权最小二乘学习法,与没有权重时相同。

通过下式可以进行求解:


上式中,W是以w1,w2,...,wn为对角元素的对角阵。

2.3 最小二乘解的性质

首先来考虑设计矩阵Φ的奇异值分解:


上述三个参量分别称为奇异值、左奇异向量、右奇异向量。奇异值全部是非负的,奇异向量满足正交性:


注意:使用MATLAB中的SVD函数,可以非常简单地进行奇异值求解

进行奇异值分解后,Φ的广义矩阵Φ’就可以表示为下式:


2.4 大规模数据的学习算法

设计矩阵Φ的维数为n*b,当训练样本数n或参数个数b是非常大的数值的时候,经常会出现计算机内存不足的现象。在这种情况下,使用随机梯度算法(SGD)往往会产生很好的效果。随机梯度是指,沿着训练平方误差Jls的梯度下降,对参数Θ一次进行学习的算法。其原理可以用下图表示:

   

一般而言,与线性模型相对应的训练平方误差Jls为凸函数。J(Θ)函数为凸函数是指,对于任意的两点Θ1,Θ2和任意的t∈[0,1];都有下式成立:


因为凸函数是只有一个峰值的函数,所以通过梯度法就可以得到训练平方误差Jls在值域范围内的最优解,即全局最优解。

2.5 实例

对于下式的高斯核函数模型:


采用最小二乘法的随机梯度算法如下所示:




将训练样本数n设定为50,高斯核h设定为0.3,在本例中,从随机、任意的初始值开始学习,经过200次迭代后,基本上就得到了近似的函数结果。但是,如果在这之后想要得到较为理想的收敛结果,则共需要11556次的迭代结果。

2.6 讨论

梯度法的收敛速度,强烈依赖于梯度下降的幅度以及收敛结果的判断方法。如果能够合理地调整这些值得设置,收敛速度也能得到一定程度的提高。例如,对于梯度下降的步幅,可以首先将其设置为较大的值,然后慢慢地设置为较小的值。然而在实际操作过程中,想要将梯度下降的步幅设置为最优,是很困难的。


原创粉丝点击