推荐几本不错的机器学习书
Posted CFD之道
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了推荐几本不错的机器学习书相关的知识,希望对你有一定的参考价值。
昨天推了一篇利用Pytorch做非线性回归的文章,收到了不少道友的后台留言,其中大部分留言是让推荐一些学习教程。说实在的我也不知道该推荐什么,因为这方面的教程实在是太多了。不过这阵子买了不少这方面的书,虽然很多都没看完,不过还是推荐几本真正看过且觉得值得一看的神书。
总体上来说,人工智能(Artificial Intelligence,AI)、机器学习(Machine Learning,ML)、神经网络(Neural Network,NN)以及深度学习(Deep Learning,DL)之间的关系如下图所示。
这几年火爆全网的深度学习只是传统神经网络下的一个小分支,而神经网络只是机器学习大家庭中的一个小成员,机器学习只是人工智能下的一种技术实现方法。人工智能的概念在图灵在世的时候就有了,距今都有百八十年了,并不是什么新东西。关于人工智能方面的名著很多,如果不想看大量数学公式的话,推荐看库兹韦尔的《奇点临近》与《机器之心》,可以当科幻或科普读物,这是两本神书。


这两本书都没有实践的部分,如果想边撸代码边学习的话,建议看下面这两本《机器学习实战》。
首先是Peter Harrington的《机器学习实战》,这本书没有讲任何框架,采用纯Python实现机器学习算法。如果想要理解各种传统机器学习算法的运行原理,强推此书。(图灵系列的人物封面书大多比较经典)

如果想快速将机器学习应用于工作当中,可以看奥雷利安·杰龙(Aurélien Géron)的《机器学习实战》,这本书包括两部分,前半部分讲的是利用scikit learning库实现传统机器学习,后半部分讲的是利用TensorFlow和Keras实现深度学习。(附注:O’REILLY的动物封皮书多半也是经典)

国内的机器学习方面带有大量代码的书还是别看了,基本上都是翻译的文档。
再来看深度学习方面的教材。深度学习方面在前两年基本是TensorFlow一家独大(毕竟谷歌大腿比较厉害),后面Pytorch异军突起(Facebook的腿似乎也不瘦),似乎有盖过TensorFlow的趋势。不过前阵子TensorFlow吸收了排名第3的Keras并加强了不少的特性,到底谁干过谁还言之过早。其他的一些框架如mxnet(亚马逊)、paddlepaddle(百度)、CNTK(微软)也都各具特色。不过这些框架越发展相似度越高,搞懂其中任何一个,再转其他的基本上没啥障碍。
深度学习很多人推荐看花书,不过我不建议初学者看那个,太多看不懂容易放弃治疗。建议初学者可以看弗朗索瓦·肖莱的《Python深度学习》,这本书使用Keras演示了深度学习应用中的大部分概念。作者弗朗索瓦·肖莱何许人也?大名鼎鼎的Keras框架的作者,应该没有人比他更了解Keras框架了。遗憾的是Keras被TensorFlow吸收了之后此书没有更新(毕竟还是有少量语法改动),同时此书代码使用的是python2。不过这应该都不成问题。

如果想看深度学习背后的理论,可以看看花书。就是下面这本,书名就叫《深度学习》,此书被誉为AI圣经。三个作者中有一个是图灵奖获得者,绝对大牌。作者Ian Goodfellow、Yoshua Bengio以及Aaron Courville。额,我看了一小半就看不下去了,好多理论看不太懂。

下面这本李沐大神的《动手学深度学习》也很不错,封面和花书有点像。作者李沐是框架mxnet的作者,此书作为深度学习入门非常不错。书里面的代码使用的是mxnet,不过网络上也有此书pytorch版本的。此书是开源的:mxnet版(https://github.com/d2l-ai/d2l-zh),pytorch版(https://github.com/ShusenTang/Dive-into-DL-PyTorch)。

如果想要轻松一点,可以看看下面这本安德鲁·特拉斯克(Andrew W.Trask)的《深度学习图解》,公式和代码都比较少,语言比较通俗易懂。

还有一些更轻松愉快的,如下面的山下隆义的《图解深度学习》与杉山将的《图解机器学习》。
我学的是pytorch,某东上关于pytorch的书基本都买了看了,不过大多数都没营养,不是翻译就是抄,还不如直接看官方文档。这里推荐Ian Pointer的《基于PyTorch的深度学习》,内容比较简单明了。
以上是关于推荐几本不错的机器学习书的主要内容,如果未能解决你的问题,请参考以下文章