回归(regression)
1.函数空间(function space)
一个函数越复杂, 它的function space就越大。我们回归任务实际上是在函数空间中找到效果最好的function。
找到合适的函数空间非常重要。
若函数空间过小,最有函数不在所选的函数空间内,则不论怎么优化都无法找到最优函数。
e.g.如图,model是选择的function space,红色圆心是target function。则在当前model里无法得到target function。
如果函数空间过大,则可能会产生过拟合。
2.正则化(regularization)
在Loss函数中增加一个惩罚项
L
=
∑
n
(
y
^
n
−
(
b
+
∑
w
i
x
i
)
)
2
+
λ
∑
(
w
i
)
2
L=\sum_{n}\left(\hat{y}^{n}-\left(b+\sum w_{i} x_{i}\right)\right)^{2}+\lambda \sum\left(w_{i}\right)^{2}
L=n∑(y^n−(b+∑wixi))2+λ∑(wi)2
增加正则项,可以使最后优化得到的函数更加平滑。
平滑是指当 x x x发生变化时, y y y发生的变化较小。
因为我们的目标是优化 L L L使其最小,优化过程是求取梯度,优化 w i w_i wi。那么我们通过对 w i w_i wi增加惩罚项,在优化的过程中就在 w i w_i wi上产生更大的梯度,则对应 w i w_i wi会被优化得更小。
我们使用 λ \lambda λ来控制对 w i w_i wi惩罚的程度。
通常我们认为拥有较小 w i w_i wi的函数是更好的
原因:如果有一些噪声出现在数据中,那么平滑的函数收到的影响更小。
但并不是越平滑越好:
直观理解:如果过于平滑,函数变成一条直线(很多参数被惩罚地接近于0(不起作用)),则事实上函数空间变小,不能拟合到最优的function。
3.偏差(bias)与方差(variance)
3.1直观理解bias和variance
3.2Bias和Variance的关系
3.3如何判断是高Bias还是高Variance
- 如果模型不能很好地fit训练数据,那么具有高bias Underfitting
- 如果可以很好地fit训练数据,但在测试数据上有很大错误,则据由高variance Overfitting
3.4如何处理高Bias
重新设计模型:
- 在输入数据集中增加特征
- 选用更复杂的模型
3.5如何处理高Variance
- 采用更多数据
- 正则化
3.6模型选择
- 我们通常会遇到对于bias和variance的trade-off
- 我们需要选择一个平衡两种误差的模型,使总误差最小
3.6.1交叉验证
讲训练集划分为训练集和验证集。用验证集去选择模型。
3.6.2N-fold交叉验证
在不同验证集上取平均来选择模型。
4.学习率
学习率选择十分重要,如果选择地过小,会导致模型收敛较慢。如果选择地过大,可能会导致模型不收敛。
4.1自适应学习率(adaptive learning rate)
学习率在训练的过程中是逐步变化的,同时每个参数都拥有自己的学习率。
4.1.1Adagrad
如图所示, σ t \sigma ^t σt是之前参数 w w w导数的均方根
e.g.
表达式
w
t
+
1
←
w
t
−
η
t
σ
t
g
t
η
t
=
η
t
+
1
σ
t
=
1
t
+
1
∑
i
=
0
t
(
g
i
)
2
w^{t+1}\leftarrow w^t-\frac{\eta^t}{\sigma^t}g^t\\ \eta^t=\frac{\eta}{\sqrt{t+1}}\\ \sigma^t=\sqrt{\frac{1}{t+1}\sum^t_{i=0}(g^i)^2}
wt+1←wt−σtηtgtηt=t+1ησt=t+11i=0∑t(gi)2
化简得
w
t
+
1
←
w
t
−
η
∑
i
=
0
t
(
g
i
)
2
g
t
w^{t+1}\leftarrow w^t-\frac{\eta}{\sum^t_{i=0}(g^i)^2}g^t
wt+1←wt−∑i=0t(gi)2ηgt
5.随机梯度下降(Stochastic Gradient Descent)
5.1与梯度下降的区别
梯度下降是计算所有样本的Loss后,在所有样本的Loss上做梯度下降
L
=
∑
n
(
y
^
n
−
(
b
+
∑
w
i
x
i
n
)
)
2
θ
i
=
θ
i
−
1
−
η
∇
L
n
(
θ
i
−
1
)
L=\sum_n(\hat{y}^n-(b+\sum w_ix^n_i))^2\\ \theta^{i}=\theta^{i-1}-\eta \nabla L^{n}\left(\theta^{i-1}\right)
L=n∑(y^n−(b+∑wixin))2θi=θi−1−η∇Ln(θi−1)
注意上式开始的求和符号
随机梯度下降一次只看一个样本,计算完一个样本的Loss后就进行一次梯度下降
L
=
(
y
^
n
−
(
b
+
∑
w
i
x
i
n
)
)
2
θ
i
=
θ
i
−
1
−
η
∇
L
n
(
θ
i
−
1
)
L=(\hat{y}^n-(b+\sum w_ix^n_i))^2\\ \theta^{i}=\theta^{i-1}-\eta \nabla L^{n}\left(\theta^{i-1}\right)
L=(y^n−(b+∑wixin))2θi=θi−1−η∇Ln(θi−1)
5.2直观理解
5.3优点
梯度下降要对所有样本求平均,一轮只能做一次梯度下降,速度较慢。
随机梯度下降一个样本即可做一次梯度下降,收敛速度快。
6.特征缩放(Feature Scaling)(归一化)
特征缩放是用来解决不同参数取值范围相差较大的问题
6.1为什么要特征缩放
参考下述例子:
在左边图中,由于
x
2
x_2
x2的的取值范围明显大于
x
1
x_1
x1,这就导致
w
2
w_2
w2发生微小变化会使
y
y
y发生较大变化。
在优化时,
w
1
,
w
2
w_1,w_2
w1,w2需要选择不同的学习率,一般需要使用如Adagrade等方法。
在右边图中,通过归一化, w 1 , w 2 w_1,w_2 w1,w2可选择相同的学习率,方便进行参数优化。
6.2如何特征缩放
特征缩放的方法有很多种
e.g.
本文图片来源:李宏毅2020机器学习深度学习PPT