《机器学习那些事》介绍了一些机器学习应用中需要了解的“民间知识”。
原文为: A Few Useful Things to Know about Machine Learning
摘录若干要点:
1. 学习 = 表示 + 评价 + 优化
表示(Representation) : 学习器的假设空间(hypothesis space)
评价(Evaluation) : 评价函数用于判断分类器的优劣
优化(Optimization) : 在假设空间中寻找最优的学习器的算法
2. 泛化能力 (Generalization)
机器学习问题,与一般的优化问题不一样的地方在于,机器学习其实无法获得希望优化的那个函数!不能不使用训练误差等作为真实目标的替身。
2.a 坏消息,"没有免费的午餐": 学习器必须包含一些数据之外的知识或者假设,才能将数据泛化。没有学习器能够比在所有可能的布尔函数中随机猜测的结果更优
2.b 好消息,我们要学习的函数并非均匀地来自于所有可能的函数!有些宽泛的假设就能起到很大作用:平滑,相似样例相似类别,有限依赖,有限复杂度等
泛化误差,可以分解为偏置(Bias)和方差(Variance)。偏置度量了学习器倾向于一直学习相同错误的程度。方差则度量了学习器倾向于忽略真实信号、学习随机事物的程度
避免过拟合的一些方式: 交叉验证, 正则项,增加新结构时采取统计显著性检验
3. 维度灾难
3.a 坏消息,维度灾难(Curse of dimensionality): 许多在低维空间表现很好的算法,对于高维输入变得计算不可行
3.b 好消息,非均匀性的祝福(Blessing of nonuniformity):大多数应用中,样例在空间中并非均匀分布,而是集中在一个低维流形上或者附近
4. 数据 + 特征 + 算法
收集更多的数据 - 大量数据的笨算法,要胜过数据量较少的聪明算法
构建最好的特征集合 - 特征工程(Feature Engineering)是关键
设计更好的学习算法 - 采用更聪明算法的回报比期望要低。本质上所有的学习器都是将临近的样例归类到同一个类别中。
5. 集成学习 - 要学习多个模型,而不仅仅是一个
不同应用的最佳学习器并不相同。 将多个学习器结合,结果会更好。
5.a Bagging - 轻度增加偏置的同时, 极大地降低反差
5.b Boosting - 每次训练都倾向于分错的样例
6. 简单并不意味着准确
模型参数的数量和过拟合之间并无直接联系, 如集成学习
一个更成熟的认识是将复杂度等同于假设空间的大小。更小的假设空间允许用更短的代码来表示假设。更短的假设可以泛化得更好。
一个在较大的假设空间搜索较少假设的学习器,比一个在较小空间中搜索较多假设的学习器更不容易过拟合。
7. 可表示并不意味着可学习
8. 相关并不意味着因果