深度学习的数学基础
参考链接:【深度学习数学基础】序章 + 目录(已完结,共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的维度