线性代数是深度学习的数学基础,学习深度学习之前必须掌握线性代数的相关知识。线性代数的内容是抽象的,本文旨在用直观易懂的语言解释线性代数中的相关概念。同时,学习不仅是记忆,而且需要思考。我在写作时会适时插入一些思考导向的内容,帮助大家更深的掌握概念。
如果需要深入学习线性代数,这里推荐:
- 线性代数机器应用(David C. Lay, 2007)
- The Matrix Cookbook(Petersen, 2012)
Chapter 2 线性代数基础
1 张量
张量(tensor)是神经网络运算图中传递的基本运算单位。张量中的元素分布在若干维度的空间中,常见张量类型为:
- 0D(维)张量:标量。一个标量就是一个单独的数。常用斜体小写字母表示,如。
- 1D张量:向量。一个向量是一组有序的数,其中的每个元素通过一个索引(代表在向量中的次序)确定。通常用斜体加粗的小写字母表示,如:
- 2D张量:矩阵。矩阵是一个二维数组,其中的每个元素通过两个索引(行,列)确定。一般用粗体大写字母表示,表示,如:
- 多维张量。一般用粗体大写字母,如表示。中三维空间中的点记作。
2 矩阵运算
矩阵中常见的一些运算,如点积、数乘、转置等概念作为线性代数的基础知识就不再赘述了。在此介绍一些线代课本中没有的概念性质。
需要说明的是,一般情况下,向量为行向量,向量的转置为列向量。
- 广播
一个矩阵与一个向量相加可以表示为:
其中:
即向量与的每一行相加。
如果你熟悉两个矩阵相加的运算,可以发现在实际计算中,其实被隐式的复制成了一个形状与矩阵相同的矩阵。为了方便地表示矩阵与向量或者标量相加。这种隐式地复制操作,被称为广播。 - 范数
范数是将向量映射到非负值的函数。范数的定义如下:
其中范数被简写为。
最大范数,表示向量中最大元素的绝对值:
3 线性相关
线性组合(linear combination)
对每个向量都数乘一个系数,这种操作被称为线性组合:
生成子空间(张成空间, span)
一组向量的生成子空间,是原始向量线性组合后所能抵达的点的集合,即线性组合后所能覆盖的空间。如,向量的生成子空间记作。-
线性相关
一组向量线性相关,则说明这些向量中至少有一个向量是其他向量的线性组合:
-
线性无关
理解了线性相关,那么线性无关是显然的:如果一组向量中任意一个都不能表示成其他向量的线性组合,那么这组向量线性无关。通俗理解就是,一个向量不在其他向量的生成子空间中。如下图,构成一个平面,而不在此平面中:
因此与线性无关。这里可以引入一些思考:对于一组向量,如果我们向这组向量中加入一个与该组向量中任意一个线性相关的向量,那么新的向量组的生成子空间是不发生变化的。