机器学习领域,大多数任务最终的目标都是预测。而预测的结果大致分为两大类,一种是需要估计连续数值的回归预测,另一种是确定离散类别的分类预测。本节博文将围绕线性回归内容。
线性回归基本元素
基本名词
线性回归中,自变量 x \mathbf{x} x 与因变量 y y y 之间的关系是线性的, y y y 可以表示为 x \mathbf{x} x 中元素的加权和。
开发一个线性回归模型,我们需要包含训练集与测试集的数据集。在数据集中,每行数据称为样本或数据样本,结果 y y y 值称为标签或目标,自变量因素则称为特征。
自变量输入描述为: x ( i ) = [ x 1 ( i ) , x 2 ( i ) , . . . ] T \mathbf{x}^{(i)}=[x_1^{(i)}, x_2^{(i)},...]^T x(i)=[x1(i),x2(i),...]T,标签表示为 y ( i ) y^{(i)} y(i);其中每个 x x x 为一个自变量特征。
线性模型
假设想要构建一个简单的线性模型,通过房间的面积和房龄预测一个房屋的价格:
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} \cdot area + w_{age} \cdot age + b
price=warea⋅area+wage⋅age+b
类似于我们之前学习的二元一次方程, w a r e a w_{area} warea 与 w a g e w_{age} wage 称为权重,权重决定了每个特征对我们预测值的影响。 b b b 称为偏置、偏移量或者截距。偏置是指所有特征都为 0 时,预测值应该为多少。线性函数模型通过加权来对特征进行线性变换,通过偏置项来进行平移操作。
因此,带有权重和偏置的标准线性模型的数学表达式可以写作:
y
^
=
w
1
⋅
x
1
+
.
.
.
+
w
d
⋅
x
d
+
b
\hat y = w_1 \cdot x_1 + ... + w_d \cdot x_d + b
y^=w1⋅x1+...+wd⋅xd+b
可以简洁表达为:
y
^
=
w
T
x
+
b
\hat y = \mathbf{w^Tx}+b
y^=wTx+b
上述表达式中,向量 x \mathbf{x} x 对应于单个数据样本的特征,矩阵 X \mathbf{X} X 表示数据集矩阵,其中每一行代表一个样本,每一列表示一种特征。给定训练数据特征 X \mathbf{X} X 和对应的已知标签 y \mathbf{y} y,线性回归的目标是找到一组权重向量 w \mathbf{w} w 和偏置 b b b,使得新样本预测标签误差尽可能小。
为了调优权重,我们需具备以下两方面:
- 一种模型质量的度量方式:损失函数;
- 一种能够更新模型以提高模型预测质量的方法:梯度下降。
损失函数
损失函数能够量化目标的实际值与预测值之间的差距,损失函数的数值越小代表损失越小。回归问题中最常用的损失函数是平方误差函数。当样本
i
i
i 的预测值为
y
^
(
i
)
\hat y^{(i)}
y^(i),真实标签为
y
(
i
)
y^{(i)}
y(i) 时,平方误差定义为以下公式:
l
(
i
)
(
w
,
b
)
=
1
2
(
y
^
(
i
)
−
y
(
i
)
)
2
l^{(i)}(\mathbf{w}, b)=\frac 1 2 (\hat y^{(i)}-y^{(i)})^2
l(i)(w,b)=21(y^(i)−y(i))2
平方误差函数中的平方项在估计值
y
^
(
i
)
\hat y ^{(i)}
y^(i) 与实际值
y
(
i
)
y^{(i)}
y(i) 之间的差异较大时,会导致更大的损失。为了评估模型在整个数据集上的性能,我们通常计算所有样本的平均损失值。
L
(
w
,
b
)
=
1
n
∑
i
=
1
n
l
(
i
)
(
w
,
b
)
L(\mathbf{w}, b)=\frac 1 n \sum ^n _{i=1} l^{(i)}(\mathbf{w},b)
L(w,b)=n1i=1∑nl(i)(w,b)
梯度下降
梯度下降方法用于优化深度学习模型。通过不断地在损失函数递减的方向上更新参数来降低误差。梯度下降最简单的用法是计算损失函数关于模型参数的导数。