导读:懂行人都知道,这本“蜥蜴书”江湖地位有多高。这本书曾经点燃了无数人学习AI的热情!很多大佬都把这本书列为AI工程师的必读书。我们一起看看这本书该怎么读。

作者:木羊同学

来源:华章计算机(hzbook_jsj)

现在机器学习很热,大家都想学习机器学习,可是看哪本书呢?时间宝贵,肯定得选经典的“必读书”。所以,现在网上到处都是“机器学习必读书单”。我看过很多个版本的书单,总感觉差点意思。怎么说呢,我见到的大部分书单,里面的书确实都挺好,也都是业内公认的经典,确实值得一读。不过,现在有一个大家都很爱争论的话题:给初学者推荐经典到底是好还是不好?

就拿机器学习来说吧,机器学习是无论在理论、技术还是应用方面都是“大型跨界话题”,大家都叫“机器学习”,但在同一面旗帜下,每一个方向对知识都有不同的侧重,有时甚至可能差异很大。这就可能导致一个问题:某一个方向的经典书籍,可能在另一个方向看来就有点跑偏,让人产生“只见树木不森林”的感觉。

对于初学者来说,另一个问题可能更为严重。我们看书,肯定都想着由浅入深、由易到难,循序渐进地学习下去——先夯实脚下基础,再考虑飞天绝技。但是呢,很多水平很高的作者都很难免俗,多少有点偶像包袱,总想把书写出水平来。这当然是好事,不过这就导致了一个结果,有相当部分的书,单从书的内容本身来,说确实是好书,思想水平很高,确实“经典必读”。但很多时候,为了内容显得不那么拖沓,这些书的作者都作了一个假设——假设读者对机器学习已经有了基本的了解,最好还有相当的实践经验。所以,作者把一些基础内容,尤其是初学者最为关注的“入门必踩坑”给省略过去了。作为读者,如果你不了解其中省略部分的内容,自然就会读得磕磕碰碰,有一种上下文衔接不上的突兀感。这就是为什么很多人并不建议初学者上来就读经典,认为这些站得太高的经典反而容易给初学者留下“不很友好”的感觉。

实战入门典范:蜥蜴书——《机器学习实战》

那么,有没有从初学者角度写作的经典教材呢?有的。

《机器学习实战:基于Scikit-Learn、Keras和TensorFlow:原书第2版》(以下简称“蜥蜴书”),是机器学习领域非常有名的一本书。由于书的封面画着一只蜥蜴目的动物,所以有人按照动物书的习俗,把它称为“蜥蜴书”。当然了,生物学上的蜥蜴目家大业大,样子也都长得差不多,你管这只动物叫壁虎或者守宫,我想应该也没什么问题,我自己就更喜欢把这本书称为“壁虎书”。

这本书成名很早,很有名,有名到了什么地步呢?记得有段时期,我找了五六个版本的“机器学习必读书单”来看,每个书单里都有“蜥蜴书”,真的是“卷卷有爷名”。所以,大家给了它一个相当有意思的称号—— “机器学习四大名著”之一。

为什么这本书这么经典,让大家纷纷推荐呢?

说实话,这是个很难回答的问题。觉得“蜥蜴书”是好书的人很多。不过,一千个人眼里就有一千个哈姆雷特,我想大家应该都有自己喜爱这本书的理由。就我的个人观感来说,答案就写在书名上。

《机器学习实战》是中译版的书名,原版书名为《Hands-On Machine Learning with Scikit-Learn,Keras&TensorFlow》,“Hands-On”不妨直接翻译为“上手”,这是一个比较特别的视角,也是我觉得这本书特别适合初学者阅读的一个地方。机器学习的书大致可以分为两类,一类偏重理论介绍,翻开都是各种数学公式、定理和证明,机器学习如果给你一种很难学也很难用的感觉,应该就是因为先看了这些书。另一类则偏重应用工具的介绍,机器学习最终是需要编程才能发挥作用的,也有许多成熟的开发框架,而这类书就是介绍这些框架的使用方法,虽然也爱自称“实战”,不过翻开往往都是API、说明文档和代码,让你又觉得机器学习好像也没什么特别,像是一种新的编程技术。

