人工智能背后的数学
Posted 慧天地
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了人工智能背后的数学相关的知识,希望对你有一定的参考价值。
点击图片上方蓝色字体“慧天地”即可订阅
计算机会“思维”、Agent(智能体)能感知环境、机器可从经验中学习,其背后离不开数学——从线性代数、概率统计到拓扑学众多数学分支。这篇读书札记讨论人工智能背后的数学。
【人工智能离不开数学】
术语“人工智能(AI)”由两个词组成,“人工”和“智能”。“人工”一词意味着人造,而“智能”一词则意味着思维能力(如,学习、推理和解决问题)。因此,可以说,人工智能是人造的思维能力。有些人工智能教科书将这一领域定义为研究“Agent(智能体)”——任何能够感知环境并采取行动,以最大限度地提高成功实现目标的机会的设备。机器学习(ML)是近年来发展最为迅速的人工智能的一个子集。它研究通过经验自动改进的计算机算法,为系统提供从经验中学习的能力,其主要目标是让计算机在不受人类干预的情况下自动学习并进行相应的调整。这里所谓人工智能的学习、推理和解决问题的能力,Agent(智能体)感知环境和采取行动的能力,机器学习的通过经验自动改进算法的能力,其背后均离不开数学。
Richard E. Neapolitan和Xia Jiang著的《Artificial Intelligence with an Introduction to Machine learning (人工智能与机器学习导论)》一书第二版(参考资料[1]),由5个部分组成,讨论了人工智能的5个主要研究领域:逻辑智能、概率智能、涌出智能(Emergent Intelligence,基于群体智能的进化计算和方法)、神经智能(神经网络和深度学习)和语言理解。
人工智能早期的成功,是建立在逻辑推理模型的基础上的。基于这种逻辑推理的人工智能模型是该书的第一部分的重点。在20世纪70年代,越来越明显的是,人类做出的许多判断都涉及不确定或概率推断。到20世纪90年代,这种概率推理的建模,在人工智能中变得司空见惯。概率推理是该书的第二部分的重点。智能行为并不局限于人类的推理。基于自然选择模型开发了有用的算法。非智能实体在群体中的行为有时会产生一种称为群体智能的涌现智能。该书的第三部分讨论了基于涌现智能的算法。最近神经网络在被称为深度学习领域的应用得到了新生,它已经成功地应用于计算机视觉和语音识别等领域。该书的第四部分致力于神经网络和深度学习。最后,第五部分讨论了人工智能的一项重要工作,即自然语言理解。
显然,人工智能这五个主要研究领域背后的数学,不尽相同。所以,如果问“人工智能背后的数学是什么?”,从不同人工智能研究者,可能得到不同的答案。
有许多数学分支有助于人工智能和机器学习。例如,拓扑学是一门纯数学的学科,然而,拓扑数据分析(TDA)是一种利用数据中的拓扑特征,寻找数据集结构的应用数学方法。顾名思义,TDA利用了拓扑学的思想。TDA为数据分析提供了一个通用的框架,其优点是能够从大量高维数据中提取信息,并具有抗噪声的稳定性。TDA在短短的几年内得到了长足的发展,包括:聚类、流形估计、非线性降维、理解时间序列、模式估计和岭估计等。TDA已经成功地发现了许多大型复杂数据集中的信息。TDA结合了代数拓扑和统计学习的工具,为研究数据的“形状”提供了定量基础。拓扑数据分析技术正在与我们今天所熟悉的人工智能技术相结合。早期的例子是计算机视觉拓扑学(参考资料[2])。拓扑数据分析量化了大原始噪声数据中隐藏的拓扑结构,将拓扑数据分析和机器学习结合起来,可用于解决计算机视觉实际问题,以及更深入的理解数字图像。又如,深度神经网络的拓扑学。深度神经网络是一种强大而迷人的方法,用于研究各种数据(包括图像、文本、时间序列和其他许多数据)取得了巨大成功。然而,限制其适用性的一个问题是,人们对其内部的工作原理缺乏任何详细的了解。对卷积深神经网络的内部状态进行拓扑数据分析,可以了解它们所执行的计算(参考资料[3])。神经网络还可以通过改变拓扑结构来运行,将拓扑结构复杂的数据集,转换为拓扑简单的数据集(参考资料[4])。TDA是一个快速发展的领域,在机器学习、应用和计算拓扑学领域吸引了越来越多的实践者和研究者的兴趣。因此,有人称:“拓扑数据分析可以说是机器学习趋势的先锋,因为它的细粒度模式分析取代了传统的有监督或无监督学习”(参考资料[5])。也许“拓扑智能”也会成为未来的一个重要的研究领域。
没有人精通所有数学(即使是数学家,也不一定精通全部所有数学知识),更不可能要求实际工作者掌握全部所有数学知识,但应该掌握有关研究领域的数学基础知识。微积分、代数、线性代数、概率统计的基础知识,将会很重要。
【机器学习中的数学基础新书】
数学是机器学习的基础,对理解这个领域的基础至关重要。机器学习涉及哪些基本数学工具呢?约书亚•本吉奥等著的《深度学习》(被称为“深度学习”的圣经)一书(参考资料[6])中,介绍理解深度学习所需的基本数学概念包括:线性代数、概率与信息论、数值计算三个应用数学基础。而莎朗·萨克塞纳(Sharon Saxena)在一篇题为《机器学习背后的数学-你需要知道的核心概念》(参考资料[7])文章中,则提出线性代数、多元微积分和概率统计三个应用数学基础。两者都列有线性代数和概率统计。下面介绍三种机器学习中的数学基础新书,这些书尤其适合自学。
[应用线性代数导论——向量、矩阵和最小二乘法]
线性代数是研究线性方程组及其变换性质的学科。线性代数可用于分析空间中的旋转,最小二乘拟合,求解耦合微分方程,以及许多其他数学、物理和工程问题。例如,线性代数是现代几何的基础,包括定义基本对象,如直线、平面和旋转。这个数学分支涉及方程,有助于获得关于不同变量如何影响机器学习中需要预测的值。然而,由于线性代数是一种连续形式而非离散形式的数学,许多计算机科学家对此没有经验。对线性代数的良好理解对于理解和使用许多机器学习算法,特别是深度学习算法至关重要。
斯坦福大学教授斯蒂芬·博伊德(Stephen Boyd)的新书《Introduction to Applied Linear Algebra —— Vectors, Matrices, and Least Squares(应用线性代数导论——向量、矩阵和最小二乘法)》(参考资料[8]),本书简称VMLS,提供对应用线性代数的基本主题——向量,矩阵和最小二乘法的介绍。目标学习线性代数的基础理论和技能,并了解它们的应用,包括数据拟合、机器学习和人工智能、断层扫描、导航、图像处理、金融,自动控制系统。
https://web.stanford.edu/~boyd/vmls/
VMLS提供配套的《Julia Language Companion》,可以在复习数学概念的同时,学习最新的Julia语言。实际上,我去年读VLMS,是为了学习利用Julia语言数据分析编程。学习Julia语言主要有三个原因:性能、简单性和灵活性。在人工智能社区,现在主流编程语言是Python。但是, Python的运行效率慢,因而,许多大型科学与计算软件仍然使用C++或Fortran编写。现在Julia将Python和Matlab的高生产率和易用性与C++和Fortran的闪电般速度相结合,正在迅速成为科学与工程计算、人工智能和机器学习领域主要的有竞争力的语言。由于Julia语言是新推出的语言(2018年8月MIT正式发布编程语言Julia 1.0),有关与之配套的应用数学书籍不多见。
[Julia统计学:数据科学、机器学习和人工智能基础]
统计学是一组工具的集合,可以使用这些工具来获得有关数据的重要问题的答案。可以使用统计方法将原始观察结果转换为可以理解和共享的信息,可以使用统计推断方法从小样本数据推理到整个领域。统计学通常被认为是应用机器学习领域的先决条件。机器学习和统计学是两个密切相关的研究领域。概率统计方法的使用,为机器学习提供了利用、分析和呈现原始数据的正确途径。机器学习应用统计方法,导致了语音分析和计算机视觉等领域的成功实现。
上述的VMLS是我读到的第一本具有Julia配套示例的应用数学教科书。另外一本正在读的是关于统计学的,约尼·纳扎拉西(Yoni Nazarathy)和海登·克洛克(Hayden Klok)著,题为《Statistics with Julia: Fundamentals for Data Science, Machine Learning and Artificial Intelligence(Julia统计学:数据科学、机器学习和人工智能基础)》。预计这本书将于2020年底通过斯普林格(Springer)出版,不过,其草稿可以在如下网址下载(草稿预先发布的做法,有利于提前交流和完善书稿):
https://statisticswithjulia.org/StatisticsWithJuliaDRAFT.pdf
这本书的草稿包括:介绍Julia、基本概率、概率分布、数据处理与汇总、统计推断概念、置信区间、假设检验、线性回归、机器学习基础和动态模型仿真等十章,具有完整的内容结构和使用juliav1.4和近40个包的完整代码库,以及总共212个代码示例。
掌握人工智能背后的数学,不同于传统的数理研究。17世纪牛顿-胡克数学家之战时代的数学,要用笔和纸来钻研定理、推导和问题,然后第二天互相挑战。20世纪上半叶爱因斯坦-玻尔思想实验之争的时代,通过使用想象力进行的实验,说服对方。在21世纪,这些并非是学习新概念的唯一方法,更非最佳方式。研究人工智能中的数学,应该更加关注任何给定表达式的直觉和几何解释,理解这些令人费解的表达式背后的含义,关注发生了什么,为什么会发生。利用像NumPy这样的计算库,帮助进行计算试验,往往更有意义。所以,机器学习的实践者在学习数学的同时,离不开如同Python或Julia这样计算机编程语言。
[机器学习中的数学]
2019年,剑桥大学出版社出版了一本Marc Peter Deisenroth, A. Aldo Faisal, Cheng Soon Ong著的新书《Mathematics for Machine Learning(机器学习中的数学)》(参考资料[9])。根据作者的说法,《机器学习中的数学》的目标是提供必要的数学技能,以便随后阅读有关更高级机器学习主题的书籍。
该书把基础(数学)概念从应用中分离出来,分成两个部分。第一部分涵盖了纯数学概念,包括线性代数、解析几何、矩阵分解、向量微积分、最优化、概率和统计学,没有涉及到机器学习。第二部分将重点放在利用这些概念推导出四种主要的机器学习方法:线性回归、主成分分析、高斯混合模型和支持向量机。对于学生和其他有数学背景的人来说,这些推导为学习机器学习提供了一个起点。对于第一次学习数学的人来说,这些方法有助于建立运用数学概念的直觉和实践经验。本书采用模块化编写的方式,可以用两种方式阅读:自下而上——从基础到更高级的概念;自上而下——从实际需求深入到更基本的需求。下图表示在这本书中所涵盖的机器学习的四个支柱和在第一部分介绍的数学基础。
来源:参考资料[9]图1.1
下图截取自书中,表示第2章介绍的线性代数概念有关概念及其与书中其它部分关系:
来源:参考资料[9]图2.2
每一章都包含了测试理解力的实例和练习(第一部分提供的练习主要是用笔和纸来完成的)。该书的网站上还提供了在第二部分中讨论的机器学习算法编程教程(jupyter笔记本)。
剑桥大学出版社支持免费下载本书,网址为:https://mml-book.com
这里介绍的三本教科书,具有注重数学理论基础和应用实践结合,并伴随有编程示例的特点。
【结语】
国内去年一度盛传的“徐匡迪之问”——“中国有多少数学家投入到人工智能的基础算法研究中?”引发过共鸣,不但为学术界所关注,也推动业界重视数学模型的研究和算法设计的创新。
据报道,2020年8月11日,著名科学家姚期智在受聘同济大学名誉教授举行的学术报告会上,分享了对当前人工智能(AI)研究(人工智能的科学基础、神经拓扑结构——神经网络研究的新视角、隐私保护学习、可控超级智能等)和相关人才培养的思考。报导强调,“AI离不开数学,但AI面临的问题不全是数学问题”(参考资料[10])。
在海外的一些大学里,计算机科学系的学生通常在接受数学和统计学方面的培训并不多。目前的机器学习教科书,也主要集中在机器学习的算法和方法上,并假设读者已经掌握数学和统计学,因此,这些书只花一两章介绍背景数学,或在书的开头或作为附录。许多人想深入研究基本机器学习方法的基础,就需要补充阅读机器学习所需的数学知识。所以,加强数学和统计学基础训练非常必要。
内容转载、商务活动、投稿等合作请联系
邮箱:geomaticshtd@163.com
欢迎关注慧天地同名新浪微博:
ID:慧天地_geomaticser
《慧天地》敬告
以上是关于人工智能背后的数学的主要内容,如果未能解决你的问题,请参考以下文章