线性回归模型
基本结构
y
=
w
T
⋅
X
+
b
y = w^T\cdot X + b
y=wT⋅X+b
数据集
通常收集一系列的真实数据,如果多栋房屋的真实出售价格和他们对应的面积和房龄。
我们希望在数据集上寻找模型参数来使得预测价格和真实价格误差最小。
该数据集被称为训练数据集,每个房屋被称为一个样本,真实的售出价格叫做标签,用来预测标签的因素叫做特征,特征用来表示样本的特点。
p r i c e = w a r e a ⋅ a r e a + w a g e ⋅ a g e + b \mathrm{price} = w_{\mathrm{area}} \cdot \mathrm{area} + w_{\mathrm{age}} \cdot \mathrm{age} + b price=warea⋅area+wage⋅age+b
损失函数
用来计算预测价格和真实价格之间的误差。通常我们要求误差应该是非负数,且数据越小表示误差越小,我们一般选择平方函数作为误差函数
如下是单个样本得到的误差值
l
(
i
)
(
w
,
b
)
=
1
2
(
y
^
(
i
)
−
y
(
i
)
)
2
,
l^{(i)}(\mathbf{w}, b) = \frac{1}{2} \left(\hat{y}^{(i)} - y^{(i)}\right)^2,
l(i)(w,b)=21(y^(i)−y(i))2,
如下是所有样本得到的误差值的平均,可以知道该误差是关于w和b的一个函数
L
(
w
,
b
)
=
1
n
∑
i
=
1
n
l
(
i
)
(
w
,
b
)
=
1
n
∑
i
=
1
n
1
2
(
w
⊤
x
(
i
)
+
b
−
y
(
i
)
)
2
.
L(\mathbf{w}, b) =\frac{1}{n}\sum_{i=1}^n l^{(i)}(\mathbf{w}, b) =\frac{1}{n} \sum_{i=1}^n \frac{1}{2}\left(\mathbf{w}^\top \mathbf{x}^{(i)} + b - y^{(i)}\right)^2.
L(w,b)=n1i=1∑nl(i)(w,b)=n1i=1∑n21(w⊤x(i)+b−y(i))2.
对函数进行优化——随机梯度下降
如何将误差最小化,即将函数求得最小值——高数中我们学到的随着梯度的反方向函数值减小最快。
如果最小化问题的解可以通过公式表示出来,则这类解叫解析解。
然而大多数模型并没有解析解,只能通过有限次的迭代模型参数来尽可能降低损失函数值,这类称为数值解。
在求数值解的优化算法中,小批量随机梯度下降使用比较广泛。
小批量随机梯度下降
先选取一组模型参数的初始值,如随机选取;接下来对参数进行多次迭代,使每次迭代都可能降低损失函数的值。在每次迭代中,先随机均匀采样一个由固定数目训练数据样本所组成的小批量(mini-batch)
B
\mathcal{B}
B,然后求小批量中数据样本的平均损失有关模型参数的导数(梯度),最后用此结果与预先设定的一个正数的乘积作为模型参数在本次迭代的减小量。
(
w
,
b
)
←
(
w
,
b
)
−
η
∣
B
∣
∑
i
∈
B
∂
(
w
,
b
)
l
(
i
)
(
w
,
b
)
(\mathbf{w},b) \leftarrow (\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)
关于几种梯度下降的分析:
https://blog.csdn.net/UESTC_C2_403/article/details/74910107
总结来讲,三种梯度下降模型存在如下对比
-
批量梯度下降
每次拿所有样本更新
优点:梯度准确朝向最优解方向(假设没有局部解)
缺点:样本数很多,训练过程慢
-
随机梯度下降
每次拿一个样本更新
优点:训练速度快
缺点:准确度低,可能存在噪声样本,导致迭代没有朝着优化方向行进。
-
小批量梯度下降
拿局部样本更新
是上面两种方案的折中,使用范围广。
如何使用?
如果样本量比较小,采用批量梯度下降算法。如果样本太大,或者在线算法,使用随机梯度下降算法。在实际的一般情况下,采用小批量梯度下降算法。