机器学习的书籍介绍

目前机器学习仍然备受关注,希望学习的人仍很多,本人作为大学教授这方面课程的老师,收集并阅读了不少该领域的书籍,这里做一个介绍,,仅供有兴趣读一些机器学习书籍的人参考。对于一般研究生和技术人员,也不必阅读太多书籍,根据自己的兴趣选择一、二本认真阅读。要深入研究或开发自己的项目,还是要早早开始读Paper或开始实践。但读一两本书是必要的,打下好的基础是有益的。

对于上课的老师,除了自己要做研究或实践外,多读几本书还是有必要的,一本书主义作为学生没问题,作为老师多少还是有点单薄。

考虑读者的实际需求,重点介绍原理算法类书,最后也简单介绍几本机器学习理论的书和实践的书。算法类书介绍的比较多,分为国外和国内两组。

 

一.国外原理与算法类书

 

1. Bishop, Pattern Recognition and Machine Learning(2006),简称PRML。

将这本书列在第一本,是这本书写的好,尤其从一个大学老师角度看,这本书逻辑之清晰、概念之准确、很值得推崇。本书比一般国内大学用教材要深一些,但做为研究生教材用也是可以的。对经典机器学习涵盖的比较全,但这本书的问题是2006年出版,恰好是深度学习诞生的年份,自然没有关于深度学习的内容,但其神经网络的内容还比较全。(作者另有一本:Neural Networks for Pattern Recognition,专门讲神经网络,出版日期更早了)。

本书偏统计方法尤其侧重贝叶斯方法,决策树集成学习等方向内容偏少。

2. Murphy, Machine Learning(2012)

这本书罗列的算法内容比PRML更全,但讲述的没有PRML清晰,1100多页的大厚书,不适合做为教材,我本人是做为手册放在办公室的,需要时备查。有一章深度学习,但最常用的CNN和RNN缺席,讲了一些深度学习早期的工作。这本书在准备第二版,据说更庞大,要分成两部分,但还没有见到书。

3. Goodfellow , Bengio , Courville . Deep Learning(2016)

这本书的三位作者均是深度学习的重要学者,第二作者前几年获图灵奖,是注意力机制的提出者,第一作者Goodfellow是GAN(生成对抗网络)的提出者,这应该是第一本完整系统的深度学习书。三位大家写的书自然是深入的和地道的。这本书水平很高,但不是一本细致梳理的教材,而是一本技术专著类的书籍,其对机器学习基本原理和算法的介绍过于简略,故作者推荐去读前述的1. 或2.两本书以做为基础。这本书的精华是其第二部分,总结了到当时(2016)深度学习的主要内容,包括CNN,RNN(LSTM),正则化,深度学习中的优化等核心内容。其第三部分是杂论,详略不一。

笔者曾以李航的《统计学习方法》和这本书的第二部分合起来做为教材开课,用两本书合起来开课挺累,当时DEEP LEARNING这本书也没有译本,复印了100多页给学生做教材。

 

4. Hastie , Tibsshirani , Friedman . The Elements of Statistical Learning(2009),简称ESL

这本书名头也很大,作者是斯坦福大学三位大牛的统计学家,各自在统计学和统计机器学习中有奠基性的贡献。这本书内容庞杂,数学推导又非常简练,很多结果都是直接写出的,没有推导过程,总结归纳的文献众多,因此这本书不太容易读,对于教授机器学习的老师来讲,是本不错的参考书,但给国内学生做教材还是不容易的。若用这本书做教材,比较适宜的做法是:对于每一章,除了阅读教材外,再推荐3-5篇论文做延申阅读。若是这样教一门课,在目前国内大学,有几所大学能够进行下去,以个人经验看不容乐观。但对于确实对统计学习有极大兴趣的研究生,老师可推荐其阅读。

这本书是一本统计学习的小众读物,有两个译本,但是能读这种水平书的读者,还需要翻译本吗?

5. Haykin . Neural Networks and Learning Machines.3rd ed. (2009).

