[深度学习]之数学基础1

[数学基础]线性代数

学习内容源于深度之眼公众号的花书训练营课程

1. 从特殊矩阵的对角化到矩阵压缩

假设 BB 是一个方阵,如果存在一个单位正交矩阵 PP 使得 A=PBP1A = PBP^{-1} ,其中 AA 是一个对角阵,则称 AABB 的对角化。单位正交矩阵 PP 有这么一个性质:PPT=PTP=IPP^{T}=P^{T}P=I ,再结合逆矩阵的性质可知 PT=P1P^T=P^{-1} ,从而有
B=P1AP=PTAP B=P^{-1}AP=P^TAP
然而并不是所有的方阵都可以进行对角化的,根据定理可知,对称矩阵一定可以对角化,其中如果是对称正定矩阵则对角阵 AA 的元素 λi\lambda_i 均为正数。

我们令单位正交矩阵 PT=[u1,u2,,un]P^T = [\boldsymbol{ u_1,u_2,\cdots,u_n}] ,其中 ui\boldsymbol{u_i} 是一个 nn 维的列向量,则 BB 可以这样表示
B=[u1,u2,,un][λ1λ2λn][u1Tu2TunT]=[λ1u1,λ2u2,,λnun][u1Tu2TunT]=λ1u1u1T+λ2u2u2T++λnununT \begin{aligned} B &= [\boldsymbol{ u_1,u_2,\cdots,u_n}] \begin{bmatrix} \lambda_1& & & \\ &\lambda_2 & &\\ & & \ddots & \\ & & & \lambda_n \end{bmatrix} \begin{bmatrix} \boldsymbol{u_1}^T \\ \boldsymbol{u_2}^T\\ \vdots \\ \boldsymbol{u_n}^T \end{bmatrix} \\ & = [\lambda_1\boldsymbol{u_1},\lambda_2\boldsymbol{u_2},\cdots,\lambda_n\boldsymbol{u_n}] \begin{bmatrix} \boldsymbol{u_1}^T \\ \boldsymbol{u_2}^T\\ \vdots \\ \boldsymbol{u_n}^T \end{bmatrix} \\ & = \lambda_1\boldsymbol{u_1}\boldsymbol{u_1}^T + \lambda_2\boldsymbol{u_2}\boldsymbol{u_2}^T + \cdots + \lambda_n\boldsymbol{u_n}\boldsymbol{u_n}^T \end{aligned}
其中,uiuiT\boldsymbol{u_i}\boldsymbol{u_i}^T 是一个 n×nn \times n 的矩阵。因此矩阵 BB 可以看作是 nn 个特别矩阵的加权和。根据存储条件或者误差限可以适当的进行近似替代,将对角阵 AA 的元素 λi\lambda_i 进行降序排列,取前几项的和去近似矩阵 BBλi\lambda_i 在这里就是信息占比权重,比如,取前 kkλ\lambda 做矩阵 BB 的近似:
B^=λ1u1u1T+λ2u2u2T++λnukukT \hat{B} = \lambda_1\boldsymbol{u_1}\boldsymbol{u_1}^T + \lambda_2\boldsymbol{u_2}\boldsymbol{u_2}^T + \cdots + \lambda_n\boldsymbol{u_k}\boldsymbol{u_k}^T
此时矩阵 B^\hat{B} 包含了 BB 的信息的 η=i=1kλii=1nλi\eta = \frac{\displaystyle \sum_{i=1}^k\lambda_i}{\displaystyle \sum_{i=1}^n\lambda_i} 。这个过程就是矩阵压缩的技术。

2. 从特殊矩阵的分解到一般矩阵的SVD分解

矩阵对角化的条件还是蛮苛刻的,必须满足两个条件:方阵以及对称。可见一般情况下一个矩阵 Am×nA_{m\times n} 是不能进行对角化的。那么有没有其他的分解方法呢?

对于任意一个矩阵 Am×nA_{m \times n} ,我们可以推导出 (ATA)n×n(A^TA)_{n\times n} 是一个对称半正定矩阵。

对称性:

(ATA)T=AT(AT)T=ATA(A^TA)^T=A^T(A^T)^T=A^TA

