Py学习  »  机器学习算法

书单丨成为机器学习大神,你不能不懂数学

微软研究院AI头条 • 5 年前 • 521 次点击  


编者按:如何自学机器学习?需要哪些数理基础?怎样从入门到进阶,成就大神之路?对于这些问题,作为毕业后投身机器学习研究的数学博士、微软亚洲研究院机器学习组主管研究员陈薇无疑是最有发言权的。在这篇书单推荐中,她从机器学习综述、算法优化、理论延展、数学基础四大方面入手,为大家提供一份机器学习的“完全指南”。


在这个言必谈“AI”的时代,机器学习是重要的算法内核,而数学是理解和改进机器学习算法的必经之路。因此,我将在这篇文章中梳理机器学习的关键模块和与之联系的数学理论分支,列出一份机器学习的数学书单。


机器学习综述篇

机器学习算法的一般流程,是按照学习问题的性质设计模型,利用优化算法来最小化模型的正则化经验风险,从而学习出最优模型,然后应用到新的测试数据上。根据学习问题、模型、优化算法、正则化方法的不同,学习算法分为许多种类。浏览机器学习算法综述类书籍的目录,就不难发现机器学习的算法体系。以下3本机器学习综述类书籍,能帮助你建立对机器学习的整体认知


1)Pattern recognition and machine learning

作者:Christoper M. Bishop

适合人群:初级到中级学者

推荐指数:★★★★★



主要内容:本书全面介绍了模式识别和机器学习,包括近年来的最新发展。如果你对机器学习、统计学、信号处理、计算机视觉、数据挖掘等方向感兴趣,都可以学习这本书。在打开这本书前,你不需要有模式识别或机器学习的知识,但至少要熟悉多元微积分和基本线性代数,有一些概率论知识会更好,书中也会有对基本概率理论的介绍。


推荐理由:这本书浅显易懂,生动形象,较为全面地涵盖了线性回归、神经网络、核方法等经典的监督机器学习算法,以及非监督的概率图模型和EM算法,非常适合初步接触机器学习算法的读者们。


2)Neural networks and learning machines

作者:Simon Haykin

适合人群:初级到中级学者

推荐指数:★★★★★



主要内容:本书共15章,是关于神经网络的非常全面的、最新的论述,内容包括Rosenblatt感知器、回归模型、多层感知器、核方法和径向基函数网络、支持向量机、正则化理论、信息论学习模型等。

 

推荐理由:这本书从神经网络讲起,循序渐进,从感知机、多层感知机、径向基函数感知机,过渡到核方法和SVM,然后讨论学习算法与信息论和统计的关联关系,最后介绍动态系统的学习及其与递归神经网络的关系。


3)Deep Learning

作者:Ian Goodfellow, Yuoshua Bengio, Aaron Couville

适合人群:初级到中级学者

推荐指数:★★★★★



主要内容:本书是深度学习领域奠基性的经典教材,包含三部分:一,介绍基本的数学工具和机器学习的概念,作为深度学习的预备知识;二,系统深入地讲解现今已成熟的深度学习方法和技术;三,讨论具有前瞻性的方向和想法,它们是深度学习未来的研究重点。本书适合各个相关专业的学生,以及不具有机器学习或统计背景的软件工程师,来快速补充深度学习知识并将其投入实际应用。


推荐理由:这本书侧重深度学习在2006年再次兴起、获得更大成功之后的新进展,尤其介绍了深度学习在自然语言处理、语音识别、计算机视觉、在线推荐等中的应用,而且包含了表达学习这一研究视角。


机器学习算法优化篇

机器学习算法的最终性能会受到三个因素的影响:模型空间的表达力、优化算法的收敛速率、泛化能力。在表达力方面,除了神经网络的普遍逼近定理之外,定量的研究非常有限。推荐以下3本介绍优化算法的书籍:

 

1)Convex optimization

作者:Steve Boyd

适合人群:初级到中级学者

推荐指数:★★★★★



主要内容:本书分为理论、应用、算法三大部分。理论部分介绍基础概念、知识和方法;应用部分介绍凸优化在解决逼近与拟合、统计估计和几何关系分析这三类实际问题中的应用;算法部分介绍求解无约束凸优化模型、等式约束凸优化模型以及包含不等式约束的凸优化模型的经典数值方法,以及如何利用凸优化理论分析这些方法的收敛性质。


推荐理由:内容全面,侧重算法,更适合初学者,能够帮助读者对凸优化理论和方法建立完整的认识。

 

2)Convex analysis and optimization

作者:Dimitri P. Bertsekas et,al.

适合人群:中级到高级学者

推荐指数:★★★★★



主要内容:本书对凸分析及其优化进行了全面的阐述,除此之外,还通过引入一些新的分析视角来重构该主题理论。

 

