# 人工智能

人工智能本科阶段不必多学，容易误入歧途，除非你将来打算进算法岗或者准备搞人工智能研究。而其他计算机领域的工作和人工智能几乎没有一点关系。如果你希望从事传统计算机行业的工作，例如前后端开发，那么人工智能几乎与你毫无关系。这里推荐这些书，只是因为考虑到有些同学或许真的打算从事这个方向，或者目前遇到了需要用到人工智能的项目，希望了解一下。

**几本理论书籍：**

这几本理论书一本也**不推荐**刚入门的时候读，硬啃理论非常容易劝退。另外，如果只是需要将 AI 作为工具而不是做研究，更是永远不需要读理论书。

*说实话，本科阶段如果不是要搞艰深的理论研究，我不认为有任何理由去学习这些晦涩的人工智能数学理论。即使希望了解一点理论以增进理解，也完全没必要读这些可以当作论文综述的东西，除非你真打算写人工智能相关的论文（还得是偏重于理论研究的那种）。可以买一本这样的理论书来翻一翻当作参考，但通读的必要性真的不大。*

* **机器学习（周志华）**：正文 415 页，出版于 2016 年，全彩印刷。国内人工智能领域最经典的“西瓜书”，周志华编写，比较全面地涵盖了机器学习及深度学习领域的基础理论知识，但有些地方受篇幅限制讲得并不清楚。有些公式推导不清楚的地方，可能需要结合另一本《机器学习公式详解》即“南瓜书”阅读。
* **统计学习方法（第 2 版）（李航）**：正文 438 页，出版于 2019 年，黑白印刷。另一本经典理论书，李航写的。仅涉及传统机器学习领域，在该领域的深度和广度都比西瓜书更好，讲解也更清楚，个人认为比周志华的西瓜书更适合作为入门理论书籍。
* **深度学习**：中文版正文 438 页，英文原版出版于 2016 年，全彩印刷。深度学习领域的经典理论书籍，俗称“花书”。不适合入门，可读性很差，面向读者不明，比起一本教材更适合作为一本学术专著或是学术索引。建议直接阅读英文原版，或者 Github 上的开源翻译版本。翻译较差。

**几本实用书籍：**

不要直接跳进深度学习的坑里，在很多情况下（甚至是大部分情况下）使用经典机器学习方法，例如随机森林和集成投票可以达到很好且高效的结果，不需要使用深度学习。在数据量比较小的时候（比如少于一万），深度学习在不使用数据增强方法的情况下几乎不可能达到很好的效果，甚至效果远远不如经典机器学习方法，并且训练速度也远慢于经典机器学习方法。因此学习的时候千万不要跳过机器学习基础直接开始学深度学习。

* **机器学习实战（第 2 版）**：中文版正文 613 页，英文原版出版于 2019 年，黑白印刷。很不错的一本机器学习图书。内容深入浅出，通俗易懂，结合 Scikit-Learn 和 Tensorflow(主要是 Keras)进行讲解，读完之后基本可以直接上手工程。本书内容同时涉及了经典机器学习和神经网络。版本新，涵盖广，语言通俗易懂，少公式推导但把原理都讲清楚了，不仅限于调包，只要会一点 NumPy 和 Pandas 就能上手，我想不到比这更好的书了。如果你对 NumPy 和 Pandas 仍不了解，可以去我上面提及的几本 Python 数据科学的书中挑一本读一读，然后就可以直接读这本了。翻译一般。
* **Python 深度学习（弗朗索瓦·肖莱）**：中文版正文 282 页，英文原版出版于 2017 年，全彩印刷。Manning 的经典图书，质量不错。这本是 Keras 作者自己写的书，使用 Keras 框架，算是一本非常合适且通俗易懂的深度学习入门书，本身书也比较薄，相当推荐。这本书应当是深度学习领域最热门的实战书了。翻译不错。[*第二版*](https://learning.oreilly.com/library/view/deep-learning-with/9781617296864/)*已出，只是还没有中译本，当前的第一版中文译本内容已经比较老了，请注意时效性。*
* **深度学习入门（斋藤康毅）**：中文版正文 265 页，日文原版出版于 2016 年，黑白印刷。A5 大小的小书，没涉及任何除 NumPy 外扩展库的使用，教你从最基本开始一步步实现一个最简单的神经网络。内容的广度和深度都不高，但胜在简单，适合作为入门书。由于不介绍 PyTorch 或 Tensorflow/Keras 的使用，因此读完后不能直接上手工程项目。翻译不错。
* **深度学习进阶 自然语言处理（斋藤康毅）**：中文版正文 374 页，日文原版出版于 2018 年，双色印刷。A5 大小的小书，与上一本书类似，内容同样不算深入，但是足够通俗易懂。如果有 NLP 方面的需求，承接上一本书读一读这本书还是很推荐的。由于不介绍 PyTorch 或 Tensorflow/Keras 的使用，因此读完后不能直接上手工程项目。翻译不错。
* **JavaScript 深度学习**：中文版正文 408 页，英文原版出版于 2020 年，黑白印刷。使用 JavaScript 作为编程语言，使用 Tensorflow\.js 作为示例，基本上就是 Tensorflow\.js 官方团队出的指南。注意不是 Python 深度学习。把这本书放在这里是因为有些场景可能需要在浏览器里跑深度学习框架，或者有些人特别钟爱 JavaScript，不想拿 Python 写深度学习（值得一提的是 VSCode 中有个叫 Node.js Notebook 的插件可以在 JavaScript 上达到类似 Jupyter 的体验）。Tensorflow\.js 也是 Google Brain 的项目，基本可以视作 Tensorflow 在 JavaScript 上的复刻，Keras 也可以正常跑。虽然本书比较冷门，但整体阅读体验接近 Python 深度学习，挺不错。翻译不错。

另外，目前暂时看不到几本比较好的中文书介绍 PyTorch，想学 Torch 最好直接看文档，官网上有一小时快速入门。不过如果只是日常调包的话，Keras 也是很好的选择（甚至仅就调包方面，是比 PyTorch 更好的选择），不一定要用 PyTorch。
