行列
加算(減算)場合は行と列が同じ数ないとだめ
乗算の場合は行列A=l x m ,行列B=m x n のmが揃っていればよく、単純にかけるのではなく、一定の法則にしたがって内積した数が結果となる。
一定の法則は以下のページでわかりやすく説明してくれている。
https://lab-brains.as-1.co.jp/enjoy-learn/2023/07/50258/
行列(マトリクス)は、大量の数値を格子状に並べて一括で処理できるため、コンピューターサイエンス(CS)においてもっとも強力で不可欠な数学的ツールの一つです。
特に、大量のデータを高速に並列処理する現代のコンピューティングにおいて、行列はあらゆる主要分野の基礎を支えています。代表的な応用例を5つの分野に分けて解説します。
1. 3Dコンピュータグラフィックス & ゲーム開発
ゲームや3Dモデリングソフト、VRの世界では、画面上のすべてのオブジェクトの位置や向きを行列で計算しています。
- 座標変換(アフィン変換): 3D空間にあるキャラクターやオブジェクトを「移動させる」「回転させる」「拡大縮小する」という操作は、すべて3D座標ベクトルに4×4の変換行列を掛け算することで実現しています。
- カメラの視点変換: 3D空間のデータを、プレイヤーの画面(2D)にレンダリングする際にも、ビュー行列やプロジェクション(投影)行列という特殊な行列が使われます。
💡 なぜGPUが必要なのか?
3Dゲームでは、1秒間に何百万という頂点の行列計算を何十回(60fpsなど)も行う必要があります。この「単純な行列計算を大量に同時にこなす」ために特化したプロセッサがGPU(グラフィックス・カード)です。2. 人工知能(AI) & 機械学習
昨今のディープラーニング(深層学習)の発展は、行列計算の高速化なしにはあり得ませんでした。
- ニューラルネットワークの重み(Weights): AIの脳にあたるニューラルネットワークの層と層のつながりは、すべて「重み行列」として表現されます。
- 順伝播と逆伝播: 入力データ(画像やテキストなど)を行列として扱い、重み行列と行列の積(内積)を計算していくことで、AIは推論や学習を行います。
- LLM(大規模言語モデル): ChatGPTなどの生成AIも、内部では単語をベクトル(数値の列)に変換し、巨大な行列計算(Attentionメカニズムなど)を繰り返すことで文脈を理解しています。
3. 画像処理 & コンピュータビジョン
デジタル画像は、本質的にピクセルの明るさや色(RGB)を並べた巨大な行列そのものです。
- 画像フィルタ(畳み込み演算): 画像の一部分(局所的な行列)に対して、「カーネル」と呼ばれる小さな行列を掛け合わせる(畳み込み)ことで、画像のぼかし、シャープ化、エッジ(輪郭)抽出などのエッジ検出を行います。
- 画像圧縮: JPEGなどの圧縮技術や、顔認識システムなどでは、行列の性質を使ってデータの特徴だけを抜き出し、容量を削減する技術(主成分分析や奇異値分解など)が使われています。
4. ネットワーク分析 & グラフ理論
SNSの友人関係、ウェブサイトのリンク構造、道路網などは、数学では「グラフ」と呼ばれます。これをコンピューターに処理させるために行列が使われます。
- 隣接行列(Adjacency Matrix): ノード(要素)とノードが繋がっているかどうかを 0 と 1 で表した行列です。これを使うことで、コンピューターは高速にネットワークの経路を探索できます。
- GoogleのPageRank: Googleの初期の検索エンジンは、ウェブサイト同士のリンク構造を巨大な確率行列として扱い、その行列の「固有ベクトル」を計算することで、どのサイトが重要(検索上位)かを判定していました。
5. 暗号技術 & セキュリティ
データを安全に送受信するための暗号化技術にも行列が深く関わっています。
- ヒル暗号(Hill Cipher): 平文(元のテキスト)をベクトル化し、秘密鍵となる行列を掛け算することで暗号化します。復号(元に戻す)ときは、その行列の逆行列を掛け合わせます。
- 耐量子暗号(格子暗号): 将来登場する量子コンピューターでも解読できないとされる次世代の暗号技術には、高次元の行列(格子)の数学的困難さを利用したものが多く研究・導入されています。
まとめ
コンピューターサイエンスにおける行列の役割を一言で言えば、「複雑で膨大な現実世界のデータ(3D空間、画像、人間のつながり、AIの思考)を、コンピューター(特にGPU)が最も得意とする単純な掛け算と足し算の形に翻訳する道具」です。
