机器学习,人工智能相关最新图书推荐

如果您是初学者,那么您可能会将深度学习与机器学习混为一谈。实际上,机器学习包含深度学习,深度学习只是机器学习的研究领域之一。深度学习是一个交叉学科,涉及到神经网络、人工智能、图建模、最优化理论、模式识别和信号处理等多学科领域知识。硬件计算能力的升级使得深度学习在人们的日常生活中有了用武之地。深度学习的应用领域包括计算机视觉、语音识别、图像识别,自动驾驶,自然语言理解、手写识别、音频处理、信息检索、机器人学等。
关于深度学习,市场上已经有很多参考资料以及著作。若您是个书虫,点击这里可以看到 Amazon 上关于深度学习最新的一些书。这里我们主要推荐一些理论和实践相结合得比较好的书,供大家学习参考。

关于深度学习

Deep Learning (Adaptive Computation and Machine Learning series)

这本书的作者是 Ian Goodfellow,是谷歌大脑的科学家之一。
很多人认为这本书是深度学习的圣经,因为它是目前为止唯一一本将数十年的研究整合在一起的书。
不过,需要读者有一定的数学基础,因为它包含了线性代数、概率论、数值计算和机器学习等相关的背景知识。如果是入门的话,不建议从这本入手,读起来会很有挫败感。
如果是要掌握深度学习,这本可以算得上比较全面的指南,因为除了背景知识,它还对正则化,优化算法,实用性方法等有详细的讲述,对自然语言处理、语音识别、计算机视觉等深度学习的实际应用也做了一个详尽的分析。

Hands-On Machine Learning with Scikit-Learn and TensorFlow

 
 

尽管这本书也有很多公式,但是它可读性非常好,强烈推荐。
作者 Aurélien Géron 可以将复杂的概念用非常简单的方式讲出来,一般的读者不需要具有特别精深的专业知识也可以理解。
这本书中不仅有很好理解的例子,还有相应的代码。如果在第一遍时比较关注实战和例子,那么第二遍的时候可以回头看看相关的原理和公式,更加深入地去学习。

Deep Learning with Python

 
 

作者 Francois Chollet,
正如他在 Keras 项目中,可以将复杂的概念简单化一样,他的写作方式也同样具有很漂亮的可读性,即使是 AI and deep learning 里最具有挑战性的概念,他也能够深入浅出地讲出来。
而且本书中也有很多不错的例子,可以先看一下他的 github 上的代码 就知道这个风格了。

Deep Learning: A Practitioner's Approach

 
 

这本书主要用了 Java 的框架 DL4J,关于人工智能的很多研究多数都是用 Python 来做的,但随着越来越多的企业应用机器学习等技术,我们很可能会看到越来越多的深度学习应用将用 Java 来实现,因为它在很多大公司还是使用最广的语言。
如果你已经有一些深度学习的基础知识,只是想看如何用 Java 来实现,那就可以跳过前面直接看例子。
但是如果你并没有太多的深度学习的经验,也没有很强的 Java 背景,那么这本书你可以好好翻一翻。尤其是第 4 章-深入学习的主要架构,这一章非常的好,可以帮你解决现实应用中的关键的架构问题。

TensorFlow Machine Learning Cookbook

 
 

这本书虽然在内容和代码里会有一些打印错误,但整体上它在人工智能应用的各领域如自然语言处理,都给出了一些很好的例子。
和其他的手册书一样,这本书主要关注在代码上,如果你还不知道一个卷积神经网络的输入和输出是什么,那么直接读它就会觉得有一些困惑,所以入门的话不推荐此书。
如果你已经看过其它的书,实战了一些例子,那么这本书可以提供更多的练习。


下面几本是我觉得对初学者会有帮助的书。

很多对深度学习感兴趣的伙伴,可能最担心的就是自己的数学已经忘的差不多了。我觉得不一定要先把数学学的很好才能学深度学习,但如果你在看这些算法时,遇到了不明白的地方,某些公式推导不清楚为什么时,还是有必要先复习一下本科时学的那几门最基础的数学的,例如,线性代数,微积分基础,概率论,有条件的话,可以把这三本书放在电脑旁,有空的时候翻一下,回顾一下原理,遇到问题的时候就知道该去哪里查了。
或者想进一步了解一下数学的话,可以看一下这本:

