搞机器学习/AI有什么必备的数学基础?| 经验之谈+资源大全

雷刚 发自 凹非寺 量子位 报道 | 公众号 QbitAI

今天是开学第一天!心里只有学习的量子位,发现Hacker News上又有高分话题,而且还跟学习有关!

这次讨论的主题是:

想搞机器学习/AI需要怎样的数学基础,有什么推荐的入门资料/课程?

凡事总须研究,才会明白。看到这个话题,心里只有学习的量子位(×2)仔细看了半夜,这些讨论写着许多字、说了许多话,不过满篇可以分类为三个部分:

  • 中肯建议
  • 教材书籍
  • 视频课程

独学习不如众学习。量子位就把学后感整理如下,一起遨游知识的海洋吧~

中肯建议

这部分内容的主要贡献者包括:mindcrimetlbjulesrocquasreanleecarraherirchansKirinDavewadams19pramalin

首先

多变量微积分、线性代数、概率论、信息论,这几门必须基础扎实。精通图论也挺有用的。

大部分机器学习是对数据的模型拟合。为了拟合模型,需要把一些误差当成真实参数的函数,并对其进行最小化。最小化的算法基于梯度下降,也就是依赖于导数,这就是一种微积分运算。

如果你在做贝叶斯推理,你也需要用到微积分,因为贝叶斯定律将后验分布作为一个积分。

搞机器学习你只需要微积分1和2,微积分3里的旋度和散度、斯托克斯定理之类的,学物理用得上,机器学习不用这些。另外,你可能还需要一些微积分4中的基本函数分析。

(量子位注:此处微积分1234指的美国大学课程体系)

微积分的本质之一,是反映了事物的变化,对于变化的平顺性提供了一个很好的描述。一个处于最佳状态的系统,在某个确定的点上不再增减变化。

机器学习中的许多问题都是优化问题:在给定一些约束的条件下,怎样选择参数才能让错误最小化?通常这非常困难(NP-hard),但如果你把问题设计为“平滑”,那么就能通过微积分来获得很好的代数解。

多变量微积分也是需要的,在尝试最小化“错误”时,通常会通过每次更改许多、许多参数来实现。这意味着你需要知道如何在高位空间进行平滑变换。

而微积分的中的积分,用来“测量”物体大小。大部分概率是用来描述非常笼统的比例。“这块有多大”的问题类似于“这件事发生的可能性有多大”。解决问题的办法,就是用数量庞大的小块集合在一起,形成一个复杂的整体。

所以从根本上讲,机器学习取决于如何测量一件事(积分)并且知道这件事如何变化(导数)。从某种程度上说,这两件事就是你在微积分中学到的。

我数学背景还不错,但想要搞明白K-L散度时,还得重新研究一下。在机器学习领域,几乎我遇到的信息论问题都是最小化K-L散度,这些看维基百科都能搞懂。你还得能理解具有概率输出的模型,比方生成模型和强化学习等。

如果你要阅读学术期刊,至少下面这些知识点应该懂一点:

  • 统计学核心。你得熟悉统计学家如何处理数据,这常常用到
  • 微积分。你不需要成为解题达人,但得明白多个变量进行微分和积分的过程
  • 线性代数。一切的基础,比统计还重要
  • 数值计算的方法。我不断的查看资料,以搞懂大家为什么那样做
  • 计算理论以及相关研究。熟悉这些能让你发现错误,找到改进的方向
  • 我的下一个挑战是非参数统计。许多研究者跟我说这一领域会得到很多收获,许多方法能极大的改进机器学习

还有人觉得,机器学习中最需要数学的地方,莫过于理解反向传播时。反向传播几乎都是偏导数/链式法则什么的。还有很多机器学习涉及一些微积分的凸优化。

但是

我们得分清“应用”和“研究”之间的区别。并不是每个人都在做最前沿的研究。有人下载一个DL4J,看几个教程,就能搭建一个基本的网络来解决问题,这个过程中也创造了价值。

机器学习虽然还没来到完全不需要关心底层细节的时间节点,但我们确实已经可以合法获取很多现成的工具,而不需要动手推导反向传播的方程式。

