深度学习的数学基础

参考链接:【深度学习数学基础】序章 + 目录(已完结,共30章)

我常常觉得自己的数学基础实在太差,不会运用的知识遗忘极快,AI时代,建立强的数学直觉是必要的,所有我开了一篇专门记这些

第一部分:线性代数篇

01:向量空间与数据表示

前面讲了一些关于基和维度的内容,之前学线代的时候从这个视角理解过,遂略过,主要看一下这个PCA主成分分析

PCA: 把高维数据压缩到低位,且尽可能的保留信息密度

先来看一个实际的计算的例子,然后我们上升到可解释的层面上去

给定一个二维的样本,请用PCA的方式降到一维:
$$ \begin{bmatrix} 2 & 0 \\ 0 & 2 \\ 3 & 1 \\ 1 & 3 \end{bmatrix} $$
ML/DL中一般用行向量表示样本,用列向量表示特征

这里同理,每一行是一个样本,两列表示两个特征维度

第一步做中心化:
$$ d_1 : \frac{2+0+3+1}{4} = 1.5\\ d_2 : \frac{0+2+1+3}{4} = 1.5\\ \mu = \begin{bmatrix} 1.5 & 1.5 \end{bmatrix} $$
算出来之后我们在原始矩阵上减掉这个”均值”:
$$ X_c = X - \mu $$
下一步计算协方差矩阵,计算公式为:
$$ C = \frac{1}{m-1} X_c^T X_c $$
然后对协方差矩阵做特征值分解:
$$ Cv = \lambda v $$
特征值分解的做法就是(涉及到了线性方程组的解的一些理解,后面会展开):
$$ det(C - \lambda I) = 0 $$
算出来特征值之后,按照从大到小的顺序排序,在这个例子中的结果是:
$$ \lambda_1 = \frac{8}{3},\lambda_2=\frac{2}{3} $$
要求是压缩到一维,就选取最大的一个特征值,接下来去求特征向量:
$$ (C - \lambda I)v = 0 $$
带入$\lambda_1$的值算出来一个特征向量$v_1$,为了形式上的统一,化简成单位特征向量,在这个例子里面:
$$ v_1 = \frac{1}{\sqrt{2}} \begin{bmatrix} 1\\ -1 \end{bmatrix} $$
对于通用的情况,找到所有的保留的主成分的维度之后,进行一个拼接:
$$ W = \begin{bmatrix} v_1 & v_2 \cdots v_n \end{bmatrix} $$
投影完成,得到最终结果:
$$ Z = X_cW $$

summary:

  • 对协方差矩阵进行特征值分解,找到相应的特征向量;
  • 按照特征值从大到小排序,选取前$k$个特征向量构成投影矩阵;
  • 利用投影矩阵将高维数据映射到$k$维空间中,得到降维后的数据表示。

这种方法直接利用向量空间中基和维度的概念,将数据的主要「方向」提取出来,从而构造出一个新的特征空间。算法上看,PCA 不仅能够在一定程度上缓解「维度灾难」,还为后续的聚类、分类等任务提供了更简洁、更有效的数据表示。

02:矩阵运算与线性映射

这一章给出了一个非常核心的看待矩阵的视角:矩阵乘法相当于按某种规则进行线性变化

在这个视角下,我们来重新审视并理解秩-零度定理
$$ dim(V) = dim(Null(T)) + dim(Range(T)) $$
如果用一个矩阵$A \in R^{m \times n}$举例子的话就是:
$$ n = rank(A) + nullity(A) $$
先解释一下这两个分别是什么东西,然后会发现其实他讲了一个贼直观的事:

$nulllity(A)$指的是经过矩阵$A$所代表的变化之后所有坍缩到0的向量,也就是$Ax=0$的解空间

$range(A)$指的是经过矩阵$A$之后得到的有效的向量集合$Ax$,是所有可能的向量构成的集合

ok那就简单了,这个公式描述的是输入矩阵$A$,它的输入维度 = 有效输出的维度 + 被压缩成0的维度


Give it time, let it pass.