深度学习500问 之 第一章 数学基础

1.1 标量、向量、张量

标量:只有数值大小,没有方向的量。

向量:数学中指具有大小和方向的量;计算机编程语言中是一个存放数据的地方,类似于一维数组和链表。

一维数组:数组中每一个元素都有且仅有一个下标时,这样的数组称为一维数组,数组中每个变量的数据类型是相同的。

链表:物理存储单元上,非连续、非顺序的存储结构。链表由一系列结点组成(链表中每一个元素称为结点),结点可以在运行时动态生成。

张量:是向量的推广,向量是一阶张量,标量是零阶张量,矩阵是二阶张量。张量的维数叫做它的秩。

1.2 张量和矩阵的区别

1 从代数的角度,矩阵是向量的推广。张量的严格定义是利用线性映射来描述。

2 从几何的角度,矩阵是一个真正的几何量,即不随参考系的坐标变化而变化。张量是动态的,服从一个相关的变换规则。

3 任何秩为2的张量都可以表示为一个矩阵,但不是每个矩阵都是秩为2的张量。张量矩阵表示的数值取决于整个系统应用了什么规则。

在深度学习中:

假设神经网络中有3个节点的隐藏层L1,输入流入该层,通过ReLU,得到2.5,4,1.2。将这些节点的输出表示为向量:

  L_1=\begin{bmatrix} 2.5\\ 4\\ 1.2\end{bmatrix}

假设还存在有3个节点的隐藏层L2,L1的三个节点中的每个节点都有一个权重,每个权重与L2的三个节点关联。故可将权重写为3x3的矩阵。这里假设我们已经对网络进行了多次更新,并得到了权重(这里半随机选择)。

W_{12}=\begin{bmatrix} -1 & 0.4 &1.5 \\ 0.8 & 0.5 & 0.75\\ 0.2 &-0.3 & 1 \end{bmatrix}

关于数据的流动,如下:

L_{2}=W_{12}L_{1}=\begin{bmatrix} -1 & 0.4 &1.5 \\ 0.8 & 0.5 & 0.75\\ 0.2 &-0.3 & 1 \end{bmatrix}\begin{bmatrix} 2.5\\ 4\\ 1.2\end{bmatrix}=\begin{bmatrix} 0.9\\ 4.9\\ 0.5\end{bmatrix}

以上都是矩阵和向量的操作。

假设,我们想对每个神经元进行干预并使用自定义激活函数。其中一种方法是,从第一层重新缩放每个ReLU函数。本例中,假设我们将第一个节点向上扩展2倍,保留第二个节点,将第三个节点向下扩展1/5。原来L_{2}的结果如下所示:

修改后的效果是,将第一层生成的值分别乘以2、1和1/5。相当于L_{1}乘以一个矩阵A:

A=\begin{bmatrix} 2 & 0 & 0\\ 0 & 1 &0 \\ 0 & 0 & 0.2 \end{bmatrix}

ReLU函数变化如下:

现在,这些更新后的值,通过原来的权值网络,得到完全不同的输出值,如下:

L_{1}^{'}=AL_{1}=\begin{bmatrix} 2 & 0 & 0\\ 0 & 1 &0 \\ 0 & 0 & 0.2 \end{bmatrix}\begin{bmatrix} 2.5\\ 4\\ 1.2\end{bmatrix}=\begin{bmatrix} 5\\ 4\\ 0.24\end{bmatrix}

如果神经网络之前运作正常,输入更新后,就破坏了网络运作,必须重新进行训练以恢复正确的数量。

第一个节点的值是之前的2倍。如果我们将所有输出权值减少1/2,则它对下一层的净贡献不变。

第二个节点未做任何处理,故不考虑权值,不需要改变。

第三个节点是之前的1/5倍,故将输出权值扩大5倍,以补偿该节点上的1/5因子。

从数学上来说,这相当于使用一组新的权值,我们通过将原权值矩阵乘以A的逆矩阵得到:

W_{12}^{'}=W_{12}A^{-1}=\begin{bmatrix} -1 & 0.4 &1.5 \\ 0.8 & 0.5 & 0.75\\ 0.2 &-0.3 & 1 \end{bmatrix}\begin{bmatrix} 0.5 & 0 &0 \\ 0 & 1 &0 \\ 0 & 0 & 5 \end{bmatrix}=\begin{bmatrix} -0.5 & 0.4 & 7.5\\ 0.4 & 0.5 & 3.75\\ 0.1 & -0.3 & 5 \end{bmatrix}

这里网络可以重新运作。

总结

当我们把节点的输入、输出和权值看作固定的量时,我们称它们为向量和矩阵,并用它们完成网络运行。

但,一旦我们开始用其中一个向量进行修复,以常规方式对其进行转换,就必须通过相反的方式转换权值来进行补偿。这个附加的、集成的结构将单纯的数字矩阵提升为一个真正的张量对象。

进一步描述它的张量性质。如果我们把对节点的变化称为协变(即,将节点乘以矩阵A),那么权值就变成了一个逆变张量(即,针对节点的变化,乘以A的倒数,矩阵A的逆矩阵)。张量可以在一个维度上是协变的,在另一个维度上是逆变的,但那是另外的事了。

猜你喜欢

转载自blog.csdn.net/weixin_42338058/article/details/88029107