web-dev-qa-db-ja.com

コンピュータサイエンスのための数学

私はこのトピックに関するいくつかの答えを読みましたが、まだ質問があります。数学のコースはたくさんあります。すべてのコンピューター科学者はどの数学のクラスを取るべきですか?そして、どのクラスが最初のクラスである必要があり、なぜですか?

64
LoLzMan

非常に良い重要な質問です!すべてのコンピューター科学者にとって数学の十分な理解は不可欠であり、数学の要件はますます多様化し始めています。

  • 離散数学 はコンピューターサイエンスにとって最も重要で基本的なクラスであり、このため、通常は数学部門ではなくCS部門で提供されます。このクラスは、クラスのアルゴリズムのイントロを支え、数学的に物事を証明する方法を教え、データ構造とアルゴリズムを分析するための基礎を提供します。
  • Calculus は、イントロレベルのコンピューターサイエンスクラスでは直接使用されませんが、一般的に大学が提供する一連のコースで、数学のスキルを強化します。ただし、数値プログラミングや機械学習などのことを始めると、非常に役立つことがわかります。また、高度な確率/統計コースの要件でもあります。
  • 確率 は通常、離散数学クラスである程度カバーされますが、連続確率分布と 統計的推論 でクラスを取りたいと思うでしょう。おそらく数学と統計で部門。これにより、数値計算とシミュレーションの方法をよりよく理解できます。これは、コンピューターサイエンスの最も重要なアプリケーションの1つである 機械学習 に基本的に必要です。
  • 線形代数 は、機械学習および(高度な)アルゴリズムクラスに主に役立つクラスですが、コンピュータービジョン、コンピューターグラフィックス、機械学習、およびその他の定量的サブディシプリンにおけるその重要性が最も重要です。

とはいえ、機械学習クラスのイントロが利用可能であれば、基本的な確率クラスで得られる十分な線形代数やその他のものをおそらくカバーします。ただし、コンピューターサイエンスの大学院課程では、上記の数学のすべての分野を十分に理解することが不可欠です。

学部の数学を超えて、高レベルの数学コースは、コンピューターサイエンスの特定の理論分野(たとえば、経済学と交差するアルゴリズムゲーム理論)で、特に機械学習の専門家を超えて新しいアルゴリズムを開発するのに役立ちます。これらのコースは次のとおりです。

  • 実際の分析 を含む 測定理論 ここで、確率と計算を十分に長く研究すると、再び収束することがわかります。一般に、分析は、数値が関係するアルゴリズムを使用して作業を開始するときに知っておくと便利です。

  • 最適化線形最適化凸最適化勾配降下 など。多くの場合、機械学習モデルの「学習」は基本的に目的関数の最適化に帰着し、この関数の特性(凸であるかどうかなど)は最適化の容易さに大きな影響を与えます。

  • 数値メソッド :一部の人はこれを数学クラス自体とは見なしませんが、アルゴリズムと理論を不完全な表現に変換します浮動小数点演算の場合、解決すべき多くの実際的な問題があります。たとえば、 log-sum-exp trick

  • 「データサイエンス」および関連分野に携わる人にとって、高度な統計、特に 因果推論 は非常に重要です。知っておくべきことがたくさんありますが、その多くは、多くのデータにアクセスできるため、未経験者にとっては この問題 です。

86
Andrew Mao
9

「コンピュータサイエンティスト」を指定しているため、ハードルートを使用します。

  1. アルゴリズムの分析は、計算、微分方程式、離散数学に依存しています。 (アルゴリズムの多くの分析は、コンピューターサイエンスプログラムとソフトウェアエンジニアリングプログラムの主な差別化要因と見なされています)。
  2. コンピュータグラフィックス/科学的な視覚化には、数値解析、線形代数などの工学的分析が必要です。
  3. 計算幾何学
  4. 関数近似
  5. 集合論、論理/一次計算
  6. 確率/統計
  7. リストは続く:)
6
Throwback1986