专栏名称: 夕小瑶的卖萌屋
这里有自然语言处理、机器学习、算法的入门指导、科普与深度干货,有小夕的回忆与日常,还有最重要的:萌!气!
51好读  ›  专栏  ›  夕小瑶的卖萌屋

线性代数应该这样讲(二)

夕小瑶的卖萌屋  · 公众号  ·  · 2017-05-26 00:49

正文


《...(一)》 中,小夕从映射的角度讲解了矩阵及矩阵运算,这也是机器学习中看待矩阵的非常重要的视角。

另一方面说,矩阵当然也是用于存储数据的数据结构,这也是最好理解的形式。另外还可以看做是一个线性方程组(课本上讲烂了的开头),甚至可以将其仅仅看做一般化的张量(tensor)中的一个普通切片(slice),或者说其中一层。所以矩阵代表什么含义,要在不同的场景中灵活对待,不要局限在一种视角哦。


继续从映射的视角来看。


小夕说,不同的矩阵就代表着不同的映射,就像上一篇文章讲的, 就可以表示“将输入的空间的第一个维度的坐标轴缩短为原来的一半,将第二个维度的坐标轴拉伸为原来的两倍”。这就是这个矩阵的含义。

例如,输入一个 二维空间 里的多个样本点:

比如

此时的矩阵就是 存储数据的视角 啦。这里的矩阵就是每一行就是空间中的一个样本点,所以这个矩阵就代表 二维空间 里的 3个样本点

所以将A中这个空间的三个样本丢给W这个映射,就得到了三个样本在新的空间的镜像点(跟高一时学的集合的映射是一个概念):

看,是不是新得到的三个样本的第一维都被压缩成了原来的一半,而第二维被拉伸成了原来的两倍呢~

而神经网络中,每一层的输出经过权重矩阵,映射到下一层的输入的过程,就是上述这个过程哦(没有理解的再看看这篇文章 《神经网络激活函数》


好啦。从映射的视角接着走。那么既然矩阵是描述映射的,那么肯定会有更严谨,更直观的形式去描述一个矩阵背后所暗示的映射规则。 这个更直观的形式是什么呢?

好,然后我们将映射 更加夸张一下,我们来看映射 显然,按照小夕之前的讲解,这个映射就代表将第一维度压缩为原来的0.99倍(几乎没有变化!),将第二维度拉伸为原来的100倍(显然变化十分极其非常的大)。这个映射的 作用对象 很明显:

1 第一维度坐标轴 。怎么描述这个作用对象呢?回顾一下中学数学,在二维空间中,第一维度坐标轴不就是(x,0)嘛~既然是描述坐标轴,我们不妨用一个单位为1的向量表示x轴,即(1,0).

2 第二维度坐标轴 。同样的道理,在二维空间中,第二维度坐标轴就是y轴,表示为(0,1)

这个映射 对每个作用对象的作用程度 也很明显不一样:

1 、对第一维度坐标轴的作用程度就很小,对它几乎没有改变(改变成了原来的0.99倍),所以我们直接用0.99来表示作用程度(显然,越接近1表示作用程度越小)。

2 、同样,这个映射对第二维度的坐标轴作用程度非常大。所以用100来表示。

好啦~小夕用“作用对象”和“对某作用对象的作用程度”是不是就已经非常清晰的描述清楚了矩阵 的映射规则呢~所以理论上说,这两者应该完全等价才对~

学过线代的你有没有灵光一现呢~


没!错! 小夕这里讲的 “作用对象” 就是大学课本讲成一坨的 “特征向量” (eigenvector) !小夕这里讲的 “对某作用对象的作用程度” 就是课本里的 “特征值” (eigenvalue) !因此,一个矩阵,或者说一个线性映射,完全可以用它的全部特征向量及其对应的特征值去描述!(当然严谨的说是 方阵 ,先接着开车,下一篇文章再解释细节)


而将矩阵分解为它的特征值与特征向量的过程被称为 特征分解” (Eigendecomposition) ,又称 " 谱分解" (Spectral decomposition) 。特征分解是众多矩阵分解中的一种,因此当然原矩阵A会被分解成几个目标矩阵啦~这里的目标矩阵当然就是两个,一个由特征向量组成的,还有一个是由特征值组成的。

你可以试一下,将上面的两个特征向量叠在一起(一列为一个特征向量):

然后每个特征向量 对应的 特征值 依次 放到一个 对角矩阵 的各位置上

然后由公式 即可以恢复出原映射W。(注: 是eVec的逆矩阵)


对于这个例子,一眼就能算出来肯定是对的~对于 的证明,可以参考各种教材和博客,就不展开啦。(文章末尾有链接推荐)


有了对特征值和特征向量的这一层理解,我们当然很容易继续联想到:

当一个矩阵的特征值中包含 0 时,就表示要将一个“坐标轴”直接毁灭!(将一个坐标轴映射回原点。这个“坐标轴”就是这个0特征值所对应的特征向量(所描述的方向));

同理, 负数 特征值就表示将它所对应的特征向量所在的坐标轴反转。因此,-1就表示将该坐标轴反转,但是不拉伸也不压缩。(-1,0)表示反转且压缩,(-∞,-1)表示反转且拉伸。







请到「今天看啥」查看全文