讲真,大多数情况下在工作中应用已知的方法,并不要求搞懂背后的数学,只需要了解基本的统计数据和概率论,能解释结果就好了。所以,如果你只是简单的使用别人做好的工具来解决问题,真的不需要什么数学背景。

一个本科生就能学会漂亮的解决问题,而不需要深入研究底层的数学细节,就权当做是工程问题的最佳实践。大多数实际工作中,并不用演算低级别的架构或公式,通常都是从已经选好的框架中,把想用的东西跳出来而已。

另一方面,如果你面临的问题不能用现成的方法搞定,这时候数学背景就派上用场了。如果你想在框架里应用一个全新或者小众的架构,就得搞明白之后才能写出来。

在应用和研究机器学习技术之间,有很大的不同。总的来说,单纯在应用这一端,并没有太多严格的数学背景要求。

需要多少数学,取决于你要在机器学习/AI领域扎多深。

如果只是应付工作,那你走运了,现成就能用的东西原来越多了。例如DataBot、H2O、Scikit-learn、Keras(加TensorFlow)……可能唯一必备的数学技能就是统计学。无论你选择了哪种解决方案,采用了何种自动调整和选择的算法,都得需要一些统计数据才能说明你的模型有效果。

想进一步提升自己,还可以花更多时间学习特征提取、数据工程,好好研究一下上面提到的几个工具包,特别是其中的模型。

如果你想研发新的技术和算法,天空才是你的极限,不过还是得统计数据。

那些已经大量使用的机器学习和AI框架,其实只是顶着一个数学的帽子,你完全可以把它们当成可靠的黑盒系统来用,没必要理解模型的生成过程和设置。很多工具可以告诉你哪些算法对你的数据最有意义,甚至能帮你找出最有效的那种。

虽然这说起来令人沮丧,但真的已经不是非得有博士学位才能干这行了。

不过,即便你能干的事情跟博士科学家差不多,也不意味着有人会雇你。雇主还是会看重数学、计算机科学或相关领域的博士学位。但这些可能更多出于其他方面因素的考量,而不是搞机器学习/AI的必要条件。

了解数学能让你更好的理解工作,减少愚蠢犯错的可能。

上面讲到的工具,建议试试完全自动化的黑盒机器学习管道,比方说TPOT。尽早上手,以及可以推荐给你的产品经理朋友。

TPOT即Tree-based Pipeline Optimization Tool,这是一个基于遗传算法自动选择、优化机器学习模型和参数的工具。通常模型有非常大量的参数需要调整和优化,这类工具可以节省找到最优参数组合的时间。

不过,许多机器学习从业人员对这类自动化机器学习管道非常警惕。如果没有理解这些工具的基本统计/数学假设,可能会遇到很多坑;而这种一刀切的解决方案,也可能会给出误导性的结果。另外使用这类工具,也让解释原因和结果的工作变得更加困难,一个“黑盒子”很难得到价值认同。

  • TPOT的GitHub地址: https://github.com/rhiever/tpot

到底应该怎么开始学习?

  • 建议一:有两种方法来学习机器学习/AI:1)阅读所有资料,然后开始解决问题 2)先开始解决问题,然后根据需要学习相关的数学知识。第二种方法更好。
  • 建议二:首先在Coursera上看吴恩达机器学习和深度学习的课程。选择你感兴趣的领域和问题。接着阅读机器学习/AI在这一领域如何应用的论文。然后动手重现你已经搞明白并且感兴趣的论文。
  • 建议三:这个学习计划我觉得非常有用,很好的列出了所需课程和时间框架,地址在此: https://www.analyticsvidhya.com/blog/2017/01/the-most-comprehensive-data-science-learning-plan-for-2017/

教材书籍

接下来开始分享资源。先从书籍讲起。

这部分内容的主要贡献者包括:CuriouslyCrdudekulkgwgkcharlescearlChadyWady等。

我认为最好从David MacKay的《Information Theory, Inference and Learning Algorithms(信息论、推理与学习算法)》入手,内容可能有点老旧了,但仍然是这个领域最平易近人的书籍之一。

  • 在线版本: http://www.inference.org.uk/itprnn/book.pdf

