ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|---|
|
本稿は AI / 機械学習に必要な線形代数 の入門です。難しく聞こえる線形代数ですが、AI ではほぼ 「ベクトル / 行列を計算する」 という 1 点に集約されます。
なぜ AI に線形代数が必要なのか
現代の AI、特にディープラーニングは 大量の数値を行列としてまとめて計算 することで動いています。
| 場面 | 線形代数の役割 |
|---|---|
| 画像入力 | ピクセルは行列(白黒)またはテンソル(RGB は 3 階) |
| テキスト入力 | 単語をベクトルに変換(Embedding)して扱う |
| ニューラルネット 1 層 | 本質は 「入力ベクトル × 重み行列 + バイアス」(アフィン変換) |
| 畳み込み (CNN) | カーネル行列をスライドさせて行列積を取る |
| Attention (Transformer) | Q × K^T を計算しスコアを得る — まさに行列積 |
| GPU が速い理由 | 行列積を 並列計算 するのに最適化されているから |
最低限おさえる概念
| 概念 | 意味 | AI での使われ方 |
|---|---|---|
| スカラー / ベクトル / 行列 / テンソル | 0 / 1 / 2 / N 次元の数値配列 | データもパラメータも全部これ |
| 内積 (dot product) | 2 つのベクトルの要素積の和 | 類似度計算 / Attention スコア |
| 行列積 (matmul) | 行列同士の積 | NN の各層の計算 |
| 転置 (transpose) | 行と列を入れ替える | Attention の K^T、バックプロパゲーション |
| ノルム (norm) | ベクトルの「長さ」(L1 / L2) | 正則化 / 損失関数 / コサイン類似度 |
| 逆行列 (inverse) | A × A^(-1) = I になる行列 | 線形回帰の閉形式解 |
| 固有値・固有ベクトル | A·v = λ·v を満たす v と λ | PCA、グラフ解析 |
| SVD (特異値分解) | 任意の行列を A = U·Σ·V^T に分解 | 次元削減 / 推薦システム / LSA |
| 固有値分解 | 正方行列を P·D·P^(-1) の形に分解 | PCA、共分散行列の対角化 |
| ランク (rank) | 独立な行・列の数 | 過学習・データの本質的次元の判定 |
具体的にどう使われているか
| 手法 | 本質 |
|---|---|
| 線形回帰 | y = X·w + b の w を最小二乗で解く(正規方程式 = 行列計算) |
| PCA (主成分分析) | 共分散行列の 固有値分解(または SVD)で次元削減 |
| ニューラルネット | 各層は 「行列積 + 非線形関数」 の繰り返し |
| Word Embedding | 単語を 低次元ベクトル に圧縮 (Word2Vec / GloVe) |
| 推薦システム | 行列因子分解 (Matrix Factorization) でユーザ×アイテム行列を分解 |
| Transformer / Attention | Q (Query), K (Key), V (Value) の 行列積でスコア計算 |
実装で出てくる典型コード
|
import numpy as np |
学習のステップ
| 段階 | 学ぶ内容 |
|---|---|
| 1. 計算ができる | ベクトル・行列の足し算・かけ算・転置・逆行列を手で計算できる |
| 2. 幾何的に分かる | 行列を「空間の変換 (回転・拡大・射影)」として理解する |
| 3. 固有値が分かる | 「変換しても向きが変わらない方向 = 固有ベクトル」「その伸び率 = 固有値」が腹落ちする |
| 4. SVD まで進む | SVD が「データの主軸を見つける万能ツール」と分かる |
| 5. AI 実装で使える | NumPy / PyTorch で行列演算を読める・書ける |
つまずきやすいポイント
- 行列積は順序が重要: A·B ≠ B·A(可換ではない)
- 形 (shape) を常に意識する: (m, n) × (n, k) = (m, k) のように内側の次元が一致しないとエラー
- 逆行列は「正方行列」かつ「ランクが完全」でないと存在しない — 一般のデータ行列には使えないので疑似逆行列 (Moore-Penrose) や SVD を使う
- 固有値分解は正方行列限定、SVD は任意の行列に使える(より汎用)
- 大規模行列の固有値・SVD は計算量が大きいので、PCA でも一部の主成分のみ計算する近似手法を使う
使える教材・ライブラリ
| 種類 | 名前 |
|---|---|
| 教科書(日本語) | 「世界基準MIT教科書 Strang: 線形代数イントロダクション」 / 「ヨビノリ たくみ: 大学線形代数」 |
| 教科書(英語) | Gilbert Strang「Introduction to Linear Algebra」/「Linear Algebra Done Right」(Axler) |
| 動画 | 3Blue1Brown 「Essence of Linear Algebra」(幾何的に圧倒的に分かりやすい) |
| 計算ライブラリ | NumPy(基礎)/ PyTorch / TensorFlow / JAX(自動微分つき) |
| 可視化 | matplotlib / seaborn |
関連
- 親: AI に必要な数学
- 姉妹: ディープラーニング / 機械学習
- 応用先: Transformer / Embedding / Diffusion Model
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Laravel キャッシュクリア完全ガイド(cache:clear / config:clear / 2026-05-18 07:42:07
- プロジェクトの作成と削除 2026-05-18 07:42:07
- インストール直後にNetbeansが反応しない 2026-05-18 07:42:07
- 動画やチャンネルの検索 2026-05-18 07:42:07
- APIキー取得方法 2026-05-18 07:42:07
- チャンネル情報の取得 2026-05-18 07:42:07
- API 入門 — Web API(REST / GraphQL / gRPC / 2026-05-18 07:42:07
- インストール(eclipseプラグイン) 2026-05-18 07:42:07
- Laravel「Dotenv values containing spaces must be surrounded 2026-05-18 07:42:07
- エラー一覧 2026-05-18 07:42:07
- curl: (51) SSL: certificate subject name '~' does not match 2026-05-18 07:42:07
- インストール方法(Windows版) 2026-05-18 07:42:07
- JSONから配列に変換 2026-05-18 07:42:07
- 処理を一定時間待つ 2026-05-18 07:42:07
- A non well formed numeric value encountered 2026-05-18 07:42:07
コメントを削除してもよろしいでしょうか?