您好、欢迎来到现金彩票网!
当前位置:双彩网 > 向量化 >

机器学习对数学功底的要求到底有多高

发布时间:2019-07-04 02:17 来源:未知 编辑:admin

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  我是小硕一枚,研究方向是机器学习。通过阅读一些机器学习的教科书,发现机器学习对于数学基础要求比较高。

  看方向,不过任何方向都基本上不够。缺什么补什么吧,数学是个坑,机器学习也是个坑,人不可能同时在两个坑里挣扎。

  看方向,不过任何方向都基本上不够。缺什么补什么吧,数学是个坑,机器学习也是个坑,人不可能同时在两个坑里挣扎。

  看方向,不过任何方向都基本上不够。缺什么补什么吧,数学是个坑,机器学习也是个坑,人不可能同 ... skynet

  如果对机器学习仅是以应用为目的的话,到底需要多少数学…,比如说微分流形,代数拓扑,泛函之类的需要懂吗?

  “仅是以应用为目的”有点含糊。。乍一看题主好像想说是在公司里用,但后面又出来一大票高大上课程,看起来又好像偏学界。。前面的大大们提到的感觉更偏学界。我补充一些工业界的情况。

  总的来说我偏向匿名用户的回答。如果对机器学习仅是以应用为目的的话,到底需要多少数学…,比如说微分流形,代数拓扑,泛函之类的需要懂吗? - 匿名用户的回答

  在思考这个问题之前,要先搞清楚公司花钱雇你来干啥的。我的经验是,这有两种情况。一是公司原来没有一项业务,现在要把一些机器学习这个东西跑起来(从无到有)。二是在你接手的时候公司已经有一定基础了,现在要把性能调上去(从差到优)。前者完全不用任何数学,先用别人有的模块/代码把系统撸起来是王道。后者看具体问题,大多数情况不用数学。

  从无到有的情况,比如我原来在facebook做place deduplication,大概就是说非死不可上面超多可以签到的地点,要判断里面有哪些是重复的地点。类似知乎上面有很多重复的问题,如何鉴别和重定向这些问题。这个问题从机器学习的角度来看并不难,有很多已有工作。但公司更关心的其实是怎么把随便一个系统在fb数十TB的数据上日起来。所以我们的绝大多数时间根本不是花在评估哪个机器学习模型更好,这个流形有什么性质,那个系统有什么下限,而是——撸hadoop用几千个核先把feature抽出来。有了feature以后后台分类器是特妈随便找的这种事我会乱说?这种情况跟数学完全没鸟关系好吗。

  从有到优的情况,我也参与了这个项目的调优。基本经验是——分类器啊模型啊再复杂精巧数学性质再好没吊用,关键还是看feature。弄一个有效的feature出来精度呼呼的往上涨,各种分类器瞎JB换啊调啊基本没差别。。(当然deep learning这种模型的质变除外,但这个和不搞科研的人就没啥关系了)所以你要问数学有没有用,我说有用,根据数学才能提出有效的模型——但这特妈是学界人家十年磨一剑的人用的。放公司里用数学拱KPI分分钟被nen死。隔壁王二狗整俩新feature奖金拿得多多的,这边你要死磕泛函产品狗咬死你。。

  当然在偏研究的地方比如Google X的某些部门还是有用的,但我觉得这还是偏学界。

  总的来说,我的建议是,如果想去公司的话就不要纠结逼格过高的事情了。学好线性代数,统计和凸优化就出门打怪吧,攒系统经验和dirty trick才是王道。当然我也不是说就不要搞数学,只是如果你去公司的话,在学好线代统计凸优化的前提下,同样的时间花在学计算机系统的构建和系统性的思考方法上,比学习数学更划算。

  只要20%的机器学习知识,其实已经可以在80%的商业应用里取得满意的效果。

  但,如果公司精益求精,或者说是专注于机器学习算法的公司,可能要投入指数级别的努力来达到性能的提升。

  不请自来,我本人就是从数学转到数据科学上来的,是完全以应用为目的学的机器学习。本科加PHD九年中,数学方面的课程大概学过:数学分析(微积分),线性代数,概率论,统计,应用统计,数值分析,常微分方程,偏微分方程,数值偏微分方程,运筹学,离散数学,随机过程,随机偏微分方程,抽象代数,实变函数,泛函分析,复变函数,数学建模,拓扑,微分几何,渐近分析等等

  从我个人的学习过程中,觉得对机器学习的应用有帮助的数学学科有(重要性从高到低):

  1, 线性代数(或叫高等代数):必需,所有的算法最后都会向量化表示,线性代数不熟的线,微积分:这个是所有高等数学的基础,不细说了

  3,统计:这里包括统计理论基础,和应用统计(主要就是线性模型)。很多机器学习内容的前身就是统计啊。

  前三个感觉是想要学好机器学习所必需的,后面的虽然不必需,但是适当了解之后,帮助也很大:

  4,概率论:基础概率论就够了,以测度为基础的高级概率论对机器学习帮助不大

  5,数值分析:数值分析的一部分包括了插值,拟合,数值求解各种方程,数值积分,这些小技术虽然没有跟机器学习直接扯上关系,但是可能在你处理复杂问题时的一些小地方起到奇效。数值分析的另一大块就是数值线性代数了,包括怎么矩阵求逆了,矩阵的各种分解了,矩阵特征根奇异值什么了,这里面很多算法都会被机器学习的书法直接使用的。比如SVD就被Principal Component Analysis直接调用了啊。

  6,运筹学:运筹就是做优化,说白了就是把问题表示成数学公式和限制条件,然后求最大值或最小值。所以不少机器学习里面先进的优化算法,最先都是在运筹里面出现的

  暂时就想到这么多,至于题主说的泛函,微分流形,代数拓扑啥的,完全不需要了解啊。

  我就是从数学转ML的。我就知道,肯定有人要扯很多纯数学的“基础背景”。我说一些实在的,微分几何,流形,代数拓扑这些知识,只要你去找相关的研究论文,总能找得到和Ml有交集的地方。但是,不代表你必须掌握它们。在大部分的ML研究里,还是微积分和线性代数、概率统计的功底最重要。不要太小看微积分和线性代数,很多时候做研究时要用的推导还是需要很多熟练的技巧才可以胜任。至于其他知识,可以用到时再补充。

  机器学习需要学习哪些数学知识 [问题点数:20分,结帖人hanyahui88]

  最近公司做数据分析,但是以前都没有接触过,看了一下所有的算法,很多都是跟数学有关,看不懂很多数学符号,所以问问我应该学习什么数学 好像离散数学是必须的

  以我平时接触到的机器学习算法来说,与其相关的的数学知识有:求导,求梯度,拉格朗日乘子法,拉格朗日对偶,牛顿迭代法等,数学知识是基础,很多机器学习算法是建立在数学的基础上,是数值计算的比较多,和离散数学关系不是特别大,如果你要做图算法,那离散数学就很重要了。

  引用 1 楼 OrthocenterChocolate 的回复:以我平时接触到的机器学习算法来说,与其相关的的数学知识有:求导,求梯度,拉格朗日乘子法,拉格朗日对偶,牛顿迭代法等,数学知识是基础,很多机器学习算法是建立在数学的基础上,是数值计算的比较多,和离散数学关系不是特别大,如果你要做图算法,那离散数学就很重要了。

  我最近在研究均值漂移算法,里面的核函数,好多公式都看不懂 我也不知道学什么数学可以看懂这些公式。

  你说的求导,求梯度,拉格朗日乘子法,拉格朗日对偶,牛顿迭代法等 这些是什么数学中的??

  引用 2 楼 hanyahui88 的回复:Quote: 引用 1 楼 OrthocenterChocolate 的回复: 以我平时接触到的机器学习算法来说,与其相关的的数学知识有:求导,求梯度,拉格朗日乘子法,拉格朗日对偶,牛顿迭代法等,数学知识是基础,很多机器学习算法是建立在数学的基础上,是数值计算的比较多,和离散数学关系不是特别大,如果你要做图算法,那离散数学就很重要了。我最近在研究均值漂移算法,里面的核函数,好多公式都看不懂 我也不知道学什么数学可以看懂这些公式。

  你说的求导,求梯度,拉格朗日乘子法,拉格朗日对偶,牛顿迭代法等 这些是什么数学中的??

  引用 2 楼 hanyahui88 的回复:Quote: 引用 1 楼 OrthocenterChocolate 的回复: 以我平时接触到的机器学习算法来说,与其相关的的数学知识有:求导,求梯度,拉格朗日乘子法,拉格朗日对偶,牛顿迭代法等,数学知识是基础,很多机器学习算法是建立在数学的基础上,是数值计算的比较多,和离散数学关系不是特别大,如果你要做图算法,那离散数学就很重要了。我最近在研究均值漂移算法,里面的核函数,好多公式都看不懂 我也不知道学什么数学可以看懂这些公式。

  你说的求导,求梯度,拉格朗日乘子法,拉格朗日对偶,牛顿迭代法等 这些是什么数学中的??

  求导,求梯度,拉格朗日乘子法是高等数学里面的,拉格朗日对偶,牛顿迭代法你可以看看凸优化,其实凸优化应该包含了你想看的很多机器学习中的数学知识,只不过它们是建立在一些更为基础的数学知识上(如求导)。

  引用 4 楼 OrthocenterChocolate 的回复:Quote: 引用 2 楼 hanyahui88 的回复:Quote: 引用 1 楼 OrthocenterChocolate 的回复: 以我平时接触到的机器学习算法来说,与其相关的的数学知识有:求导,求梯度,拉格朗日乘子法,拉格朗日对偶,牛顿迭代法等,数学知识是基础,很多机器学习算法是建立在数学的基础上,是数值计算的比较多,和离散数学关系不是特别大,如果你要做图算法,那离散数学就很重要了。我最近在研究均值漂移算法,里面的核函数,好多公式都看不懂 我也不知道学什么数学可以看懂这些公式。

  你说的求导,求梯度,拉格朗日乘子法,拉格朗日对偶,牛顿迭代法等 这些是什么数学中的??求导,求梯度,拉格朗日乘子法是高等数学里面的,拉格朗日对偶,牛顿迭代法你可以看看凸优化,其实凸优化应该包含了你想看的很多机器学习中的数学知识,只不过它们是建立在一些更为基础的数学知识上(如求导)。

  引用 5 楼 hanyahui88 的回复:Quote: 引用 4 楼 OrthocenterChocolate 的回复:Quote: 引用 2 楼 hanyahui88 的回复:Quote: 引用 1 楼 OrthocenterChocolate 的回复: 以我平时接触到的机器学习算法来说,与其相关的的数学知识有:求导,求梯度,拉格朗日乘子法,拉格朗日对偶,牛顿迭代法等,数学知识是基础,很多机器学习算法是建立在数学的基础上,是数值计算的比较多,和离散数学关系不是特别大,如果你要做图算法,那离散数学就很重要了。我最近在研究均值漂移算法,里面的核函数,好多公式都看不懂 我也不知道学什么数学可以看懂这些公式。

  你说的求导,求梯度,拉格朗日乘子法,拉格朗日对偶,牛顿迭代法等 这些是什么数学中的??求导,求梯度,拉格朗日乘子法是高等数学里面的,拉格朗日对偶,牛顿迭代法你可以看看凸优化,其实凸优化应该包含了你想看的很多机器学习中的数学知识,只不过它们是建立在一些更为基础的数学知识上(如求导)。

  对,还有些矩阵运算,如果不熟悉的话再看看线性代数,建议你碰到不会的再去查,而不是事先全部看完, 不然太多了。

  引用 7 楼 q243021856 的回复:微积分、线性代数、概率论、离散数学、统计学

  数学学习注重理解运用,灵活的思维才是数学进步的根本,而机械的学习方式不会锻炼你的思维。数学功底应该体现在思考分析判断能力上,想要机械地学习数学,你需要掌握基础的公式以及常见的二级结论,还要有相当熟练的计算能力,一定的观察能力和对题目的理解能力。反正数学是理科,不是背背算算就能会的,要靠深入透彻的思考。

  展开全部大体罗列一下,有疏漏欢迎拍砖:1、数学分析,线性代数,近世代数,概率论,信息论2、实分析,复分析,矩阵分析,矩阵计算,数值分析,数理统计3、泛函分析,凸优化,数值优化本人也是小白,暂时只能列出这些。。。

  既然有人赞同我的观点,就顺便补充一些个人认为相对较好的书籍,希望能有所帮助,当然英语功底好的同学可以去看原版,英文不好的同学可以作为对照参考:

http://chinoamobi.com/xianglianghua/248.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有