みんなのAI
機械学習AI論文
読み込み中…

学ぶ

🏅マイ実績

Ch.03

行列とデータのまとめ:複数ベクトルの構造的表現

チャプター別 数学図

チャプターを選ぶと、下の図がそのチャプターの内容に切り替わります。中級数学の流れを一覧で確認できます。

スカラー11ベクトル51732-299行列11058299-834783次元テンソル2次元の束11058299-8347811058299-8347811058299-834784次元テンソル3次元の束5次元テンソル4次元の束
紫の列が順番に強調されます。各列は同じ長さのベクトルで、3本の列を横に並べると1つの行列になります。右側パネルでは m×nm\times nm×n の意味と どの列を見ているか を示します。行で読むと 1行=1サンプル という、データでよく使う読み方になります。
行列は数を縦横に並べた一枚の表です。機械学習では、行がしばしばサンプル(一人・一枚の画像)、列が特徴を表します。本章ではベクトル(Ch.01)と内積(Ch.02)が行列の中で一度に何度も現れる様子をつなぎ、行列積と線形層(Ch.04)への準備をします。

行列とデータの束:複数のベクトルを一枚の表に

ベクトルが数を1列に並べたものだとすれば、行列はその列を複数本並べた長方形です。サイズ m×nm\times nm×n は mmm 行 と nnn 列 を意味します。表記は文脈で変わるので(行=サンプルの場合も列=サンプルの場合もある)、まず形状を確認するのが大切です。
行列は 1枚のスプレッドシート と考えると分かりやすいです。各セルは数値、列全体は1つの特徴ベクトル、行全体は1つのレコードになります。同じ表でも、どの方向で読むかで意味が変わります。
基本事項:
1. 形状: m×nm\times nm×n は実数要素を持つ mmm 行 nnn 列。
2. 要素: iii 行 jjj 列の値は aija_{ij}aij​。
3. 転置: ATA^{\mathsf T}AT は n×mn\times mn×m で (AT)ji=aij(A^{\mathsf T})_{ji}=a_{ij}(AT)ji​=aij​。
4. 列をベクトルとして読む: 列 aj∈Rm\mathbf{a}_j\in\mathbb{R}^maj​∈Rm を使って A=[a1 ⋯ an]A=[\mathbf{a}_1\ \cdots\ \mathbf{a}_n]A=[a1​ ⋯ an​] と書ける。
5. 和/スカラー倍: 同じ形状なら (A+B)ij=aij+bij(A+B)_{ij}=a_{ij}+b_{ij}(A+B)ij​=aij​+bij​, (cA)ij=c aij(cA)_{ij}=c\,a_{ij}(cA)ij​=caij​。
本章では、行列積に入る前に ベクトル束の読み方 と 次元合わせ を確実にします。
深層学習では重みはしばしば行列(またはテンソルの2次元スライス)です。1層の線形変換は「多数の内積を同時に計算」する形になり、バッチ化ではサンプルを行/列方向に積みます。機械学習でも 設計行列 が特徴ベクトルを1枚の表に束ねます。
一行要約: 行列は 複数ベクトルを1枚に束ねる道具 です。行/列のどちらをサンプルとみなすか は文脈依存です。転置で軸を入れ替えて次元を合わせます。Ch.02 の行内積を並べると AuA\mathbf{u}Au の各成分になります。次章で行列積と線形変換へ進みます。
Ch.01 でベクトル、Ch.02 で内積を学びました。Ch.03 ではその計算を 表全体 に拡張します。行列は 損失・勾配・重み更新 を記述する共通言語です。
実データは通常 多数サンプル × 多数特徴 です。形状 m×nm\times nm×n を明示すると構造を正しく把握でき、形状ミスによる不具合を減らせます。
学習データはしばしば 設計行列 として扱います。線形モデルは行列・ベクトル積で書かれ、ロジスティック/softmax、線形SVM、行列分解型推薦でも バッチ化したベクトル演算 が使われます。
列ベクトルは部分空間(列空間)を 張る という見方ができます。高次元データを低次元へ写す操作は部分空間への 射影 として理解できます(後続章)。
下の表に、解くときに必要な 記号と次元ルール をまとめています。続く 例題 で典型手順を確認します。
  • 記号m×nm\times nm×n
  • 意味mmm 行 nnn 列
  • 記号aija_{ij}aij​
  • 意味iii 行 jjj 列の要素
  • 記号ATA^{\mathsf T}AT
  • 意味転置: (AT)ji=aij(A^{\mathsf T})_{ji}=a_{ij}(AT)ji​=aij​
  • 記号列ベクトル aj\mathbf{a}_jaj​
  • 意味AAA の jjj 列をベクトルとして見たもの
  • 記号同じ形状
  • 意味A+BA+BA+B は形状が一致するときのみ定義
  • 記号AuA\mathbf{u}Au(予告)
  • 意味各行と u\mathbf{u}u の内積を並べたベクトル
記号意味
m×nm\times nm×nmmm 行 nnn 列
aija_{ij}aij​iii 行 jjj 列の要素
ATA^{\mathsf T}AT転置: (AT)ji=aij(A^{\mathsf T})_{ji}=a_{ij}(AT)ji​=aij​
列ベクトル aj\mathbf{a}_jaj​AAA の jjj 列をベクトルとして見たもの
同じ形状A+BA+BA+B は形状が一致するときのみ定義
AuA\mathbf{u}Au(予告)各行と u\mathbf{u}u の内積を並べたベクトル
項目別の詳しい説明
① 形状 加算・乗算の前に必ず次元(形状)を確認します。
② 転置 必要に応じてサンプル軸と特徴軸を入れ替えます。
③ 行/列の見方 同じ AAA でも、問題設定によって意味づけが変わります。
④ Ch.02 との接続 行ベクトルと u\mathbf{u}u の内積が AuA\mathbf{u}Au の1成分になります。

練習問題

以下は60問バンクから無作為に選んだ10問です(易しめ4・中3・難3、順序は易→中→難)。各問は選択式で、番号を選んでください。

零行列の性質として正しいものはどれですか?
1 / 10