机器学习/人工智能必要的数学基础是什么? |体验+资源采集

2024-10-16 14:42:37 | 作者: 匿名

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

本次讨论的主题是:

从事机器学习/AI需要什么样的数学基础?有推荐的入门材料/课程吗?

一切事物都必须先研究,然后才能理解。当我看到这个话题的时候,我心里只有学习的量子比特(2)。我仔细读了半个晚上。这些讨论写了很多话,说了很多话,但整篇文章可以分为三个部分:

中肯的建议

教科书

视频课程

单独学习不如小组学习。 Qubit 将他的想法总结如下。让我们一起遨游知识的海洋吧~

中肯建议

该部分主要贡献者包括:mindcrime、tlb、jules、rocqua、srean、leecarraher、irchans、KirinDave、wadams19、pramalin 等。

第一的

多元微积分、线性代数、概率论、信息论必须有扎实的基础。精通图论也很有用。

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

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

搞机器学习,只需要微积分1和微积分2。微积分3中的旋度、散度、斯托克斯定理之类的东西对于学习物理很有用,但不是机器学习所必需的。此外,你可能还需要微积分4中的一些基本函数分析。

(量子比特注:这里的微积分1234指的是美国大学课程体系)

微积分的本质之一就在于它反映了事物的变化,并很好地描述了变化的平滑性。处于最佳状态的系统在某个点不再增加或减少。

机器学习中的许多问题都是优化问题:给定一些约束,如何选择参数以使误差最小化?通常这是非常困难的(NP-hard),但是如果你将问题设计得“平滑”,你可以通过微积分得到一个很好的代数解。

还需要多变量微积分,通常是在尝试最小化“错误”时一次更改许多参数。这意味着您需要知道如何在高空间中执行平滑变换。

微积分中的积分用于“测量”物体的大小。大多数概率用于描述非常一般的比例。问题“这有多大?”类似于“这种情况发生的可能性有多大?”解决问题的方法就是用大量的小块组合在一起,形成一个复杂的整体。

因此从根本上来说,机器学习取决于如何测量一件事(积分)并了解该事物如何变化(导数)。在某种程度上,这两件事就是你在微积分中学到的东西。

我的数学背景还不错,但是当我想理解K-L散度时,我还得重新研究一下。在机器学习领域,我遇到的几乎所有信息论问题都是最小化K-L散度。你可以通过查看维基百科来了解这些。您还需要能够理解具有概率输出的模型,例如生成模型和强化学习。

如果你想阅读学术期刊,至少应该了解以下几点:

统计核心。您需要熟悉统计学家如何处理数据,这通常涉及

结石。你不需要成为问题解决者,但你需要了解多变量的微分和积分的过程

线性代数。一切的基础比统计更重要

数值计算方法。我不断检查数据以了解人们为什么这样做

计算理论及相关研究。熟悉这些将使您能够发现错误并找到改进的方法。

我的下一个挑战是非参数统计。很多研究人员告诉我,这个领域有很多收获,很多方法可以极大地提高机器学习。

其他人认为数学在机器学习中最重要的地方是理解反向传播。反向传播几乎都是偏导数/链式法则之类的。还有很多机器学习涉及一些微积分的凸优化。

我们必须区分“应用”和“研究”。并不是每个人都在进行前沿研究。有人下载了DL4J 并观看了一些教程来构建基本网络来解决问题。价值也在这个过程中被创造。

尽管机器学习还没有达到我们完全不需要关心底层细节的程度,但我们确实可以合法地使用许多现成的工具,而无需手动推导反向传播方程。

老实说,在大多数情况下,在工作中应用已知的方法并不需要了解其背后的数学原理。它只需要了解基本的统计学和概率论,并能够解释结果。所以,如果你只是使用别人制作的工具来解决问题,你真的不需要任何数学背景。

本科生可以学会优雅地解决问题,而无需深入研究底层的数学细节,这被认为是工程问题的最佳实践。在大多数实际工作中,不需要计算低级结构或公式。它通常只是从已经选择的框架中跳出你想要使用的内容。

