线性代数问题

如题所述

第1个回答  2020-11-22
某人在学 machine learning, 让我解释里面一个叫 PCA 的东西/技巧,问题是这样的:给定[公式]中[公式]个数据点,我们希望 “降低维数” 同时 “不丢失太多信息”,所以希望找[公式]个方向,沿着这些方向做了正交投影以后,数据的维数降成[公式]维——不丢失太多信息这个条件,在这个问题上指的是,希望每个点到其投影的距离之平方和(也就是[公式])极小,从而受到的改变也最小。

做法其实是现成的,所有的[公式]放在一起构成一个矩阵[公式]. [公式]是个[公式]矩阵,显然是半正定的。对它做奇异值分解,取特征值最小的[公式]个特征向量,沿着他们投影(也就是把对应于他们的分量扔掉),就得到了我们需要的投影。

有些 machine learning 的教材把这个叫做黑魔法了(参见题图,来自这里,注意那个教程里的[公式]其实是我这里的[公式])——其实这个是挺简单的线性代数,我来试着解释解释。

第一反应是,这不就是个最小二乘法嘛:然而具体解释起来的时候发觉和最小二乘法还是有点区别,稍微转化一下的话,其实就是前面提到的那个线性代数问题。(把投影[公式]写成[公式]的形式即可)。

为啥[公式]的定义不依赖于标准正交基的选取呢?

我写的时候觉得挺显然的,但是有人不知道怎么证。其实不难,有人已经看出来了,把[公式]写成一个矩阵[公式]的话,[公式]其实就是[公式]——这里[公式](读作 “trace”, 矩阵的迹)是方阵对角线的元素之和,也是一个方阵全部特征值之和。[公式]有个很好的特性,就是只要两个乘积[公式]和[公式]都有定义,则[公式],现在换一组子空间的标准正交基的话无非把[公式]变成了[公式],这里[公式]是一个[公式]的正交矩阵,所以数值是不变的。

扯淡时间
下面开始扯淡——首先[公式]是个奇怪的函数,但是这个问题的线性代数味道还是很浓的,所以如果问[公式]是个什么东西的话,从[公式]这个角度来看,可以硬说它是个定义在某个内积空间上的 “二次型”,而[公式]这整个 data, 定义了那个内积空间中的一个单位向量——关键是,它是哪个空间上的二次型,说完了这个问题就终结了:一个二次型在单位向量上的的最小值就是定义该二次型的(对称)矩阵最小的特征值。

所以,重述一下问题的关键:找一个新的线性空间,这个空间上带着内积,一组正交的单位向量[公式]对应于那个线性空间中的一个单位向量,而[公式] 是那个线性空间上的一个二次型。

说到这里聪明的人可能已经猜到是哪个线性空间了,后知后觉的可以从这个点出发去思考,比如[公式]对应于单位向量的话,[公式]按说就应该对应于一个长度为 3 的向量(因为放进二次型以后数值变成了 9 倍),[公式]应该对应于是个长度为[公式]的向量,所以这东西好像跟[公式]的行列式有点关系?[公式]中[公式]个向量的 “行列式” 该怎么定义呢?[公式]中[公式]个向量的 “行列式” 就是我们说的新的线性空间中的向量。
相似回答