半正定性:

xRn,xT(ATA)x=(xTAT)(Ax)=(Ax)T(Ax)0\forall {\boldsymbol x} \in \R^n,{\boldsymbol x}^T(A^TA){\boldsymbol x} = ({\boldsymbol x}^TA^T)(A{\boldsymbol x})=(A{\boldsymbol x})^T(A\boldsymbol x)\ge0

同理,可知 (AAT)m×m(AA^T)_{m\times m} 也是一个对称半正定矩阵。因此两者都可以对角化:
ATA=UTD1UAAT=VTD2V \begin{aligned} A^TA = U^TD_1U\\ AA^T = V^TD_2V \end{aligned}
其中,URn×n,VRm×mU \in \R^{n\times n},V \in \R^{m\times m} 都是单位正交矩阵,D1Rn×n,D2Rm×mD_1\in \R^{n\times n},D_2 \in \R^{m\times m} 都是对角矩阵,而且 D1,D2D_1,D_2 对角线上的非零元素是一样的。不妨设 D1,D2D_1,D_2 对角线上的非零元素为前 kk 个,分别为 λ1,λ2,,λk\lambda_1,\lambda_2,\cdots,\lambda_k

则矩阵 Am×nA_{m\times n} 的SVD分解为以下形式:
Am×n=Vm×mT[λ112λ212λk120]m×nUn×n A_{m\times n} = V^T_{m\times m} \begin{bmatrix} \lambda_1^{\frac{1}{2}} & & & \\ & \lambda_2^{\frac{1}{2}} & & \\ & & \ddots & \\ & & & \lambda_k^{\frac{1}{2}} \\ & & & & 0 \\ & & & & & \ddots \end{bmatrix}_{m\times n} U_{n\times n}
VT=[v1,v2,,vm],viRm.UT=[u1,u2,,un],uiRnV^T = [\boldsymbol {v_1,v_2,\cdots,v_m}],{\boldsymbol v_i}\in \R^m.U^T =[\boldsymbol {u_1,u_2,\cdots,u_n}],{\boldsymbol u_i} \in \R^n ,有
Am×n=[v1,v2,,vm][λ112λ212λk120][u1Tu2TunT]=[λ112v1,λ212v2,,λk12vk,0,,0][u1Tu2TunT]=λ112v1u1T+λ212v2u2T++λk12vkukT \begin{aligned} A_{m\times n} &= [\boldsymbol {v_1,v_2,\cdots,v_m}] \begin{bmatrix} \lambda_1^{\frac{1}{2}} & & & \\ & \lambda_2^{\frac{1}{2}} & & \\ & & \ddots & \\ & & & \lambda_k^{\frac{1}{2}} \\ & & & & 0 \\ & & & & & \ddots \end{bmatrix} \begin{bmatrix} \boldsymbol{u_1}^T \\ \boldsymbol{u_2}^T \\ \vdots \\ \boldsymbol{u_n}^T \\ \end{bmatrix}\\ &= [\lambda_1^{\frac{1}{2}} {\boldsymbol v_1},\lambda_2^{\frac{1}{2}} {\boldsymbol v_2},\cdots,\lambda_k^{\frac{1}{2}} {\boldsymbol v_k},0,\cdots,0] \begin{bmatrix} \boldsymbol{u_1}^T \\ \boldsymbol{u_2}^T \\ \vdots \\ \boldsymbol{u_n}^T \\ \end{bmatrix}\\ &= \lambda_1^{\frac{1}{2}} {\boldsymbol v_1} \boldsymbol{u_1}^T + \lambda_2^{\frac{1}{2}} {\boldsymbol v_2} \boldsymbol{u_2}^T + \cdots +\lambda_k^{\frac{1}{2}} {\boldsymbol v_k} \boldsymbol{u_k}^T \end{aligned}
对于矩阵 Am×nA_{m\times n} 的存储需要 (m+n+1)×k(m+n+1)\times k 个参数。如若想要在一定的存储条件和误差限范围内进行存前 pp 项近似,则误差为
Error=1i=1pλii=1min(m,n)λi Error= 1 -\frac{\displaystyle \sum_{i=1}^p\lambda_i}{\displaystyle \sum_{i=1}^{min(m,n)}\lambda_i}

