机器学习40讲
王天一
工学博士,副教授
立即订阅
8040 人已学习
课程目录
已完结 44 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 打通修炼机器学习的任督二脉
免费
机器学习概观 (10讲)
01 | 频率视角下的机器学习
02 | 贝叶斯视角下的机器学习
03 | 学什么与怎么学
04 | 计算学习理论
05 | 模型的分类方式
06 | 模型的设计准则
07 | 模型的验证方法
08 | 模型的评估指标
09 | 实验设计
10 | 特征预处理
统计机器学习模型 (18讲)
11 | 基础线性回归:一元与多元
12 | 正则化处理:收缩方法与边际化
13 | 线性降维:主成分的使用
14 | 非线性降维:流形学习
15 | 从回归到分类:联系函数与降维
16 | 建模非正态分布:广义线性模型
17 | 几何角度看分类:支持向量机
18 | 从全局到局部:核技巧
19 | 非参数化的局部模型:K近邻
20 | 基于距离的学习:聚类与度量学习
21 | 基函数扩展:属性的非线性化
22 | 自适应的基函数:神经网络
23 | 层次化的神经网络:深度学习
24 | 深度编解码:表示学习
25 | 基于特征的区域划分:树模型
26 | 集成化处理:Boosting与Bagging
27 | 万能模型:梯度提升与随机森林
总结课 | 机器学习的模型体系
概率图模型 (14讲)
28 | 最简单的概率图:朴素贝叶斯
29 | 有向图模型:贝叶斯网络
30 | 无向图模型:马尔可夫随机场
31 | 建模连续分布:高斯网络
32 | 从有限到无限:高斯过程
33 | 序列化建模:隐马尔可夫模型
34 | 连续序列化模型:线性动态系统
35 | 精确推断:变量消除及其拓展
36 | 确定近似推断:变分贝叶斯
37 | 随机近似推断:MCMC
38 | 完备数据下的参数学习:有向图与无向图
39 | 隐变量下的参数学习:EM方法与混合模型
40 | 结构学习:基于约束与基于评分
总结课 | 贝叶斯学习的模型体系
结束语 (1讲)
结课 | 终有一天,你将为今天的付出骄傲
机器学习40讲
登录|注册

07 | 模型的验证方法

王天一 2018-06-19
模型本身及其背后学习方法的泛化性能(generalization performance),也就是模型对未知数据的预测能力,是机器学习的核心问题。可在一个问题的学习中,往往会出现不同的模型在训练集上具有类似的性能,这时就需要利用模型验证来从这些备选中做出选择。
由于模型的泛化性能和它的复杂度是直接挂钩的,所以模型验证的任务就是确定模型的复杂度以避免过拟合的发生。原则上说,模型验证应该使用专门的验证数据集。可是当数据集的容量较小,不足以划分成三个部分时,验证集和测试集就可以合二为一,共同来完成对模型的选择和评价。
估计泛化性能时,最重要的依据就是模型在训练数据集上的精度(accuracy)。定性而论,模型在训练集上的精度不能太低。由于模型的拟合和评价都是在相同的训练集上完成的,因此用训练误差去估计测试误差,得到的必然是过于乐观的结果。如果在训练集上都达不到较高的精度的话,模型本身的假设就很可能存在问题(比如用线性模型来建模平方关系的数据),从而导致较大的偏差,这样的模型很难指望它在真实数据上具有良好的表现。
可另一方面,训练数据集上的正确率也不是“低低益善”,因为过低的正确率往往是欠拟合的征兆。训练数据集中的数据量一定是有限的,这些数据共同构成了高维空间上一个点集。只要模型的参数足够多,形式足够复杂,就必定可以构造出经过所有数据点的曲线或者曲面,在训练集上得到 100% 的正确率。显然,这样的模型对训练数据的拟合能力过强,不可能具备良好的泛化特性。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《机器学习40讲》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(8)

  • 林彦
    超参数无法靠模型的数据训练直接获取。经常根据经验或系统的推荐在模型训练前手动设置,比如文中提到多项式的次数N,各种KXX模型中的K,学习速率,训练次数等。超参数会决定模型的属性(如复杂度)和训练的过程。在参数取值的数量无限时,超参数还无法用最优化算法找到最优解。可以用随机搜索,贝叶斯优化等方法尝试寻找更优的超参数,计算开销一般都比较大。
    参数是模型中可以通过数据训练得到的参数,不需要人为事先指定。

    作者回复: 总而言之,超参数得人为设置,再用验证集去测。

    2018-06-19
    3
  • zc
    老师,什么时候上python实例代码?

    作者回复: 介绍具体模型是就有代码了,主要是对第三方库的使用。

    2018-06-19
    3
  • Haley_Hu
    参数是模型训练出来得到的结果,超参数需要手动去设置。比如神经网络里面的层数等

    作者回复: 没错👍

    2018-09-24
    1
  • 韶华
    有没有根据数据量大小设置训练集,验证集和测试集的比例建议?另外没有验证集的话,会有哪些潜在问题?

    作者回复: 一般的比例是2:1:1或者1:1:1。
    没有验证集就不能调超参数,不能做模型选择。只是在训练集上最优化出来的模型可能有过拟合的风险。

    2018-06-19
    1
  • Kudo
    这几节课容都很棒啊,解决了我很多的疑问。老师,我有几个疑问:

    疑问1:如果把超参也当作参数看待,那参数模型会不会就变成非参数模型了?例如我们把多项式回归当中的阶数当作超参去调节时,模型的参数量就会随超参的改变而变得不固定了。

    疑问2:为了调整超参,我们会多次地将训练出的模型在验证集中进行验证,这个验证的过程是不是可以看作:用训练集训练出的参数,去拟合验证集,如果拟合结果不好,则调整超参,重新训练,如此往复。如上所述,如果反复的的次数过多,是不是会造成最终的模型在训练集和验证集的总体合集上是过拟合的?

    疑问3:针对问题2,有人可能会说还有测试集,如果测试集上的误差很大,说明确实过拟合了,可是测试集只能使用一次,难道还会返回去再训练吗?还有人会说,应该保证测试集与验证集分布相同,这样验证集上的结果好,那么测试集上的结果也差不哪去,如果是这样,那么测试集还有存在的必要吗?那干嘛不直接说让验证集和训练集分布相同,这样的话验证集都没有存在的必要了。

    不知道我表述清楚了没有。如果哪里理解的有偏差,还请老师指出,多谢!
    2018-12-20
  • dreamintime
    老师,为啥k折交叉验证,k越大,验证集方差就会越大?

    作者回复: 因为k越大,使用的训练数据越多,出现过拟合的可能性也越高。这样的模型可能学到训练数据中的干扰和噪声特性,在单独划分出的验证集上未必有好的表现。当然这也不是一定之规,每个具体问题都会有一个方差最优的k值,方差也就会先下降再上升。

    2018-11-09
  • Haley_Hu
    参数是通过模型训练数据得到的,而超参数是人为手动设置的,比如神经网络里面的layer等
    2018-09-24
  • 林彦
    超参数是模型更宏观的属性。参数是超参数,模型类型等宏观属性和训练过程属性确定后,训练出来的模型个体的属性,据此实现一个具体的模型对象。
    2018-06-19
收起评论
8
返回
顶部