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

本文为学习笔记,文章原址为:https://github.com/scutan90/DeepLearning-500-questions

1.1 标量、向量、张量

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

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

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

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

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

1.2 张量和矩阵的区别

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

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

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

在深度学习中:

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

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

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

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

关于数据的流动,如下:

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

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

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

 

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

修改后的效果是,将第一层生成的值分别乘以2、1和1/5。相当于【深度学习500问】第一章 数学基础乘以一个矩阵A:

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

ReLU函数变化如下:

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

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

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

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

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

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

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

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

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

这里网络可以重新运作。

总结

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

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

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

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

1.3矩阵和向量相乘的结果

【深度学习500问】第一章 数学基础的矩阵和【深度学习500问】第一章 数学基础的矩阵相乘,得到【深度学习500问】第一章 数学基础的行向量。

1.4 向量和矩阵的范数

1.4.1 向量的范数

定义向量:a=[-5,6,8,-10]

向量的1范数:向量的各个元素的绝对值之和,a的1范数:29。

向量的2范数:向量的每个元素的平方和再开算术平方根,a的2范数:15。

向量的负无穷范数:向量所有元素的绝对值中最小的,a的负无穷范数:5。

向量的正无穷范数:向量所有元素的绝对值中最大的,a的正无穷范数:10。

1.4.2 矩阵的范数

定义矩阵:                  【深度学习500问】第一章 数学基础

矩阵的1范数:矩阵的每一列上元素的绝对值先求和,再取最大值(列元素绝对值之和最大),A的1范数:先得到【深度学习500问】第一章 数学基础,最大值是:9。

矩阵的2范数:矩阵【深度学习500问】第一章 数学基础的最大特征值开算术平方根,A的2范数:10.0623。

矩阵的无穷范数:矩阵每一行元素的绝对值先求和,再取最大值(行元素绝对值之和最大),A的无穷范数:先得到【深度学习500问】第一章 数学基础,最大值是:16。

矩阵的核范数:矩阵的奇异值(将矩阵svd分解)之和,这个范数可用低秩表示(最小化核范数,相当于最小化矩阵的秩——低秩),A的核范数:10.9287。

矩阵的L0范数:矩阵的非0元素的个数,通常用来表示稀疏,L0范数越小,0元素越多,也就越稀疏,A的L0范数:6。

矩阵的L1范数:矩阵中每个元素的绝对值之和,是L0范数的最优凸近似,因此也可以表示稀疏,A的L1范数:22。

矩阵的F范数:矩阵中所有元素的平方和再开算术平方根,也叫做矩阵的L2范数,是一个凸函数,可求导求解,易于计算,A的L2范数:10.0995。

矩阵的L21范数:矩阵先以每一列为单位,求每一列的F范数(也可认为是向量的2范数),然后将得到的结果求L1范数(也可认为是向量的1范数),故是介于L1和L2之间的一种范数,A的L21范数:17.1559。

1.5 判断矩阵为正定矩阵

1 顺序主子式全大于0;

2 存在可逆矩阵【深度学习500问】第一章 数学基础使【深度学习500问】第一章 数学基础等于该矩阵;

3 正惯性指数等于【深度学习500问】第一章 数学基础

4 合同于单位矩阵【深度学习500问】第一章 数学基础

5 标准形中,主对角元素全为正;

6 特征值全为正;

7 是某基的度量矩阵;

1.6 导数和偏导计算

 

1.7导数和偏导数区别

没有本质区别,都是当自变量的变化量趋于0时,函数值的变化量与自变量变化量比值的极限(如果极限存在)。

一元函数,一个y对应一个x,导数只有一个。

二元函数,一个z对应一个x和一个y,有两个导数:一个是z对x的导数,一个是z对y的导数,称之为偏导。

求偏导时,对一个变量求导,另一个变量视为常数,故将偏导求解转化成一元函数的求导。

1.8 特征值分解与特征向量

特征值分解可以得到特征值与特征向量,特征值表示的是这个特征值到底有多重要,特征向量表示这个特征是什么。

如果一个列向量【深度学习500问】第一章 数学基础是方阵【深度学习500问】第一章 数学基础的特征向量,则有:

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

【深度学习500问】第一章 数学基础是特征向量【深度学习500问】第一章 数学基础对应的特征值。

特征值分解是将一个矩阵分解为如下形式:

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

其中,【深度学习500问】第一章 数学基础是这个矩阵【深度学习500问】第一章 数学基础的特征向量组成的矩阵,【深度学习500问】第一章 数学基础是一个对角矩阵,每一个对角线元素是一个特征值,特征值按从大到小排列,这些特征值所对应的特征向量,就是描述这个矩阵变化的方向(从主要的变化到次要的变化排列)。即矩阵【深度学习500问】第一章 数学基础的信息可由其特征值和特征向量表示。

对于高维矩阵,这个矩阵就是高维空间下的一个线性变换。这个变换也同样由很多的变换方向,我们通过特征值分解得到的前N个特征向量。那么就对应了这个矩阵最主要的N个变化方向,就可以近似这个矩阵(变换)。

1.9 奇异值与特征值的关系

1.10 机器学习为什么使用概率?

机器学习的算法设计通常依赖于对数据的概率假设。

1.11 变量与随机变量的区别