另一本推荐的旧书是E. T. Jaynes的《Probability Theory: the Logic of Science(概率论:科学的逻辑)》。

  • 在线版本 http://www.med.mcgill.ca/epidemiology/hanley/bios601/GaussianModel/JaynesProbabilityTheory.pdf

以及Tibshirani的《Elements of Statistical Learning(统计学习元素)》。

  • 在线版本: https://web.stanford.edu/~hastie/ElemStatLearn/

Andrew Gelman的《Bayesian Data Analysis(贝叶斯数据分析)》也很好。

  • 在线版本: http://hbanaszak.mjr.uw.edu.pl/TempTxt/(Chapman%20&%20Hall_CRC%20Texts%20in%20Statistical%20Science)%20Andrew%20Gelman,%20John%20B.%20Carlin,%20Hal%20S.%20Stern,%20David%20B.%20Dunson,%20Aki%20Vehtari,%20Donald%20B.%20Rubin-Bayesian%20Data%20Analysis-Chapman%20and%20Hall_CRC%20(2014).pdf

想了解这个领域最新的额进展,建议阅读Ian GoodfellowYoshua Bengio的《Deep Learning》。

  • 在线版本: http://www.deeplearningbook.org/

推荐一本我本科时候用的统计学教材:《Probability & Statistics for Engineers & Scientists》。

  • 在线版本: https://www.amazon.com/Probability-Statistics-Engineers-Scientists-MyStatLab/dp/0134468910

再推荐一些网上免费的数学参考书

  • 在线数学教材汇总 http://people.math.gatech.edu/~cain/textbooks/onlinebooks.html
  • 免费数学教材 http://www.openculture.com/free-math-textbooks
  • 开放教材图书馆 https://open.umn.edu/opentextbooks/SearchResults.aspx?subjectAreaId=7
  • MIT在线教材 https://ocw.mit.edu/courses/online-textbooks/#mathematics
  • 美国数学研究所认证教材 https://aimath.org/textbooks/approved-textbooks/

AI是一个非常广阔的领域,每个细分领域都有不同的数学背景要求。掌握所有的数学知识是不可能的,所以你得想清楚对什么感兴趣。

同时推荐一本Russell和Norvig的好书,覆盖了人工智能中很多不同的主题。无论你本科学到了什么,这本书都可以提供了一深入了解AI的良好起点。

这本书是《Artificial Intelligence: A Modern Approach》,中文版名称《人工智能:一种现代方法》。

  • 英文版地址在此: http://aima.cs.berkeley.edu/

另外附送一份Michael I. Jordan之前开出的书单。

  • 地址在此: https://news.ycombinator.com/item?id=1055389

上述在线内容都是合法的。合法的。合法的。

视频课程

再来就是视频课程汇总。主要贡献者包括:72menaleecarrahermindcrimerdrey等。

YouTube以及Videolectures.net上有很多高质量的数学视频教学内容。

  • 之前提到的David MacKay,合辑在此: http://videolectures.net/david_mackay/
  • Leonard教授合辑在此: https://www.youtube.com/user/professorleonard57
  • Gilbert Strang合辑在此: https://www.youtube.com/results?search_query=gilbert+strang
  • 3Blue1Brown合辑在此: https://www.youtube.com/channel/UCYO_jab_esuFRV4b17AJtAw
  • 还有画风清奇的Siraj Raval讲人工智能中的数学: https://www.youtube.com/watch?v=xRJCOz3AfYY&list=PL2-dafEMk2A7mu0bSksCGMJEmeddU_H4D

我的建议是,先快速看一遍Jeremy Howard的讲座,这里面有很多机器学习/AI的应用案例,而且只需要一点点的数学背景就能看懂。

  • 地址在此: http://course.fast.ai/

接下来可以去Coursera上吴恩达的新课程,比原来的课程更容易接近,但仍然会有一些方程式让你不知所措,不过你肯定能实现出来。地址在此:

  • 老课程《机器学习》: https://www.coursera.org/learn/machine-learning
  • 新课程《深度学习》: https://www.coursera.org/specializations/deep-learning

