人工智能时代前沿技术社区

首页 > 人工智能 > 热点

这几个机器学习核心问题,不会数学也能搞定!

人工智能已成为未来的趋势,那么,如何用一种通俗易懂的方式阐述机器学习和人工智能领域最重要的话题?

作者: | 2019-06-11 22:52:41 | 来源:51cto

如何用一种通俗易懂的方式阐述机器学习和人工智能领域最重要的话题?

人工智能已成为未来的趋势。汽车可以自动驾驶,计算机在围棋比赛上打败了人类,机器人也在抢走人类的工作。不久后,机器人将推翻人类的政府,奴役我们的后代……好吧,或许这并不会发生。但这样也回避了问题的实质:人工智能的极限是什么?

机器学习

答案显而易见——这取决于对人工智能的定义。如果将人工智能定义为只会下围棋的电脑,那未来的围棋程序会比现在更先进。但可惜的是,没有人会用这个定义。奔驰在宣传他们的智能驾驶时,大约不会是在谈论他们的汽车如何下围棋。但反过来说,你可以像市场营销人员那样去定义人工智能——你们公司在产品中使用了人工智能,我们的产品也是。没人清楚知道我们的产品是如何实现人工智能的,但它绝对不是人工智障,所以这就成了。

那么,到底什么是智能呢?经过对人类大脑、心理学,甚至蚂蚁社会的大量研究,可以得出这样的结论——智能包括两个主要部分:第一,识别模式的能力;第二,运用这些模式来实现目标的能力。

对此有很多解释,但有一个例子很清楚地说明了这一结论:想想那些非常聪明的人,比如说,在数学领域非常聪明的人。想象一下这类人在数学课上是不是都不太专心——为什么?因为他/她知识吸收地非常快。他/她意识到了这一模式,并决定在剩下的课堂时间里不再集中注意力。这些人也可能很快完成作业,因为他/她善于将课堂上学到的知识(又称模式)运用到作业中。

这个定义也适用于其他类型的智能。例如,具有艺术才能的人似乎能够识别出什么将会是好的艺术,并利用这种直觉创造新的、好的艺术。如果这还没有足够的说服力,要知道,维基百科也为智能提供了一个类似的定义,你肯定不想和维基百科争论,它可是互联网上最可靠的知识来源。

\

来源:boredpanda.com

有一个专门研究算法的领域,它创建模型,从数据中提取模式,并将其应用于其他数据,这就是机器学习。有一个机器学习中最重要的概念之一——过度拟合。过度拟合只是一种花哨的说法,表示模型发现的模式过于复杂,导致预测未来点时出现问题。

机器学习

来源:wikipedia.org

假设你的任务是画一条线将红点和蓝点分开,但是这些点的颜色可能是随机性的,也就是数据有些混乱。黑线似乎是一个合理的解决方案,它并没有正确地对所有的点进行分类,但其似乎考虑到了边界上的一些点是可以朝任何方向移动的。绿线成功地分离了所有的点,但不同之处在于: 我们标黄了一些区域,在这些区域里,如果是按照绿线划分,一个新点会被归为红色,而如果是按照黑线划分,一个新点会被归为蓝色。

机器学习

这肯定不是通过MicrosoftWord完成的。可以使用专业的软件,比如Photoshop。

那么,相信大家会同意这一点,即标黄区域更可能包含蓝色而不是红色的点。这就是过度拟合——绿线在现有点(训练点)上区分地比较好,但在新的点(测试点)上却区分地相对较差。

我们可以这样说,产生绿线的模型在训练点上发现了太多的模式。这个模型太善于去发现模式,所以在应用模式时,没有意识到其发现的模式可能并不适用于新的点。那么,最核心的问题在于发现哪些模式是有效的,哪些只是数据自身的干扰。

许多聪明的人试图用一些非常巧妙的方法来解决这个问题,他们使用长方程和大量的希腊字母来防止模型找到像绿色这样奇怪的线,这个步骤叫做正则化。无论是在训练过程中添加正则化,还是在模型本身中加入正则化,这些都是改进机器学习的方法。

