一、计算机难以解决的问题——人工智能
从计算机发明之初,人们就希望它能够帮助甚至替代人类完成重复性劳作。利用巨大的存储空间和超高的运算速度,计算机已经可以非常轻易的完成一些对于人类非常困难,但对于计算机相对简单的问题。然而,一些人类通过直觉可以很快解决的问题,目前却很难通过计算机解决。这些问题包括自然语言处理、图像识别、语音识别等。而它们就是人工智能需要解决的问题。
二、早期人工智能系统——基于知识图库的人工智能系统
计算机要想人类一样完成更多智能的工作,需要掌握关于这个世界海量的知识。比如要实现汽车自动驾驶,计算机至少需要能够判断那里是路,哪里是障碍物。这个对于人类非常直观的东西,但对于计算机却是相当困难的。路有水泥的、沥青的,石子的甚至土路。这些不同材质铺成的路在计算机看来差距非常大。如何让计算机掌握这些人类看起来非常直观的知识,对于人工智能能的发展是一个巨大的挑战。很多早期人工智能系统只能成功应用于相对特定的环境(specific domain),在这些特定的环境下,计算机需要了解的知识很容易被严格并且完整的定义。
为了使计算机更多的掌握开放环境下的知识,研究人员进行了很多尝试。其中一个影响力非常大的领域是只是图库(Ontology)。WordNet是在开放环境中建立的一个较大且有影响力的知识图库。WordNet是由普林斯顿大学(Princeton University)的George Armitage Miller教授和Christine Felbaum教授带领开发的,它将155287个单词整理为了117659个近义词集(synsets)。基于这些近义词集,WordNet进一步定义了近义词集之间的关系。比如同义词集“狗”属于同义词集“犬科动物”,它们之间存在种属关系。除了WordNet,也有不少研究人员尝试将Wikipedia中的知识整理成知识题库。谷歌的知识图库就是基于Wikipedia创建的。
三、为什么需要机器学习
虽然使用知识图库可以让计算机很好的掌握人工定义的知识,但建立知识图库一方面需要花费大量的人力物力,另一方面可以通过知识图库方式明确定义的知识有限,不是所有的知识都可以明确定义成计算机可以理解的固定格式。很大一部分无法明确定义的知识,就是人类的经验。比如我们判断一封邮件是否为垃圾邮件,会综合考虑邮件发出的地址、邮件的标题、邮件的内容以及邮件收件人的长度等等。这是收到无数垃圾邮件骚扰之后总结出来的经验。这个经验很难以固定的方式表达出来,而且不同人对垃圾邮件的判断也会不一样。如何可以让计算机跟人类一样从历史的经验中获取新的知识呢?这就是机器学习需要解决的问题。
四、机器学习的定义
卡内基梅隆大学的Tom Michael Mitchell教授在1997年出版的书籍Machine Learning中对机器学习进行过非常专业的地定义:如果一个程序可以在任务T上,随着经验E的增加,效果P也可以随之增加,则称这个程序可以从经验中学习。
通过垃圾邮件分类的问题来解释机器学习的定义。在垃圾邮件分类问题中,“一个程序”指的是机器学习算法,比如逻辑回归算法;“任务T”是指区分垃圾邮件的任务;“经验E”为已经区分过是否为垃圾邮件的历史邮件,在监督式机器学习问题中,这也被称之为训练数据;“效果P”为机器学习算法在区分是否为垃圾邮件任务上的效率。
五、传统机器学习算法概述
以逻辑回归算法为例。在使用逻辑回归算法解决垃圾邮件分类问题时,会先从每一封邮件中抽取对分类结果可能有影响的因素,比如说上文提到的发邮件的地址、邮件的标题以及收件人的长度等等。每一个因素被称之为一个特征(feature)。逻辑回归算法可以从训练数据中计算出每个特征和结果的相关度。比如在垃圾邮件分类问题中,可能会发现如果一个邮件的收件人越多,那么邮件为垃圾邮件的概率也就越高。在对一封未知的邮件做出判断时,逻辑回归算法会根据从这封邮件中抽取得到的每一个特征以及这些特征和垃圾邮件的相关度来判断这封邮件是否为垃圾邮件。
在大部分情况下,训练数据达到一定数量之前,越多的训练数据可以使逻辑会算法对位置邮件做出的判断越精确。也就是说逻辑回归算法可以根据训练数据(经验E)提高在垃圾邮件分类问题(任务T)上的正确率(效果P)。之所以说在大部分情况下,是因为逻辑回归算法的效果除了依赖于训练数据,也依赖于从数据中提取的特征。假设从邮件中抽取的特征只有邮件发送时间,那么即使有再多的训练数据,逻辑回归算法也无法很好的利用。这是因为邮件发送的时间和邮件是否为垃圾邮件之间的关联不大,而逻辑回归算法无法从数据中习得更好的特征表达式。这也是很多传统机器学习算法的一个共同的问题。
六、传统机器学习算法面临问题
类似从邮件中提取特征,如何数字还的表达现实世界中的实体,一直是计算机科学中一个非常重要的问题。如果将图书馆中的图书名称存储为结构化的数据,比如存储在Excel表格中,那么可以非常容易的通过书名查询一本书是否在图书馆中。如果图书的书名都是存在非结构化的图片中,那么要完成书名查找任务的难度将大大增加。类似的道理,如何从实体中提取特征,对于很多传统机器学习算法的性能有巨大影响。图1-1展示了一个简单的例子。如果通过笛卡尔坐标系(cartesian coordinates)来表示数据,那么不同颜色的结点无法被一条直线划分。如果将这些点映射到极角坐标系(polar coordinates),那么使用直线划分就很容易了。同样的数据使用不同的表达方式会极大地影响解决问题的难度。一旦解决了数据表达和特征提取,很多人工智能任务也就解决了90%。
然而,对许多机器学习问题来说,特征提取不是一件简单的事情。在一些复杂问题上,要通过人工的方式设计有效的特征集合,需要很多的时间和精力,有时甚至需要整个领域数十年的研究投入。例如,假设想从很多照片中识别汽车。现在已知的是汽车有轮子,所以希望在图片中抽取“图片中是否出现了轮子”这个特征。但实际上,要从图片的像素中描述一个轮子的模式是非常难的。虽然车轮的形状很简单,但在实际图片中,车轮上可能会有来自车身的阴影、金属车轴的反光,周围物品也可能会部分遮挡车轮。实际图片中各种不确定的因素让我们很难直接抽取这样的特征。
七、深度学习算法概述
既然人工的方式无法很好地抽取实体中的特征,那么是否有自动的方式呢?答案是肯定的。深度学习解决的核心问题之一就是自动地将简单的特征组合成更加复杂的特征,并使用这些组合特征解决问题。深度学习是机器学习的一个分支,它除了可以学习特征和任务之间的关联以外,还能自动从简单特征中提取更加复杂的特征。图1-2展示了深度学习和传统机器学习在流程上的差异。如图1-2所示,深度学习算法可以从数据中学习更加复杂的特征表达,使得最后一步权重学习变得更加简单且有效。在图1-3中,展示了通过深度学习解决图像分类问题的具体样例。深度学习可以一层一层地将简单特征逐步转化成更加复杂的特征,从而使得不同类别的图像更加可分。比如图中展示了深度学习算法可以从图像的像素特征中逐渐组合出线条、边、角、简单形状、复杂形状等更加有效的复杂特征。
早期的深度学习受到了神经科学的启发,它们之间有非常密切的联系。科学家们在神经科学上的发现使得我们相信深度学习可以胜任很多人工智能的任务。神经科学家发现,如果将小白鼠的视觉神经连接到听觉中枢,一段时间之后小鼠可以习得使用听觉中枢“看”世界。这说明虽然哺乳动物大脑分为了很多区域,但这些区域的学习机制却是相似的。在这一假想得到验证之前,机器学习的研究者们通常会为不同的任务设计不同的算法。而且直到今天,学术机构的机器学习领域也被分为了自然语言处理、计算机视觉和语音识别等不同的实验室。因为深度学习的通用性,深度学习的研究者往往可以跨越多个研究方向甚至同时活跃于所有的研究方向。
虽然深度学习领域的研究人员相比其他机器学习领域更多地受到了大脑工作原理的启发,而且媒体界也经常强调深度学习算法和大脑工作原理的相似性,但现代深度学习的发展并不拘泥于模拟人脑神经元和人脑的工作机理。模拟人类大脑也不再是深度学习研究的主导方向。我们不应该认为深度学习是在试图模仿人类大脑。目前科学家对人类大脑学习机制的理解还不足以为当下的深度学习模型提供指导。
现代的深度学习已经超越了神经科学观点,它可以更广泛地适用于各种并不是由神经网络启发而来的机器学习框架。值得注意的是,有一个领域的研究者试图从算法层理解大脑的工作机制,它不同于深度学习的领域,被称为“计算神经学”(computational neuroscience)。深度学习领域主要关注如何搭建智能的计算机系统,解决人工智能中遇到的问题。计算神经学则主要关注如何建立更准确的模型来模拟人类大脑的工作。
八、人工智能、机器学习与深度学习三者的关系
总的来说,人工智能、机器学习和深度学习是非常相关的几个领域。图1-4总结了它们之间的关系。人工智能是一类非常广泛的问题,机器学习是解决这类问题的一个重要手段。深度学习则是机器学习的一个分支。在很多人工智能问题上,深度学习的方法突破了传统机器学习方法的瓶颈,推动了人工智能领域的发展。