再推荐一个统计学课程,德州大学奥斯汀分校统计和数据科学系Michael J. Mahometa主讲的《数据分析基础》。

  • 地址在此: https://courses.edx.org/courses/course-v1:UTAustinX+UT.7.11x+3T2016/course/

小建议,在这个课程中讲师使用了R语言,我觉得还是Python更好。

另外,Coursera上有一系列的统计课程还不错。不过贝叶斯统计这门课有点难,建议买一本书或者补充点其他课外资料。我推荐这本书:《Bayes’ Rule: A Tutorial Introduction to Bayesian Analysis》

  • 亚马逊有售: https://www.amazon.com/Bayes-Rule-Tutorial-Introduction-Bayesian/dp/0956372848

OMT

想搞机器学习/AI但数学不好的孩子,或者还有?快把这篇发给他。

救救孩子……

二零一七年九月。

传送门:肉身前往Hacker News观摩,请点击左下角“阅读原文”。

课外阅读

量子位在知乎上也发现一个质量很高的讨论。主要是王乃岩谈“如何判断一个面试者的深度学习水平?”,贾扬清等也参与了回答……

在量子位微信公众号(QbitAI)对话界面,回复:“naiyan”这六个字母,即刻前往观摩。

如果你有更好的推荐,欢迎留言,让更多朋友看到~

原文发布于微信公众号 - 量子位(QbitAI)

原文发表时间:2017-09-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器之心

三问 Christopher Manning:超越模型存在的语言之美

机器之心原创 作者:邱陆陆 「深度学习的波浪在计算语言学的海岸线上往复经年,而今已如海啸一般向所有的自然语言处理(NLP)会议发起冲击」。两年前,在北京,Chr...

345100
来自专栏数据科学与人工智能

【数据科学】数据科学可以做什么

机器学习是数据科学的发动机。每种机器学习方法(也称为算法)获取数据,反复咀嚼,输出结果。机器学习算法负责数据科学里最难以解释又最有趣的部分。数学的魔法在此发生。...

298100
来自专栏机器之心

专栏 | 李航教授展望自然语言对话领域:现状与未来

语音助手、智能客服、智能音箱、聊天机器人,近年各种自然语言对话系统如雨后春笋般地涌现,有让人眼花缭乱的感觉。一方面对话系统越来越实用化,另一方面当前技术的局限性...

18500
来自专栏华章科技

【思维导图】机器学习基础之「统计篇」

投稿和反馈请发邮件至hzzy@hzbook.com。转载大数据公众号文章,请向原文作者申请授权,否则产生的任何版权纠纷与大数据无关。

9430
来自专栏机器之心

专访 | 先声教育CTO秦龙:有限的算法与无限的新意

376110
来自专栏CVer

大牛分享 | 李航教授展望自然语言对话领域:现状与未来

本文经机器之心(微信公众号:almosthuman2014)授权转载,禁止二次转载

13500
来自专栏新智元

【资源】机器学习和神经网络实践:书籍及博客推介

【新智元导读】前几天我们向大家推荐了自学成为 Data Scientist 在线课程系列,很多人纷纷收藏和分享。今天新智元再针对数学,为大家介绍几本书和相关资料...

38680
来自专栏CDA数据分析师

统计︱P值-0.05就发表,不然就去死!

寄语:需要多少个统计学家,才能保证对于p值有至少50%的不满呢?根据曼荷莲学院统计学家George Cobb半开玩笑的估计,答案是两个...或者一个。 一、P值...

19760
来自专栏大数据挖掘DT机器学习

参加kaggle数据挖掘竞赛是怎样一种体验?

先贴下Kaggle Profile以示诚意(https://www.kaggle.com/winsty)我是KDD Cup专业户,虽然每年做的都不是特别好。。。...

34540
来自专栏机器之心

学界 | 详解微软意识网络架构:具有可解释性的新型类脑AI系统

选自Johns Hopkins University 机器之心编译 参与:Nurhachu Null、李泽南 近日,微软研究院公布的一篇新论文提出了一种新架构...

41060

扫码关注云+社区

领取腾讯云代金券