国外机器学习书的作者来自许多不同学科,机器学习本身也是多学科交叉的产物,例如Bishop是学物理出身,后来加盟微软剑桥研究院,目前是该院院长。前面4 号ESL的三位作者都是统计系的教授,这位Haykin教授则是一位信号处理与通信专家,他的《自适应滤波》、《信号与系统》和《通信系统》都是这些领域有影响的教材。

Haykin这本书是神经网络领域一本很全面的书,同时又覆盖了ICA、PCA、动力系统状态估计(卡尔曼滤波、粒子滤波等),对于理解了动力系统状态估计的人,理解RNN网络以及RNN网络下的扩展BP算法是很自然的事情,本书这方面比其他市面的书要更深入。本书比Bishop的Neural Networks for Pattern Recognition覆盖面更宽,可以说是集机器学习和信号处理于一体的综合著作。尤其对感兴趣于机器学习解决序列处理问题的读者,有很高的参考价值。

6. Theodoridis . Machine Learning: A Bayesian and Optimization Perspective (2015).

作者是希腊的教授和院士,也是从事模式识别、信号处理和机器学习的学者,他还有另外一本大书Pattern Recognition,和这本书一样都是千页以上的厚书。国外教授自己可把控的时间多,在功成名就后,可根据自己兴趣在一个方面发展,喜欢写书的就有足够时间写作,例如这位的两本书都是厚厚的,可充分展开讨论,国内教授杂事太多,就算愿意去写本教材,往往是能精炼就精炼。

这本书很全面,偏统计方法,符号体系与信号处理类著作更相近,有很多章节放到信号处理书中也没问题,本来“机器学习”、“模式识别”、“现代统计学”、“现代信号处理”都有大量内容重叠。本书偏统计方法,决策树等方向内容偏少。

7. Mackay. Information Theory, Inference, and Learning Algorithms(2003)

上面提到过,机器学习是多学科交叉的领域,很多不同学科与机器学习知识有很多重叠,这本书也是这个思想的一个诠释。这本书将信息论、统计推断和机器学习打包在一本书里介绍,试图对其融合在一起,做了很好的尝试。

这本书对现在的学生来讲,估计有兴趣读下来的不多。对于教机器学习的老师来讲,读一读不无助益。

8. Alpaydm . Introduction to Machine Learning. 3rd ed. (2014).

以上著作都是欧美学术圈的作品,以下介绍两本其他地区作者的。

这位作者是土耳其教授,这本书做为机器学习的入门教材,内容比较全面,但也没有太多特色。MIT出版社出版的,版本更新比较快。

9. Gopal . Application Machine Learning,(2018)

这本书的作者是有印度MIT之称的印度理工的资深教授和院士,作为以应用为主的机器学习教材,内容还是很全的,深度也够。只是2018年出版的教材,也包含了神经网络,怎么就不讲点CNN和RNN呢,不提一提深度学习呢?看来学术界还是有些学者不那么喜欢深度学习。

10. Mitchell. Machine Learning (1997)

之所以列出这本书,是对历史的尊重吧!这应该是第一本正式出版的、完整的“机器学习”教材。这本书仍不过时,对机器学习的整体思想、评价准则等的叙述甚至高于后来的一些教材。对于机器学习老师来讲,读读这本书还是有收益的。但这本书已不适合作为当前的教材用了,理念讲的很清晰,但算法方面比较旧了,毕竟连SVM也没有包含。

 

二.国内原理与算法类书

国内机器学习书近年也出版了不少,但大部分是技术类的书籍,可以作为大学教材的不多,这里只介绍4本。我简单将之分为第一代和第二代。

11. 李航. 统计学习方法,清华大学出版社,2019

12. 周志华. 机器学习,清华大学出版社,2016.

这两本书在国内已经很流行,我之所以将之归为第一代,主要是这两本书基本没有介绍深度学习。

