现在,终于不单纯因为考试的需要而开始重视对数学的学习和研究了——是不是过于乐观~~
机器学习的兴起,人工智能时代的到来,让数学显得尤其重要,无论是对于普通的工程技术人员,还是对于大众而言。
在机器学习或人工智能领域中,有各种算法、模型,犹如武侠们的各类功夫,江湖中的大侠往往以深厚的内功驱动某种招式,比如九阴真经、吸星大法、小无相功。
那么,机器学习的“内功”是什么呢?
答案不是吐纳运气之法,而是——数学。
那么“数学内功”需要修炼到什么程度才能研习机器学习呢?
以我的经验,研习机器学习所需要的最低数学基础,相当于大学理工科的高等数学(以下简称高数)内容。“早就还给老师了”——不少人如此感慨,也因此对机器学习望而却步。实则不然,只要当初正常地修完了所有课程(不妨以通过考试为标准),“高数内功”就已经被老师传授给你了,在有生之年是无法自行去除的。只不过,由于种种原因,它没有被激发出来罢了。
《机器学习数学基础》一书就是要帮助读者将已经被灌注在大脑里的“高数内功”激发出来——注意,不是重新“灌输”一遍。
所以,本书所介绍的数学内容不是高数的翻版,而是默认读者已经将一些最基本的高数知识内化了。我只是根据个人经验,遴选与机器学习有关的内容,唤醒读者大脑中沉睡已久的“数学潜意识”,引导读者大胆地进入机器学习领域。
本书编排
根据以上目的,本书内容做了如下安排:
不将微积分的有关内容作为独立章节,因为这些内容在高数中是重点,所以相信读者已经对其有了基本的了解。但为了方便读者,在本书的附录和在线资料中,我们分别提供了有关微积分的基本知识。
以机器学习的直接需要为标准,选择基本的数学内容,从工程应用的角度给予介绍。一般的数学教材因聚焦于严谨的数学内容而忽略了工程应用,而一般的机器学习资料又缺乏相关的数学基础介绍—甚至有不少不合“数学之理”的地方,学习者看后仅“知其然”,但“不知其所以然”,甚至感到“茫然”。本书旨在帮助读者通过工程实践,打通数学基本概念和机器学习之间的壁垒。所以,在数学知识之后,读者会看到它们是如何在机器学习中应用的。
书中省略了一些严格的数学证明,这是本书不同于数学教材的重要方面,但这并不意味着数学证明不重要。如果读者对有关数学证明感兴趣,可以参阅本书提供的在线资料(http://math.itdiffer.com/)。
再次强调,不要将本书当作数学教材,本书不会面面俱到地介绍高数内容。
常规数学教材的结构,一般是先介绍概念、定理及其证明,然后讲解例题,以及适量的习题,书的最后会附上习题的参考答案。
本书则不然。当你阅读的时候,会感觉本书更像一个有数学经验的人介绍他自己的心得体会。
因此,这本书不会侧重于“解题”技能的训练,书中也会演示一些手工计算,但这么做的目的是帮助读者理解某些概念,更复杂的计算都会用编程语言实现——本书采用Python语言,但书中并不会介绍这种语言的使用方法,请读者自行解决编程语言问题(可参考“跟老齐学Python”系列图书)。
如果不进行拣选,那么针对机器学习的数学内容,不是一本书能够完全涵盖的,即使能,那也将是一本超级厚的书,不仅会增加读者的经济负担,而且更会让很多人半途而废。
但考虑到不同读者有不同的需要,因此会在本书的在线资料中发布补充内容,包括但不限于:
某些定理、结论的证明
机器学习原理的数学推导
微积分有关内容(供不熟悉微积分的读者参考)
本书勘误和增删
其他补充资料
当读者阅读本书正文的时候,可能会感觉“不很数学”,或者“很不数学”,这其实也是我的写作目的,就如同前面所说,要将读者头脑中已有的“数学”激发起来,如果书中内容“很数学”,阅读起来就容易昏昏欲睡,适得其反。肯定有读者要看“很数学”的内容,为了满足这部分需要,在本书的在线资料中会专门提供。(http://math.itdiffer.com/)
学习方法建议
下面仅就学习方法问题,提几点参考意见,希望能有助于阅读和使用本书。
在讲学习方法之前,还要啰嗦一个题外话,这是因为市面上正在流行着各类以“多、碎、省”为核心的读书方法——多,比如一年读50本书,对普通人而言,不少;碎,抽空看点,所谓“碎片化学习”;省,自己不耗费什么脑力,甚至于“自己不读,让别人读给自己听”。
《机器学习数学基础》这本书,或许不适合用此类方法阅读,它读起来并不会带来任何轻松愉悦之感。如果“面朝大海、春暖花开”,品着咖啡,读着书,放在眼前的一定不是这本。
但是,如果你选定了职业发展方向,要在人工智能领域有所作为,就不要在乎“大海”、“花开”和“咖啡”,而是以坚定的意志,平和的心态,耐得了寂寞,坐得住冷板凳,坚持不懈,敢于啃下“硬骨头”。《机器学习数学基础》就是助力于这样的你,也只有这样的你才能体会到“Knowledge is power”,将书中“硬核”知识融汇成为自己的竞争力。
读这本书,肯定不要奢望“多、碎、省”。一种古已有之的读书方法“不动笔墨不读书”,非常适合。这种方法强调读书过程要“动笔”,就本书而言,动笔包括(以下两点缺一不可):
在书中勾画重点、难点和疑点,标注自己的理解;
跟随书中介绍进行推导,从而熟悉每个结论的来龙去脉。
“不动笔墨不读书”,是逐句逐字地“慢读”,是铢积寸累地“死磕”,是“积跬步”“至千里”,是“锲而不舍,金石可镂“。如此读过的书,才会内化为自己的知识,成为“生产力”的“power”。
“不动笔墨不读书”是我提供的第一个阅读本书的建议。
此外,我在这本书中一直提倡将计算机程序运用到数学的学习中,特别是这本《机器学习数学基础》,更要用程序实现各种数学运算和算法,如此,读者就知道了从数学基础知识到机器学习理论和实践的实现途径。
因此,第二个阅读本书的建议就是要“敲代码”,不能止步于“动笔”。
书中的代码,都是以 Python 编程语言实现,这方面如果读者缺乏前置知识,可以访问 www.itdiffer.com 网站,我在该网站上发布了一套在线免费的《Python 完全自学教程》,供参考。诚然,亦可使用其他学习资料。
通过“敲代码”,能让你体验到数学的基本理论和机器学习实践的结合,从而对两者都能有更深刻认识,为此后专门学习有关机器学习相关理论和实践奠定深厚基础。
反对用“多、碎、省”读书方法阅读本书,并不是提倡“复古式”读书。在网络时代,“读书”也要“网络化”,也要“互联互通”。
毋庸置疑,互联网上的知识可谓“海量”。阅读本书时,遇到困难、疑问,甚至于作者的错误等,都可以借助互联网给予解决。
网上有不少针对本书中某个知识点的专题内容,通过这些能够帮助读者深化对该知识点的理解,甚至超越本书的阐述。
所以,非常建议在阅读本书的过程中,及时地应用互联网,搜索某个概念、定理等有关内容,以书中的讲述为支点,参考搜索到的相关内容,向更广、更深的层面适当拓展,从而用现代手段“把书读厚”。
与本书配套的网站 http://math.itdiffer.com/ 是基于此想法推出的,当然仅仅一个网站略显单薄,若应用网络则会有更多参考。
读书虽然是很个体的活动,但也不排斥互相交流。如今,不论是线上还是线下,都有“读书人”组织的交流活动。结合本书,我也提倡读者之间相互交流、启发,“三人行,必有吾师”,我也愿意参与其中。在 http://math.itdiffer.com/ 中已经发布了一个交流群,供读者选用。
以上所言的学习方法,仅仅是建议,由于个体差异,读者更应根据个人具体情况而定学习之法。愿本书能成为你在机器学习方向发展的垫脚石。
作者简介
齐伟,江湖名号老齐
已在代码世界耕耘多年,并先后出版了《跟老齐学Python:轻松入门》《跟老齐学Python:Django实战》《跟老齐学Python:数据分析》《Python大学实用教程》《数据准备和特征工程》等图书。
微信公众号:老齐教室
▼
如果本书能在某种程度上激活潜藏于读者大脑中已久的数学知识,那么请感谢你的大学老师,是他们播下了智慧的种子;如果看完本书依然处于数学的懵懂之中,则建议利用本书在线资料。
下单即减50,快快扫码抢购吧!