机器学习需要注意的事项

大家都知道,机器学习在人工智能中是一个非常重要的内容,我们在进行学习人工智能之前要对机器学习有一定的了解,而机器学习中最重要的就是那些算法了,只有我们掌握了那些算法我们才能够更好地掌握和熟料机器学习的内容。对于机器学习我们需要清楚很多事情,我们在这篇文章中给大家总结了几点内容,希望这几点内容能够帮助大家解决更多的问题。

机器学习由表示、评价、优化组成

表示就是一个分类器必须用计算机能够处理的一些正式语言来表示。相反,为学习者选择一种表示方式就等同于选择一组可以学习的分类器。这个集合被称为学习者的假设空间。如果一个分类器不在假设空间中,它就不能被学习。而评价就是要区分好的分类器和坏的分类器,需要一个评价函数。算法内部使用的评估函数与分类器外部使用的评价函数可能不同,其主要是为了便于优化。最后,我们需要在语言的分类器中找到得分最高的一种方法。这就用到了优化,优化技术的选择是提高学习者效率的关键,同时也有助于确定分类器的评价函数是否具有多个最优值。初学者开始的时候使用现成的优化器是很常见的,不过这些优化器会被专门设计的优化器取代。

泛化的作用是十分重要的

机器学习的基本目标是泛化训练集中的例子。这是因为,无论我们有多少数据,我们都不太可能在测试时再次遇到一模一样的例子。在训练集上做得很好很容易,机器学习初学者最常见的错误是,对训练数据进行测试之后以为自己成功了。之后把选择的分类器放在新数据上测试,发现还没有随机猜测的准确。所以,如果构建一个分类器,一定要保留一些数据用来测试分类器。相反,如果构建一个分类器,那么在开始的时候将一些数据放在一边,最后用它来测试分类器,也就是最后在全部数据的基础上学习最终分类器。

过拟合有多样性

一般我们在进行机器学习工作的时候我们会常常遇到这样一个问题,那就是如果我们所拥有的知识和数据不足以完全确定正确的分类器,那该怎么办?我们做出的很多决定都不是基于现实的,只是在数据中随机编码。这个问题就是过拟合,这是机器学习的难题。当学习者输出的分类器在训练数据上能达到100%准确度,但在测试数据上却只有一半的准确率,而实际上它在两个数据集上的输出结果都能达到七成的准确率,这就是我们所说的过拟合。

机器学习中的过拟合形式多种多样
而且也不会立即变得明显

理解过拟合的一种方法是将泛化误差分解为偏差和方差。偏差是一种学习者倾向于不断地学习同样的错误。而方差是学习随机事物的倾向。线性学习者有很高的偏差,因为当两个类之间的边界不是一个超平面的时候,学习者就无法归纳它。决策树不存在这个问题,因为它们可以表示任何布尔函数,但另一方面,它们可能会受到高方差的影响,那就是由相同现象产生的不同训练集的决策树通常是非常不同的,实际上它们应该是一样的。而交叉验证可以帮助对抗过拟合,我们可以通过使用它来选择决策树的最佳大小来学习。它不是万金油,因为如果我们用它来做太多的参数选择,它本身就会开始过拟合。当然除了交叉验证,还有很多方法可以对抗过度拟合。最受欢迎的是在评价函数中添加一个正则化项。在添加新结构之前执行像卡方这样的统计显著性测试,以确定这个类的分布是否真的不同于这种结构。当数据非常稀缺时,这些技术尤其有用。虽然如此,我们应该对某种技术能解决所有过度拟合问题的说法表示怀疑。

机器学习中只有数据是不够的

如果我们把泛化当成目标还有另一个重要的后果:不管你有多少数据,只有数据本身是不够的。当看到这里,我们可能悲观的认为在机器学习中学不到东西,其实并不是这样的,这是因为我们想要在现实世界中学习的函数并不是由所有数学上可能的函数集合而来。事实上,一般的假设都能够很好的完成,这是因为有很多比如平滑、具有相似的类的相似例子、有限的依赖关系,或者有限的复杂性,因此这些假设通常都能很好地完成,这也是为什么机器学习如此成功的一个重要原因。像演绎法一样,归纳法是一个知识杠杆,具体就是将少量的输入知识转化为大量的输出知识。归纳是一种比演绎更强大的杠杆,用较少的输入知识来产生有用的结果,但它仍然需要输入知识大于零才能工作。和任何杠杆一样,我们投入的越多,我们就能得到更多。所以机器学习中我们不能只是依靠数据。

机器学习并不是能够无中生有

