美文网首页
2022-05-19

2022-05-19

作者: 大数据扫地僧 | 来源:发表于2022-05-19 11:25 被阅读0次

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><mo>如果你已经掌握了点积和矩阵</mo><mo>−</mo><mo>向量积的知识,那么矩阵</mo><mo>−</mo><mo>矩阵乘法(</mo><mi>m</mi><mi>a</mi><mi>t</mi><mi>r</mi><mi>i</mi><mi>x</mi><mo>−</mo><mi>m</mi><mi>a</mi><mi>t</mi><mi>r</mi><mi>i</mi><mi>x</mi><mi>m</mi><mi>u</mi><mi>l</mi><mi>t</mi><mi>i</mi><mi>p</mi><mi>l</mi><mi>i</mi><mi>c</mi><mi>a</mi><mi>t</mi><mi>i</mi><mi>o</mi><mi>n</mi><mo>)应该很简单。假设我们有两个矩阵</mo><mtext mathcolor="red">(</mtext><mrow><mi mathvariant="bold">A</mi></mrow><mo>∈</mo><msup><mrow><mi mathvariant="double-struck">R</mi></mrow><mrow><mi>n</mi><mo>×</mo><mi>k</mi></mrow></msup><mtext mathcolor="red">)</mtext><mo>和</mo><mtext mathcolor="red">(</mtext><mrow><mi mathvariant="bold">B</mi></mrow><mo>∈</mo><msup><mrow><mi mathvariant="double-struck">R</mi></mrow><mrow><mi>k</mi><mo>×</mo><mi>m</mi></mrow></msup><mtext mathcolor="red">)</mtext><mo>:</mo><mo stretchy="false">(</mo><mn>2.3</mn><mn>.7</mn><mo stretchy="false">)</mo><mtext mathcolor="red">[</mtext><mtable displaystyle="true" columnalign="right left" columnspacing="0em" rowspacing="3pt"><mtr><mtd><mrow><mi mathvariant="bold">A</mi></mrow><mo>=</mo><mrow data-mjx-texclass="INNER"><mo data-mjx-texclass="OPEN">[</mo><mtable columnalign="center" columnspacing="1em" rowspacing="4pt"><mtr><mtd><msub><mi>a</mi><mrow><mn>11</mn></mrow></msub></mtd><mtd><msub><mi>a</mi><mrow><mn>12</mn></mrow></msub></mtd><mtd><mo>⋯</mo></mtd><mtd><msub><mi>a</mi><mrow><mn>1</mn><mi>k</mi></mrow></msub></mtd></mtr><mtr><mtd><msub><mi>a</mi><mrow><mn>21</mn></mrow></msub></mtd><mtd><msub><mi>a</mi><mrow><mn>22</mn></mrow></msub></mtd><mtd><mo>⋯</mo></mtd><mtd><msub><mi>a</mi><mrow><mn>2</mn><mi>k</mi></mrow></msub></mtd></mtr><mtr><mtd><mrow><mo>⋮</mo></mrow></mtd><mtd><mrow><mo>⋮</mo></mrow></mtd><mtd><mo>⋱</mo></mtd><mtd><mrow><mo>⋮</mo></mrow></mtd></mtr><mtr><mtd><msub><mi>a</mi><mrow><mi>n</mi><mn>1</mn></mrow></msub></mtd><mtd><msub><mi>a</mi><mrow><mi>n</mi><mn>2</mn></mrow></msub></mtd><mtd><mo>⋯</mo></mtd><mtd><msub><mi>a</mi><mrow><mi>n</mi><mi>k</mi></mrow></msub></mtd></mtr></mtable><mo data-mjx-texclass="CLOSE">]</mo></mrow><mo>,</mo><mstyle scriptlevel="0"><mspace width="1em"></mspace></mstyle><mrow><mi mathvariant="bold">B</mi></mrow><mo>=</mo><mrow data-mjx-texclass="INNER"><mo data-mjx-texclass="OPEN">[</mo><mtable columnalign="center" columnspacing="1em" rowspacing="4pt"><mtr><mtd><msub><mi>b</mi><mrow><mn>11</mn></mrow></msub></mtd><mtd><msub><mi>b</mi><mrow><mn>12</mn></mrow></msub></mtd><mtd><mo>⋯</mo></mtd><mtd><msub><mi>b</mi><mrow><mn>1</mn><mi>m</mi></mrow></msub></mtd></mtr><mtr><mtd><msub><mi>b</mi><mrow><mn>21</mn></mrow></msub></mtd><mtd><msub><mi>b</mi><mrow><mn>22</mn></mrow></msub></mtd><mtd><mo>⋯</mo></mtd><mtd><msub><mi>b</mi><mrow><mn>2</mn><mi>m</mi></mrow></msub></mtd></mtr><mtr><mtd><mrow><mo>⋮</mo></mrow></mtd><mtd><mrow><mo>⋮</mo></mrow></mtd><mtd><mo>⋱</mo></mtd><mtd><mrow><mo>⋮</mo></mrow></mtd></mtr><mtr><mtd><msub><mi>b</mi><mrow><mi>k</mi><mn>1</mn></mrow></msub></mtd><mtd><msub><mi>b</mi><mrow><mi>k</mi><mn>2</mn></mrow></msub></mtd><mtd><mo>⋯</mo></mtd><mtd><msub><mi>b</mi><mrow><mi>k</mi><mi>m</mi></mrow></msub></mtd></mtr></mtable><mo data-mjx-texclass="CLOSE">]</mo></mrow><mo>.</mo></mtd></mtr></mtable><mtext mathcolor="red">]</mtext><mo>用行向量</mo><mtext mathcolor="red">(</mtext><msubsup><mrow><mi mathvariant="bold">a</mi></mrow><mrow><mi>i</mi></mrow><mi mathvariant="normal">⊤</mi></msubsup><mo>∈</mo><msup><mrow><mi mathvariant="double-struck">R</mi></mrow><mi>k</mi></msup><mtext mathcolor="red">)</mtext><mo>表示矩阵</mo><mtext mathcolor="red">(</mtext><mrow><mi mathvariant="bold">A</mi></mrow><mtext mathcolor="red">)</mtext><mo>的第</mo><mtext mathcolor="red">(</mtext><mi>i</mi><mtext mathcolor="red">)</mtext><mo>行,并让列向量</mo><mtext mathcolor="red">(</mtext><msub><mrow><mi mathvariant="bold">b</mi></mrow><mrow><mi>j</mi></mrow></msub><mo>∈</mo><msup><mrow><mi mathvariant="double-struck">R</mi></mrow><mi>k</mi></msup><mtext mathcolor="red">)</mtext><mo>作为矩阵</mo><mtext mathcolor="red">(</mtext><mrow><mi mathvariant="bold">B</mi></mrow><mtext mathcolor="red">)</mtext><mo>的第</mo><mtext mathcolor="red">(</mtext><mi>j</mi><mtext mathcolor="red">)</mtext><mo>列。要生成矩阵积</mo><mtext mathcolor="red">(</mtext><mrow><mi mathvariant="bold">C</mi></mrow><mo>=</mo><mrow><mi mathvariant="bold">A</mi></mrow><mrow><mi mathvariant="bold">B</mi></mrow><mtext mathcolor="red">)</mtext><mo>,最简单的方法是考虑</mo><mtext mathcolor="red">(</mtext><mrow><mi mathvariant="bold">A</mi></mrow><mtext mathcolor="red">)</mtext><mo>的行向量和</mo><mtext mathcolor="red">(</mtext><mrow><mi mathvariant="bold">B</mi></mrow><mtext mathcolor="red">)</mtext><mo>的列向量:</mo><mo stretchy="false">(</mo><mn>2.3</mn><mn>.8</mn><mo stretchy="false">)</mo><mtext mathcolor="red">[</mtext><mtable displaystyle="true" columnalign="right left" columnspacing="0em" rowspacing="3pt"><mtr><mtd><mrow><mi mathvariant="bold">A</mi></mrow><mo>=</mo><mrow data-mjx-texclass="INNER"><mo data-mjx-texclass="OPEN">[</mo><mtable columnalign="center" columnspacing="1em" rowspacing="4pt"><mtr><mtd><msubsup><mrow><mi mathvariant="bold">a</mi></mrow><mrow><mn>1</mn></mrow><mi mathvariant="normal">⊤</mi></msubsup></mtd></mtr><mtr><mtd><msubsup><mrow><mi mathvariant="bold">a</mi></mrow><mrow><mn>2</mn></mrow><mi mathvariant="normal">⊤</mi></msubsup></mtd></mtr><mtr><mtd><mrow><mo>⋮</mo></mrow></mtd></mtr><mtr><mtd><msubsup><mrow><mi mathvariant="bold">a</mi></mrow><mi>n</mi><mi mathvariant="normal">⊤</mi></msubsup></mtd></mtr></mtable><mo data-mjx-texclass="CLOSE">]</mo></mrow><mo>,</mo><mstyle scriptlevel="0"><mspace width="1em"></mspace></mstyle><mrow><mi mathvariant="bold">B</mi></mrow><mo>=</mo><mrow data-mjx-texclass="INNER"><mo data-mjx-texclass="OPEN">[</mo><mtable columnalign="center" columnspacing="1em" rowspacing="4pt"><mtr><mtd><msub><mrow><mi mathvariant="bold">b</mi></mrow><mrow><mn>1</mn></mrow></msub></mtd><mtd><msub><mrow><mi mathvariant="bold">b</mi></mrow><mrow><mn>2</mn></mrow></msub></mtd><mtd><mo>⋯</mo></mtd><mtd><msub><mrow><mi mathvariant="bold">b</mi></mrow><mrow><mi>m</mi></mrow></msub></mtd></mtr></mtable><mo data-mjx-texclass="CLOSE">]</mo></mrow><mo>.</mo></mtd></mtr></mtable><mtext mathcolor="red">]</mtext><mo>当我们简单地将每个元素</mo><mtext mathcolor="red">(</mtext><msub><mi>c</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mtext mathcolor="red">)</mtext><mo>计算为点积</mo><mtext mathcolor="red">(</mtext><msubsup><mrow><mi mathvariant="bold">a</mi></mrow><mi>i</mi><mi mathvariant="normal">⊤</mi></msubsup><msub><mrow><mi mathvariant="bold">b</mi></mrow><mi>j</mi></msub><mtext mathcolor="red">)</mtext><mo>:</mo><mo stretchy="false">(</mo><mn>2.3</mn><mn>.9</mn><mo stretchy="false">)</mo><mtext mathcolor="red">[</mtext><mtable displaystyle="true" columnalign="right left" columnspacing="0em" rowspacing="3pt"><mtr><mtd><mrow><mi mathvariant="bold">C</mi></mrow><mo>=</mo><mrow><mi mathvariant="bold">A</mi><mi mathvariant="bold">B</mi></mrow><mo>=</mo><mrow data-mjx-texclass="INNER"><mo data-mjx-texclass="OPEN">[</mo><mtable columnalign="center" columnspacing="1em" rowspacing="4pt"><mtr><mtd><msubsup><mrow><mi mathvariant="bold">a</mi></mrow><mrow><mn>1</mn></mrow><mi mathvariant="normal">⊤</mi></msubsup></mtd></mtr><mtr><mtd><msubsup><mrow><mi mathvariant="bold">a</mi></mrow><mrow><mn>2</mn></mrow><mi mathvariant="normal">⊤</mi></msubsup></mtd></mtr><mtr><mtd><mrow><mo>⋮</mo></mrow></mtd></mtr><mtr><mtd><msubsup><mrow><mi mathvariant="bold">a</mi></mrow><mi>n</mi><mi mathvariant="normal">⊤</mi></msubsup></mtd></mtr></mtable><mo data-mjx-texclass="CLOSE">]</mo></mrow><mrow data-mjx-texclass="INNER"><mo data-mjx-texclass="OPEN">[</mo><mtable columnalign="center" columnspacing="1em" rowspacing="4pt"><mtr><mtd><msub><mrow><mi mathvariant="bold">b</mi></mrow><mrow><mn>1</mn></mrow></msub></mtd><mtd><msub><mrow><mi mathvariant="bold">b</mi></mrow><mrow><mn>2</mn></mrow></msub></mtd><mtd><mo>⋯</mo></mtd><mtd><msub><mrow><mi mathvariant="bold">b</mi></mrow><mrow><mi>m</mi></mrow></msub></mtd></mtr></mtable><mo data-mjx-texclass="CLOSE">]</mo></mrow><mo>=</mo><mrow data-mjx-texclass="INNER"><mo data-mjx-texclass="OPEN">[</mo><mtable columnalign="center" columnspacing="1em" rowspacing="4pt"><mtr><mtd><msubsup><mrow><mi mathvariant="bold">a</mi></mrow><mrow><mn>1</mn></mrow><mi mathvariant="normal">⊤</mi></msubsup><msub><mrow><mi mathvariant="bold">b</mi></mrow><mn>1</mn></msub></mtd><mtd><msubsup><mrow><mi mathvariant="bold">a</mi></mrow><mrow><mn>1</mn></mrow><mi mathvariant="normal">⊤</mi></msubsup><msub><mrow><mi mathvariant="bold">b</mi></mrow><mn>2</mn></msub></mtd><mtd><mo>⋯</mo></mtd><mtd><msubsup><mrow><mi mathvariant="bold">a</mi></mrow><mrow><mn>1</mn></mrow><mi mathvariant="normal">⊤</mi></msubsup><msub><mrow><mi mathvariant="bold">b</mi></mrow><mi>m</mi></msub></mtd></mtr><mtr><mtd><msubsup><mrow><mi mathvariant="bold">a</mi></mrow><mrow><mn>2</mn></mrow><mi mathvariant="normal">⊤</mi></msubsup><msub><mrow><mi mathvariant="bold">b</mi></mrow><mn>1</mn></msub></mtd><mtd><msubsup><mrow><mi mathvariant="bold">a</mi></mrow><mrow><mn>2</mn></mrow><mi mathvariant="normal">⊤</mi></msubsup><msub><mrow><mi mathvariant="bold">b</mi></mrow><mn>2</mn></msub></mtd><mtd><mo>⋯</mo></mtd><mtd><msubsup><mrow><mi mathvariant="bold">a</mi></mrow><mrow><mn>2</mn></mrow><mi mathvariant="normal">⊤</mi></msubsup><msub><mrow><mi mathvariant="bold">b</mi></mrow><mi>m</mi></msub></mtd></mtr><mtr><mtd><mrow><mo>⋮</mo></mrow></mtd><mtd><mrow><mo>⋮</mo></mrow></mtd><mtd><mo>⋱</mo></mtd><mtd><mrow><mo>⋮</mo></mrow></mtd></mtr><mtr><mtd><msubsup><mrow><mi mathvariant="bold">a</mi></mrow><mrow><mi>n</mi></mrow><mi mathvariant="normal">⊤</mi></msubsup><msub><mrow><mi mathvariant="bold">b</mi></mrow><mn>1</mn></msub></mtd><mtd><msubsup><mrow><mi mathvariant="bold">a</mi></mrow><mrow><mi>n</mi></mrow><mi mathvariant="normal">⊤</mi></msubsup><msub><mrow><mi mathvariant="bold">b</mi></mrow><mn>2</mn></msub></mtd><mtd><mo>⋯</mo></mtd><mtd><msubsup><mrow><mi mathvariant="bold">a</mi></mrow><mrow><mi>n</mi></mrow><mi mathvariant="normal">⊤</mi></msubsup><msub><mrow><mi mathvariant="bold">b</mi></mrow><mi>m</mi></msub></mtd></mtr></mtable><mo data-mjx-texclass="CLOSE">]</mo></mrow><mo>.</mo></mtd></mtr></mtable><mtext mathcolor="red">]</mtext><mo>我们可以将矩阵</mo><mo>−</mo><mo>矩阵乘法</mo><mtext mathcolor="red">(</mtext><mrow><mi mathvariant="bold">A</mi><mi mathvariant="bold">B</mi></mrow><mtext mathcolor="red">)</mtext><mo>看作是简单地执行</mo><mtext mathcolor="red">(</mtext><mi>m</mi><mtext mathcolor="red">)</mtext><mo>次矩阵</mo><mo>−</mo><mo>向量积,并将结果拼接在一起,形成一个</mo><mtext mathcolor="red">(</mtext><mi>n</mi><mo>×</mo><mi>m</mi><mtext mathcolor="red">)</mtext><mo>矩阵。在下面的代码中,我们在</mo><mi>A</mi><mo>和</mo><mi>B</mi><mo>上执行矩阵乘法。这里的</mo><mi>A</mi><mo>是一个</mo><mn>5</mn><mo>行</mo><mn>4</mn><mo>列的矩阵,</mo><mi>B</mi><mo>是一个</mo><mn>4</mn><mo>行</mo><mn>3</mn><mo>列的矩阵。两者相乘后,我们得到了一个</mo><mn>5</mn><mo>行</mo><mn>3</mn><mo>列的矩阵。</mo></math>

相关文章

网友评论

      本文标题:2022-05-19

      本文链接:https://www.haomeiwen.com/subject/nnhtprtx.html