一.前言

        最近几天跟随李沐老师的步伐也是成功进入线性代数的学习,不得不说,沐神的讲解确实厉害。作为深度学习的一个基础模型,线性回归有着重要的分量,学习好线性回归是相当有必要的。

二.线性回归

1.线性回归的基本元素

        以买房为例:我们希望根据房屋的面积(平方英尺)和房龄(年)来估算房屋价格(美元)。 为了开发一个能预测房价的模型,我们需要收集一个真实的数据集。 这个数据集包括了房屋的销售价格、面积和房龄。

        对应机器学习的术语为:

        数据集——训练数据集(training data set)/训练集(training set)

        每行数据——样本(sample)/数据点(data point)/数据样本(data instance)

        价格(预测的目标)——标签(label)/目标(target)

        面积和房龄(自变量)——特征(feature)/协变量(covariate)

2.线性回归模型

        线性回归基于几个简单的假设:

1.假设自变量x和因变量y之间的关系是线性的, 即y可以表示为x中元素的加权和,这里通常允许包含观测值的一些噪声。

2.假设任何噪声都比较正常,如噪声遵循正态分布。

于是我们可以得到线性假设:目标(房屋价格)可以表示为特征(面积和房龄)的加权和

price=wareaarea+wageage+b. (1)

        其中,warea 是权重,b是偏置(bias)/偏移量(offset),偏移量可以增强我们模型的表达能力,使其能够拟合更多的模型。

        在机器学习领域,我们通常使用的是高维的数据集,因此采用线性代数的方式来建模会很方便。我们将所有的特征放在向量x ∈ Rd中,并将所有权重放在向量w ∈ Rd 中,其中d是特征维度,并用y^来表示模型的预测结果,从而我们可以用点积形式来简洁地表达模型:

y^=wTx+b. (2)

        在公式(2)中,向量x对应单个数据样本的特征,此时我们用矩阵w ∈ Rn×d来引用整个数据集的n个样本的特征,X的每一行是一个样本,每一列是一种特征。

那么对于特征集合X,预测值y^ ∈ Rn可以通过矩阵-向量乘法来表示:

y^=Xw+b. (3)

        预测房价模型的公式就可以用(3)来进行表示,我们通过该模型就可以根据面积和房龄等信息来预测房价,但问题在于我们无法确定w和b的值,线性回归就是寻找出一组权重w和偏置b,当给定来自X中取样的独立同分布的新样本特征时,这组权重和偏置可以使得最终的预测值y^与真实值y yy之间的误差尽可能小。

3.损失函数

        在回归问题中,常使用最小二乘法来衡量模型的质量,其定义为:

L(i)(w,b)=1/2(y^(i)−y(i))2. (4)

       这就是该模型的损失函数,其中i代表第i个样本,L(i)(w,b)就是第i个样本的预测误差。

        上述只是对于每一条样本的预测误差,而我们最终的目的是为了去拟合整个数据集上的样本,因此为了度量模型在整个数据集上的质量,我们需要计算在训练集n nn个样本上的损失均值:

分段线性二次回归 两阶段线性回归_数据集

(5)

训练模型也就是去寻找一组参数(w*,b*)来最小化在所有训练样本上总损失的过程:

分段线性二次回归 两阶段线性回归_数据集_02

(6)

5.梯度下降

将(5)继续化简:

分段线性二次回归 两阶段线性回归_分段线性二次回归_03

可以从(7)得出:损失函数是关于b的二次函数。

分段线性二次回归 两阶段线性回归_人工智能_04

        我们的目标是找到损失函数的极小值(最优值),但直接求最优解是一件很难的事情,并且只有线性回归模型才能最有值,在其他复杂的模型中,我们都只能无限逼近最优解,因此我们换一种思路来求解:

分段线性二次回归 两阶段线性回归_人工智能_05

        我们求当前损失函数L对b的偏导,就可以得出函数值的变化趋势。导数为正,则代表函数值呈上升趋势;导数为负,则代表函数值呈下降趋势。我们需要求函数的最小值,因此沿着导数的反方向就能逐渐靠近最优值:

分段线性二次回归 两阶段线性回归_数据集_06

(8)中的ϵ是学习率,可以理解为沿着当前方向走多少“步”。

由上可推,w的更新与b类似,因此:

分段线性二次回归 两阶段线性回归_线性回归_07