大约35年前,我第一次接触到计算机。那时正是“微型计算机”一词被“个人计算机”(Personal Computer,PC)一词取代的时候。在5年的时间里,发生了这样一个重大变革:计算机作为一个超级专业化的领域,全世界只有几千人在凉爽干净的房间里使用这些神奇的机器工作,突然间数亿人可以很容易地接触到这些机器。每个人都意识到,计算机将影响商业的方方面面,并最终影响个人生活。随之而来的是学习计算机的热潮,有人在学习关于计算机是什么的基础知识,还有人在学习如何使用诸如文字处理或电子表格等应用程序,而世界各地的工程师则在学习计算机体系结构以及编程、算法和数据结构。如果你学习的这些技能没能达到一定水平,那么将对你的职业发展造成非常不利的影响—不管你的职业是什么。
大约到1995年,个人计算机已经发展得十分强大,通过客户机–服务器体系结构接管商业计算,大多数人在工作和家庭中都拥有了自己的个人计算机。然后,Internet、Web、马赛克、Netscape、浏览器、Webserver、HTML和HTTP等术语突然席卷了计算机领域。这一巨变完全重塑了数据和信息的民主化过程,其规模比人类历史上任何事物都要大几个数量级。互联网促成了智能手机的诞生,而智能手机反过来又成倍地扩大了互联网的规模和覆盖范围。计算架构,尤其是围绕数据表示、存储和分布式的架构,经历了一场巨大的变革。随之而来的是学习“互联网”的热潮—各个年龄段的人都在学习互联网的基础知识,如何使用浏览器,以及如何通过电子方式与人们交流,以将内容创作为Web消耗品(电子邮件、网页、网站、博客、帖子、微博等)。工程师们蜂拥而至,学习互联网体系结构、Web和移动应用程序开发、分布式数据架构等。如果没有学习这方面的知识,那么你不仅在职业上处于严重的不利地位,在社会上也可能处于不利地位。
再快进15年。互联网和移动技术的进步带来了数据创建和聚合的爆炸性增长。数据的大规模聚合和随之而来的几乎无限的计算能力演变成在物理上是分布式的,但在逻辑上却是统一的。这就是“云”。组织和理解这种规模的数据不仅超出了人类的能力,甚至超出了传统算法的能力。传统的算法甚至无法扩展到对海量数据进行“搜索”,更不用说理解它了。然而,如此庞大的数据的便捷可用性,最终使计算机通过理解数据从“处理信息”到实际“创造智能”的长期梦想成为可能。拥有数十年历史的机器学习和人工智能重新焕发了活力,并通过轻松访问云中的大量数据和计算而取得了跨越式的进展。因此,我们现在正式处于“人工智能”时代。正如个人计算机和互联网革命所发生的那样,现在人们意识到,人工智能不仅将以前所未有的方式改变计算机,而且将改变社会和人类。人们开始意识到,人工智能和机器学习的适用性远远超出了他们的Facebook订阅中的诸如人脸识别之类的普通事物。它也超出了像自动驾驶汽车和数字助理这样华丽的科幻场景。医疗保健、制造业、酒店业、金融业等各行各业,都正处于以数据和人工智能为中心的大规模转型过程中。在生活的方方面面,没有智能的数字信息将变得毫无意义。未来十年将由人工智能改变。互联网时代即将过渡到人工智能时代。
然而,理解人工智能的“群体”才刚刚开始。在这种情况下,我很高兴Ameet Joshi博士写作了这本关于机器学习和人工智能的书。当一个话题能引起人们的极大兴趣并具有影响力时,人们永远不会有足够的知识和学习资源。与个人计算机时代或互联网时代创造的那种学习内容相比,机器学习和人工智能相关的内容仍然稀少,而且有一定针对性。即使对于精通技术的人来说,这仍然是一个神秘的领域。虽然有必要解决所有受众的问题,但迫切需要为那些能熟练掌握数学和科学而不一定是计算机科学家或工程师的人们阐明这一领域。这些人愿意并且有能力很好地掌握机器学习和人工智能。他们对数据和数学的理解相当深入,他们可能理解传统的计算和算法,但他们远离了数据科学专家所涉及的领域。他们渴望挽起袖子,潜入其中,并从基础上了解什么是机器学习和人工智能。机器学习和人工智能学习民主化的时机已经成熟。Joshi博士的书恰好能够满足这一需求。读过本书的大多数人可能不会成为数据科学家,但他们都会对机器学习和人工智能的工作方式有一个了解,并能够将其应用到他们所从事的任何工作领域。他们将能够看到人工智能的每一个应用,无论是与之交谈的数字助理,还是以一种截然不同的视角和更深刻的理解对广告进行准确定位或对机票价格波动进行准确预测。围绕着发生在我们身边的许多数字化事物的神秘笼罩似乎更加明显和真实。更重要的是,我希望阅读本书的人能够利用学到的知识,在他们未来的工作领域中寻找应用。对于某些读者来说,这甚至可能充分激发他们的兴趣,使他们成为机器学习和人工智能的专业从业者。对于这样的专业人才,肯定有巨大的需求。
Joshi博士本人就是一位充满激情的从业者。他的热情在这本书中表现得淋漓尽致。他从事过广泛的机器学习和人工智能问题的研究,这些实践经验帮助他识别并解释了本书中相关的场景和应用。这是一本值得反复阅读的图书。当读者看到本书中所描述的技术在现实世界中的应用时,他们很可能会想重温本书的各个章节,以更新他们的理解,或者深入探究某个领域。我认为这就是最值得拥有的书籍。即使作为一名业内资深人士,我也喜欢阅读这本书,并会随身携带一本。
阅读愉快。
Vij Rajarajan
微软公司总经理
美国华盛顿州雷德蒙德
前 言
有史以来最伟大的物理学家之一、诺贝尔奖获得者理查德·费曼(Richard Feynman)博士曾经被他的同行要求解释当时刚刚发现的费米–狄拉克(Fermi-Dirac)统计的一个性质。费曼迅速说道:
我不仅会向你们解释它,而且还将为新手准备一个关于它的讲座。
然而,很不寻常的是,几天后,他回来承认:
我做不到。我无法将解释简化为新手水平。那意味着我们真的不理解它。
甚至连费曼博士也说出了这种言论。然而,除了费米–狄拉克统计本身的话题外,它还暗示着我们对一般事物理解的深刻思考。这里的新手水平基本上意味着可以直接使用数学或物理中的基本原理推导出来的东西。这种想法总是使我有意识地尝试用基本原理来解释我声称理解的所有事物,尝试从概念上解释所有事物,而不仅仅是使用复杂的方程组。
在过去的十年里,人工智能和机器学习领域发展迅猛。随着广泛的普及,该领域的核心概念时而被淡化,时而被重新诠释。随着该领域的指数级增长,该领域的范围也在不断地增长。这个领域的新手很快就会发现这个话题令人生畏和困惑。人们总是可以从网络上搜索相关主题或者只是从维基百科开始了解相关内容,但通常情况下,每一个主题都会给你带来越来越多的新概念和未知的概念,很容易让你迷失方向。而且,机器学习中的大多数概念都深深植根于数学和统计学中。没有理论数学和统计学的扎实背景,定理和引理的复杂推导会使人们对该领域感到困惑和无趣。
我在这里尝试介绍机器学习及其应用中最基本的主题,以直观和概念性的方式构建人工智能解决方案。有时会使用一些数学指导,如果没有这些指导,概念就不够清晰,但我已经尽量避免复杂的推导和证明,以便让那些不具有强大数学背景的读者更容易理解书中的内容。根据费曼博士的说法,在这个过程中,我还要确保自己理解了它们。就一般的数学和统计要求而言,我认为一般的本科水平应该足够了。而且,随着开源领域中机器学习库的激增和标准化,人们不需要对该理论进行多么深入的数学理解就可以实现最先进的机器学习模型,从而得到最新的智能解决方案。
当尝试解决给定应用程序中的问题时,引起混乱的主要根源之一是算法的选择。通常,这里介绍的每种算法都源自某个特定的问题,但是该算法通常不限于仅解决该问题。然而,即使对于一个具有强大数学背景的博士生来说,为给定的问题选择正确的算法也并非易事。为了区分两者,我已经把这两个方面分成了独立的部分来介绍。这将使读者更容易理解。
建议读者从第一部分开始,然后根据需要选择第二部分或第三部分。对于学生来说,按顺序学习本书是理想的选择,而具有专业背景的该领域的新手则更适合从第三部分开始,以便理解或专注于手头的精确应用,然后根据需要在第二部分深入研究算法的理论细节。第四部分和第五部分应随后学习。我已经在两个部分之间添加了足够的交叉引用,以使过渡平滑。
在我看来,除非人们能看到模型在真实数据上的作用,否则就无法完全理解。因此,在详细介绍算法和应用程序之后,我添加了另一部分内容,以介绍使用免费和开源选项的模型的基本实现。完成这部分内容的学习将使读者能够使用最新的机器学习技术解决人工智能中的现实问题!
Ameet Joshi
美国华盛顿州雷德蒙德
2019年3月