机器学习模型中的关键要素是训练数据、模型、损失函数、优化算法。
- 线性回归的模型:输入特征的加权和;
- 线性回归的目标:找到一组权重向量和偏置,使预测值和真实值的误差尽可能小。
3.1.1 线性回归的基本元素
线性回归基于几个两个简单的假设:①假设自变量 x \mathbf{x} x和因变量 y y y之间的关系是线性的,②假设噪声遵循正态分布。
3.1.1.1 线性模型
线性假设是指目标可以表示为特征的加权和,当我们的输入包含d个特征时,我们将预测结果
y
^
\widehat{y}
y
表示为:
y
^
=
w
1
x
1
+
.
.
.
+
w
d
x
d
+
b
\widehat{y}=w_{1}x_{1}+...+w_{d}x_{d}+b
y
=w1x1+...+wdxd+b
使用向量形式简化模型:
y
^
=
w
T
x
+
b
\widehat{y}=\mathbf{w}^{T}\mathbf{x}+b
y
=wTx+b
使用矩阵
X
∈
R
n
×
d
X \in R^{n\times d}
X∈Rn×d表示整个数据集n个样本的特征向量,预测值表示为:
y
^
=
X
w
+
b
\mathbf{\widehat{y}} =\mathbf{Xw} +b
y
=Xw+b
给定训练数据特征
X
\mathbf{X}
X和对应的已知标签
y
\mathbf{y}
y,线性回归的目标是找到一组权重向量
w
\mathbf{w}
w和偏置
b
b
b,当给定从
X
\mathbf{X}
X的同分布中取样的新样本特征时,这组权重和偏置使得新样本预测标签的误差尽可能小。
3.1.1.2 损失函数
损失函数能够量化预测值和实际值之间的差距,单个样本最常用的损失函数是平方误差函数:
l
(
i
)
(
w
,
b
)
=
1
2
(
y
^
(
i
)
−
y
(
i
)
)
2
l^{(i)} (\mathbf{w} ,b)=\frac{1}{2}(\widehat{y}^{(i)}-y^{(i)})^{2}
l(i)(w,b)=21(y
(i)−y(i))2
整个训练集n个样本的损失函数:
L
(
w
,
b
)
=
1
n
∑
i
=
1
n
l
(
i
)
(
w
,
b
)
L (\mathbf{w} ,b)=\frac{1}{n}\sum_{i=1}^{n} l^{(i)} (\mathbf{w} ,b)
L(w,b)=n1i=1∑nl(i)(w,b)
在训练模型时,我们希望寻找一组参数
w
∗
,
b
∗
\mathbf{w}^{*},b^{*}
w∗,b∗,这组参数能最小化在训练样本上的总损失:
w
∗
,
b
∗
=
a
r
g
m
i
n
w
,
b
L
(
w
,
b
)
\mathbf{w}^{*},b^{*}=\underset{\mathbf{w},b}{argmin}L(\mathbf{w},b)
w∗,b∗=w,bargminL(w,b)
3.1.1.3 解析解
将偏置
b
b
b合并到
w
\mathbf{w}
w参数中,损失函数等价于
∥
y
−
X
w
∥
2
\left \| \mathbf{y-Xw} \right \| ^{2}
∥y−Xw∥2,将损失函数关于
w
\mathbf{w}
w的导数设为0,得到解析解:
w
∗
=
(
X
T
X
)
−
1
X
T
y
\mathbf{w^{*}=(X^{T} X)^{-1}X^{T}y}
w∗=(XTX)−1XTy
3.1.1.4 随机梯度下降
小批量随机梯度下降的用法:
- 随机抽样一个小批量 B \mathcal{B} B
- 计算平均损失关于模型参数的梯度;
- 将梯度乘以一个预先确定的正数 η \eta η,并从当前参数值中剪掉。
- 迭代若干次,满足停止条件后,记录下模型参数的估计值
w
^
,
b
^
\widehat{\mathbf{w} },\widehat{b}
w
,b
。
( w , b ) ← ( w , b ) − η B ∑ i ∈ B ∂ ( w , b ) l ( i ) ( w , b ) (\mathbf{w} ,b)\gets (\mathbf{w} ,b)-\frac{\eta}{\mathcal{B}}\sum_{i\in \mathcal{B}}^{} \partial _{(\mathbf{w} ,b)}l^{(i)} (\mathbf{w} ,b) (w,b)←(w,b)−Bηi∈B∑∂(w,b)l(i)(w,b)
3.1.1.5 用模型进行预测
根据给定特征和已学习的模型参数,估计目标的过程称为预测。
y
^
=
w
^
T
x
+
b
^
\widehat{\mathbf{y} } =\widehat{\mathbf{w}}^{ {T}} \mathbf{x} +\widehat{b}
y
=w
Tx+b
3.1.2 正态分布与平方误差
若随机变量
x
x
x具有均值
η
\eta
η和方差
σ
2
\sigma ^{2}
σ2,其正态分布概率密度函数如下:
p
(
x
)
=
1
2
π
σ
2
e
x
p
(
−
1
2
σ
2
(
x
−
μ
)
2
)
p(x)=\frac{1}{\sqrt{2\pi \sigma ^{2}}}exp(-\frac{1}{2\sigma ^{2}}(x-\mu)^{2})
p(x)=2πσ21exp(−2σ21(x−μ)2)
#导入库
import numpy as np
from numpy import math
from d2l import torch as d2l
#定义一个python函数来计算正态分布
def normal(x, mu, sigma):
p = 1 / math.sqrt(2 * math.pi * sigma ** 2)
return p * np.exp(-0.5 / sigma ** 2 * (x - mu) ** 2
#可视化正态分布
x = np.arange(-7, 7, 0.01)
params = [(0, 1), (0, 2), (3, 1)]
d2l.plot(x, [normal(x, mu, sigma) for mu, sigma in params], xlabel = 'x', ylabel = 'p(x)', figsize = (4.5, 2.5), legend = [f'mean{mu}, std{sigma}' for mu, sigma in params])
均方误差损失函数可以用于线性回归的一个原因时:我们假设了观测中包含噪声,其中噪声服从正态分布。
y
=
w
x
+
b
+
ϵ
y=\mathbf{wx} +b+\epsilon
y=wx+b+ϵ
其中,
ϵ
∼
N
(
0
,
σ
2
)
\epsilon \sim \mathcal{N(0,\sigma ^{2} )}
ϵ∼N(0,σ2)。
- 通过给定的
x
\mathbf{x}
x观测到特定
y
y
y的似然:
P ( y ∣ x ) = 1 2 π σ 2 e x p ( − 1 2 σ 2 ( y − w T x − b ) 2 ) P(y|\mathbf{x})=\frac{1}{\sqrt{2\pi\sigma^{2}}}exp(-\frac{1}{2\sigma^2}(y-\mathbf{w}^{T}\mathbf{x}-b)^2) P(y∣x)=2πσ21exp(−2σ21(y−wTx−b)2) - 根据极大似然估计法,参数
w
\mathbf{w}
w和b的最优值是使整个数据集的似然最大的值:
P ( y ∣ X ) = ∏ i = 1 n p ( y ( i ) ∣ x ( i ) ) P(\mathbf{y} | \mathbf{X}) = \prod_{i=1}^{n}p(y^{(i)} | \mathbf{x} ^{(i)}) P(y∣X)=i=1∏np(y(i)∣x(i)) - 改为最小化负对数似然
−
l
o
g
P
(
y
∣
X
)
-logP(\mathbf{y} | \mathbf{X})
−logP(y∣X)
− l o g ( P ( y ∣ X ) ) = ∑ i = 1 n 1 2 l o g ( 2 π σ 2 ) + 1 2 σ 2 ( y ( i ) − w T x ( i ) − b ) 2 -log(P(\mathbf{y} | \mathbf{X})) = \sum_{i=1}^{n}\frac{1}{2}log(2\pi\sigma^2)+\frac{1}{2\sigma^2}(y^{(i)}- \mathbf{w} ^{T}\mathbf{x} ^{(i)} - b)^2 −log(P(y∣X))=i=1∑n21log(2πσ2)+2σ21(y(i)−wTx(i)−b)2
因此,在高斯噪声的假设下,最小化均方误差等价于对线性模型的极大似然估计。