“蜥蜴书”属于哪种呢?也许你会觉得属于第二种,其实还是有很大区别。很多人都说,这本书好就好在结构清晰、解释清楚,更重要的是,真的能见微知著。这么说可能有点抽象,关键就在于书名的“上手”。它不会让你觉得是一本编程技术的使用手册,而是首先告诉你机器学习能解决什么问题,怎样解决这些问题,以及使用什么样的工具来解决,让你能够搞清楚,机器学习到底是一项怎样的工作。

“蜥蜴书”写了很多内容,我曾经请教一位前辈,这本书哪一章最有用?前辈沉思许久,说了一个让我意外的答案:附录B。附录B的标题是《机器学习项目清单》,主要内容可以用开篇的第一段话概括:“该清单可以指导你完成机器学习项目。主要有8个步骤”。前辈解释说,很多人喜欢将机器学习当作一种噱头,说“看啊!我的产品用了机器学习所以功能怎样怎样……”。可是,当你真的要迈出使用机器学习的第一步时,你就会发现,你最想知道的不是那些天书一般的公式,也不是各种机器学习框架的使用细节,而是一个看似很简单的问题——我该干什么?而“我该干什么”,正是“蜥蜴书”首先要告诉你,让你第一时间就搞明白的东西。

知道了该干什么,才能真正“上手”。这就是我认为“蜥蜴书”最大的特点。所以,它能被列入“四大名著”,是因为它非常适合入门阅读,是一本真正意义上的必读书。

“蜥蜴书”讲什么?

别急,在介绍书之前,先来说说机器学习。大家都知道,现在很热门的人工智能叫“深度学习”,那这个深度学习和这里的机器学习是一种什么关系呢?是包含关系,机器学习包含了深度学习

光看名字,新手很容易认为机器学习是一种技术,或者说是一种智能算法。其实,机器学习是一堆智能算法,或者按照更常用的术语,是一堆的模型,譬如线性模型、支持向量机模型和决策树模型等等。每种模型都有自己的一套理论体系,其中有一种模型称为“神经网络”模型。“神经网络”不是一种新模型,提出来很早,发展很曲折,已经经历了几起几落。在2006年,著名的Hinton教授发表了一篇论文,说采用层数更多,也就是更深的神经网络,模型就能取得更好的效果。大家一看,果然效果拨群,所以就把这种技术成为“深度学习”。也就是说,深度学习虽然是这几年火起来的,但绝非凭空而生,它的前身就是机器学习下面的神经网络模型。

不过,都知道深度学习是机器学习的小弟,可是架不住“小弟”成了当红炸子鸡,已经有几分“说到AI就是机器学习,说到机器学习就是深度学习”的味道。很多想学机器学习的同学,其实真正想学的只是深度学习的这部分。而我们前面也介绍了,机器学习本身就是一堆自成体系的模型大杂烩,专门盯着深度学习来学也未为不可。

所以,这就导致教材需要面临艰难选择,到底是将所有模型一视同仁,都用差不多的篇幅介绍,写一本货真价实的“机器学习”教材?还是认清现状,干脆就把那些过气的老哥们统统扔掉,写一本“深度学习”教材?市面上也确实有分别以“机器学习”和“深度学习”命名的教程,也体现了各自的选择。不过,从工作的角度,或者说,从解决问题的角度来看,机器学习也好,深度学习也好,根本的作用还是解决问题发挥作用,都是工具,而且机器学习领域有著名的NFL定理,未必深度学习就一定是更好一点的工具。

那么看重工作实践的“蜥蜴书”会怎样选择呢?小孩子才做选择,成年人当然是全都要!这本书的做法是将全书分成两个部分,第一部分介绍机器学习,第二部分介绍神经网络和深度学习。

这个做法还带来了另外的好处。虽然从理论上,深度学习是机器学习下面的子分支,而且最常用的编程语言都是Python,但在实际工作中,开发所使用的的技术框架并不是同一个。目前机器学习开发最常用的是Scikit-Learn,已经成为开发机器学习应用无可争议的带头大哥,基本上业界提到机器学习开发十有八九都会选择用它。而深度学习开发当前则是两套框架双雄对峙,其中一款是Google率先推出来的Tensorflow,另一款则是由Facebook稍后发布的Pytorch。

这几套框架的使用方法并不相同,不过,现在“蜥蜴书”选择将全书一分为二。这样一来,在机器学习部分,就同时重点介绍Scikit-Learn,而到了深度学习部分,则选择了重点介绍Tensorflow,并附上对应的案例。这样划分,不但与理论部分前后呼应,而且更贴近当前业界的实际工作情况。

