2019-07-23 标量,向量,矩阵与张量

https://www.cnblogs.com/935415150wang/p/8797347.html

链接:https://www.jianshu.com/p/abe7515c6c7f

基础从最基础的开始

小知识:

  0 ∈ {0 1}

{0 1}表示一个集合,里面有0,1两个元素。所以0属于这个集合,就用0 ∈ {0 1}表示了。∈代表属于。

{0  } ∈ {0  1}是错误的,一个集合不能属于另一个集合。

反着的E:谓词逻辑

存在量词 ∃ x:P(x) 意味着有至少一个 x 使 P(x) 为真.n ∈ N:n 是偶数.

倒着的A:存在着

全称量词 ∀ x:P(x) 意味着所有的 x 都使 P(x) 都为真.n ∈ N:n2 ≥ n.

对于所有;对于任何;对于每个

谓词逻辑

∧ 逻辑合取 陈述 A ∧ B 为真,如果 A 与 B 二者都为真;否则为假.n < 4 ∧ n >2 ⇔ n = 3 当 n 是自然数的时候.

命题逻辑

∨ 逻辑析取 陈述 A ∨ B 为真,如果 A 或 B (或二者)为真;如果二者都为假,则陈述为假.n ≥ 4 ∨ n ≤ 2 ⇔ n ≠ 3 当 n 是自然数的时候.

命题逻辑

一 标量,向量,矩阵,张量

(1)标量:

  标量在计算机学习中我认为可以理解成,一个用于统计或者标记这一类型数学事件当中一个值的标志,比方说,当它表示一条线的斜率的时候,他只有这么一个用处,而且也只是需要这么一个而已,他不需要再有别的定义,只代表斜率只有一个值就可以了. 再比方说,一个数组中我们可以定义一个标量,这个标量就是这个数组的数量.所以我理解标量像是一道数学题中唯一的答案.  就好比 标量等于答案 标量的值等于结果. 如果这道题 出现了变化,那么这个标量就不是原来的那个标量.

  展现方式:

    表达一条线的斜率: 令s ∈ R 表示一条线的斜率’

    表达数组的数量 :   令n ∈ N 表示元素的数目

(2)向量:

        一个向量代表一列数,这些数求有序排列,我们可以按照索引的序列确定每个单独的数,通常用小写的粗体来表示,比如x。向量中的元素可以通过带角标的斜体表示,向量x的第一个元素是,那么第二个元素就是,以此类推。如果每个元素都属于标量R,并且该向量有n个元素,那么该向量属于实数集R的n次笛卡尔乘积的集合,当需要明确表示向量中的元素时,我们将元素排列成一个方括号包围的纵列

2019-07-23 标量,向量,矩阵与张量_第1张图片


        我们可以把向量看作空间中的点,每个元素是不同的坐标轴上的坐标.

        有时候我们需要索引向量中的一些元素。在这种情况下,我们定义一个包含这些元素的索引集合,然后将该集合写在脚标处。比如,指定,和,我们定义集合s={1,3,6},然后写作。 我们用符_表示集合的补集中的索引。(补集就是补充满所需要的其他的啦,这个不算的啦) 比如x_1表示x中除了x1意外的所有元素,x_s表示x中除了x1,x3和x6外所有的元素构成的向量。这就很有意思了同时也很好理解了。我们要在这个向量中 取出不包含的剩下的部分,那我们干脆吧 _ 当作减号 减去他就可以了

(3)矩阵:

        矩阵是一个二维数组,其中的每一个元素被两个索引(而非一个),可以认为 两个向量像拉锁一样拼在一起。只有两两结合才能算作一个整体,当然了矩阵也不代表着一定是两列。可以是好几列。通常赋予矩阵粗体大写的变量名称,比方说A。如果一个实数矩阵高度为m,宽度为n 那么我们说A ∈ Rmxn 。我们在表示矩阵中的元素时。通常以不加粗的斜体形式使其用名称,索引用逗号间隔。比如,A1,1表示在矩阵A中左上角的那个元素,Am,n表示A右下的元素。我们通过用:表示要用到一排了或者一列了。比方说Am,:表示我要使用m行所有的元素。

