如何理解矩阵

空间:能够容纳运动是作为空间的基本条件。线性代数第一个引入的概念便是向量空间:一个描述状态的空间(注意要和用于描述位置的空间区分开来)

维度:互不相关的因素的个数是一个向量空间的维度。维度永远是用于描述空间的,而不是描述一个具体的向量。人们常说的n维向量实际是指n维向量空间内的向量,由于向量没有指定任何实质的值,所以可以是任何值,因此其真正描述的依旧是一个空间。并且,选择的维度是一个站在观察者角度,希望在某个向量空间下可以尽可能的描述一个物体的状态而选择的,并非被描述者真实处在的空间。

矩阵:矩阵不同于一个向量,其描述的概念绝大多数情况都是具体的数值,是用于描述向量空间内的状态和动因的媒介。需要用两种观察角度去思考其包含的信息:静态和动态。
  1. 静态:静态包含两个信息。其一,包含多个在其所在维度空间下的向量,可以理解为 坐标; 其二,是坐标系。
  2. 动态:用一个矩阵乘以另一个量的实质是通过线性变换改变另一个量的状态,可以理解为:外力。


矩阵乘法:当矩阵用来做乘法的时候,其包含的静态信息中的坐标信息又可以以两种视角来理解,若干个向量和若干组权重。当把矩阵内的每一行作为一个向量时,那么做乘法时,前一个矩阵装载着向量信息,后一个矩阵装载着权重信息;若把矩阵内的每一列作为向量看待的话,那么做乘法时,前一个矩阵装载着权重信息,后一个矩阵装载着向量信息。矩阵乘法其实可以理解为对向量空间内的某种状态产生了外力,改变了其原来的状态。
  1. 矩阵乘以矩阵:是将具体的若干个向量,以相同的方式进行线性变换(通过乘以权重并相加获得新的状态)。
  2. 矩阵乘以向量:当没有给向量确定任何具体的数值时,一个矩阵乘以一个向量的式子实际是在描述从矩阵的(行or列)向量空间转换到(列or行)的向量空间。


矩阵转置:交换向量和权重的角色;或理解为矩阵的行、列空间的互换。

先简单概括到这里。真正想要理解的话,需要结合很多例子说明。

3 个评论

向量也是矩阵 矩阵是具有空间关系的集合 也是一种场
这是一个很概括性的总结。懂的人不用看也懂,不懂的人看了也不懂。但这不是什么玄学,日常生活中无处不在,仅仅是抽象了一些。等忙完近期会写一篇从日常生活的通俗例子中用通俗的语言重新演绎线性代数中概念的博客。对我们搞深层学习的人而言,不懂线性代数是难以理解深层学习究竟在做什么。而懂了的话,在今后使用更高级的深层学习技巧时就很容易一眼看出问题所在。
请问如何理解矩阵的转置是交换向量和权重的角色?最近我在学习deconvolution,看到一些说法认为caffe中的deconvolution应该称为transpose convolution,是把convolution中的前向传播和反向传播交换,其中前向传播是以矩阵相乘的形式实现的,而反向传播变成了乘以矩阵的转置。楼主说的“转置相当于交换向量和权重的角色”貌似就是这种传播方式的解释,但是这个如何理解呢?谢谢!

要回复文章请先登录注册