人人可懂的机器学习入门要点和阅读路径:学什么?怎样学?


导读:这是一篇保证你“看得下去”的文章。让你真正搞懂机器学习学什么?怎样学?

作者:莫凡

来源:华章计算机(ID:hzbook_jsj)

人人可懂的机器学习入门要点和阅读路径:学什么?怎样学?_第1张图片

00 有关机器学习的三个问题和机器学习“知识栈”的三个层

你对机器学习的直观感受是什么?

也许许多人的回答两个字,科幻。东西是好东西,不过离自己还很遥远。

真是这样吗?

  • 掏出手机,美颜美图用的是机器学习;

  • 走出小区,无人化测量体温用的是机器学习;

  • 走进高铁站赶回奋斗的城市,刷脸进站用的是机器学习。

机器学习已经向我们生活的方方面面渗透,也许很快就有那么一天,机器学习就要和水电煤一样,成为我们生活中再离不了的第四种资源。

你说,上面这段话就跟心灵鸡汤一样,把人说得心里直痒痒,可真的想来品一口时才发现没给勺子。

那好,下面想要分享的正是如何开始学习机器学习。我的方式有点不同,开始之前,你首先需要做的是问自己三个问题:

  • 第一个问题,我为什么要学?

  • 第二个问题,我需要学什么?

  • 第三个问题,我该怎样去学?

为什么要先问三个问题?这是因为,机器学习背后有一套庞大的知识体系,内容繁多,而且和网络协议栈一样,也是分了层的,姑且就称之为机器学习的“知识栈”吧。这座知识栈共分成三个层。

  • 知识栈的底层是数学,可以管它叫“数学基础层”,它在机器学习中作用正如其名,是支撑上层功能运转的基石。

  • 中间这层的算法,就叫“算法原理层”吧。机器学习的微观层面是算法,不是一种算法,而是很多种算法,而且现在还在不断迭代更新。

  • 最上面的这层是应用层,不妨叫“分域应用层”。为什么叫分域呢?因为机器学习是一套实践之学,是用于解决实际问题的,而现实世界中的问题千千万万,不同领域问题各不相同,因此,机器学习要逐一解决这些各不相同的领域问题,也就延伸出了与之适应的分域应用。

当然,知识栈只是描绘了机器学习知识体系的大致结构,知识栈的每一层,还可以继续划分更多更细的子领域。机器学习的知识体系枝叶繁茂,而人的时间和精力则相对十分有限,正因如此,只有明确了第一个问题,才能回答第二个问题,才能最终决定第三个问题,也就是大家一开始最为关心的问题,机器学习应该怎么上手。

不过,这三个问题不好回答。

要回答这几个问题,你首先得对机器学习的三层知识栈有所了解,而你现在最大的问题,不正是对机器学习还缺乏比较全面的了解吗?

正如你第一次走进一座很大很大的游乐园,哪怕你已经听说了大家对这座游乐园评价都很高,你也不会马上就清楚自己首先应该去哪里游玩,甚至游乐园里都有些什么设施,要朝哪个方向走过去,你都很可能并不清楚。这应该是绝大多数第一次来玩的游客都面临的问题。

那么,有经验的游乐园会怎么解决这个问题呢?它会在大门入口处设置一块大地图,名叫游玩导览图,园区里有哪些游乐设施,又分布在哪个方向,甚至还会画上设施的样子,让你一目了然。这是个好办法。

那么,接下来我会按照机器学习知识栈的三层结构,对机器学习的知识体系梳理出要点和联系。我也知道,市面上名叫机器学习的各类书籍鱼龙混杂,我会同时给出推荐的阅读书目供大家参考。

人人可懂的机器学习入门要点和阅读路径:学什么?怎样学?_第2张图片

01 数学基础层

机器学习的知识栈是自底向上构建的。那么,我们先从知识栈的最底层,也就是数学基础层说起。

一提到数学,我和大家的反应一样,苦不堪言。数学很重要,大家都知道,可以说没有数学,就没有计算机科学。可是,数学实在太难学了,这么多年都没学明白,而且刚一毕业,数学就全还给了老师。现在告诉我学机器学习,先得学习数学,难道我还得重修九年义务教育?

这确实是许多人对机器学习望而却步的主要原因之一。不过,我要告诉大家一个好消息:机器学习里要学的数学,远比你想象的要少,要简单。

现代数学是一套不断膨胀的公理体系,哪怕是职业的数学家可能也说不清楚数学全貌。不过好在,如果将数学绘制成一张世界地图,那机器学习所要学习的数学知识,只不过是上面的一座小岛屿,主要涉及线性代数和概率统计两个方面。