我们可以发现其实学习知识的必要性并不令人惊讶。机器学习所做的是从很少的东西中学到更多。和所有的工程一样,编程也有很多工作要做,这就需要我们必须从头开始构建一切。学习更像是一种耕作,它可以让大自然完成大部分的工作。学习者将知识与数据结合起来,以发展项目。这就是我们所说的机器学习的具体内容。

高维度中直觉不再好用

说完过拟合的问题,接下来要谈的是机器学习中的最大的问题,那就是维度的原因。具体就是指许多在低维度上工作正常的算法在输入是高维度的时候变得难用。但在机器学习中,这里包含的更多。随着示例的维度数,也就是特征数量的增长,泛化变得更加困难,因为固定大小的训练集覆盖了输入空间的一小部分。但是我们还是需要意识到的就是我们的直觉是来自于三维世界,通常并不适用于高维的情况。在高维的情况下,一个多变量高斯分布的质量并不在平均值附近,而是在一个越来越远的壳周围。如果一个常数的例子在高维超级立方体里均匀地分布,在多维度的情况下,大多数例子更接近于超立方体的一个面而不是它们最近的邻居。如果我们用一个超立方体来近似一个超球体,在高维度中几乎所有的超立方体的体积都在超球面之外。这对机器学习来说是个坏消息,其中一种类型的形状通常被另一种类型的形状所近似。这也是限制机器学习发展的一个原因。

机器学习在高维度中不是很好用

这是因为在二维或三维空间中构建一个分类器很容易。通过视觉检查我们可以找到一个不同类别的例子之间的合理的界限。但在高维度中,很难理解发生了什么。这就使得设计一个好的分类器变得困难。有些人们可能会认为收集更多的特性并没有坏处,他们认为即使是最坏的情况,他们没有提供关于这个类的新信息而已。其实这些优点都被缺陷抵消了而已,并不是没有体现出来。

理论保证通常与实际情况不一样
这是因为机器学习的论文充满了理论保证

最常见的类型是为了确保良好的泛化所需要的示例数量。这就需要我们正确看待这些理论保证。首先,我们需要注意的是这些都是可能的。归纳法传统上与演绎法形成鲜明对比,在演绎法中我们可以保证结论是正确的,这其实是许多世纪以来的传统智慧。如果学习者返回了一个与特定训练集一致的假设,那么这个假设很可能泛化的很好。

如果有足够大的训练集,那么学习者
可能会返回一个泛化很好的假设
或者无法找到一个与训练集一致的假设

这个界限也没有说明如何选择一个好的假设空间。它只告诉我们,如果假设空间包含真正的分类器,那么学习者输出坏分类器的概率就会随着训练集的大小而减少。倘若我们缩小假设空间,约束就会得到改善,但它包含真正的分类器的可能性也会减小。但是另一种常见的理论保证是很相似的,具体就是有了无限的数据,学习者就可以输出正确的分类器。这是让人安心的,但由于它的渐近保证,在选择学习者的时候就会显得轻率。在实践中,我们很少处于这种不对称的状态。所以就出现了两种情况,那就是如果给了无限的数据之后,学习者A比B更好,那么在给了有限数据的情况下,通常学习者B比A要更好。

可表征不意味着可学习

在本质上来说所有用于可变规模学习器的表征都与每个函数都可以用这样的表征方式来表示或近似的相关。基于此的理论保证,热衷于表征方式的研究者经常忽视所有其他的部分。但是,仅仅因为一个函数可以表征并不意味着它可以被学习。标准的决策树学习器不能比具有训练样例的决策树学习更多。在连续的空间中,使用一组固定的原语来表示简单的函数通常需要无限数量的内容。另外,如果假设空间具有许多评价函数的局部最优值,那么往往是这样,即使学习器具有表征能力,也可能找不到真正的函数。对于有限的数据,时间和内存,标准的学习模型只能学习所有可能函数的一小部分,而这些子集对于具有不同表征能力的学习器是不同的。

相关性并不意味着因果关系

其实,相关性并不意味着因果关系,因此这也许是不值得的。但是,尽管我们所讨论的那种学习器只能学习相关性,但他们的结果往往被视为可以表示因果关系。而事实往往是,学习预测模型的目标是用它们作为策略的指南。但是实际上很难说清楚相关实验。与实验数据不同的是,机器学习通常应用于预测变量不受学习器控制的观测数据。虽然一些学习算法可能会潜在地从观测数据中提取因果信息,但是它们的适用性会受到限制。另一方面,相关性是潜在的因果关系的一个标志,我们可以将它作为进一步研究的指导。

本文转自:博客园 - CDA-数据分析师,转载此文目的在于传递更多信息,版权归原作者所有。

推荐阅读