3. 从逆矩阵到最小二乘法再到伪逆矩阵和最小范数

背景来源:

已知向量 x1,x2,,xN,xiRn{\boldsymbol x_1},{\boldsymbol x_2},\cdots,{\boldsymbol x_N},{\boldsymbol x_i} \in\R^ny1,y2,,yN,yiR1{\boldsymbol y_1},{\boldsymbol y_2},\cdots,{\boldsymbol y_N},{\boldsymbol y_i} \in \R^1 ,有线性方程组
[y1y2yN]=[x11x12x1nx21x22x2nxN1xN2xNn][a1a2an] \begin{aligned} \begin{bmatrix} {\boldsymbol y_1} \\ {\boldsymbol y_2} \\ \vdots \\ {\boldsymbol y_N} \end{bmatrix}= \begin{bmatrix} x_{11} & x_{12} & \cdots &x_{1n} \\ x_{21} & x_{22} & \cdots &x_{2n} \\ \vdots & \vdots & \ddots &\vdots \\ x_{N1} & x_{N2} & \cdots &x_{Nn} \\ \end{bmatrix} \begin{bmatrix} {a_1} \\ {a_2} \\ \vdots \\ {a_n} \end{bmatrix} \end{aligned}
待求 a=[a1,a2,,an]T{\boldsymbol a} = [a_1,a_2,\cdots,a_n]^T 。用矩阵形式表示为
XN×nan×1=yN×1 X_{N \times n} {\boldsymbol a}_{n\times1} = {\boldsymbol y}_{N\times1}
如果上式中 N=nN=n 并且 XX 可逆,则有唯一解
a=X1y {\boldsymbol a} = X^{-1}{\boldsymbol y}
但是上述求解的条件也是很苛刻,因为可逆这个条件使得矩阵 XX 必须是方阵,即需要数据的个数和数据的维度相等,并且还得满足其正定性。

一般情况下 NnN \neq n ,因此公式(5)(5) 难以直接求精确解,但是我们可以求取它的近似解,使得近似解尽可能地接近精确解。即
minaXay2 \min_a ||X {\boldsymbol a} - {\boldsymbol y}||^2

