隐私保护机器学习
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.2.2 线性回归

线性回归模型是一种基于线性模型的回归预测模型,对于给定的数据集D={X, Y},,线性回归模型试图寻找一组参数b,使得在尽可能准确地描述所有数据。

考虑最简单的情况,当x只有一个属性,如图2.1所示,我们很难找到一条完美的直线能通过所有数据点,因此只能退而求其次,找到一条尽可能准确的直线,使得所有数据在模型的预测下,真值和预测值的误差之和达到最小,即线性回归试图学得f(xi)=ωxi+b,使得f(xi)尽量靠近yi

图2.1 线性回归模型示意图

显然,衡量f(xi)与yi之间的差别是关键,这里采用的是均方误差。均方误差具有很好的几何意义,对应了几何里的欧氏距离,并且在随机噪声符合高斯分布的假设下,均方误差与最大似然等价。机器学习模型的输出和目标值之间的差距称为代价,把数据集中所有数据点的代价加起来就是代价函数,表达式如下:

机器学习的过程就是对于使得代价函数最小化的参数的求解,常用的方法有逆矩阵计算法和梯度下降法。

将输出值x看作一个列向量,n个输入向量则构成一个m×n维的矩阵,根据矩阵运算法则,可以写成如下式子:

X为满秩矩阵或正定矩阵,并且训练集X中数据量不大的情况下,可以直接对代价函数求导后等于零,从而得到参数ω的解析解,即:

X不是满秩矩阵时,上式求矩阵的逆运算无法实现,或者当训练集数据量太多,统一计算将带来极大的计算开销,这两种情况下,可采用梯度下降法来求解最优参数。在多元微积分中,把目标函数对各个参数求偏导数,然后把偏导数以向量的形式写出来,就是梯度。从几何意义上来说,沿梯度向量的方向就是目标函数增大最快的方向,反之,沿梯度向量的反方向,目标函数减小得最快,也就更容易找到目标函数的最小值。

如图2.2所示,梯度下降法就是沿着目标函数梯度的反方向移动,直到目标函数达到最小值。例如,对于目标函数,在使用梯度下降进行优化时,先将参数随机初始化,然后不断更新参数,直到达到要求:

图2.2 梯度下降法示意图

α是迭代的步长,也称为学习率,目标函数的梯度一般是变化的,因此需要一个学习率控制每次下降的距离。如果学习率太大,会导致迭代过快,甚至有可能错过最优解;反之如果步长太小,迭代速度太慢,很长时间算法都不能结束。

根据计算梯度所使用的数据量不同,可以将梯度下降法分为以下三种基本方法。

• 批量梯度下降法(Batch Gradient Descent,BGD):是梯度下降法最常用的形式,在计算梯度时使用全部样本数据,分别计算梯度后取平均值作为迭代值。

• 随机梯度下降法(Stochastic Gradient Descent, SGD):SGD只是用一个随机样本数据参与梯度计算,因此省略了求和及求平均的过程,降低了计算复杂度,大大提升了计算速度,但同时由于只是用一个样本决定梯度方向,导致最终解可能不是最优的。

• 小批量梯度下降法(Mini-Batch Gradient Descent, MBGD):小批量梯度下降法介于随机梯度下降法和批量梯度下降法之间,在计算优化函数的梯度时随机选择一部分样本数据进行计算。这样在提高计算速度的同时保留了一定的准确度。

对于线性模型,目标函数为凸函数的模型,使用梯度下降法找到的局部最优解是全局最优解。而其他目标函数不是凸函数的模型,可能存在多个局部最优解。

线性回归模型是一种非常简单的模型,但是可以通过引入非线性函数映射产生许多变化,从而可以用线性关系描述非线性关系。例如,考虑将模型输出结果的对数作为线性逼近的目标,即:

这就是对数线性回归,在加入对数函数之后,虽然形式上仍然是线性回归,但实质上已经是在求解输入到输出的非线性映射,如图2.3所示。这里的对数函数起到了将预测值与真实标记值联系起来的作用,类似的联系函数还有很多。一般地,考虑单调可微函数g,若将g作为联系函数,这样得到的模型称为广义线性模型,即:

图2.3 对数回归模型示意图