在本文中,我们将了解矩阵和张量。
矩阵 :
它是一种可以表示数字的表格格式,如下所示 –
a11 | a12 | a13 | a14 |
a21 | a22 | a23 | a24 |
a31 | a32 | a33 | a34 |
a41 | a42 | a43 | a44 |
这里,a 11表示第一行和第一列。行是水平线,列是垂直线。这里,矩阵是 4 x 4。
这些显示为 nxm,其中 n 是行数,m 是列数。
也称为二维数组,即二维数组。
可以在矩阵上进行基本的数学运算,如加法、减法、乘法,但有一些条件。对于 + 和 -,两个矩阵的大小必须相同,对于乘法,它遵循以下规则 –
(n X m) X (m X p) = n X p
我们也可以将整个矩阵乘以一个常数。
例子 –
一 =
1 | 2 | 3 |
4 | 5 | 6 |
7 | 8 | 9 |
乙 =
1 | 4 | 7 |
2 | 5 | 8 |
3 | 6 | 9 |
A * B =
14 | 32 | 50 |
32 | 77 | 122 |
50 | 122 | 194 |
矩阵就像一个简单的 BOX。
矩阵可以是矩形(nXm)或正方形(nXn)。
张量:
张量就像一个函数,即本质上是线性的。它描述了一个在空间中的物体。张量有不同的类型——
- 0 秩张量 – 标量
- 一阶张量——一维数组
- 二阶张量——二维数组(矩阵)
- 第 n 阶张量 – nD 数组
所以张量是一个满足特定变换规律的 n 维数组。与矩阵不同,它显示放置在特定坐标系中的对象。当坐标系改变时,张量的条目也以这种方式变换,使得张量仍然在新的坐标系中描述相同的地图。
大多数机器学习算法使用张量来执行任何计算。在定义的系统中,矩阵只是条目的容器,如果系统发生任何变化,它不会改变,而张量是系统中的一个实体,它与系统中的其他实体交互并在其他实体发生变化时改变其值值发生变化。
为了理解这一点,让我们看一个例子——
假设存在一个所有矩阵均为 2×2 的系统,即坐标系仅包含 2 个方向。突然,一个新的方向出现了,我们不得不将矩阵转换为 3×3。对于矩阵,这是不可能的。相反,如果我们使用张量,那么通过仅更改 1 张量,所有其他张量将更改为 3×3。这种动态性在矩阵中是不允许的。
主要区别在于矩阵只有 2 个索引(也可以表示为 M[n][m]),而张量可以有任何索引(T[i1][i2][i3]….)甚至张量可以是一个没有任何索引的单个数字。
总而言之,我们可以说,所有矩阵都不是张量,尽管所有 Rank 2 张量都是矩阵。
仍然感到困惑,让我们看一个简单的 Rank 1 张量示例。
假设这是我们在标准欧几里得基础上的张量——
现在,让我们使用以下转换规则转移到 2 的基础 –
为此,我们将其乘以缩放矩阵的逆矩阵——
现在,在缩放之后,我们的张量变成了——
然而它给出了相同的结果。
对于矩阵,此操作是不可能的。
此外,在矩阵中,每个实体都是一个数字。例子 –
1 | 2 | 3 |
4 | 3 | 2 |
1 | 2 | 4 |
但是在张量中,每个实体也可以是另一个张量。例子 –
[1,2,3] | [3,2,1] | [1,2,3] |
[3,3,3] | [2,2,2] | [6,6,6] |
[5,5,5] | [6,5,4] | [4,5,6] |
同样,我们也可以有其他度数张量。
RGB 图像可以由具有 3 层 2D 矩阵的张量表示。
张量可以包含矩阵,但矩阵不能包含张量。
张量的另一个定义可能是它是矩阵的多向扩展。
让我们看看张量的乘积——
T1 =
[1,3] | [2,3] |
[3,2] | [2,2] |
T2 =
5 |
6 |
T1 * T2 =
5 * [1,3] + 6 * [2,3] |
5 * [3,2] + 6 * [2,2] |
[5,15] + [12,18] |
[15,10] + [12,12] |
[17,33] |
[27,22] |
这就是张量相乘的方式。