前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数学都还给老师了,还能搞算法吗?

数学都还给老师了,还能搞算法吗?

作者头像
TechFlow-承志
发布2022-08-26 18:30:12
4360
发布2022-08-26 18:30:12
举报
文章被收录于专栏:TechFlowTechFlow

作者 | 梁唐

大家好,我是梁唐。

今天来聊一个老生常谈的话题,就是关于数学的话题。

江湖上有很多传言,比如想要搞算法,一定要先搞数学。数学非常重要,数学都不会,怎么搞算法。甚至还有小伙伴问我说,我想搞算法,是直接读计算机呢,还是先读个数学系再转计算机……还有很多小伙伴想要从事算法,但是对于数学充满了畏惧。

还有一些小伙伴看了几篇算法相关的文章或者视频,然后被当中的数学公式劝退了。觉得太难了,看得眼花缭乱。比如我,当初第一次看Andrew NG机器学习视频的时候,每次只能看一集。要理解英文,要看懂公式,已经耗尽脑力了,再往下看必然会睡着。

但我后来把线性代数和高数重新复习了一下,再看各种论文、视频就没有压力了。甚至还可以自己手推一下公式,验证一些想法。

我个人对这个问题的结论是,数学是必须的,只不过门槛并不高。以计算机专业必学的三板斧:高数、线性代数、概率论,基本上就足够了。

下面稍微仔细展开说说,首先是线性代数。如果要搞算法,线性代数一定是根基。因为不论是机器学习还是深度学习,模型中的数据都是以矩阵或向量的形式存储的。矩阵和向量的运算,自然少不了线性代数的知识。尤其是有的时候还会涉及求导、求逆矩阵等比较复杂的运算,线性代数肯定是少不了的。

然后再是高数,其实算法当中对高数的应用不太多。用得比较多的就是求导数,尤其是对一个复杂函数求导。算法领域很少求积分,毕竟算法里研究的往往都是离散值,用得比较多的就是导数。比如梯度下降算法,就是利用偏导来算的。

除了导数之外,还有一个比较多的是泰勒展开式,和一些不等式。泰勒展开公式在一些模型的推导当中有用到,比如说GBDT、XGBoost。不等式也是出现在一些公式推导当中,这两部分的比重不是很大,难度也不大,可以用到的时候再去学也可以。毕竟学完了如果长时间不用也是会忘的。

概率论应该算是用得比较多的,比如先验、后验概率的计算,极大似然估计、最大后验概率,还有贝叶斯公式、条件概率,以及一些统计学相关的知识。毕竟机器学习的前身是统计学习,当中关于统计的内容还是蛮多的。但同样,由于基本不涉及积分,所以难度也不大,常用的也是一些比较直观的计算。

还有一门课我没有提到,但呼声很高,就是离散数学。

老实讲这是一门我没有学明白的课,根据大佬的说法,离散数学研究的是离散变量的,是一切计算机算法的基础。但我之前的感觉是好像从来没有用过离散数学里的内容,写这篇文章之前去知乎里搜索了一下。从一位大佬的说法当中找到了答案,原来并非离散数学没有用,而是国内讲课的重点有点问题。

国内离散数学的课着重讲前面集合论、数理逻辑部分,这部分偏理论,实际用到的不多,存在感不强。而后面的排列组合、图论、算法、归纳法、递归经常使用,但往往被归纳进了算法的范畴。所以即使经常使用,也不觉得这个是离散数学的内容。

如果是这样的话,那么离散数学应该也是出镜率很高的。比如在LeetCode算法题当中,肯定少不了图论、递归相关的算法题,只不过我们在解题的时候都会把它们当做是算法问题,而不会认为和离散数学有关。

即使我们把离散数学也算上,相关的数学课也就只有四门。在计算机领域,我个人觉得如果不做很深的数理相关的研究只是想要当一个工程师的话,这四门课肯定是足够了。毕竟对于算法工程师来说,数学和算法一样,只是我们理解某个理论,研究模型原理的工具而已。重要的不是研究工具本身,而是让工具为我所用,给我们的实际工作创造价值。

甚至如果你完全没有这些数学知识,把神经网络的底层原理当做黑盒,也不是不可以。实际上很多水平不行的算法工程师也的确如此,只不过这样会影响和制约未来的发展。原理都没搞明白,创新、突破自然也就无从谈起了。我个人对这样的同行也是非常不认可的。

最后做一个简单的总结,觉得数学毫无作用,嗤之以鼻,或者觉得非常重要,以至于要专门去读一个数学专业的本科打基础,我个人认为这两种观点都有一些偏颇。

能把计算机专业本科阶段的这四门数学课吃透,不说绰绰有余,至少肯定是足够了。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-12-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Coder梁 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档