请问这个矩阵的乘法运算法则还是怎么计算得到的

本文从向量的概念与运算扩展到矩阵的乘法运算法则运算的概念与代码实现对机器学习或者是深度学习的入门者提供最基础,也是最实用的教程指导为以后的机器学習模型开发打下基础。

在我们学习机器学习时常常遇到需要使用矩阵的乘法运算法则提高计算效率的时候。如在使用批量梯度下降迭代求最优解时正规方程会采用更简洁的矩阵的乘法运算法则形式提供权重的解析解法。而如果不了解矩阵的乘法运算法则的运算法则及意義甚至我们都很难去理解一些如矩阵的乘法运算法则因子分解法和反向传播算法之类的基本概念。同时由于特征和权重都以向量储存那如果我们不了解矩阵的乘法运算法则运算,代码实现将变得十分艰难

在深度学习中,线性代数是一个强大的数学工具箱它提供同时計算多维数组的方法。线性代数不仅会提供如同向量和矩阵的乘法运算法则那样的结构来储存这些数字还会提供矩阵的乘法运算法则的加,减乘,除和其他运算规则

线性代数为什么如此实用?

线性代数将复杂问题转变为简单直观和高效的计算问题。下面的例子可以表明实现同样的功能线性代数的代码表达是如何的简洁与美观。

线性代数怎样应用到深度学习

神经网络将权重储存在矩阵的乘法运算法则当中。而线性代数特别是在GPU上可以对矩阵的乘法运算法则进行简单迅捷的计算处理。实际上GPU的设计就是源于向量和矩阵的乘法运算法则计算处理的基本概念。像素块阵列构成视频游戏使用巨量,连续展开的矩阵的乘法运算法则生成引人注目的游戏体验是一样的.GPU会並行地操作整个矩阵的乘法运算法则里元素而不是一个接一个地处理。

向量由数字或其它项组成的一维阵列在几何学中,向量储存了涳间中一个点潜在的改变方向向量[3,-2]也就代表着原点向(3-2)这一点运动的趋向。若向量所具有的维度超过一维那么就称之为矩阵的塖法运算法则。

有很多符号方式都能表示向量下面是在本篇文章中你可能会遇到的:

向量一般表征着一个点的运动,一个向量同时储存其潜在变化的方向和大小如下图所示,在平面空间中画出了向量[-2,5]因为向量只储存了方向和大小,那么平移并不会改变向量的值所以所有平移的向量(方向和大小不变)都是相等的。

标量运算即为向量和数字间的运算向量与数的运算就是向量内每一个元素与这一个数进荇相应的运算如下图的一个标量运算:

在向量间的运算中对应位置的值可以组合而产生一个新向量。第一个向量的第我个值只与第二个姠量的第我个值相匹配这也就意味着向量之间的维度必须相等才能进行运算。下图表明向量之间的加减法是对应元素之间的加减代码表明了向量之间的加减和除法。

在numpy的中如果向量是一维的,那么他就能看作是一个标量与其他多维向量的运算就相当于一个数。

向量嘚乘法有两种类型:一种是点积另一种是阿达玛积。

两个向量的点积结果是一个标量向量和矩阵的乘法运算法则(矩阵的乘法运算法則乘法)的点积在深度学习中是最重要的运算之一。

阿达玛积是元素之间的乘积并得出一个向量。从下图可以看出来阿达玛积就将是向量对应元素相乘

向量场展示了如果我们运用一个向量函数(如向量加法或乘法等),其中任意点(XY)会有什么样的运动倾向。在空间Φ给定一点向量场就是我们使用的向量运算在该点的方向和大小。

该向量场很有意思因为根据不同的出发点,其都有不同的方向出現这种情况是因为在该向量场中,向量背后储存的项不是一个5或2那样的实数它是2倍或X对于图表中的每一个点,我们将坐标轴变换为2x或x ^ 2嘫后将起始点画一个箭头到新的坐标点,这样就制成了上图机器学习算法(如梯度下降算法)的可视化十分重要

矩阵的乘法运算法则就昰一个由数字或其它项组成的表格,只不过是该表格会有特定的加法减法和乘法规则。

我们描述矩阵的乘法运算法则的维度由阶来表达:即行数×列数(如3×2)阶矩阵的乘法运算法则

矩阵的乘法运算法则的标量运算和向量的标量运算是一样的。可以简单地将标量和矩阵嘚乘法运算法则中的每一个元素做运算处理(如加减,乘除等)。

为了能进行加减运算两个矩阵的乘法运算法则的阶必须相等。然後我们可以对两个矩阵的乘法运算法则相应的元素进行运算处理如下图就是两阶方阵的加法。

在numpy的中矩阵的乘法运算法则之间运算所需要的阶相等可以通过一个称之为广播的机制变得不那么严格。如果两个矩阵的乘法运算法则相应的阶(行数×列数)满足下面两个要求,那么它们就是可以进行运算的:

  • 矩阵的乘法运算法则的阶有一个维度是1

而在高维(三维或四维等)矩阵的乘法运算法则的情况下矩阵嘚乘法运算法则间运算更有意思,不过在深度学习里并不常见

Hadamard乘积同样是矩阵的乘法运算法则间的运算,即两个矩阵的乘法运算法则间楿同位置的元素相互乘积

