0x00 数学基础

0x00 全体方差和样本方差

全体方差:

σ2=(x1−μ)2+(x2−μ)2+...+(xn−μ)2n\sigma^{2}= \frac{ (x_{1}-\mu) ^{2}+(x_{2}-\mu) ^{2}+...+(x_{n}-\mu) ^{2} } {n}

样本方差:

s2=(x1−xˉ)2+(x2−xˉ)2+...+(xn−xˉ)2n−1s^{2}= \frac{ (x_{1}-\bar{x}) ^{2}+(x_{2}-\bar{x}) ^{2}+...+(x_{n}-\bar{x}) ^{2} } {n-1}

全体方差和样本方差的区别只有样本方差的分母是 n-1 而全体方差的分母则是 n,为什么会这样呢?

我们首先要明白一点,全体方差描述的是客观事实,样本方差描述的则是一个估算,或者说预测。

样本方差的分母上,这个减了 1 的 n 被称为贝塞尔校正。因为我们发现当样本量较小的时候,偏差影响比较明显,样本方差比全体方差偏小。当样本量增大时,偏差逐渐减少,直到影响可以忽略不计。既然样本方差相比于总体方差变小了,那干脆让分母变小,增大样本方差就行了。

那为什么当样本量较小的时候,偏差影响比较明显,样本方差比全体方差偏小呢?

举个例子,公司要进行晋升答辩,员工答辩,领导在下面打分,我们假设所有的领导打分都相互独立,每个人的评分则会出现较大的差异性。现在我们假设,打分的领导中有一个老好人,他自己没有任何的主见,只是看看别人的评分,然后再取个折中的得分。

在这种情况下,这个领导的观点是不独立的,他没有贡献任何的新观点,只是重复了别人的观点。但是这个重复的数据的出现却污染了整体数据的独立性,让原本差异性较大数据,因为折中数据的出现,减少了差异,或者说,出现了一些趋同效应,这就产生了偏差。

回到样本方差 s2s^2 上,因为样本的平均值 xˉ\bar{x} 是根据抽样样本来计算的。此时,样本平均值 xˉ\bar{x} 就成了那个贡献重复数据的领导,让原来独立的、随机的、没有偏差的样本数据,在计算加工的过程中引入了偏差,减少了数据之间的差异性,就是这种趋同效应让样本方差 s2s^2 变小。

参考资料:

为什么样本方差(sample variance)的分母是 n-1?

0x01 协方差和协方差矩阵

在统计学中,方差被用来度量单个随机变量的离散程度,而协方差则一般用来刻画两个随机变量的相似程度。协方差的计算公式如下,其中 n 表示样本量:

σ(x,y)=1n−1∑i=1n(xi−xˉ)(yi−yˉ)\sigma\left(x,y\right)=\frac{1}{n-1}\sum_{i=1}^{n}\left(x_i-\bar{x}\right)\left(y_i-\bar{y}\right)

我们发现,其实随机变量 x 的方差,就是其关于自身的协方差,即 s2=σ(x,x)s^2=\sigma(x,x)。

对于一堆随机变量 x1,x2,⋯ ,xdx_1,x_2,\cdots,x_d,求出两两之间的协方差,我们就得到了其协方差矩阵:

Σ=[σ(x1,x1)⋯σ(x1,xd)⋮⋱⋮σ(xd,x1)⋯σ(xd,xd)]∈Rd×d\Sigma=\left[ \begin{array}{ccc}\sigma({x_1},{x_1}) & \cdots & \sigma\left(x_1,x_d\right) \\[1em] \vdots & \ddots & \vdots \\[1em] \sigma\left(x_d,x_1\right) & \cdots & \sigma({x_d},{x_d}) \\[1em] \end{array} \right]\in\mathbb{R}^{d\times d}

因为 σ(x,y)=σ(y,x)\sigma(x,y)=\sigma(y,x),所以上述矩阵是一个对称矩阵。

0x02 线性相关与线性无关

对于向量空间内的一组向量 α1,α2,⋯ ,αm\alpha_1, \alpha_2,\cdots, \alpha_m 而言,如果存在一组不全为 0 的数 k1,k2,⋯ ,kmk_1, k_2,\cdots,k_m,使得:

k1α1+k2α2+⋯+k3α3=Ok_1\alpha_1+k_2\alpha_2+\cdots+k_3\alpha_3=O

成立,则称这组向量是线性相关的。反之,如果当且仅当数 k1,k2,⋯ ,kmk_1, k_2,\cdots,k_m 全部等于 0 时才能使上述等式成立时,则称其是线性无关的。

0x03 向量的基和基变换

在我们常说的坐标系中,向量 (3,2) 其实隐式引入了一个定义:以 x 轴和 y 轴上正方向长度为 1 的向量为标准。向量 (3,2) 实际是说在 x 轴投影为 3 而 y 轴的投影为 2 的一个向量。注意投影是一个标量,所以可以为负。

所以,我们要准确描述向量,首先要确定一组基,然后给出在基所在的各个直线上的投影值,就可以了。同时,为了方便求坐标,我们希望这组基向量的模长为 1。因为向量的内积运算,当模长为 1 时,内积可以直接表示投影。然后还需要这组基是线性无关的。同时我们一般用正交基,正交基就是元素两两正交的基。

