行列の乗算:重要な性質
行列の乗算は、線形代数の中核をなす演算ですが、スカラー(通常の数)の乗算とは異なる独特の性質を持っています。これらの性質を理解することは、機械学習モデルの理解や実装において重要です。
基本的な性質の確認
-
計算可能条件: 行列 \(\mathbf{A}\) (サイズ \(m \times n\)) と行列 \(\mathbf{B}\) (サイズ \(k \times p\)) の積 \(\mathbf{A}\mathbf{B}\) が定義できるのは、\(\mathbf{A}\) の列数 (\(n\)) と \(\mathbf{B}\) の行数 (\(k\)) が一致する場合、つまり \(n=k\) のときのみです。結果として得られる行列 \(\mathbf{C} = \mathbf{A}\mathbf{B}\) のサイズは \(m \times p\) となります。
→ 選択肢2「Aの行数とBの列数が一致する場合」は誤りです。
-
非可換性 (交換法則の不成立): スカラーの乗算では \(ab = ba\) ですが、行列の乗算では一般に \(\mathbf{A}\mathbf{B} \neq \mathbf{B}\mathbf{A}\) です。そもそも \(\mathbf{A}\mathbf{B}\) が計算できても \(\mathbf{B}\mathbf{A}\) が計算できるとは限りませんし、両方計算できたとしても結果が一致しないことがほとんどです。
→ 選択肢1「\(\mathbf{A}\mathbf{B} = \mathbf{B}\mathbf{A}\) (交換法則)」は一般には成り立たないため誤りです。
-
結合法則: 3つの行列 \(\mathbf{A}, \mathbf{B}, \mathbf{C}\) について、積が定義できる限り、 \((\mathbf{A}\mathbf{B})\mathbf{C} = \mathbf{A}(\mathbf{B}\mathbf{C})\) が成り立ちます。これは計算順序を変えても結果が同じであることを意味し、複雑な計算を効率化する上で重要です。
-
分配法則: 行列の加算と乗算の間には分配法則が成り立ちます。積と和が定義できる限り、 \(\mathbf{A}(\mathbf{B} + \mathbf{C}) = \mathbf{A}\mathbf{B} + \mathbf{A}\mathbf{C}\) および \((\mathbf{A} + \mathbf{B})\mathbf{C} = \mathbf{A}\mathbf{C} + \mathbf{B}\mathbf{C}\) が成り立ちます。
-
単位行列 \(\mathbf{I}\) との積: 単位行列 \(\mathbf{I}\) (対角成分がすべて1で、それ以外の成分がすべて0の正方行列)は、スカラーの「1」に相当する役割を果たします。適切なサイズの \(\mathbf{I}\) に対して、 \(\mathbf{A}\mathbf{I} = \mathbf{A}\) および \(\mathbf{I}\mathbf{A} = \mathbf{A}\) が成り立ちます。
→ 選択肢3「単位行列 \(\mathbf{I}\) に対して、\(\mathbf{A}\mathbf{I} = \mathbf{I}\mathbf{A} = \mathbf{A}\) である。」は正しい記述です。(ただし、Aが正方行列でない場合は片方しか定義されない可能性がありますが、定義される限りにおいて成り立ちます)
-
ゼロ行列 \(\mathbf{O}\) との積: ゼロ行列 \(\mathbf{O}\) (すべての要素が0の行列)は、スカラーの「0」に相当します。適切なサイズの \(\mathbf{O}\) に対して、 \(\mathbf{A}\mathbf{O} = \mathbf{O}\) および \(\mathbf{O}\mathbf{A} = \mathbf{O}\) が成り立ちます。
→ 選択肢4「ゼロ行列 \(\mathbf{O}\) に対して、\(\mathbf{A}\mathbf{O} = \mathbf{A}\) である。」は誤りです。結果はゼロ行列 \(\mathbf{O}\) になります。
以上の検討から、一般的に成り立つ性質として正しいのは選択肢3です。
行列乗算の注意点
- 計算可能条件 (Aの列数 = Bの行数) の確認: 行列演算を行うプログラムを実装する際には、まずこの条件を満たしているか(行列のシェイプが適切か)を確認することがバグを防ぐ基本です。
- 交換法則不成立の意識: 行列演算の順序が結果に影響を与えることを常に念頭に置く必要があります。特に複数の線形変換を連続して適用する場合、変換の順序(行列を掛ける順番)が重要になります。
機械学習における意味合い
- 結合法則の活用: 例えば、ニューラルネットワークで連続する線形層 (\(\mathbf{y}_1 = \mathbf{W}_1 \mathbf{x}\), \(\mathbf{y}_2 = \mathbf{W}_2 \mathbf{y}_1\)) がある場合、これは \(\mathbf{y}_2 = (\mathbf{W}_2 \mathbf{W}_1) \mathbf{x}\) と見なせます。結合法則により、先に \(\mathbf{W}_2 \mathbf{W}_1\) を計算しておくことで、推論時の計算を効率化できる場合があります(ただし、通常は非線形活性化関数が間に入るため、単純には結合できません)。
- 非可換性の影響: データに複数の変換(例: 回転してから拡大)を適用する場合、その順番(行列を掛ける順番)によって最終的な結果が異なります。データ拡張などで複数の幾何学的変換を行う際には、この非可換性を考慮する必要があります。