扎实的数学知识是掌握ML的必备条件吗?


37

我开始想提升自己的技能,而我一直对机器学习着迷。但是,六年前,我决定继续攻读计算机科学,而没有追求这一目标,而不是追求这一目标。

我从事软件和应用程序的开发已有大约8至10年的时间,因此我拥有良好的处理能力,但似乎无法理解机器学习/概率/统计的数学方面。

我开始看学习材料,在第一页上可能包含使我困惑并立即在学习中设置障碍的内容。

  • 扎实的数学知识是掌握ML的必备条件吗?在继续学习ML之前,我应该尝试填补数学的空白吗?在没有任何计算机科学背景的情况下,自我学习真的可以只对开发人员有效吗?

相关问题:


4
我要说的是,您至少需要非常了解线性代数,并且可能对贝叶斯应用程序也要有一定的了解。您还需要习惯于将数学转换为代码,还需要适应于符号约定(一点也不统一)。对于大多数计算机科学家而言,ML也不容易。
约翰·穆勒

3
我认为这些问题根本无关。感谢您将其设置为一个非常吸引人的stackexchange网站并结束了该问题。我什至没有提到有人向我推荐一本书。这不是基于“可能重复”重复
Layke

2
我在meta(8小时前)上创建了一个线程,要求重新打开它。meta.stats.stackexchange.com/questions/1442/…–
道格拉斯·

1
谢谢。它仍然可以被视为“过于主观”或“不是一个真正的问题”而关闭,但绝对不是重复的。
Layke 2012年

1
Layke,正如@Douglas Zare所发起的meta线程中所述,我们希望您考虑关闭此问题可能对您有利,因为它可以立即使您访问可能已经回答您问题的相关线程。但既然你已经评论说,它不打算是重复,你会介意编辑您的问题,使其在什么意义上它并清除复制本网站类似的问题?那我们很高兴重新打开它。
ub

Answers:


23

斯坦福(Ng)加州理工(Abu-Mostafa)在YouTube上开设了机器学习课程。您看不到作业,但讲座不依赖这些作业。我建议尝试先看那些,因为它们将帮助您找出需要学习的数学。我相信吴安德(Andrew Ng)在Coursera上教授了非常相似的课堂作业,吴安德(Ng)协助创建了该课程。

一个例外:如果我没记错的话,在Stanford演讲的早期,Ng进行了一些涉及矩阵乘积的痕迹导数的计算。这些都是孤立的,所以如果您不遵循这些计算,请不要担心。我什至不知道涵盖哪些课程。

您确实希望对概率,线性代数,线性规划和多变量演算有所了解。但是,您所需要的远远少于许多关于这些主题的完整大学课程所包含的内容。



15

根据应用程序的类型,作为ML练习者,您不一定需要大量数学。

作为一名自学成才的程序员(大约15年),并且经常辍学而又没有数学(微积分III)或统计学的背景知识,我从机器学习/数据挖掘开始,使用了一些资源:

  • Berry和Linoff所著的“掌握数据挖掘:客户关系管理的艺术和科学”一书

  • 同一作者的《数据挖掘技术》一书

  • R,尤其是包party和nnet

我在一家非盈利性的市场营销和运营部门工作。特别是在一开始,我主要将数据挖掘用于直接邮件申诉。

后来,我学习了线性代数,吴伟达的机器学习,CSU的统计方法入门(STAT 301)等。

对于您,我建议您从两本书开始,即Andrew Ng的课程,并根据您的应用程序选择决策树(R中的聚会包)。


9

我认为这实际上是一个很好的问题,而且非常热门。我不确定是否有答案。最近的一篇文章指出数据科学很容易在网上学习,引起了很多争议(请参阅此处)。但是,该文章中提到的大多数案例研究的值得注意的一件事是,它们来自精算或数学背景。