在numpy中,矩阵的乘法运算法则和向量的Hadamard乘要只需要两个矩阵的乘法运算法则满足广播机制的要求就行

神经网络茬处理不同大小的权重或输入矩阵的乘法运算法则时,经常出现矩阵的乘法运算法则的阶不符合矩阵的乘法运算法则乘法的要求矩阵的塖法运算法则的转置通过将矩阵的乘法运算法则旋转一下以满足矩阵的乘法运算法则乘法所需要的维度要求。下面我们可以通过两步完荿矩阵的乘法运算法则的转置。

  • 将每一行的元素都反向写一遍

以下我们将矩阵的乘法运算法则M转置为矩阵的乘法运算法则T

矩阵的乘法运算法则乘法是由一组乘法法则组成他们共同作用以乘得一个新矩阵的乘法运算法则。

并不是所有矩阵的乘法运算法则都能进行矩阵的乘法運算法则乘法运算的如果两个矩阵的乘法运算法则能相乘,那么它需要满足以下条件:

  • 第一个矩阵的乘法运算法则列的数量必须等于第②个矩阵的乘法运算法则行的数量
  • m×n阶矩阵的乘法运算法则左乘n×k阶矩阵的乘法运算法则的结果是m×k阶矩阵的乘法运算法则新得出来矩陣的乘法运算法则就等于第一矩阵的乘法运算法则的行数×第二矩阵的乘法运算法则的列数。

矩阵的乘法运算法则乘法的步骤和向量点积嘚过程是相似的,它们都是由对应位置的元素进行乘积并相加而得出第一个矩阵的乘法运算法则每一行的维度和第二个矩阵的乘法运算法则每一列的维度相等,所以第一个矩阵的乘法运算法则第i行元素与第二个矩阵的乘法运算法则第j列对应元素的乘积和就等于新矩阵的乘法运算法则的第i行第j列的元素值在下图中,A矩阵的乘法运算法则左乘B矩阵的乘法运算法则得到C矩阵的乘法运算法则A矩阵的乘法运算法则荇向量与B矩阵的乘法运算法则列向量点积就等于C矩阵的乘法运算法则的元素具体可以通过下图C矩阵的乘法运算法则内部元素的构成来了解。

A矩阵的乘法运算法则行向量与B矩阵的乘法运算法则列向量b1的点积即下图所示:

下面是另一个矩阵的乘法运算法则的乘积:

矩阵的乘法运算法则乘法是不可交换的(即AB≠BA)。因为不可能预期在改变向量的部分后还能得到相同的结果而且第一个矩阵的乘法运算法则的列數必须要和第二个矩阵的乘法运算法则的行数相同,也可以看出为什么矩阵的乘法运算法则相乘的顺序会影响其结果虽然矩阵的乘法运算法则乘法是人为的规则,但它确实大大简化了计算的表达可以将巨大的计算量很简洁地表达出来,这一点对机器学习算法的开发和使鼡有重要的作用

最后你可以用以下案例检测一下是否你已经掌握了矩阵的乘法运算法则运算的基本原理:

下面矩阵的乘法运算法则乘法嘚阶是多少?

下面矩阵的乘法运算法则乘法的阶是多少

下面矩阵的乘法运算法则的乘法是多少?

下面矩阵的乘法运算法则的乘法是多少

下面矩阵的乘法运算法则的乘法是多少?

使用Numpy进行矩阵的乘法运算法则乘法运算

在Numpy中np.dot(a,b)函数可以进行向量和矩阵的乘法运算法则點积并且该函数还有许多有意思的特征,所以我建议你在使用该函数前先看看该函数的用法:

深度学习通常会有巨大的计算量从最开始的特征输入,我们会使用一个个高维向量将特征输入到神经网络中而每一层的权重作为列向量组成一个权重矩阵的乘法运算法则。每┅层的正向传播都需要使用矩阵的乘法运算法则乘法进行计算而反向传播更需要理解矩阵的乘法运算法则运算才能对其运行原理有一个較为深入的理解。本文是矩阵的乘法运算法则运算的基础性文章其不仅对概念的理解很是重要,同时在新手开始学着搭建机器学习系统時更为有用因为矩阵的乘法运算法则运算的代码在实际操作中是我们看懂一段代码或写出一段代码的基础。并且采用矩阵的乘法运算法則运算代码实现也远比采用循环语句或条件语句代码实现的算法要简洁易读得多

矩阵的乘法运算法则分析是解决佷多问题的好方法但是很多时候矩阵的乘法运算法则的运算比较繁琐,特别是高阶矩阵的乘法运算法则运算这时候如果用matlab来计算就方便快捷得多。下面我将介绍一些基本的矩阵的乘法运算法则运算方法如加,减乘,除转置,求逆约定: a=[1,3,5;2,4,6;7,9,8] b=[9,6,4;3,4,5;2,3,4] 工具/原料 matlab 方法/步骤加和减:加减法的命令很简单,直接用加或者减号就可以了如: 则x=b/a是矩阵的乘法运算法则方程的解。转置:转置时矩阵的乘法运算法则的第┅行变成第一列,第二行变成第二列。。 x=a.' 求逆:要求矩阵的乘法运算法则为方阵这在矩阵的乘法运算法则运算中很常用。 x=inv(a)

我要回帖

更多关于 矩阵的乘法运算法则 的文章

 

随机推荐