“蜥蜴书”阅读攻略

阅读这本书,不妨根据自己的喜好需要,采用总-分的顺序阅读。

第一部分是机器学习的内容,不过,第一、二章是对机器学习领域的整个工作的总体介绍,如模型是怎样一回事?怎样使用?以及使用模型之前要做什么等等。在这个部分,机器学习和深度学习任务的大体模式是一致的。无论你对哪方面更感兴趣,都建议阅读前两章,让自己对机器学习和深度学习任务有一个总体印象。

接下来就可以根据爱好选择优先阅读的部分了。对机器学习感兴趣的同学可以顺序阅读,书主要是按机器学习的问题类别组织的,为有监督学习下的分类问题、回归问题,和无监督学习下的聚类问题,以及降维问题。

Scikit-Learn是一款十分好用的机器学习工具,原因就在于工具丰富,有多种手段处理机器学习问题。有监督学习是现在机器学习最为热门的研究和应用领域,所以在模型方面,“蜥蜴书”着重介绍有监督学习最常用的线性模型、支持向量机模型、决策树模型,也介绍了机器学习的“制胜法宝”——集成学习

有一个地方也建议大家格外留意:就是这本书书如其名,极其注重“实战”,始终从工作流程的角度进行介绍。在机器学习任务中,模型当然是唱重头戏的主角,但并非唯一的角色,还有一些周边任务,而实际工作中如何完成这些工作,譬如如何使用Scikit-Learn构造端到端的流水线,都是十分具有实践参考价值的内容。

对于更关心深度学习的同学,再了解了机器学习任务的总体情况之后,可以直接翻到这本书的第二部分。这部分介绍深度学习,而且可以说是当前市面上最好的深度学习介绍材料之一。当年Google率先推出深度学习框架TensorFlow,本来深度学习就是新东西,而TensorFlow配套的官方文档又写得一言难尽,于是大家一筹莫展。这时“蜥蜴书”第一版出版了,大家一看,原来介绍TensorFlow也是可以“讲人话”的嘛!很快,“蜥蜴书”就成了学习TensorFlow的标准教材,一时名声大噪。

可是,问题也随之来了,而且颇为棘手,让“蜥蜴书”一下陷入鸡肋的尴尬境地。

怎么回事呢?这就得从TensorFlow说起。深度学习框架需要计算图,计算图分静态图和动态图两种,前者效率高,后者人缘好。最开始TensorFlow追求效率,选择了静态图,导致API的设计各种别扭,这就是为什么前面说刚开始TensorFlow不太好学。可那时没有别的选择,大家都敢怒不敢言,后来,采用动态图的Pytorch出来了,有了对比就有了伤害,本来就民怨沸腾的TensorFlow立即就被分了一大块市场。Google一看,心里也有点慌了,于是干了两件事:

第一件事就是赶紧吸收了Keras。Keras也是一款深度学习框架,封装了许多底层操作,操作相当友好,官方称为高级深度学习API。但Keras只有一个前端,需要其它深度学习框架作为后端,才能实现完整功能。于是,Keras+TensorFlow理所当然就成了TensorFlow阵营的标准配置,TensorFlow选择将Keras吸收进来而且力推的做法虽然引起不少异议,不过,两家合作一家,也算是众望所归了。

另一件事就是支持动态图,这是意料中的事,大家嘴上说着“早干嘛去了”,心里的怨气也确实平息不少。后来Google干脆推出TensorFlow 2.0,直接就将动态图设为默认模式。

客观地说,Google对TensorFlow所做出的这两项改变可以说是必然的,也是必要的,不过,这显然也带来了另一个让所有程序员头疼的问题:兼容问题。这一改,相当于改出了三个版本的TensorFlow。而“蜥蜴书”第一版也深受其害,书虽然写得好,但因为采用的还是TensorFlow 1.0的API,很多内容和代码都不合时宜了。

这就很尴尬了。虽然后来说到机器学习必读书,大家还会是推荐“蜥蜴书”,因为这本书对机器学习的介绍实在好,有一点无出其右的意思,但同时也不忘略感遗憾地提醒一句,第二部分的内容有一点过时了。