李航的第一版很薄,集中在统计学习范畴,可以看作4(ESL)的一个简化版(李博士也有类似的自评),但每一个专题讲的还是很清楚,作为一本统计机器学习入门课程的教材还是不错的,完全没有涉及神经网络更别提深度学习了,第二版19年出版,仍未包含神经网络,主要增加了一些无监督学习的专题。

周志华的机器学习涵盖内容比较全面,可以说作为一门不包括深度学习的机器学习课程的教材是足够了。周老师这本书特别适合计算机系或人工智能学院里开设一系列机器学习课程的第一门课的教材,对机器学习打下一个全局的知识基础,后续可由专题课程进一步深化。

 

13. 张旭东. 机器学习导论,清华大学出版社,2022.

14. 邱锡鹏. 神经网络与深度学习,机械工业出版社,2020.

我将这两本书列为机器学习教材的第二代,一是他们都是2020年后出版的新书,二是都包含了深度学习。

张旭东这本书我写过专门介绍,下学期我将换这本书为我课程的教材,承蒙张老师提供了全书的ppt讲义。这本书内容比较全了,经典机器学习的主流方法都给了介绍,例如SVM、决策树、集称学习、无监督等都有专章介绍,另用3章篇幅介绍了深度学习,2章篇幅介绍了强化学习包括深度强化学习。像我所在专业只开设一门机器学习课程,这本书作为教材是很合适的。到了今天,如果只开一门机器学习课程若不讲深度学习的话,学生是一定有意见的,而且用多本书作教材太难受了,所以,今年初我看这本书时,就决定换这本书作教材了。

邱锡鹏这本书主要讲深度学习,与3.类似,是深度学习的专著,由于比3.晚出版了4、5年,因此写入了更多新东西,包括GAN和Transformer都包含在书中了,这本书讲的也比较清楚,深度学习里该有的内容都包含到了,若在目前情况下开设“深度学习”课程,我觉得这本书比3.更合适,尽管3.是权威之作。我正在准备开一门研究生的深度学习课,就以这本书为教材。

这4位国内的作者除李航是原微软亚洲研究院(MSRA)高级研究员(后来离开MSRA去了华为)外,其他三位分别为南京大学、清华大学、复旦大学的教授,都是很认真的学者。在内容上,后两本书比前两本用的数学工具略深一些。

 

三.其他

写得够长了,其他书籍就简单介绍了。

侧重机器学习理论的书籍有几本。机器学习理论和机器学习算法目前还是各自为战,例如前面的1-4是目前国际上介绍机器学习算法的名著,几乎都不提及机器学习理论,这也是一件有意思的事情。国内教材中,12. 13.还都介绍了一些机器学习理论的初步。目前还是有一些以机器学习理论为主的教材,如以下几本。

15. Mohri等. Foundations of Machine Learning(2018).

16. 张文生等译. 深入理解机器学习:从原理到算法. (2016.)

17. Vapnik Statistical Learning Theory(1998)

Vapnik The Nature of Statistical Learning Theory(2000)

 

15、16是两本偏机器学习理论的教材,16有英文版但我手头只有中文译本,17是SVM的发明者也是VC维的提出者Vapnik的两本著作,前者是详细版,后者是简化版。

 

关于Python编程和机器学习实践方面的书,我作为已经50岁的“老教授”已不是最好的介绍者了,这个留给在一线干活的年轻人去介绍吧。还是介绍一本:

18. Geron A. Hands-on Machine Learning with Scikit-Learn & TensorFlow  2nd ed. (2017)

这本书将机器学习从经典算法(svm、决策树、集称学习)到深度学习(CNN,RNN,Transformer、GAN)等的实现都给出详细介绍,使用的平台主要是TensorFlow,这本书我买了2本放在实验室,我自己的研究生入学后拿去看看,依此作为编程入门。

 

已经够长了,就此打住。还有很多机器学习专题的书,例如强化学习、迁移学习、联邦学习等,找时间另写一篇文章。五一假期却哪儿也不能去,憋出这篇文章来。

(说明在知乎发表了同一文章)

你可能感兴趣的