推荐理由:本书侧重凸算法的性质,更适合对凸分析感兴趣的学者。

 

3)The nature of Statistical learning theory

作者:Vladimir Vapnik

适合人群:中级到高级学者

推荐指数:★★★★★



主要内容:本书讨论了统计理论背后的基本思想,包括学习和概括。作者将学习视为基于经验数据的函数估计的一般问题,重点讨论了学习理论及其与统计学的关系,进一步发展了学习理论和SVM算法。

 

推荐理由:在泛化方面,除了可以参考综述类书籍的正则化技术章节之外,Vapnik的这本书将泛化性能描述成统计推断问题,提出了著名的VC容度来解答泛化问题,并由此设计了结构风险最小原则,引出SVM算法。

 

近几年,深度学习的理论受到学术界的广泛关注,希望不远的将来我们能对深度学习的逼近、优化、泛化有更深入全面的了解,涌现出一批深度学习理论的书籍。


机器学习理论延展篇

前文中的机器学习理论均以统计学描述学习算法性能。除此之外,信息论、博弈论、计算复杂度的相关理论也与机器学习联系密切,因此在这里推荐一些相关书籍作为机器学习的理论延展。

 

信息论

作者:Thomas M. Cover, Joy A. Thomas

适合人群:初级到中级学者

推荐指数:★★★★★



主要内容:这本书是信息论领域中的一本简明易懂的教材,对熵、信源、信道容量、率失真、数据压缩与编码理论、复杂度理论、网络信息论和假设检验等进行了介绍,能在理论和应用方面为读者打下坚实的基础。


推荐理由:信息论对理解模型有独特的视角,可以给出非监督概率生成模型的统一体系,也有人尝试用来理解深度学习的信息瓶颈。这本书中概念清楚,内容完整。

 

博弈论

A course in game theory

作者:Martin J. Osborne, Ariel Rubinstein

适合人群:初级到中级学者

推荐指数:★★★★★



主要内容:本书介绍了博弈论的基本概念和理论基础,由四部分组成:战略博弈、完全信息扩展博弈、不完全信息扩展博弈以及联盟博弈。


推荐理由:随着交互环境中强化学习技术的兴起,博弈论为我们描述或者建立agent的行为提供了有效的概念。这本书中将理论与例子结合,直观易懂。

 

计算复杂度

Computational complexity:A modern approach

作者:Sanjeev Arora

适合人群:中级到高级学者

推荐指数:★★★★★



主要内容: 这本书涵盖了计算复杂度理论的经典成果和最近的成就,可作为任何感兴趣的读者的自学参考。


推荐理由:计算复杂度刻画了算法的效率,尤其是针对离散的组合优化。如果对与机器学习有重要关系的加密、量子计算感兴趣,可以通过Sanjeev Arora的这本书对计算复杂度有更深入的了解。


数学基础篇

另外,还有极其重要的一点——入坑机器学习的你,别忘了打好数学功底!作为理解和改进机器学习算法的必经之路,数学是一切的基础。从概率论、代数到实变函数,扎扎实实走好每一步,才能让后面的进阶学习更加顺利。


Probability

作者:A.N.Shiryaev

适合人群:初级到高级学者

推荐指数:★★★★★



推荐理由:概率论是统计学和机器学习的基本描述语言,值得好好学习。推荐Probability,这本书不仅内容全面,推导清晰,而且有直观的例子。读者可以跳过书中部分较深入的章节。


高等代数

出版社:高等教育出版社

适合人群:初级到中级学者

推荐指数:★★★★★



推荐理由:代数是处理矩阵问题的主要技术,同时可以帮助深入理解(线性)空间。推荐高等教育出版社的《高等代数》,概念清晰,重要定理及证明完整,并配有大量习题。


此外,实变函数能够帮助我们深入理解收敛、微分、积分,并结合测度论过渡到随机积分和随机微分方程,而随机微分方程是描述随机动态系统的主要技术。泛函分析中算子的概念和四大定理对机器学习很有用处,比如理解Q-learning的Bellman 算子,用压缩映射定理刻画强化学习问题的不动点,等等。因此,以下四本相关书籍也值得大家仔细阅读。


实变函数论

作者:周民强


测度与概率

作者:严士健,刘秀芳

 

泛函分析讲义

作者:张恭庆,郭懋正


随机微分方程引论

作者:龚光鲁


最后,祝大家学习愉快!


你还想了解哪个领域的经典书目呢?欢迎在评论区留言!



你也许还想看


 书单 | 数据挖掘,你不应该错过的六本书

 书单 | 计算机视觉的修炼秘笈

 书单 | NLP秘笈,从入门到进阶



感谢你关注“微软研究院AI头条”,我们期待你的留言和投稿,共建交流平台。来稿请寄:msraai@microsoft.com。




今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/aA4LVI96OR
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/23656
 
521 次点击