不过,好事来了。“蜥蜴书”2019年在国外先出版了第二版,全书变化很大,特别是第二部分采用TensorFlow 2.0和Keras重写。当时大家光是看到出版计划,就翘首以盼。新版一经推出,马上好评如潮。

当然,对于国内的读者来说,心情就比较复杂了,毕竟“蜥蜴书”虽然更新了第二版,但是中文还只有第一版。我记得就在今年早些时候,我在推荐第一版的时候,就提出过中文版也能尽快跟进的希望。不过,现在好事成双了,“蜥蜴书”第二版的中文版已由华章出版,机器学习领域再次出现了一本不留死角的必读书。

作者简介

莫凡,娱乐向机器学习解说选手,《机器学习算法的数学解析与Python实现》作者,前沿技术发展观潮者,擅长高冷技术的“白菜化”解说,微信公众号“睡前机器学习”,个人知乎号“木羊”。

推荐阅读

01

《机器学习实战:基于Scikit-Learn、Keras和TensorFlow(原书第2版)》

长按识别购买

作者:[法] 奥雷利安•杰龙(Aurélien Géron)

译者:宋能辉、李娴

书号:978-7-111-66597-7

卖点:

1)“美亚”人工智能图书畅销榜首图书,基于TensorFlow 2和新版Scikit-Learn全面升级;

2)Keras之父和TensorFlow移动端负责人鼎力推荐;

3)从实践出发,通过具体的示例、较少的理论和可用于生产环境的Python框架来帮助你直观地理解并掌握构建智能系统所需要的概念和工具;

4)实用性强。没有太多复杂的数学公式推导,每章都附有练习题和代码,可以帮助你应用所学的知识。内容简介

推荐语:国外AI“四大名著”之一!AI霸榜书重磅更新!“美亚”AI+神经网络+CV+NLP四大畅销榜首图书,基于TensorFlow 2和新版Scikit-Learn全面升级,内容增加近一倍!前谷歌工程师撰写,Keras之父和TensorFlow移动端负责人鼎力推荐,从实践出发,手把手教你从零开始搭建起一个神经网络。

02

《机器学习算法的数学解析与Python实现》

长按识别购买

作者:莫凡

书号:978-7-111-64260-2

卖点:

生动——语言生动幽默,通过分析大量生活案例,帮助读者理解机器学习的算法。

简单——让很多听起来高大上的名词更实用。

实用——精选了最主要的机器学习算法,如线性回归算法、Logistic回归算法、KNN算法、朴素贝叶斯算法、决策树算法、支持向量机算法、K-means聚类算法、神经网络、集成学习方法等。

系统——从概念、原理、Python实现、应用场景几个方面,详细剖析机器学习中主要的算法。

推荐语:“蜥蜴书”最佳拍档!有趣、易懂、不枯燥,看得懂、学得会的机器学习入门书。全书用白话讲解,帮你从生活案例中理解算法,发现算法的乐趣,再把算法应用到机器学习中,让你零基础掌握算法精髓,快速进入AI开发领域。

更多精彩回顾

书讯 | 12月书讯 | 年末上新,好书不断

资讯 | DB-Engines 12月数据库排名:PostgreSQL有望获得「2020年度数据库」荣誉?

书单 | 机器人时代已来!推荐几本机器人学硬核好书

干货 | 基于中台架构的新业务建设原则

收藏 | 为什么Siri总是像个智障?智能助手背后的技术到底有多难?

上新 | 尴尬的游戏用户体验设计师

赠书 | 【第34期】如何成为一个软件架构师?

点击阅读全文了解更多AI好书