先说线性代数。机器学习需要用到许多运算,而线性代数正是机器学习里的四则运算,可谓是构成了机器学习的骨架。不过,线性代数作为一条主要的数学分支,内容也很不少,好在机器学习只是使用其中的向量和矩阵运算,在这个部分,我推荐《矩阵分析》

人人可懂的机器学习入门要点和阅读路径:学什么?怎样学?_第3张图片

这是一本经典的好书,写得很好,不过不用读完,建议仔细读懂什么是向量空间、什么是矩阵、矩阵的基本运算法则,以及正定矩阵和奇异值分解的相关章节,那么机器学习的“四则运算”我们就掌握清楚了。

接下来是概率统计。如果我们说线性代数是机器学习的“骨”,那概率统计应该就算是机器学习的“魂”了。这是因为有一派主流观点认为,机器学习就是个换了个皮的统计学,说机器学习的本质就是“拟合曲线”。

这里不做争论,不过机器学习大量使用概率统计的概念,确实是不争的事实。在这个部分,我推荐《概率论基础教程》

人人可懂的机器学习入门要点和阅读路径:学什么?怎样学?_第4张图片

这本书的作者是Ross,Ross是统计学界的名家,出的教材都是经典。建议重点阅读《概率论基础教程》中关于概率、条件概率、贝叶斯概率公式、期望等概念相关介绍,以及了解各种概率分布,如什么是正态分布等。

机器学习数学方面的书现在越出越多,读书的跟不上出书的,所以我推荐读经典,而上述的两本书都是数学领域的经典教材,读过一定有收获。

02 算法原理层

底层就这两样,接着该说算法原理层。

这是机器学习的核心层。机器学习大热,讲机器学习算法的书也一哄而上,多不胜数,不过,现在市面上的这类书,内容大致可以分为两类,一类是往下靠,也就是往数学基础层靠,翻开活脱脱就是一本数学教材;另一类是往上靠,也就是往分域应用层上靠,走另一个极端,写成了一本教编程的书。

虽然说机器学习毕竟是一门实践科学, 除了学各种数学公式,最终还要写成代码运行才能真正解决问题,不过如果只懂调用算法API而不去了解内在原理,用得再多也只是手熟的调包侠。

有没有一本书,能兼顾数学和应用这上下两层,同时从初学者的角度出发,使用比较通俗直白的语言来撰写?我找了很久,可惜没找到,所以我自己写了一本,书名叫《机器学习算法的数学解析与Python实现》

人人可懂的机器学习入门要点和阅读路径:学什么?怎样学?_第5张图片

这本书我最开始其实想叫《睡前机器学习》,对,就是我现在公众号的名字。我深深地清楚,经过一天拼尽全力的工作有多累,晚上回家还要克服刷视频的冲动,放下手机转为去读一本又有数学又有算法的艰涩的专业书有多难。

所以,在华章公司老师的鼓励下,我尝试用一种新的方法介绍机器学习,学习算法,本该是一次充满乐趣的探索之旅。

我认为数学教材之所以难读,是因为数学太多抽象的概念,而让人更难坚持的是数学概念之间嵌套引用,要清楚明白一个数学概念,往往需要额外再学一大串数学概念,而其中往往又包含有嵌套引用,不知道哪里才是头,所以很容易给人一团乱麻、无从下手的感觉。

在《机器学习算法的数学解析与Python实现》这本书中,我尝试改变这一现状,只对反复使用、必须了解的数学概念用最直白最“讲人话”的语言进行介绍,同时摒弃背后一大串错综复杂的概念,改为结合直观形象的例子进行说明。

我希望在确保本书容易阅读的同时,又能比较完整地呈现一幅机器学习的全景图,成为连接机器学习知识栈最上层和最下层的“粘合剂”,让每一个第一次接触机器学习的初学者,都能像看了游乐园导览图一样,做到心里有数。这也正是我写作本书的初衷。对本书有任何问题,都可以到我的微信公众号“睡前机器学习”留言互动。

03 分域应用层

最后,我们介绍知识栈的最上层,也就是分域应用层。前面我们已经说过,机器学习是一门实践科学,最终需要编写代码才能运行。在这个方面,目前主流的做法是使用Python高级编程语言,调用Scikit-Learn库来实现。

Scikit-Learn是当前最为知名的Python机器学习算法库,提供了几乎所有的主流算法。在这方面,我推荐《机器学习实战:基于Scikit-Learn和TensorFlow》

人人可懂的机器学习入门要点和阅读路径:学什么?怎样学?_第6张图片

这本书基本是业内公认介绍Scikit-Learn最为清楚的书,同时还介绍了另一款知名的深度学习框架TensorFlow。