但其实,我们略过了最重要的一步。在求助于复杂的数学之前,我们忘了问“为什么”。是的,总是有关于“为什么天空是蓝色的”,或者“为什么我们存在于宇宙中”这样的问题,但这些都不是这里提及的问题(不是你要寻找的问题)。我们更关心的是为什么智能在一般情况下是有效的。我们试图去找出哪种模式能够奏效,但还没有确定为什么任何模式都奏效。为什么下一个点应该是蓝色或红色;为什么不能是紫色的呢?

事实上,我们也不知道是谁第一个提出这个问题,但幸运的是,都会有人自始至终决定要想出一个答案:之所以有些模式能奏效,是因为绘制测试数据应该独立于训练数据,并且两者应该来自相同的分布。这只是一种数学上的说法,测试模型时,我们不应该让其受不同于训练时环境的影响。下一个点是紫色的可能性很小,是因为我们已经看到了很多点,没有一个是紫色的。毕竟,当掷一个六面骰子时,我们不能预计一半正面一半反面,但可以预计的是,如果以同样的方式投掷相同的硬币,应该会得到类似的结果。借用一句励志名言:“如果你总是在做一直在做的事情,就会得到一直在得到的东西。”

机器学习

好吧,这是由Microsoft Word完成的。

这与区分实际模式和过度拟合有什么关系呢? 如果你注意到上图,过度拟合的主要原因是绿线模型试图拟合了一些异常值。假设可以通过某种方式将这些点分组到不同的区域,其中一些区域包含异常值并且不符合找到的模式(黄色区域),而另一些区域包含确实符合找到的模式的点(绿色区域)。

直观地说,“绿色”区域的范围应该更大,包含更多的点,并且在预测未来的点时更准确。换句话讲,如果更多的点出现在“绿色”区域,我们预计它们是红色的。另一方面,如果更多的点出现在“黄色”区域,虽然有些会是红色的,我们会认为大部分会是蓝色的。

当然,为了得到更多的点,我们总是可以收集更多的数据。但有时候,你会发现自己只是一个贫穷的本科生,没有别人拥有的经费、时间或资源。无论如何,有时收集更多的数据是不可行的。因此,与其这样做,我们可以忽略部分训练数据,并用被我们遗漏的点来“添加”点!

这也不是一个新概念——这是使用了验证集(我们在验证集中验证那些模型从训练集中找到的模式)。使用验证集来确定特定的过拟合区域是一种新方法。然而,人们没有这样做是有原因的。

“绿色”区域看起来很不错,但首先,它们很难找到,其次,这些区域的构建依赖于数据。简单来说,有些区域明显是“绿色”的,有些区域明显是“黄色”的,但是有些区域很难确定颜色,因为这些区域是围绕训练数据建立的。这个问题的解决方法依赖于与美国相同的基本原则。如果针对不同数据训练的两个模型得到了相同的“黄色”区域,那就会很奇怪。

因此,对于第一个模型中不确定的区域,如果基于不同数据的模型来重复这个着色过程,便可以根据第二个模型来决定它们的颜色! 如果这个模型发现了相同的区域,那么我们可以非常肯定它不是偶然发现的,所以它应该是“绿色“的。相反,如果第二个模型没有找到该区域,那么很可能是干扰,应该将其涂成“黄色”。

那么,要如何确定这些区域呢? 通过找集群! 你可能会问,什么是找集群?

机器学习

来源:wikiepdia.org

找集群就是在数据中找到集群。如图所示,找集群就是在数据中找到三个集群。同一集群中的点看起来与模型相似。如果有多种方法可以转换这些点并在模型中绘制(例如,在神经网络的每一层中),那么根据定义,在所有图中处于相同集群中的点对模型来说是不可区分的。这很清晰——如果模型能够区分它们,那么它们在某个时候就会在不同的集群中。无论如何,如果定义了这些总是在同一个集群中的点的位置,那么现在就有了各自的区域了!

机器学习就是寻找能够分离点的算法(还有回归)。算法倾向于找到绿线,因为这将最小化分类错误。机器学习的挑战在于找到一种可以得到黑线的算法,因为这可能在新的点上更有效。正则化,也就是巧妙的数学,帮助我们得到更接近黑线的东西。