2019-07-23 标量,向量,矩阵与张量_第2张图片

有时我们需要矩阵值表达式的索引,而不是单个元素。在这种情况下,我们在表达式后面接下标,但不必将矩阵的变量名称小写话。 (就是 我想给 i行j列的这个元素函数求值,这时候我们的这个a可以大写成A) 比如f(A)i,j 这么写,表示函数f()作用在A上的矩阵的第i行j列元素上.

        矩阵这东西在机器学习中就不要太重要了!实际上,如果我们现在有N个用户的数据,每条数据含有M个特征,那其实它对应的就是一个N*M的矩阵呀;再比如,一张图由16*16的像素点组成,那这就是一个16*16的矩阵了。现在才发现,我们大一学的矩阵原理原来这么的有用!要是当时老师讲课的时候先普及一下,也不至于很多同学学矩阵的时候觉得莫名其妙了。


(4)张量:

几何代数中定义的张量是基于向量和矩阵的推广,通俗一点理解的话,我们可以将标量视为零阶张量,矢量视为一阶张量,那么矩阵就是二阶张量。 例如,可以将任意一张彩色图片表示成一个三阶张量,三个维度分别是图片的高度、宽度和色彩数据。

将这张图用张量表示出来,就是最下方的那张表格:

2019-07-23 标量,向量,矩阵与张量_第3张图片

其中表的横轴表示图片的宽度值,这里只截取0~319;表的纵轴表示图片的高度值,这里只截取0~4;表格中每个方格代表一个像素点,比如第一行第一列的表格数据为[1.0,1.0,1.0],代表的就是RGB三原色在图片的这个位置的取值情况(即R=1.0,G=1.0,B=1.0)。

当然我们还可以将这一定义继续扩展,即:我们可以用四阶张量表示一个包含多张图片的数据集,这四个维度分别是:图片在数据集中的编号,图片高度、宽度,以及色彩数据。

张量在深度学习中是一个很重要的概念,因为它是一个深度学习框架中的一个核心组件,后续的所有运算和优化算法几乎都是基于张量进行的。

从数学方面深入的去理解:

概念

几何代数中定义的张量是基于向量和矩阵的推广,通俗一点理解的话,我们可以将标量视为零阶张量,矢量视为一阶张量,那么矩阵就是二阶张量。

2019-07-23 标量,向量,矩阵与张量_第4张图片

定义

张量的严格定义是利用线性映射来描述的。与矢量相类似,定义由若干坐标系改变时满足一定坐标转化关系的有序数组成的集合为张量。  从几何角度讲, 它是一个真正的几何量,也就是说,它是一个不随参照系的坐标变换(其实就是基向量变化)而变化的东西。最后结果就是基向量与对应基向量上的分量的组合(也就是张量)保持不变,比如一阶张量(向量)a可表示为a= x*i+ y*j。由于基向量可以有丰富的组合,张量可以表示非常丰富的物理量。

换一种定义方式

一个(p,q)型张量,就是一个映射:

其中V是矢量空间,V*是对应的对偶空间。

啰嗦一下

如果一个物理量,在物体的某个位置上只是一个单值,那么就是普通的标量,比如密度。如果它在同一个位置、从不同的方向上看,有不同的值,而且这个数恰好可以用矩阵乘观察方向来算出来,就是张量。

张量的理解:张量是有大小和多个方向的量。这里的方向就是指张量的阶数。

空间维度n:一般我们使用3维空间,也可以是4维及以上维度。

张量阶数m:在固定的3维度空间再谈张量的阶数,阶数小于等于维数,即m<=n。

下面区分这个量:张量的阶数(张量的方向数)和所在空间的维数(所在空间的方向数)的区别