J=Xay2=(Xay)T(Xay)=(aTXTyT)(Xay)=aTXTXaaTXTyyTXa+yTy=aTXTXa2yTXa+yTy \begin{aligned} J &=||X {\boldsymbol a} - {\boldsymbol y}||^2 \\ &= (X {\boldsymbol a} - {\boldsymbol y})^T(X {\boldsymbol a} - {\boldsymbol y})\\ &= ({\boldsymbol a}^TX^T-{\boldsymbol y^T})(X {\boldsymbol a} - {\boldsymbol y})\\ &= {\boldsymbol a}^TX^TX{\boldsymbol a} - {\boldsymbol a}^TX^T {\boldsymbol y} - {\boldsymbol y}^T X {\boldsymbol a} + {\boldsymbol y}^T{\boldsymbol y} \\ & = {\boldsymbol a}^TX^TX{\boldsymbol a} - 2{\boldsymbol y}^T X {\boldsymbol a} + {\boldsymbol y}^T{\boldsymbol y} \end{aligned}
其极小值需要满足一个必要条件
Ja=02XTXa2XTy=0XTXa=XTy \begin{aligned} \frac{\partial J}{\partial {\boldsymbol a}} &= 0 \\ 2 X^TX{\boldsymbol a} -2X^T{\boldsymbol y} &= 0 \\ X^TX{\boldsymbol a} &= X^T{\boldsymbol y} \\ \end{aligned}
这个时候有一个问题出现了, XTXX^TX 可逆吗?尽管我们知道 XTXX^TX 是一个对称半正定矩阵,但他并不能保证一定是可逆的,因此需要分情况讨论。

  1. N>nN>n

    此时 (XTX)(X^TX) 是一个 n×n{n \times n} 的矩阵,一般情况下它是可逆的,因此有
    a=(XTX)1XTy {\boldsymbol a} = (X^TX)^{-1}X^T{\boldsymbol y}
    其中 (XTX)1XT(X^TX)^{-1}X^T 被称为 XX 的伪逆。这个时候公式(8)(8) 就被称为最小二乘法。

  2. N<nN< n

    此时 (XTX)(X^TX) 是一个 n×n{n \times n} 的矩阵,由于 R(XTX)R(X)NR(X^TX)\le R(X) \le N 进而 R(XTX)nR(X^TX)\neq n 因此它是不可逆的。

    当遇见第2种情况时,我们该怎么办呢?这里给大家提供一种正则化的方法,即令
    J=Xay2+λa2=(Xay)T(Xay)+λaTa=(aTXTyT)(Xay)+λaTa=aTXTXaaTXTyyTXa+yTy+λaTa=aTXTXa2yTXa+yTy+λaTa \begin{aligned} J &=||X {\boldsymbol a} - {\boldsymbol y}||^2 + \lambda|| {\boldsymbol a}||^2\\ &= (X {\boldsymbol a} - {\boldsymbol y})^T(X {\boldsymbol a} - {\boldsymbol y}) + \lambda {\boldsymbol a}^T {\boldsymbol a}\\ &= ({\boldsymbol a}^TX^T-{\boldsymbol y^T})(X {\boldsymbol a} - {\boldsymbol y}) + \lambda {\boldsymbol a}^T {\boldsymbol a} \\ &= {\boldsymbol a}^TX^TX{\boldsymbol a} - {\boldsymbol a}^TX^T {\boldsymbol y} - {\boldsymbol y}^T X {\boldsymbol a} + {\boldsymbol y}^T{\boldsymbol y} + \lambda {\boldsymbol a}^T {\boldsymbol a} \\ & = {\boldsymbol a}^TX^TX{\boldsymbol a} - 2{\boldsymbol y}^T X {\boldsymbol a} + {\boldsymbol y}^T{\boldsymbol y} + \lambda {\boldsymbol a}^T {\boldsymbol a} \end{aligned}
    此时再令
    Ja=02XTXa2XTy+λa=0XTXa+λa=XTy(XTX+λI)a=XTy \begin{aligned} \frac{\partial J}{\partial {\boldsymbol a}} &= 0 \\ 2 X^TX{\boldsymbol a} -2X^T{\boldsymbol y} + \lambda {\boldsymbol a}&= 0 \\ X^TX{\boldsymbol a} + \lambda {\boldsymbol a} &= X^T{\boldsymbol y} \\ (X^TX+\lambda I){\boldsymbol a} &= X^T {\boldsymbol y}\\ \end{aligned}
    在上面的式子里,(XTX+λI)(X^TX+\lambda I) 一定是可逆的。

    yRn,y0\forall {\boldsymbol y} \in \R^n,{\boldsymbol y}\neq {\boldsymbol 0} ,有
    yT(XTX+λI)y=yTXTXy+λyTy=(Xy)T(Xy)+λyTy=Xy2+λy2>0 \begin{aligned} {\boldsymbol y}^T(X^TX+\lambda I){\boldsymbol y} &={\boldsymbol y}^TX^TX{\boldsymbol y} + \lambda {\boldsymbol y}^T{\boldsymbol y}\\ &=(X{\boldsymbol y})^T(X{\boldsymbol y}) + \lambda {\boldsymbol y}^T{\boldsymbol y} \\ &= ||X{\boldsymbol y}||^2+\lambda ||{\boldsymbol y}||^2 > 0 \end{aligned}
    因此(XTX+λI)(X^TX+\lambda I) 是对称正定的,所以可逆。

    因此有
    a=(XTX+λI)1XTy {\boldsymbol a} = (X^TX+\lambda I)^{-1} X^T {\boldsymbol y}
    这种求解方法称之为最小范数法,也是机器学习中的岭回归。

4. PCA原理和推导

[深度学习]之数学基础1

原理

