前言
线性回归基于几个简单的假设:
- 假设自变量x和因变量y之间的关系是呈线性的,即y可以表示为x中元素的加权和,这里通常允许包含观测值的噪声
- 假设任何噪声都比较正常,比如遵循正态分布
1. 线性模型
线性假设是指目标(房屋价格)可以表示为特征(面积和房龄)的加权和,如下式:
p
r
i
c
e
=
w
a
r
e
a
∗
a
r
e
a
+
w
a
g
e
∗
a
g
e
+
b
price=w_{area}*area+w_{age}*age+b
price=warea∗area+wage∗age+b
严格来说,上式是输入特征的仿射变换。仿射变换的特点是通过加权和对特征进行线性变换,并通过偏置项进行平移。
在机器学习领域,通常使用高维数据集,建模时采用线性代数表示法比较方便,表示为:
y
^
=
w
1
x
1
+
.
.
.
.
.
.
+
w
d
x
d
+
b
\hat{y}=w_1x_1+......+w_dx_d+b
y^=w1x1+......+wdxd+b
用向量点积的形式表示为:
y
^
=
w
T
x
+
b
\hat{y}=w^T\boldsymbol{x}+b
y^=wTx+b
向量
x
\boldsymbol{x}
x对应于单个数据样本的特征。矩阵
X
∈
R
n
×
d
X\in\mathbb{R}^{n×d}
X∈Rn×d可以表示整个数据集中n个样本,线性模型可以表示为:
y
^
=
X
w
+
b
\hat{y}=\boldsymbol{X}w+b
y^=Xw+b
求和过程将使用广播机制对权重矩阵进行扩展。
2.损失函数
损失函数能够量化目标的实际值与预测值之间的差距。通常选用非负数作为损失,且数值越小表示损失越小。最常用的损失函数是平方误差函数。定义为:
l
(
i
)
(
w
,
b
)
=
1
2
(
y
^
(
i
)
−
y
(
i
)
)
2
l^{(i)}(\boldsymbol{w},b)=\frac{1}{2}(\hat{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
)
=
1
n
∑
i
=
1
n
1
2
(
w
T
x
(
i
)
+
b
−
y
(
i
)
)
2
L(\boldsymbol{w},b)=\frac{1}{n}\sum_{i=1}^{n}l^{(i)}(\boldsymbol{w},b)=\frac{1}{n}\sum_{i=1}^{n}\frac{1}{2}(\boldsymbol{w}^Tx^{(i)}+b-y^{(i)})^2
L(w,b)=n1∑i=1nl(i)(w,b)=n1∑i=1n21(wTx(i)+b−y(i))2
训练模型时,我们希望找到一组参数
(
w
∗
,
b
∗
)
(\boldsymbol{w}^*,b^*)
(w∗,b∗)这组参数能最小化所有训练样本上的总损失,如下式:
w
∗
,
b
∗
=
a
r
g
m
i
n
L
(
w
,
b
)
\boldsymbol{w}^*,b^*=argminL(\boldsymbol{w},b)
w∗,b∗=argminL(w,b)
3.解析解
线性回归是一个很简单的优化问题。线性回归的解可以用一个公式简单的表示,这类解叫做解析解。
4.随机梯度下降
即使在无法得到解析解的情况下,我们仍能有效训练模型。梯度下降方法几乎可以优化所有深度学习模型。他通过不断地在损失函数递减的方向上更新参数来降低误差。
梯度下降需要遍历所有的训练样本,在实际执行中非常慢,因此通常会在需要计算更新的时候随机抽取一小批样本,这个变体就叫做小批量随机梯度下降。
数学公式如下:
(
w
,
b
)
←
(
w
,
b
)
−
η
∣
B
∣
∑
i
∈
B
∂
(
w
,
b
)
l
(
i
)
(
w
,
b
)
(\boldsymbol{w},b)\leftarrow(\boldsymbol{w},b)-\frac{\eta}{\left | {B} \right |}\sum_{i\in B}\partial_{(\boldsymbol{w},b)}l^{(i)}(\boldsymbol{w},b)
(w,b)←(w,b)−∣B∣η∑i∈B∂(w,b)l(i)(w,b)
- 可以调整但不在训练中更新的参数称为超参数,调参是选择超参数的过程。
5.用模型进行预测
给定已学习的线性回归模型,可以通过房屋面积和房龄来估计一个新的房子的价格。给定特征的情况下估计目标的过程称为预测或推断。