和软件开发项目有生命周期一样,机器学习的项目也有生命周期,大致可以分为收集数据、清洗数据、分析数据、选择模型、训练模型和输出预测。也许很多初学者认为最费时间的是选择模型和训练模型。

其实,最花时间的反而是对数据的清洗和分析,往往是在生命周期中占了最大一部分。业界通常选择使用一款名叫Pandas的Python库完成这项工作,这方面的书推荐《利用Python进行数据分析(原书第2版)》

人人可懂的机器学习入门要点和阅读路径:学什么?怎样学?_第7张图片

这本书非常好,作者就是Pandas的作者本人,权威性无可挑剔。而且内容非常详实,由浅入深每一步都写得十分清楚,覆盖又全,特别适合新手阅读。

上面提到数据处理占据了机器学习生命周期的最大一部分,而另一大部分是调参,也就是为模型选择最合适的参数。调参是机器学习算法在应用方面的重点也是难点,很需要经验。

因此,现在业界的一大发展前沿,就是自动调参,在这方面我推荐《深入理解AutoML和AutoDL 》,对这部分发展做了全面清楚的介绍:

人人可懂的机器学习入门要点和阅读路径:学什么?怎样学?_第8张图片

04 深度学习

说完机器学习,说另一大热门深度学习。目前深度学习有两套最热门的框架,一套是前面《机器学习实战》这本书介绍的Tensorflow,另一套叫Pytorch。

Tensorflow是Google出品,牌子老用户多,但普遍认为语法槽点很多,而由Facebook出品的Pytorch,因为“更有Python味”现在风头大热,颇有取而代替TensorFlow之势。这方面我推荐《Python深度学习:基于PyTorch》

人人可懂的机器学习入门要点和阅读路径:学什么?怎样学?_第9张图片

Pytorch的书不少,不过由于Pytorch发展很快,早期0.X版本的很多语法已经不再适用,而这本书使用1.X版本的Pytorch,不会出现这一问题,而且结合了时下热门的深度学习应用场景,具有很好的实践参考作用。深度学习是借着图像处理声名鹊起的,这方面我推荐《深度学习与图像识别:原理与实践》

人人可懂的机器学习入门要点和阅读路径:学什么?怎样学?_第10张图片

这本书对深度学习在图像识别方面的应用作了比较全面的介绍,不但介绍了热门模型,还逐一介绍了目前学术界在图像处理方面的热门研究方向,如GAN、图像识别和分割等。比较有意思的是,本书还介绍了KNN算法,算是对图像处理算法作了一个比较全面的回顾了。

05 无人驾驶

最后,我想介绍一个经常上新闻、科幻感最强、同时也是了解的人最少、最有神秘感的机器学习分域应用:无人驾驶。这几年关于无人驾驶的讨论不少,但更热衷讨论的话题是无人驾驶衍生的社会问题和伦理问题,譬如电车难题,而对技术本身的讨论反而少的让人意外。

我想,这也许是因为机器学习是交叉学科,而无人驾驶更是交叉学科的交叉学科,涉及机器人学、车辆工程等等复杂学科,领域性太强,一般人难窥究竟。这方面我推荐《无人驾驶:原理和实践》

人人可懂的机器学习入门要点和阅读路径:学什么?怎样学?_第11张图片

无人驾驶涉及的学科方向比较杂,而这本书把ROS、点云匹配、图像识别、传感器等构成无人驾驶的几个重要方面都涵盖在内,相当于给无人驾驶做了一次全景式展示。

本文系《机器学习算法的数学解析与Python实现》作者莫凡2月16日的直播内容整理,直播录像可识别下方二维码观看。

有话要说????

Q: 你的学习进行到了哪一层

欢迎留言与大家分享

猜你想看????

  • 什么是大数据「实时流计算」?深度解析它的4大应用及4个特点

  • 什么是机器学习?有哪些分类?怎样上手开发?终于有人讲明白了

  • 世界上第一位程序员,竟然是诗人拜伦的女儿?

  • 美国又禁华为?7本书,助力网络安全产业国产化、自主可控

更多精彩????

在公众号对话框输入以下关键词

查看更多优质内容!

PPT | 读书 | 书单 | 硬核 | 干货 

大数据 | 揭秘 | Python | 可视化

AI | 人工智能 | 5G | 中台

机器学习 | 深度学习 | 神经网络

合伙人 1024 | 大神 | 数学

据统计,99%的大咖都完成了这个神操作

????

你可能感兴趣的:(人人可懂的机器学习入门要点和阅读路径:学什么?怎样学?)