这是一个有趣的观点,因为它表明虽然Coursera,Stanford和edX之类的在线课程有助于教授所需的特定计算机科学技能,但可能有一定的数学背景对于理解您正在应用的模型在做什么是必不可少的。另一方面,可以提出一个同样强有力的论据,即这些人从一开始就具有分析思维,这就是为什么他们从事定量学科工作以及为什么他们容易接受机器学习并赢得比赛的原因。

我从根本上认为这里存在一定程度的分析问题。虽然数学技能有时有助于理解您正在应用的算法的概率根源,但有一个平等的论点是,好的软件工程技能可以通过允许您进行高级分析并将算法的各个部分放在一起而增加同样多的东西即使您并不完全理解他们为什么这样做,也可以实现您的目标。通常,正是由于这种广度,数据科学(以及关联的机器学习)才是令人兴奋的领域-您可以成为数据库专家并使用蛮力解决问题,也可以是使用模拟的数学家,或者是利用精心设计的计算机科学家代码以最佳方式组合不同的算法和方法。

所有添加到预测中的方法都是好的,因此我想说,学习一些数学可能是个好主意,可以为您提供在该领域获得最大成功的机会。如果您想要一些良好的起点,那么MIT有一个很好的线性代数课程,其中包含一些很好的计算应用程序,我觉得这很容易理解。他们还开设了其他有关随机过程和多变量微积分的课程,这些课程也可能对建立您的知识感兴趣。


那些缺乏分析能力的人(或非熟练或拙劣的抽象者)并不能通过简化数学来真正帮助我(+1)。也喜欢Strang线性代数课程,但是线性代数不是第一个被蛮力计算超越的数学吗?至于数据科学是容易联系的,也许有人已经提出来了,但在人造股票市场竞争中,通常有成千上万种特征中的1或2会击败专家-这样任何人都可以得到rick选股!
phaneron

4

扎实的数学知识是掌握ML的必备条件吗?–对被概念化为统计数据的机器学习的答案和推测;-)

在1990年左右,我曾希望计算机代数能有所帮助,我想是有帮助的,但是它相当有限。但这无疑有助于加快数学的学习(不需要通过练习来发展操纵技能,也不需要通过简单的练习就可以掌握技能)。我发现Fred Szabo的Mathematica线性代数就是一个很好的例子(但是我已经学习了高级理论水平的线性代数课程。)

自1988年以来,我一直在工作(利用计算机密集型方法“精确地”精确化统计的定理和原理),使答案完全没有(或至少没有必要)(对于统计)。人们将始终能够通过额外的数学技能和理解来更快,更普遍地理解。我想我已经开始接近了,但是人们需要一种可操纵的概率生成模型和推论,该模型不仅对玩具问题有效而且有用。

在继续学习ML之前,我应该尝试填补数学的空白吗?

这是一项艰苦的努力–在MHO中,几乎所有了解统计信息的人都是通过非常舒适地操作标准而达到目标的,尤其是概率生成模型的标准数学表示形式和推理的数学特征(数学统计Phds的最高x%)。因此,不仅要掌握基础知识,还要对数学真正感到满意。(顺便说一句,对我来说,傅立叶理论至关重要。)

为什么这些表示很难(即使有很多数学运算)?

Gerd Gigerenzer几乎已经确定,只要使用_自然频率测试阳性/阴性问题,简单的疾病阳性/阴性就不会面临挑战。链接问题的参考文献似乎很好地利用了该http://www.autonlab.org/tutorials/prob18.pdf

为什么很难一概而论?

对于k个测试(重复的和/或不同的)– 2 ^ k

对于采用v值的测试– v ^ k

因此对于二进制未知数– 2 * v ^ k样本路径概率

对于p多个二进制未知数2 ^ p * v ^ k

对于p个多重有理未知数Q ^ p * v ^ k

人们迅速转向数学,无穷无尽的数字可以解决这一问题,即使具有数学专业知识,数学也会导致许多误解和看似悖论(例如Borel悖论?)。

此外,还有线性到非线性的危险误解(例如,指定非信息性先验Winbug和其他MCMC的隐性危险,而没有事先分发的信息)以及交互作用和随机效应等。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.