このトピックに関するいくつかの回答を読みましたが、まだ質問があります。数学のコースはたくさんあり、どれを最初に受講するかわかりません。すべてのコンピューター科学者はどの数学の授業を受けるべきですか?そして、どのクラスが最初のクラスである必要があり、その理由は何ですか?
3 に答える
とても良い重要な質問です!すべてのコンピューター科学者にとって数学をよく理解することは不可欠であり、数学の要件はますます多様化し始めています。
- 離散数学はコンピュータサイエンスにとって最も重要で基本的なクラスであるため、通常、数学部門ではなくCS部門で提供されます。このクラスは、アルゴリズムの紹介をサポートし、数学的に物事を証明する方法を教え、データ構造とアルゴリズムを分析するための基礎を提供します。
- 微積分は、イントロレベルのコンピュータサイエンスのクラスでは直接使用されませんが、通常、数学のスキルを向上させるために大学が提供する一連のコースです。ただし、数値プログラミングや機械学習などに取り掛かると、非常に便利になります。これは、高度な確率/統計コースの要件でもあります。
- 確率は通常、離散数学クラスである程度カバーされますが、おそらく数学および統計部門で、連続確率分布と統計的推論に関するクラスを受講することをお勧めします。これにより、数値計算とシミュレーションの方法をよりよく理解できるようになり、コンピュータサイエンスの最も重要なアプリケーションの1つである機械学習に基本的に必要になります。
- 線形代数は、主に機械学習と(高度な)アルゴリズムのクラスに役立つクラスですが、コンピュータービジョン、コンピューターグラフィックス、機械学習、およびその他の定量的なサブ分野におけるその重要性が最も重要です。
とはいえ、機械学習クラスの概要が利用できる場合は、基本的な確率クラスで取得できる十分な線形代数やその他のものをカバーする可能性があります。ただし、コンピュータサイエンスの大学院での研究には、上記の数学のすべての分野を十分に理解することが不可欠です。
学部の数学を超えて、高レベルの数学コースは、コンピュータサイエンスの特定の理論分野(たとえば、経済学と交差するアルゴリズムゲーム理論)、特に機械学習の実践者であるだけでなく、新しいアルゴリズムの開発にも役立ちます。これらのコースには次のものが含まれます。
確率と微積分を十分に長く研究すると、それらが再び収束することがわかる測度論を含む、実際の分析。分析は、一般的に、数値を含むアルゴリズムを使い始めるときに知っておくと便利なことです。
線形最適化、凸最適化、最急降下法などを含む最適化。多くの場合、機械学習モデルの「学習」は基本的に目的関数の最適化に要約され、凸であるかどうかなどのこの関数のプロパティは、最適化の容易さに大きな影響を与えます。
数値的方法:これ自体を数学のクラスとは見なさない人もいますが、アルゴリズムと理論を浮動小数点数学の不完全な表現に変換するには、解決すべき多くの実際的な問題があります。たとえば、log-sum-expトリック。
「データサイエンス」および関連分野に携わる人々にとって、高度な統計、特に因果推論は非常に重要です。多くのデータにアクセスできることは、初心者にとってこの問題を誘惑するため、知っておくべきことがたくさんあります。
「コンピュータ科学者」を指定するので、難しいルートを取ります。
- アルゴリズムの分析は、微積分、常微分方程式、および離散数学に依存しています。(多くの場合、アルゴリズムの分析は、コンピューターサイエンスとソフトウェアエンジニアリングプログラムの主な差別化要因と見なされています)。
- コンピュータグラフィックス/科学的可視化には、数値的手法、線形代数などの工学的分析のような背景が必要です。
- 計算幾何学
- 関数近似
- 集合論、論理/一階微積分
- 確率/統計
- リストは続きます:)