用Octave计算矩阵结合律(2)
广告
{{v.name}}

矩阵乘法结合律:\((AB)C = A(BC)\)。

结合律意味着计算多个矩阵乘积时可以任意加括号分组,从而选择计算量最小的顺序。例如在深度学习中,\(A \cdot B \cdot v\)先算\(B \cdot v\)再左乘\(A\)效率更高。

Octave计算方法:通过(A * B) * CA * (B * C)比较结果。

矩阵结合律:\((AB)C=A(BC)\)
计算\( \left( \left[ \begin{array}{ccc} 1 & 2 \\ 3 & 4 \end{array} \right] \left[ \begin{array}{ccc} 5 & 6 \\ 7 & 8 \end{array} \right] \right) \left[ \begin{array}{ccc} 5 & 6 \\ 7 & 8 \end{array} \right]\)和\( \left[ \begin{array}{ccc} 1 & 2 \\ 3 & 4 \end{array} \right] \left( \left[ \begin{array}{ccc} 5 & 6 \\ 7 & 8 \end{array} \right] \left[ \begin{array}{ccc} 5 & 6 \\ 7 & 8 \end{array} \right] \right)\)
程序代码如下
>> ([1 2; 3 4] * [5 6; 7 8]) * [5 6; 7 8]
ans =

   249   290
   565   658
>> [1 2; 3 4] * ([5 6; 7 8] * [5 6; 7 8])
ans =

   249   290
   565   658
友链