机器学习基石笔记13——机器可以怎样学得更好(1)
2017-12-25 10:42
501 查看
Lecture 13. Hazard of Overfitting
13.1 What is Overfitting
Overfitting 是什么? 简而言之就是模型训练集上表现要好于在测试集上表现!在第 12 节关于 feature transform 讨论时,我们知道可以用复杂的算法获取到很小的 Ein, 但是这不能代表 Eout 很小!图 13-1
过拟合的原因有哪些?我们以开车为例,出车祸的原因不外乎是车开太快、路况不好、对路面的观察不够。对应到机器学习中过拟合就是模型太复杂、数据有噪声、数据量不够。
简言之就是,工具(模型复杂)、操作对象(数据噪声)、操作者(数据过少,观察数据有问题)三者有问题。
图 13-2 用车祸来类比过拟合
13.2 The Role of Noise and Data Size
样例一:我们用 10 次和50 次多项式产生测试数据, 10-th 多项式的产生数据加上噪声。最终生成的测试数据如图 13-3 所示,10-th 多项式生成的数据加上了噪声,所以不能完全拟合。50-th 多项式生成的数据没有噪声所以能完全拟合。图 13-3 测试数据
现在我们在 H2 和 H10 选择演算法,得出的结果如下表所示
10-th data | g10 | g10 |
Ein | 0.050 | 0.034 |
Eout | 0.127 | 9.00 |
50-th data | g2 | g10 |
Ein | 0.029 | 0.00001 |
Eout | 0.120 | 7680 |
图 13-4 Learing Curves
对于 10-th 多项是生成的有 nosie 的数据。10-th 多项式的学习能力强所以 in-sample 误差小,但是在 inputs 较少的情况 2-th 多项式的 out-sample loss 可能要比 10-th多项式的要低 (之前的误解,认为 10-th 多项式的泛化能力肯定要比 2-th 多项式的要差,即 10-th 的多项式的过拟合过的无可救药)。
对于 50-th 多项式生成的数据,本身就不能用 2-th、10-th 的多项式去拟合(后续章节将这个称之为 Deterministic Noise)
13.3 Deterministic Noise
图 13-5 生成数据图
现在来生成测试数据,测试数据上加上服从高斯分布的噪声(即噪声服从正太分布,为随机噪声)。h2 和 h10 演算法的过拟合效果图如图 13-6 所示。 用颜色代表过拟合程度,x 轴为训练数据集数量,y 轴则是噪声强度和目标复杂度。
图 13-6 Overfitting 结果图 (Qf 目标复杂度,σ 噪声水平)
这样,我们就发现有四处会发生过拟合的点, 如图13-7 所示。图 13-6 能解释前三种原因,第四种原因 excessive power 是用太复杂的模型去学习太简单的数据,肯定会发生过拟合
图 13-7 Reason for Overfitting
Deterministic Noise 比较难理解,简单的解释就是用弱学习器去学习强数据(汗),就像是小孩拉大车肯定会出事。
13.4 Dealing with Overfitting
既然我们已经知道过拟合的原因,我们该如何避免过拟合呢?林老师给出了自己的建议以及个人经验分享--- 如何获取更多的资料 data Cleaning/ Pruning(又见到我们的老朋友的)图 13-7
图 13-8 data cleaning
题外话:
1. 目前没见过 data cleaning 和 data pruning 的例子啊!2. 除了噪声以外,特征数据还有多重共线性(目前只知道多重共线性这个名词,不知道它对决策树、lr、梯度下降的影响)等问题。很多机器学习算法理论都是在建立在 feature iid 分布上,但是采集的来的 feature 不可能完全是 iid 分布。这就需要后续的矫正。
不知道决策树的剪枝是不是能起到抑制多重共线性的影响? 剪枝能起到抑制因 feature dirty 所带来的不利影响?
3. any supervised feature selection (using correlation with class labels) performed outside of the model performance estimation using cross validation (or other model estimating method such as bootstrapping) may result in overfitting
T1: 图示过拟合
图 T1-1
相关文章推荐
- 机器学习基石笔记13——机器可以怎样学得更好(1
- 机器学习基石笔记14——机器可以怎样学得更好(2)
- 机器学习基石笔记15——机器可以怎样学得更好(3)
- 机器学习基石笔记16——机器可以怎样学得更好(4)
- 机器学习基石笔记14——机器可以怎样学得更好(2)
- 机器学习基石笔记16——机器可以怎样学得更好(4)
- 机器学习基石笔记11——机器可以怎样学习(3)
- 机器学习基石笔记12——机器可以怎样学习(4)
- 机器学习基石笔记9——机器可以怎样学习(1)
- 机器学习基石笔记10——机器可以怎样学习(2)
- 机器学习基石笔记9——机器可以怎样学习(1)
- 机器学习基石笔记10——机器可以怎样学习(2)
- 机器学习基石笔记11——机器可以怎样学习(3)
- 机器学习基石笔记12——机器可以怎样学习(4)
- 机器学习基石笔记8——为什么机器可以学习(4)
- 机器学习基石笔记5——为什么机器可以学习(1)
- 机器学习基石笔记5——为什么机器可以学习(1)
- 机器学习基石笔记7——为什么机器可以学习(3)
- 机器学习基石笔记7——为什么机器可以学习(3)
- 机器学习基石笔记8——为什么机器可以学习(4)