向量的基变换就是用这组向量与新基进行内积,然后得到新坐标的过程。我们可以用矩阵的形式来简洁的表示这个变换。例如,对于向量 (3, 2) 而言,在 (12,12)(\frac{1}{\sqrt{2}},\frac{1}{\sqrt{2}}) 和 (−12,12)(-\frac{1}{\sqrt{2}}, \frac{1}{\sqrt{2}}) 这组基下的坐标即为:

(1212−1212)(32)=(52−12)\begin{pmatrix} \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \\[1em] -\frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \end{pmatrix} \begin{pmatrix} 3 \\[1em] 2 \end{pmatrix} = \begin{pmatrix} \frac{5}{\sqrt{2}} \\[1em] -\frac{1}{\sqrt{2}} \end{pmatrix}

0x04 标准正交基和施密特正交化方法

一个内积空间的正交基就是元素两两正交的基,正交的判定方法就是两两相乘等于 0,如下三个向量即为 R3R^3 内的一组正交基:

a=(14,−14,1),b=(2,−2,1),c=(1,1,0)a=(\frac14, -\frac14,1), b=(2,-2,1),c=(1,1,0)

而标准正交基,就是模长为 1 的正交基,如下即为 R3R^3 内的一组标准正交基:

α=(1,0,0),β=(0,1,0),γ=(0,0,1)\alpha=(1,0,0), \beta=(0,1,0),\gamma=(0,0,1)

施密特正交化方法是从欧式空间中的任意线性无关向量组 α1,α2,⋯ ,αn\alpha_1, \alpha_2,\cdots,\alpha_n 出发,求得正交向量组 β1,β2,⋯ ,βn\beta_1, \beta_2,\cdots,\beta_n,使二者等价,然后再将正交向量组进行单位化,得到一个标准正交向量组。其基本算法如下:

β1=α1β2=α2−⟨α2,β1⟩⟨β1,β1⟩β1βn=αn−⟨αn,β1⟩⟨β1,β1⟩β1−⟨αn,β2⟩⟨β2,β2⟩β2−⋯−⟨αn,βn−1⟩⟨βn−1,βn−1⟩βn−1\beta_1=\alpha_1 \\[1em] \beta_2=\alpha_2-\frac{\langle\alpha_2, \beta_1\rangle}{\langle\beta_1, \beta_1\rangle}\beta_1\\[1em] \beta_n=\alpha_n-\frac{\langle\alpha_n, \beta_1\rangle}{\langle\beta_1, \beta_1\rangle}\beta_1-\frac{\langle\alpha_n, \beta_2\rangle}{\langle\beta_2, \beta_2\rangle}\beta_2-\cdots-\frac{\langle\alpha_n, \beta_{n-1}\rangle}{\langle\beta_{n-1}, \beta_{n-1}\rangle}\beta_{n-1}

此后再将每个向量都单位化,即得到了其单位正交向量组:

ei=βi∥βi∥e_i=\frac{\beta_i}{\| \beta_i \|}

其基本的几何意义就是把非正交基变为正交基,也就是将两个向量正交化,如下图所示:

参考资料:

施密特正交化的几何意义是什么?

0x05 矩阵的特征值与特征向量

矩阵的特征值和特征向量所针对的条件是矩阵 A 是一个 n 阶方阵。对于一个 n 阶方阵 A 而言,如果存在一个数 λ\lambda 和非零 n 维列向量 x,并且满足 Ax=λxAx=\lambda x 的话,那数 λ\lambda 和非零 n 维列向量 x 即被称为矩阵 A 的特征值和特征向量。

0x01 PCA 算法

0x02 SVD 与 PCA 的关系

SVD,即奇异值分解,对一个矩阵 A 进行奇异值分解,得到的结果是将矩阵分解成若干个秩一矩阵之和。用公式表示就是:

A=σ1u1v1T+σ2u2v2T+⋯+σrurvrTA=\sigma_1u_1v_1^T+\sigma_2u_2v_2^T+\cdots+\sigma_ru_rv_r^T

其中每一项的系数 σ\sigma 就是矩阵的奇异值,u,vu, v 分别代表列向量,每一项的 uvTuv^T 都是一个秩为 1 的矩阵。我们假定奇异值满足 σ1≥σ2≥⋯≥σr>0\sigma_1\ge\sigma_2\ge\cdots\ge\sigma_r>0,如果不满足的话,重新排序即可,这无非是一个编号的问题。

如果 A 的大小为 m×nm\times n 的话,那列向量 u,vu, v 的大小即为 m×1m\times1 和 n×1n\times 1。这样对于矩阵 A 而言,原先需要存储 m×nm\times n 个参数,经过奇异值分解后,存储参数的个数就被压缩为 r×(m+n+1)r\times(m+n+1),其中 r 为保留的奇异值项个数。

奇异值往往对应着矩阵中隐含的重要信息,且重要性和奇异值大小正相关。每个矩阵 A 都可以表示为一系列秩为 1 的小矩阵之和,而奇异值则衡量了这些小矩阵对于 A 的权重。