- Python 深度学习
- 吕云翔 刘卓然 关捷雄等编著
- 740字
- 2025-02-28 02:11:38
5.1 线性回归
线性回归模型是指f(·)采用线性组合形式的回归模型。在线性回归问题中,因变量和自变量之间是线性关系的。对于第i个因变量xi,我们乘以权重系数wi,取y为因变量的线性组合:
y=f(x)=w1x1+…+wnxn+b
其中,b为常数项。若令w=(w1,…,wn),上面公式可以改写成向量形式:
y=f(x)=wTx+b
公式中w和b决定了回归模型f(·)的行为。由数据样本得到w和b有许多方法,如最小二乘法、梯度下降法。在这里我们介绍最小二乘法求解线性回归中参数估计的问题。
直觉上,我们希望找到这样的w和b,使其对于训练数据中每一个样本点〈x(n),y(n)〉,预测值f(x(n))与真实值y(n)尽可能接近。于是我们需要定义一种“接近”程度的度量,即误差函数。在这里我们采用平均平方误差(Mean Square Error)函数作为误差函数:

为什么要选择这样一个误差函数呢?这是因为我们做出了这样的假设:给定x,则y的分布服从如下高斯分布,如图5.1所示。
p(y|x)~N(wTx+b,σ2)

图5.1 条件概率服从高斯分布
从图5.1可看出,自变量x取某个确定值时,数据样本点以回归模型预测的因变量y为中心、以σ2为方差呈高斯分布。
基于高斯分布的假设,我们得到条件概率p(y|x)的对数似然函数:

即

做极大似然估计

由于对数似然函数中σ为常数,极大似然估计可以转化为

这就是我们选择平均平方误差函数作为误差函数的概率解释。
我们的目标是要最小化误差函数E,具体做法:令E对于参数w和b的偏导数为0。由于我们的问题变成了最小化平均平方误差,因此习惯上将这种通过解析方法直接求解参数的做法称为最小二乘法。
为了方便矩阵运算,我们将E表示成向量形式。令

则E可表示为
E =(Y-XwT-b)T(Y-XwT-b)
由于b的表示较为烦琐,我们不妨更改一下w的表示,将b视为常数1的权重,令
w =(w1,…,wn,b)
相应地,对X做如下更改:

则E可表示为
E=(Y-XwT)T(Y-XwT)
对误差函数E求参数w的偏导数可得到

令偏导为0可得到
w=(XTX)-1XTY
因此对于测试向量x,根据线性回归模型预测的结果为
y=x [(XTX)-1XTY]T