另一方面,如果您面临的问题无法使用现成的方法解决,那么数学背景就可以派上用场。如果你想在框架中应用一个新的或小众的架构,你必须先了解它,然后才能编写它。

应用和学习机器学习技术之间存在很大差异。总的来说,单纯从应用方面来说,并没有太多严格的数学背景要求。

需要多少数学知识取决于您想深入机器学习/人工智能领域的深度。

如果你只是处理工作,那么你很幸运,有更多的东西可以使用。例如,DataBot、H2O、Scikit-learn、Keras(加上TensorFlow).也许唯一必要的数学技能是统计学。无论您选择哪种解决方案,以及使用哪种自动调整和选择算法,您都需要一些统计数据来表明您的模型是有效的。

如果你想进一步提高自己,你也可以花更多的时间学习特征提取和数据工程,研究上面提到的工具包,尤其是里面的模型。

如果你想开发新技术和算法,没有极限,但你仍然需要统计数据。

那些已经被广泛应用的机器学习和AI框架,其实只是一顶数学帽子。您可以将它们用作可靠的黑匣子系统,而无需了解模型生成过程和设置。有许多工具可以告诉您哪些算法对您的数据最有意义,甚至可以帮助您识别最有效的算法。

虽然说起来令人沮丧,但你真的不再需要博士学位才能做到这一点。

但仅仅因为你可以做与博士科学家类似的事情并不意味着任何人都会雇用你。雇主仍然会看重数学、计算机科学或相关领域的博士学位。但这些可能更多是出于其他因素的考虑,而不是从事机器学习/AI的必要条件。

机器学习/人工智能必要的数学基础是什么? |体验+资源采集

理解数学可以让你更好地理解你的工作并减少犯愚蠢错误的机会。

对于上面提到的工具,建议尝试完全自动化的黑盒机器学习管道,例如TPOT。尽早上手,有产品经理朋友可以推荐给你。

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

然而,许多机器学习从业者对这种自动化机器学习管道持谨慎态度。如果不了解这些工具的基本统计/数学假设,您可能会遇到许多陷阱;这种一刀切的解决方案也可能会产生误导性的结果。此外,此类工具的使用也使得解释原因和结果变得更加困难。 “黑匣子”很难获得价值认可。

TPOT的GitHub地址:

https://github.com/rhiever/tpot

我应该如何开始学习?

提示1:学习机器学习/人工智能有两种方法:1)阅读所有材料,然后开始解决问题2)先开始解决问题,然后根据需要学习相关数学。第二种方法更好。

建议2:首先看一下Andrew Ng在Coursera上的机器学习和深度学习课程。选择您感兴趣的领域和问题。然后阅读有关机器学习/人工智能如何在该领域应用的论文。然后尝试重现你已经理解并且感兴趣的论文。

建议3:我觉得这个学习计划非常有用。它很好地列出了所需的课程和时间范围。地址在这里:

https://www.analyticsvidhya.com/blog/2017/01/the-most-compressive-data-science-learning-plan-for-2017/

教材书籍

这部分的主要贡献者包括:CuriouslyC、rdudekul、kgwgk、charlescearl、ChadyWady 等。

我认为最好从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 Goodfellow 和Yoshua 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

麻省理工学院在线教科书

https://ocw.mit.edu/courses/online-textbooks/#mathematics

美国数学学会认证的教材

https://aimath.org/textbooks/approved-textbooks/

人工智能是一个非常广阔的领域,每个细分领域都有不同的数学背景要求。掌握所有数学是不可能的,所以你必须弄清楚你对什么感兴趣。

我还推荐Russell 和Norvig 写的一本好书,其中涵盖了人工智能的许多不同主题。无论你本科学习什么,这本书都可以为更深入地理解人工智能提供一个很好的起点。

机器学习/人工智能必要的数学基础是什么? |体验+资源采集

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

英文版的地址在这里:

http://aima.cs.berkeley.edu/

还包括迈克尔·乔丹(Michael I. Jordan) 以前出版的书籍清单。

地址在这里:

https://news.ycombinator.com/item?id=1055389

