机器学习的12大经验总结
机器学习难吗?有些小伙伴们会说,难!真的难!不知道怎么去应用实践?弯路陷阱太多不知如何避免?不知道如何更好的学习机器学习?这些问题相信大部分人都有过疑虑。
本文整理了关于机器学习研究者和从业者的 12 个宝贵经验,包括需要避免的陷阱、需要关注的重点问题、常见问题的答案。希望这些经验对机器学习爱好者有一些帮助。 01 “表征+评估+优化”构成机器的主要内容 构成机器学习算法的 3 部分:
表征(Representation):分类器必须用计算机可以处理的形式化语言来表示。相反地,为训练模型选择一个表征就等同于选择可训练分类器的集合。这个集合称为训练模型的「假设空间」。如果分类器不在「假设空间」中,那么它就不能由训练所得到。一个相关的问题是如何表征输入,即使用哪些特征。
评估(Evaluation):需要一个评估函数来区分分类器的好坏。算法内部使用的评估函数可能与分类器优化的外部评估函数不同,这是为了便于优化,并且是由我们下一节所要讨论的问题导致的。
优化(Optimization):我们要用一种方法搜索得分最高的分类器。优化方法的选择对于提升模型的效率非常关键。另外,如果评估函数具有一个以上的最优值,则优化方法有助于确定最后产生的分类器。新的训练模型一开始常常使用现有的优化器,后来常会转而使用自定义的优化器。
02 “泛化能力”很关键,“测试数据”验证至关重要
机器学习的主要目标是对训练集之外的样本进行泛化。因为无论有多少数据,都不太可能在测试中再次看到完全相同的例子。在训练集上具有良好表现很容易。机器学习初学者最常犯的错误是把模型放在训练数据中进行测试,从而产生成功的错觉。
如果被选择的分类器在新的数据上进行测试,一般情况,结果往往和随机猜测相差无几。
所以,如果你雇佣他人建立分类器,一定要留一些数据给你自己,以便在他们给你的分类器中进行测试。相反,如果有人雇佣你建立一个分类器,请保留一部分数据对你的分类器进行最终测试。
03 仅有数据是不够的,知识相结合效果更好
把泛化能力作为目标,会又另一个后果:只有数据是不够的,无论你拥有多少数据。这是否让人沮丧。那么,我们怎么能奢求它学到东西呢?
不过,现实世界中我们想学习的函数并不都是从数学上可能的函数中提取出来的!实际上,使用一般假设——例如平滑性、相似样本有相似分类、有限的依赖性或有限复杂度——往往能做得足够好,这也正是机器学习能如此成功的大部分原因。
正如演绎一样,归纳(训练模型所做的)是一个知识杠杆——它将少量知识输入转化为大量知识输出。归纳是一个比演绎更为强大的杠杆,仅需更少的知识就能产出有用的结果。不过,它仍然需要大于零的知识输入才能工作。正如任何一个杠杆一样,输入得越多,得到的也越多。
这样回想起来,训练过程中对知识的需求没什么好惊讶的。机器学习并非魔术,它无法做到无中生有,它所做的是举一反三。如同所有的工程一样,编程需要做大量的工作:我们必须从头开始构建所有的东西。训练的过程更像是耕种,其中大部分工作是自然完成的。农民将种子与营养物质结合起来,种植作物。训练模型将知识与数据结合起来,编写程序。 04 “过拟合”让机器学习效果产生错觉
如果我们所拥有的知识和数据不足以完全确定正确的分类器,分类器(或其中的一部分)就可能产生「错觉」。所获得的分类器并不是基于现实,只是对数据的随机性进行编码。这个问题被称为过拟合,是机器学习中棘手的难题。如果你的训练模型所输出的分类器在训练数据上准确率是 100%,但在测试数据上准确率只有 50%,那么实际上,该分类器在两个集合上的输出准确率总体可能约为 75%,它发生了过拟合现象。
在机器学习领域,人人都知道过拟合。但是过拟合有多种形式,人们往往不能立刻意识到。理解过拟合的一种方法是将泛化的误差进行分解,分为偏差和方差。偏差是模型不断学习相同错误的倾向。而方差指的是不管真实信号如何,模型学习随机信号的倾向。线性模型有很高的偏差,因为当两个类之间的边界不是一个超平面时,模型无法做出调整。决策树不存在这个问题,因为它们可以表征任何布尔函数。但是另一方面,决策树可能方差很大:如果在不同训练集上训练,生成的决策树通常差异很大,但事实上它们应该是相同的。
交叉验证可以帮助对抗过拟合,例如,通过使用交叉验证来选择决策树的最佳规模用于训练。但这不是万能的,因为如果我们用交叉验证生成太多的参数选择,它本身就会开始产生过拟合现象。
除交叉验证之外,还有很多方法可以解决过拟合问题。最流行的是在评估函数中增加一个正则化项。举个例子,这样一来就能惩罚含更多项的分类器,从而有利于生成参数结构更简单的分类器,并减少过拟合的空间。另一种方法是在添加新的结构之前,进行类似卡方检验的统计显著性检验,在添加新结构前后确定类的分布是否真的具有差异。当数据非常少时,这些技术特别有用。
尽管如此,你应该对某种方法完美解决了过拟合问题的说法持怀疑态度。减少过拟合(方差)很容易让分类器陷入与之相对的欠拟合误差(偏差)中去。如果要同时避免这两种情况,需要训练一个完美的分类器。在没有先验信息的情况下,没有任何一种方法总能做到最好(天下没有免费的午餐)。
05 机器学习中最大的问题就是“维度灾难”
除了过拟合,机器学习中最大的问题就是维度灾难。这一名词是由 Bellman 在 1961 年提出的,指的是当输入维度很高时,许多在低维工作正常的算法将无法正常工作。但是在机器学习中,它的意义更广。随着样本维度(特征数量)的增加,进行正确泛化变得越来越难,因为固定大小的训练集对输入空间的覆盖逐渐缩减。
机器学习的12大经验总结



