線形代数のどの部分がコンピューターサイエンスで使用されていますか?


15

私は線形代数とそのアプリケーションを読んで、コンピューターサイエンスの教材(主に機械学習)の理解に役立てていますが、CSにとって多くの情報が役に立たないことを心配しています。たとえば、線形方程式のシステムを効率的に解く方法を知ることは、新しい方程式ソルバーをプログラムしようとしない限り、あまり役に立ちません。さらに、本は、行列に逆行列がある場合のスパン、線形依存性、独立性、およびこれらの間の関係について多くのことを話しましたが、CSでこれを適用することは考えられません。それでは、線形代数のどの部分がCSで使用されていますか?


2
あなたはあなた自身の利益を求めていますか、それともあなたは生徒のやる気を引き出すための戦略を探している教師ですか?
ラファエル

線形代数は、コンピューターグラフィックスの多くの部分で役立ちます(多くの関連情報がグーグルで見つかります)。
ジュホ

線形方程式のシステムを解くことは、コンピューターサイエンスで非常に役立ちます。例:en.m.wikipedia.org/wiki/Combinatorial_optimization
Ant P

1
行列は、ゲーム開発、投影、回転、および四元数計算にIEで頻繁に使用されます。
ポール

@Paulpro問題は、行列(オブジェクトのセット)ではなく、線形代数(作品)のアプリケーションです。
ラファエル

回答:


11

あなたが言及した部分は線形代数の基本概念です。基本的な概念を最初に理解する前に、より高度な概念(固有値や固有ベクトルなど)を理解することはできません。数学には近道はありません。スパンと線形独立性の概念を直観的に理解しなければ、線形代数には遠く及ばないでしょう。

一部のアルゴリズムはフルランクマトリックスでのみ機能します–それが何を意味するか知っていますか?行列がフルランクではないことを知っていますか?これを処理する方法は?線形独立性がわからない場合、手掛かりがありません。

線形方程式を解くために使用されるガウス消去アルゴリズムは、不適切に実装された場合、実際には数値的に不安定になる可能性があり、これは場合によっては心配する必要があるかもしれません。アルゴリズムを理解しないと、問題がどこから来て、それに対して何ができるかがわかりません。一次方程式を解くためのアルゴリズムのレベルではなく、解くための正しい一次方程式を考え出すレベルです。

要するに、怠けてはいけません。これらのことは役に立つと信じてください。


5
「これらのことは有用であると信じてください」-まあ、全体的な有用性を気にせずに彼らの講義を最愛の人にロードする教師を知っているのではないでしょうか?学生は実際に違いを見分けることはできませんが、盲目的に信頼するべきでもありません。「これは何のために必要ですか?」は公正な質問ですが、「それはあなたの心を訓練するためだけのものです」も公正な答えです。
ラファエル

9
「怠けてはいけない」は建設的ではないトーンを設定します。私は素晴らしく好奇心、盛で、熱心で、怠け者の生徒がこの質問をすることはありません。多くのCS学生は、従来の線形代数クラスが、彼らが必要と考えるものとは別の世界であると感じています。彼らの関心はコンピューティングとプログラミングであり、必ずしも数学ではありません。何らかのコンテキストと動機を必要とすることは、怠の兆候ではありません。そのようにペイントしないでください。
ローガンメイフィールド

ローガン・メイフィールドの@ラファエル、機械学習と線形代数の関係を知っていますか?少し具体的ですが、Yuvalは彼が言及した例についてかなり重要です。OPの質問は、たった1つのインターネット投稿で完全に答えることはできません。
musicliftsme

7

線形代数は、グラフアルゴリズムで非常に便利で強力な場合があります。マトリックスツリー定理あなたが効率的にスパニングツリーの数を数えることができるグラフは、(あなたが固有値を理解する必要がある)があります。線形代数をさらにしっかりと把握する必要がある、より挑戦的なアプリケーションは、多項式時間で平面グラフの完全一致の数を計算するためのFKTアルゴリズムです。

代数グラフ理論およびスペクトルグラフ理論における線形代数の使用には、さらに多くの刺激的な例があります。発生するアルゴリズムは、私が挙げた2つの例のような問題を数えるためだけのものではありません。たとえば、接続性を確認したり、グラフの直径を計算たりすることもできます


スパニングツリーの数または完全な一致の数をカウントする必要があるのはなぜでしょう。これは何の役に立つのですか?実際のアプリケーションを考えていますか?
ユヴァルフィルマス

@YuvalFilmus私はそうしていません。そして、そもそもカウントの問題のアプリケーションを考え出すのは難しいかもしれません。FKTwikiエントリはいくつかの歴史と動機を与えますが、どちらも理論的な観点からおもしろいと思います。とにかく、主要なポイントは、線形代数がグラフアルゴリズムの開発に有用であり、したがってコンピュータサイエンスに応用できるということです。
ジュホ


3

コンピューターグラフィックス、アニメーション、コンピュータービジョン、画像処理、科学計算、または物理現象のシミュレーションに関連するほとんどすべてのことは、空間変換や方向を表すような単純なものから非常に複雑なアルゴリズムまで、ベクトルと行列(線形代数)の広範な使用を伴います。これらはスーパーコンピューティングの領域でしたが、今ではこれらのまったく同じ分野が、デスクトップ、携帯電話、そしてビデオゲームから計算写真、自動運転車まで、あらゆる場所で最もクールなアプリの中核です。線形代数はどこにでもあります。


2

行列代数ベースのアルゴリズムとテクニックがたくさんあります。そしてそれは素晴らしいことです。主成分分析は、かなり有用な応用線形代数の例です。フーリエ解析についても同じことが言えます。フーリエ解析は、直交性と内積にもルーツがあります。そのため、直接的なアプリケーションがあります。

しかし、さらに重要なことには、線形代数クラスを取ることは、ある方法で考えることを教えてくれるので価値があります。最も良い線形代数クラスは、一般化、論理、証明に重点を置いています。一般的に何か本当ですか、それとも特定の特定の一般的なケースですか?どうすれば確信できますか?仮定を証明する方法について考えることができるのは、悪い仮定を立てたり、想定している方法で一般化しないコードを記述したりするのを防ぐのに役立つからです。また、一般化するのが難しいものを一般化する方法を考えるのに役立ち、それにより大きな問題を解決できます。

要約すると、線形代数はコンピュータサイエンスで役立つ脳の一部の重量挙げであるため、線形代数は良いことを覚えておくと良いでしょう。


0

線形方程式系(ガウス消去法で実行可能)、線形計画法(シンプレックス法で解決可能)、最小二乗、圧縮センシング(Wikipediaの記事を参照)を解くことは、多くの場合に生じる実際的な問題です。アプリケーション領域。線形代数は、これらの問題に対する正確かつ効率的なアルゴリズムの開発を支援します。

テキスト[Cormen、Leiserson、Rivest and Stein、 "Introduction to Algorithms、Third Edition"]を参照してください。第28章は行列演算について、第29章は線形計画法についてです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.