以上网上内容合法。合法的。合法的。

视频课程

接下来是视频课程总结。主要贡献者包括:72mena、leecarraher、mindcrime、rdrey等。

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

David MacKay 之前提到过,汇编在这里:

http://videolectures.net/david_mackay/

伦纳德教授的收藏在这里:

https://www.youtube.com/user/professorleonard57

吉尔伯特·斯特朗的汇编在这里:

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=xRJCOz3AfYYlist=PL2-dafEMk2A7mu0bSksCGMJEmeddU_H4D

我的建议是先快速观看Jeremy Howard 的讲座。里面有很多机器学习/人工智能的应用案例,只需要一点数学背景就可以理解它们。

地址在这里:

http://course.fast.ai/

接下来,你可以去Coursera上Andrew Ng的新课程,它比原来的课程更容易理解,但仍然会有一些方程式让你不知所措,但你绝对可以实现。地址在这里:

老课程《机器学习》:

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

想从事机器学习/人工智能但数学不好的孩子,或者还有其他吗?赶紧把这个发给他。

救救孩子们.

2017 年9 月。

课外阅读

Qubits还在知乎上发现了非常高质量的讨论。主要是王乃彦讲了“如何判断一个面试官的深度学习水平?”,贾扬清等人也参与了回答……

如果您有更好的推荐,请留言,让更多的朋友看到~

- 超过-

诚意招聘

用户评论

┲﹊怅惘。

标题这么问,我倒是觉得高等数学是基础,毕竟机器学习中的很多算法都需要用到微积分和线性代数。

    有8位网友表示赞同!

心悸╰つ

我觉得概率论和数理统计也很关键,毕竟数据分析和模型构建离不开这些。

    有11位网友表示赞同!

醉枫染墨

基础数学确实很重要,但是也要结合实际应用,不是光有数学基础就能做好机器学习的。

    有19位网友表示赞同!

信仰

同意前面说的,数学基础是必要的,但更重要的是理解这些数学知识如何应用到实际问题中。

    有7位网友表示赞同!

莫名的青春

资源采集这块也很重要,如果找不到好的学习资料,光有数学基础也没用。

    有5位网友表示赞同!

琴断朱弦

我正在自学机器学习,这篇博文给我指明了方向,谢谢分享!

    有15位网友表示赞同!

君临臣

数学基础嘛,我觉得离散数学和图论也很关键,尤其是在处理网络数据时。

    有20位网友表示赞同!

怪咖

机器学习里的数学基础挺广泛的,看起来要补的课还挺多啊。

    有10位网友表示赞同!

堕落爱人!

数学基础是基石,但也要注意,过度依赖数学可能会导致忽略实际问题的本质。

    有6位网友表示赞同!

虚伪了的真心

资源采集这块,我建议多关注一些开源的数据集和在线课程。

    有14位网友表示赞同!

爱情的过失

我觉得机器学习数学基础里,最难的应该是优化理论了。

    有11位网友表示赞同!

哥帅但不是蟋蟀

这篇博文太实用了,我打算收藏起来,以后学习的时候随时查阅。

    有16位网友表示赞同!

棃海

数学基础很重要,但也要注意,机器学习是一个交叉学科,不能只看重数学。

    有5位网友表示赞同!

该用户已上天

我刚开始接触机器学习,这篇博文对我帮助很大,感谢分享。

    有6位网友表示赞同!

孤独症

资源采集这块,我觉得利用搜索引擎和学术数据库是挺不错的。

    有6位网友表示赞同!

来瓶年的冰泉

数学基础确实重要,但也要注意,实践出真知,多动手做项目也很关键。

    有18位网友表示赞同!

凝残月

看了这篇博文,我发现自己对机器学习的理解还不够深入,需要加强数学基础。

    有5位网友表示赞同!

青衫故人

数学基础和资源采集都很重要,但是我觉得更重要的是对问题的深入理解。

    有19位网友表示赞同!

我没有爱人i

这篇博文让我对机器学习的数学基础有了更清晰的认识,受益匪浅。

    有17位网友表示赞同!