为什么“蜥蜴书”是机器学习入门必读书?相关推荐

  1. 蜥蜴书(Hands on Machine Learning)读书笔记-第一章 机器学习landscape

    A. Geron, Hands on Machine Learning with Scikit-learn and TensorFlow. 第一章 机器学习Landscape 机器学习 机器学习就是从 ...

  2. 机器学习经典必读书,李航《统计学习方法》出视频课了!

    PaperWeekly推荐炼丹入门课程: 算法推导+作业讲解+教学指导 众所周知,AI行业里的技术大牛,微软亚洲研究院.华为诺亚方舟实验室等知名机构有着丰富的从业经历的李航博士,又推出了"蓝 ...

  3. 机器学习入门必看|使用scikit-learn构建模型的万能模板

    算法工程师是伴随着人工智能火起来的一个领域.听着名字似乎门槛很高.但是,得益于Python生态下的包共享机制,机器模型构建的过程其实已经变得非常简单了,很多听起来牛逼的算法,其实根本不需要自己实现,甚 ...

  4. 95后数据科学家教你从零自学机器学习,这有3本入门必看书籍

    晓查 发自 凹非寺  量子位 编译 | 公众号 QbitAI 厌倦了现在的工作,想转行做数据科学,但是却没有计算机专业的相关学历,应该怎样才能入门? 这类的教程已经有很多.最近一位22岁的数据科学家D ...

  5. 豆瓣评分9.9!机器学习“蜥蜴书”最新版来了!(文末送书)

    传说中的机器学习"四大名著"中最适合入门的一本--"蜥蜴书"新版来了! 这本书的英文原版是美国亚马逊AI霸榜图书,在人工智能.计算机神经网络.计算机视觉和模式识 ...

  6. 备受期待!机器学习“蜥蜴书”最新版来了!豆瓣评分9.9!

    传说中的机器学习"四大名著"中最适合入门的一本--"蜥蜴书"新版来了! 这本书的英文原版是美国亚马逊AI霸榜图书,在人工智能.计算机神经网络.计算机视觉和模式识 ...

  7. 学人工智能要看什么书?AI入门到进阶10本必看书

    学习人工智能可以从多个方面入手,从基础到进阶,不同的书籍可以帮助你建立不同的技能和知识体系.以下是我推荐的10本必看书: 学人工智能要看什么书?AI入门到进阶10本必看书 <Python编程从入 ...

  8. python人工智能入门书籍推荐-小编就给大家推荐几本python机器学习入门书!

    很多人对于机器学习很感兴趣,所以想要通过一些书籍来学习研究,那么有哪些机器学习入门书籍推荐呢?本文小编就给大家推荐几本python机器学习入门书,大家可以去书店具体购买. 有哪些机器学习入门书籍推荐呢 ...

  9. 新手福利:免费百页机器学习入门书

    选自 themlbook 作者:Andriy Burkov 机器之心编译 参与:张倩.淑婷.晓坤 近日,Gartner 公司机器学习团队负责人.人工智能博士 Andriy Burkov 开源了自己写的 ...

  10. 写了本机器学习入门书

    最近写了一本机器学习的入门书,针对初学者,希望能给初学者雪中送炭. 黄海广 动机 作为计算机方向的博士,本人一直热衷于帮助机器学习初学者入门方面的工作,主持和参与了很多国内外优秀作品的翻译.代码复现工 ...

最新文章

  1. Android 系统自动重启Bug(高通平台)
  2. JPEG压缩matlab实现
  3. php中如何上传非表单类数据,PHP Post获取不到非表单数据的问题解决办法
  4. swagger 修改dto注解_Swagger介绍及使用
  5. rtthread pwm设备控制led小灯亮度
  6. 面部识别实例:眼球替换
  7. 运算放大器相关参数基本知识(一)
  8. D3.js制作地图等值线与饼图
  9. 杂文 - 设计MIUI主题 的 MIUI设计师
  10. 苏宁小店助销湘西椪柑 6小时双线销量超60000斤
  11. java-net-php-python-jspm毕业就业管理系统演示录像2019计算机毕业设计程序
  12. 低功耗计算机视觉技术前沿,四大方向,追求更小、更快、更高效
  13. 披萨门 pizzagate
  14. FOne CodeSec代码泄露检测工具
  15. 通过usb利用adb实现android手机和pc机通信
  16. Python数据分析及可视化的基本环境
  17. 研究生联系导师需要注意什么
  18. 李进良丁守谦论道4G:决不应三国纷争
  19. 基于漏磁的电机霍尔调试
  20. FPGA 中时钟信号的总结

热门文章

  1. Ubuntu Server 20.04.4 在树莓派上的体验之连接网络和WIFI(WLAN0)
  2. Windows文件保护简介
  3. 3dsmax动画十、父子关系。
  4. NAT模式和桥接模式的区别详解
  5. c语言解二元二次方程组
  6. 数学建模评价类方法02——层次分析法
  7. html 手机底部广告,手机网站被UC浏览器强制嵌入推荐广告解决方案
  8. c语言 go to 用法,c语言中 go to语句的使用方法
  9. python实现华容道游戏(v0.4)--支持游戏自动完成功能
  10. html5考试总结300字,期中考试总结