简单读懂人工智能:机器学习与深度学习是什么关系
引言:随着AlphaGo战胜李世石。人工智能和深度学习这些概念已经成为一个很火的话题。
人工智能、机器学习与深度学习这几个关键词时常出如今媒体新闻中,并错误地被觉得是等同的概念。本文将介绍人工智能、机器学习以及深度学习的概念。并着重解析它们之间的关系。本文将从不同领域须要解决的问题入手。依次介绍这些领域的基本概念以及解决领域内问题的主要思路。
本文选自《Tensorflow:实战Google深度学习框架》。
从计算机发明之初,人们就希望它能够帮助甚至取代人类完毕反复性劳作。利用巨大的存储空间和超高的运算速度,计算机已经能够很轻易地完毕一些对于人类很困难,但对计算机相对简单的问题。比方,统计一本书中不同单词出现的次数。存储一个图书馆中全部的藏书。或是计算很复杂的数学公式,都能够轻松通过计算机解决。然而。一些人类通过直觉能够很快解决的问题,眼下却很难通过计算机解决。
这些问题包含自然语言理解、图像识别、语音识别。等等。而它们就是人工智能须要解决的问题。
计算机要像人类一样完毕很多其它智能的工作,须要掌握关于这个世界海量的知识。比方要实现汽车自己主动驾驶。计算机至少须要可以推断哪里是路,哪里是障碍物。这个对人类很直观的东西,但对计算机却是相当困难的。
路有水泥的、沥青的,也有石子的甚至土路。这些不同材质铺成的路在计算机看来差距很大。怎样让计算机掌握这些人类看起来很直观的常识。对于人工智能的发展是一个巨大的挑战。
很多早期的人工智能系统仅仅能成功应用于相对特定的环境(specific domain),在这些特定环境下,计算机须要了解的知识很easy被严格而且完整地定义。比如。IBM的深蓝(Deep Blue)在1997年打败了国际象棋冠军卡斯帕罗夫。设计出下象棋软件是人工智能史上的重大成就。但其主要挑战不在于让计算机掌握国际象棋中的规则。
国际象棋是一个特定的环境,在这个环境中,计算机仅仅须要了解每个棋子规定的行动范围和行动方法就可以。
尽管计算机早在1997年就能够击败国际象棋的世界冠军,可是直到20年后的今天,让计算机实现大部分成年人都能够完毕的汽车驾驶却仍然依然十分困难。
为了使计算机很多其它地掌握开放环境(open domain)下的知识,研究人员进行了非常多尝试。当中一个影响力非常大的领域是知识图库(Ontology)。WordNet是在开放环境中建立的一个较大且有影响力的知识图库。WordNet是由普林斯顿大学(Princeton University)的George Armitage Miller教授和Christiane Fellbaum教授带领开发的。它将155287个单词整理为了117659个近义词集(synsets)。基于这些近义词集,WordNet进一步定义了近义词集之间的关系。
比方同义词集“狗”属于同义词集“犬科动物”。他们之间存在种属关系(hypernyms/hyponyms)。除了WordNet,也有不少研究人员尝试将Wikipedia中的知识整理成知识图库。谷歌的知识图库就是基于Wikipedia创建的。
尽管使用知识图库能够让计算机非常好地掌握人工定义的知识。但建立知识图库一方面须要花费大量的人力物力,还有一方面能够通过知识图库方式明白定义的知识有限。不是全部的知识都能够明白地定义成计算机能够理解的固定格式。非常大一部分无法明白定义的知识,就是人类的经验。
比方我们须要推断一封邮件是否为垃圾邮件。会综合考虑邮件发出的地址、邮件的标题、邮件的内容以及邮件收件人的长度。等等。这是收到无数垃圾邮件骚扰之后总结出来的经验。这个经验非常难以固定的方式表达出来。并且不同人对垃圾邮件的推断也会不一样。怎样让计算机能够跟人类一样从历史的经验中获取新的知识呢?这就是机器学习须要解决的问题。
卡内基梅隆大学(Carnegie Mellon University)的Tom Michael Mitchell教授在1997年出版的书籍Machine Learning中对机器学习进行过很专业的定义,这个定义在学术界内被多次引用。在这本书中对机器学习的定义为“假设一个程序能够在任务T上。随着经验E的添加。效果P也能够随之添加。则称这个程序能够从经验中学习”。通过垃圾邮件分类的问题来解释机器学习的定义。在垃圾邮件分类问题中。“一个程序”指的是须要用到的机器学习算法。比方逻辑回归算法。“任务T”是指区分垃圾邮件的任务;“经验E”为已经区分过是否为垃圾邮件的历史邮件,在监督式机器学习问题中。这也被称之为训练数据;“效果P”为机器学习算法在区分是否为垃圾邮件任务上的正确率。
在使用逻辑回归算法解决垃圾邮件分类问题时。会先从每一封邮件中抽取对分类结果可能有影响的因素,比方说上文提到的发邮件的地址、邮件的标题及收件人的长度。等等。每个因素被称之为一个特征(feature)。逻辑回归算法能够从训练数据中计算出每个特征和预測结果的相关度。比方在垃圾邮件分类问题中,可能会发现假设一个邮件的收件人越多。那么邮件为垃圾邮件的概率也就越高。在对一封未知的邮件做推断时,逻辑回归算法会依据从这封邮件中抽取得到的每个特征以及这些特征和垃圾邮件的相关度来推断这封邮件是否为垃圾邮件。
在大部分情况下,在训练数据达到一定数量之前。越多的训练数据能够使逻辑回归算法对未知邮件做出的推断越精准。也就是说逻辑回归算法能够依据训练数据(经验E)提高在垃圾邮件分类问题(任务T)上的正确率(效果P)。之所以说在大部分情况下,是由于逻辑回归算法的效果除了依赖于训练数据。也依赖于从数据中提取的特征。如果从邮件中抽取的特征仅仅有邮件发送的时间。那么即使有再多的训练数据,逻辑回归算法也无法非常好地利用。
这是由于邮件发送的时间和邮件是否为垃圾邮件之间的关联不大。而逻辑回归算法无法从数据中习得更好的特征表达。这也是非常多传统机器学习算法的一个共同的问题。
类似从邮件中提取特征。怎样数字化地表达现实世界中的实体,一直是计算机科学中一个很重要问题。假设将图书馆中的图书名称储存为结构化的数据,比方储存在Excel表格中,那么能够很easy地通过书名查询一本书是否在图书馆中。假设图书的书名都是存在非结构化的图片中,那么要完毕书名查找任务的难度将大大添加。
类似的道理。怎样从实体中提取特征,对于许多传统机器学习算法的性能有巨大影响。我们看一个简单的样例。
不同的数据表达对使用直线划分不同颜色结点的难度影响
假设通过笛卡尔坐标系(cartesian coordinates)来表示数据。那么不同颜色的结点无法被一条直线划分。假设将这些点映射到极角坐标系(polar coordinates),那么使用直线划分就非常easy了。
相同的数据使用不同的表达方式会极大地影响解决这个问题的难度。一旦攻克了数据表达和特征提取,非常多人工智能任务也就攻克了90%。
然而,对很多机器学习问题来说。特征提取不是一件简单的事情。在一些复杂问题上,要通过人工的方式设计有效的特征集合,须要非常多的时间和精力。有时甚至须要整个领域数十年的研究投入。
比如,如果想从非常多照片中识别汽车。如今已知的是汽车有轮子。所以希望在图片中抽取“图片中是否出现了轮子”这个特征。但实际上。要从图片的像素中描写叙述一个轮子的模式是非常难的。
尽管车轮的形状非常easy,但在实际图片中,车轮上可能会有来自车身的阴影、金属车轴的反光,周围物品也可能会部分遮挡车轮。
实际图片中各种不确定的因素让我们非常难直接抽取这种特征。
既然人工的方式无法非常好地抽取实体中的特征。那么是否有自己主动的方式呢?答案是肯定的。深度学习解决的核心问题之中的一个就是自己主动地将简单的特征组合成更加复杂的特征。并使用这些组合特征解决这个问题。深度学习是机器学习的一个分支,它除了能够学习特征和任务之间的关联以外。还能自己主动从简单特征中提取更加复杂的特征。下图展示了深度学习和传统机器学习在流程上的差异。
传统机器学习和深度学习流程对照
如图所看到的,深度学习算法能够从数据中学习更加复杂的特征表达,使得最后一步权重学习变得更加简单且有效。
深度学习在图像分类问题上的算法流程例子
在上图中,展示了通过深度学习解决图像分类问题的详细例子。深度学习能够一层一层地将简单特征逐步转化成更加复杂的特征,从而使得不同类别的图像更加可分。
比方图中展示了深度学习算法能够从图像的像素特征中逐渐组合出线条、边、角、简单形状、复杂形状等更加有效的复杂特征。
早期的深度学习受到了神经科学的启示。它们之间有非常密切的联系。科学家们在神经科学上的发现使得我们相信深度学习能够胜任非常多人工智能的任务。神经科学家发现。假设将小白鼠的视觉神经连接到听觉中枢,一段时间之后小鼠能够习得使用听觉中枢“看”世界。这说明尽管哺乳动物大脑分为了非常多区域。但这些区域的学习机制却是相似的。在这一假想得到验证之前,机器学习的研究者们一般会为不同的任务设计不同的算法。并且直到今天。学术机构的机器学习领域也被分为了自然语言处理、计算机视觉和语音识别等不同的实验室。由于深度学习的通用性,深度学习的研究者往往能够跨越多个研究方向甚至同一时候活跃于全部的研究方向。
尽管深度学习领域的研究人员相比其它机器学习领域很多其它地受到了大脑工作原理的启示,并且媒体界也常常强调深度学习算法和大脑工作原理的相似性。但现代深度学习的发展并不拘泥于模拟人脑神经元和人脑的工作机理。模拟人类大脑也不再是深度学习研究的主导方向。我们不应该觉得深度学习是在试图模仿人类大脑。眼下科学家对人类大脑学习机制的理解还不足以为当下的深度学习模型提供指导。
现代的深度学习已经超越了神经科学观点,它能够更广泛地适用于各种并非由神经网络启示而来的机器学习框架。
值得注意的是,有一个领域的研究者试图从算法层理解大脑的工作机制。它不同于深度学习的领域。被称为“计算神经学”(computational neuroscience)。深度学习领域主要关注怎样搭建智能的计算机系统,解决人工智能中遇到的问题。计算神经学则主要关注怎样建立更准确的模型来模拟人类大脑的工作。
总的来说。人工智能、机器学习和深度学习是很相关的几个领域。
下图总结了它们之间的关系。
人工智能、机器学习以及深度学习之间的关系图
人工智能是一类非常广泛的问题,机器学习是解决这类问题的一个重要手段。
深度学习则是机器学习的一个分支。
在非常多人工智能问题上。深度学习的方法突破了传统机器学习方法的瓶颈,推动了人工智能领域的发展。
本节部分内容參见:Goodfellow I, Bengio Y, Courville A. Deep learning [M]. The MIT Press,2016.
Mitchell T M, Carbonell J G, Michalski R S. Machine Learning [M]. McGraw-Hill, 2003.
本文选自《Tensorflow:实战Google深度学习框架》,点此链接可在博文视点官网查看此书。
想及时获得很多其它精彩文章,可在微信中搜索“博文视点”或者扫描下方二维码并关注。