数学

Mathematics: A Very Short Introduction

 
 

这本书将问题分解成更简单,更干净的步骤。
生活就是一系列复杂的算法,但我们并不需要完美的模型,数学可以帮我们将问题分解为其最基本的组件,变量和规则,我们只需要学习这些变量和规则即可。

数学上比较令人害怕的就是各种符号啦,如果知道它们的意思,那么就不会被吓到了,这里有一个网站,可以查看各符号的含义

另外我觉得比较基础的理论就是神经网络,例如常用于图像识别的卷积神经网络,常用于自然语言处理的循环和递归神经网络等,这些网络在 Kaggle 的比赛中也比较受欢迎,调的好的话效果会很好,为了有更好的效果,了解一下内部原理是必要的。

下面这本书就一步一步教你用 Python 搭建自己的神经网络,并且专门介绍了神经网络所需的数学,对于理解神经网络会比较有帮助。

Make Your Own Neural Network

 
 

TensorFlow

当然啦,除了理论,实战也是很重要的,而且也是有趣的一部分,那就要用到深度学习的框架。
在 Github 上比较火的开源框架有 TensorFlow,Caffe,Keras,CNTK,MXNet,Torch7,Theano等,可以找到很多比较的文章,我这里就不赘述啦。

 
 

我现在是在学 TensorFlow,接着打算学一下 Keras。
关于 TensorFlow,官方文档就是一个很好的教程,不过如果想了解多一些理论知识的话,可以看一下下面两本书。里面除了详细的代码讲解,还有一些背景的介绍。
当然,因为是工具书,理论不会讲的太深,但对于初学者也是够用了,关于 AlexNet,VGGNet,ResNet 等会介绍基本的来源,分析一下优势和不足,介绍基本的网络结构,算法的实现过程,一步一步的代码实现和详细的讲解。
如果对某些结构感兴趣,想要深入地研究 ,可以去翻相关的论文或者书籍。

TensorFlow实战

 
 

TensorFlow:实战Google深度学习框架

 
 

这里分享一下我的学习过程,最开始的时候,会对它的应用比较感兴趣,所以会去看如何用它实现简单的自动驾驶,聊天机器人,语音识别,写音乐。当了解完大体的应用场景和过程时,就会专注于一个比较感兴趣的应用,看看是不是可以做的稍微高级一点。接着就会想要掌握一下整体 TensorFlow 框架的各种基本组建,像搭乐高似的,看是否可以再组装的更丰满一些。
你有哪些学习心得呢,欢迎分享出来哦。

机器学习

接下来再推荐三本关于机器学习的书,我觉得这三本各有所长,喜欢三者结合着看。

机器学习

我比较喜欢这本书的公式表达,很简单清晰,不会一翻开就被特别吓人的符号吓到,每个算法都会用一个小例子来讲一下具体的过程,复杂的概念可以很清晰明了地解释清楚。

 
 

机器学习实战

上面是算法理论,这本书就是教你用 Python 的代码实现。它会列出算法的优缺点,列出清晰的流程,先写出算法的伪代码,再配上 Python 代码,关键的代码行还有详细的讲解。

 
 

统计学习方法

这本书会更深地讲算法背后的理论,尤其是从数学的角度,公式推导也更细,要知其然,还要知其所以然。这个时候如果被数学卡住了,就可以用前面的方法,以目标为导向,抓住要点去回顾吧。

 
 

好了,我觉得上面这些就够看一阵子的了。
今天的目的就是列出一个书单的短评,供大家选择适合自己的,如果是踏踏实实在学习的话,根据各书特色和自己的需求,建议先选中其中一本,要把 80% 的时间花在最重要的 20% 的事情上面,效能才最高。

参考:
https://hackernoon.com/a-roundup-review-of-the-latest-deep-learning-books-6e5df4b0f3d3

https://hackernoon.com/learning-ai-if-you-suck-at-math-8bdfb4b79037



posted @ 2018-09-30 14:22  蜕变C  阅读(318)  评论(0编辑  收藏  举报