在二维空间里,二维二阶张量(平面应力张量)的每个方向都可以用二维空间两个方向表示。(区分2阶张量的2个方向,和二维空间的两个方向x,y)所以共有2^2=4个方向。

在三维空间里,三维二阶张量(空间应力张量)的每个方向都可以用三维空间三个方向表示。(区分2阶张量的2个方向,和三维空间的三个方向x,y、z)所以共有3^2=9个方向。

张量积

你认识矩阵乘积

向量的内积

以及矩阵和向量的乘法

于是你发现了共同点,有一个相同指标在经过求和之后就看不见了。如果你只是把两个量放在一起,不求和,只是构造多重线性的话,你就发现了张量积,比如向量

于是你构造了一个矩阵,也就是二阶张量。。类似的,对于矩阵当然也可以,

这里你就构造了一个四阶张量。

张量积这种东西有很多种理解方式,在不同的语境下面会有不同的看法。但是如果拿来跟矩阵乘积比较的话,我觉得比较好的说法是,张量积是一种万有乘积,而矩阵乘法是一种具体化。

我们现在手里有很多矩阵,然后希望把两个矩阵乘起来。一开始肯定想不到怎么乘,但是可以猜一些乘积的最基本的性质,比如说要和数乘是匹配的,也要和加法匹配也就是分配律。不管这个乘积是什么,都应当有这些基本的性质。那么这个时候张量积就出现了,他代表了最广的乘积,也是最弱的乘积,就仅仅满足上面说的那些基本性质。正因为是最弱的,所以一切具体的乘积都可以看成是从张量积的结果具体化得到的,也就是可以看成是万有乘积,或者是一个包络的乘积。

在数学中,张量积,记为

可以应用于不同的上下文中如向量、矩阵、张量、向量空间、代数、拓扑向量空间和模。在各种情况下这个符号的意义是同样的: 最一般的双线性运算。在某些上下文中也叫做外积。

2019-07-23 标量,向量,矩阵与张量_第5张图片
2019-07-23 标量,向量,矩阵与张量_第6张图片

有两个(或更多)张量积的分量的一般公式。例如,如果UV是秩分别为nm的两个协变张量,则它们的张量积的分量给出为

所以两个张量的张量积的分量是每个张量的分量的普通积。

赠送···向量的理解

向量可以表示什么?

比如,我们可以用一个平面的法向量代表这个平面;物理上可以用向量代表力等。看来,向量可以表示很多东西,不过仔细想想向量也只表示了幅度(magnitude)与方向(direction)两个要素而已。

一个向量有很多种表示方式,我们可以用[0, 1]表示一个二维向量,也可以用平面、三维或更高维空间中的一条带箭头的线表示一个向量。我们都是知道(0, 0) —> (1, 1)可表示一个从(0, 0)到(1, 1)的有向线段(向量),那么,为什么可以用[0, 1]表示一个向量呢?

根据前面的讲解,我们知道一个向量就是空间中的一条有向线段,可以用一组坐标系的基和向量相应分量的乘积组合来表示。由于坐标系有很多种定义方式,基也就有很多种,对应的分量也会有很多种,但如果大家默认使用同一套基向量,那么基向量都不需要了,此时,想要表示一个向量,只要给定这三个分量即可,比如用0, 1表示一个向量,如果加上两个括号,这就是我们在书上经常看到的向量的列表示(0, 1),三维的有(1, 2, 1)。贴一个很有爱的图

2019-07-23 标量,向量,矩阵与张量_第7张图片

参考资料

https://blog.csdn.net/pandamax/article/details/63684633

http://tieba.baidu.com/p/4139437334

https://www.zhihu.com/question/23720923

https://www.zhihu.com/question/269975252

https://zh.wikipedia.org/zh/%E5%BC%A0%E9%87%8F%E7%A7%AF

作者:缺省之名

链接:https://www.jianshu.com/p/2a0f7f7735ad

来源:

著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

你可能感兴趣的:(2019-07-23 标量,向量,矩阵与张量)