math计算机科学

我已经阅读了几个关于这个主题的答案,但是我仍然有疑问。有很多math课程,我不知道哪一个要先拿。 每个计算机科学家应该选哪个math课程? 哪一类应该是第一个,为什么?

非常好,重要的问题! 对每一位计算机科学家来说,理解math是至关重要的,math的要求也开始变得更加多样化。

  • 离散math是计算机科学最重要和最基础的课程,因此它通常在CS部门而不是math部门提供。 这个类将支持你的algorithm介绍,课程和教你如何mathcertificate的东西,并给你分析数据结构和algorithm的基础。
  • 微积分虽然没有直接用于入门级计算机科学课程,但通常是由你的大学提供的一系列课程来提高你的math技能。 当你开始进入像数字编程和机器学习这样的东西时,它将certificate是非常有用的。 这也是先进的概率/统计课程的要求。
  • 在离散math课程中, 概率通常会在一定程度上被覆盖,但是您可能想要在连续概率分布和统计推断上课,可能在math和统计部门。 这将使您更好地理解如何进行数值计算和模拟,对于机器学习 (计算机科学最重要的应用之一)来说,这是必不可less的。
  • 线性代数是一门对机器学习和(高级)algorithm课程非常有用的类,但它在计算机视觉,计算机graphics学,机器学习和其他量子学科中的重要性是至关重要的。

也就是说,如果介绍机器学习课程,他们可能会涵盖足够的线性代数和其他东西,你可以通过一个基本的概率类获得。 然而,对于计算机科学的研究生学习,对上述math的所有领域的了解是非常重要的。

除了大学本科math课程,更高水平的math课程对计算机科学的某些理论领域(例如algorithm博弈论,与经济学相交叉),特别是超越机器学习从业者到开发新algorithm是有用的。 这些课程包括:

  • 真正的分析 ,包括测量理论 ,你会发现,如果你研究概率和演算足够长的时间,他们再次收敛。 分析通常是一个有用的事情,要知道当你开始使用涉及数字的algorithm时。

  • 优化包括线性优化 , 凸优化 , 梯度下降等等。 在很多情况下,“学习”一个机器学习模型基本上归结为优化一个目标函数,这个函数的属性如凸是否对优化的容易程度有很大的影响。

  • 数值方法 :有些人并不认为这是一个math课本身 ,但是在将algorithm和理论转化为浮点math的不完美表示中,还有许多实际问题需要解决。 例如, log-sum-exp技巧 。

  • 对于那些在“数据科学”及相关领域的人来说,高级统计特别是因果推断是非常重要的。 有很多东西需要知道,主要是因为能够访问大量的数据为外行人引发这个问题 。

组合 , 数值分析 , 离散math , 数理统计 , 概率论 , 信息论 , 线性代数 , lambda演算 , math逻辑 , 范畴论 , 过程演算等。

既然你指定“计算机科学家”,我们将采取艰难的路线:

  1. algorithm分析依赖于微积分,微分方程和离散math。 (许多人认为algorithm分析是计算机科学与软件工程程序之间的主要区别)。
  2. 计算机graphics/科学可视化需要工程分析背景:数值方法,线性代数等。
  3. 计算几何
  4. 函数逼近
  5. 集合论,逻辑/一阶微积分
  6. 概率/统计
  7. 名单继续:)