李宏毅机器学习02-回归Regression
回归定义
Regression 就是找到一个函数 function ,通过输入特征 x,输出一个数值 Scalar。
模型步骤
- step1:模型假设,选择模型框架(线性模型)
- step2:模型评估,如何判断众多模型的好坏(损失函数)
- step3:模型优化,如何筛选最优的模型(梯度下降)
Step 1:模型假设 - 线性模型(Linear model)
一元线性模型(单个特征)
一元线性模型假设 y = b + w ⋅ x y = b + w·x y=b+w⋅x, w w w和 b b b是模型参数, x x x为特征, y y y为预测值。
多元线性模型(多个特征)
多元线性模型 y = b + ∑ w i x i y=b+∑w_ix_i y=b+∑wixi,其中 w i w_i wi为各个特征的权重, b b b为偏移量,都是模型参数, x i x_i xi为各种特征。
Step 2:模型评估 - 损失函数
一元线性模型
求真实值与预测值的距离(差值),来判定模型的好坏。也就是使用损失函数(Loss function) 来衡量模型的好坏,统计训练集中$ \left ( \hat{y}^n - f(x^n) \right )^2$的和,和越小模型越好。
L
(
f
)
=
∑
n
=
1
N
(
y
^
n
−
f
(
x
n
)
)
2
将
f
(
x
)
=
y
,
y
=
b
+
w
⋅
x
代
入
,
L
(
w
,
b
)
=
∑
n
=
1
N
(
y
^
n
−
(
b
+
w
x
)
)
2
L(f)=∑_{n=1}^{N}(\hat y^n−f(x^n))^2\\ 将f(x)=y,y=b+w⋅x代入,\\ L(w,b)=∑_{n=1}^{N}(\hat y^n−(b+wx))^2
L(f)=n=1∑N(y^n−f(xn))2将f(x)=y,y=b+w⋅x代入,L(w,b)=n=1∑N(y^n−(b+wx))2
Step 3:最佳模型 - 梯度下降
如何筛选最优的模型(参数 w w w, b b b)
对于单个参数 w w w:
- 步骤1:随机选取一个 w 0 w^0 w0
- 步骤2:计算微分,也就是当前的斜率,根据斜率来判定移动的方向
- 大于0向左移动(减少 w w w)
- 小于0向右移动(增加 w w w)
- 步骤3:根据学习率(移动的步长) η η η移动
- 重复步骤2和步骤3,直到找到最低点
多个参数过程类似,求偏导:
梯度下降算法在现实世界中面临的挑战
- 问题1:局部最优(Stuck at local minima)
- 问题2:等于0(Stuck at saddle point)
- 问题3:趋近于0(Very slow at the plateau)
模型验证
训练集和测试集分别求平均误差:
优化
四种方法优化模型:
- 选用更复杂的模型;
- 根据数据分类训练不同的模型分类进行拟合;
- 做特征工程,增加输入的特征;
- 加入正则化,减少噪声数据的影响。
更强大复杂的模型:1元N次线性模型
过高次方的模型,可能会导致过拟合overfitting现象。
分类训练不同的模型
根据数据分布进行分析,或许对数据初步分类后,训练多个模型能提升性能。
通过对 Pokemons种类 判断,将 4个线性模型 合并到一个线性模型中
增加输入特征
通过利用特征工程提取更多的特征,于是线性模型需要更多的参数,或许能提升性能。
加入正则化
重 ww 可能会使某些特征权值过高,仍旧导致overfitting,所以加入正则化
- w w w 越小,则 w △ x w△x w△x越小,预测结果变化越小,表示 function较平滑,更加能抗噪声。
- 在很多应用场景中,并不是 w w w 越小模型越平滑越好,但是经验值说明 w w w 越小大部分情况下都是好的。
- b b b 为function的偏移量,对曲线平滑没有影响