PCA实质上还是一种数据压缩的技术,如上图所示,已知 NN 个样本点(‘+’标记),每一个样本点需要两个参数来表述,那么所有样本点共需要 2N2*N 个参数。现在我们想找一个方向如图中 u\vec{u} ,使得每一个样本点向这个方向做投影,使得 u\vec{u} 成为新的坐标轴,此时样本点在新坐标轴上的位置只需要一个参数就可以表示,那么所有投影点共需要 N+2N+2 个参数来表示,从而达到了数据降维的目的。

但是这种用投影点替代真实样本点的方法,必然会带来误差,也就是A和A’之间的距离。因此我们需要找到一个投影方向,使得所有样本点与投影点之间的误差和最小,即最小重构误差。

[深度学习]之数学基础1

做PCA前,需要将样本进行中心化操作,这样可以使得误差更小。

推导

[深度学习]之数学基础1

首先我们需要知道一个原始点与投影点之间的误差是多少?如图所示,假定 u=1||\vec{u}||=1 ,已知有一点 x\vec{x} ,在未知的 u\vec{u} 方向上的投影点为 <x,u>u<\vec{x},\vec{u}>\vec{u} ,此时误差为
E=x<x,u>u=x(xTu)u \begin{aligned} E &= \vec{x} - <\vec{x},\vec{u}>\vec{u}\\ &= x - (x^Tu)u \end{aligned}
其中,x,uRn,uTu=1x,u\in \R^n,且u^Tu=1

我们的目的就是求取误差 JJ 取最小值时的 u\vec{u},即
minuE2=x(xTu)u2=[x(xTu)u]T[x(xTu)u]=[xT(xTu)uT][x(xTu)u]=xTx(xTu)2(xTu)2+(xTu)2=xTx(xTu)2=x2(xTu)2 \begin{aligned} \min_{\vec{u}}||E||^2 &= ||x - (x^Tu)u||^2 \\ &= [x - (x^Tu)u]^T[x - (x^Tu)u] \\ &= [x^T - (x^Tu)u^T][x - (x^Tu)u]\\ &= x^Tx - (x^Tu)^2 - (x^Tu)^2 + (x^Tu)^2\\ &= x^Tx- (x^Tu)^2\\ &= ||x||^2 - (x^Tu)^2 \end{aligned}
从而就是
maxu(xTu)2maxu(xTu)(xTu)maxu(uTx)(xTu)maxuuT(xxT)u \max_{\vec{u}} (x^Tu)^2 \Rightarrow \max_{\vec{u}} (x^Tu)(x^Tu) \Rightarrow \max_{\vec{u}} (u^Tx) (x^Tu) \Rightarrow \max_{\vec{u} }u^T(xx^T)u
以上推导是针对使得一个样本的重构误差最小,那么如果给了 NN 个样本点,我们就需要找到一个 u\vec{u} 使得所有样本点的重构误差和最小,即
maxuuTi=1N(xixiT)u \max_{\vec{u}} u^T \displaystyle \sum_{i=1}^N (x_ix_i^T)u
X=i=1N(xixiT)X = \displaystyle \sum_{i=1}^N (x_ix_i^T) ,此时 XX 一般是对称正定矩阵,则有最优化公式
{maxuuTXust.u=1 \left\{ \begin{aligned} \max_{\vec{u}} u^T Xu \\ st. ||u||=1 \end{aligned} \right.
上面是一个有约束条件的最优化公式,我们使用拉格朗日乘子法进行求解,令
L(u,λ)=uTXu+λ(1uTu) \begin{aligned} L(u,\lambda) = u^TXu + \lambda(1-u^Tu) \end{aligned}
然后对 u,λu,\lambda 进行求导,使得
Lu=0Xu=λuLλ=0uTu=1 \frac{\partial L}{\partial u} = 0 \Rightarrow Xu=\lambda u\\ \frac{\partial L}{\partial \lambda} = 0 \Rightarrow u^Tu=1\\
根据公式(12)(12),我们只需要对 XX 进行特征分解,找到其特征向量,然后对其特征向量做单位化即可。由于 XX 是对称正定矩阵,因此它有 nn 个 特征值和其对应的特征向量,这里的特征向量就是我们想要的投影主方向,其中特征值的大小是反映了该主方向的重要程度。