深度学习系列-基础知识串讲

一. 线性代数部分

1.1 基础概念

标量(scalar)
一个标量就是一个单独的数,一般用小写的的变量名称表示。

向量(vector)
一个向量就是一列数,这些数是有序排列的:

$$\begin{bmatrix}x_1\\ x_2\\ ...\\ x_5\end{bmatrix}$$

矩阵(matrices)
矩阵是二维数组:

$$\begin{bmatrix} a_{11}& a_{12}& ...& a_{1n}& \\ a_{21}& a_{22}& ...& a_{2n}& \\ ...& ...& & ...& \\ a_{m1}& a_{m2}& ...& a_{mn}& \end{bmatrix}$$

张量(tensor)
多维数组中元素分布在若干位坐标的规则网络中, 称之为张量. 几何代数中定义的张量是基于向量和矩阵的推广,通俗一点理解的话,我们可以将标量视为零阶张量,矢量视为一阶张量,那么矩阵就是二阶张量
张量在深度学习中是一个很重要的概念,因为它是一个深度学习框架中的一个核心组件,后续的所有运算和优化算法几乎都是基于张量进行的。

1.2 矩阵相关

转置(transpose)
主对角线: 矩阵从左上角到右下角的对角线称为主对角线.矩阵的转置是指以主对角线为轴的镜像.
令矩阵$\mathbf{A}$的转置表示为$\mathbf{A}^T$, 则定义如下:
$$(\mathbf(A)^T)_{i,j}=A_{i,j}$$
Tips:
向量是单列矩阵, 向量的转置是单行矩阵. 标量可看做单元素矩阵, 因此标量的转置是它本身: $a=a^T$.

矩阵加法和广播:
矩阵加法定义: $\mathbf{C}=\mathbf{A}+\mathbf{B}$

在深度学习中, 允许矩阵和向量相加, 产生一个新的矩阵, 简写为:$\mathbf{C}=\mathbf{A}+\mathbf{b}$, 表示向量$\mathbf{b}$和矩阵$\mathbf{A}$的每一行都相加. 这种隐式地幅值向量$\mathbf{b}$到很多位置的方式成为广播.

矩阵乘法
分配律: $\mathbf{A(B+C)}$
结合律: $\mathbf{A(BC)=(AB)C}$
矩阵乘积不满足交换律: $\mathbf{AB\neq{BA}}$
向量点积满足交换律: $\mathbf{x^Ty=y^Tx}$
乘积的转置: $\mathbf{(AB)^T=B^TA^T}$

单位矩阵
主对角线元素都是1, 其余位置所有元素都是0的矩阵:

$$\begin{pmatrix}1& 0& 0 \\0& 1& 0 \\0& 0& 1\end{pmatrix}$$

我们将n维向量不变的单位矩阵即为$\mathbf{I_n}$:
$$\forall \mathbf{x} \in R^n, \mathbf{I_nx = x}, 其中\mathbf{I_n \in R^{nxn}}$$

逆矩阵
矩阵逆是强大的工具, 对于大多数矩阵, 都可以通过矩阵逆解析求$\mathbf{Ax=b}$的解.
矩阵$\mathbf{A}$的矩阵逆记作: $\mathbf{A^{-1}}$, 矩阵逆满足如下条件:
$$\mathbf{A^{-1}A=I_n}$$

1.3 线性相关

线性方程: $$X\cdot \vec{b} = \vec{y}$$

线性组合: X 中各个列向量乘以对应的系数之和: $$\sum_{i}b_i x^{(i)}$$

生成空间: X中的原始向量线性组合后能抵达的点的集合. 确定上述方程是否有解相当于确定向量$\vec{y}$ 是否在X 的列向量的生成子空间中.

矩阵X可逆时解为$\vec b = X^{-1}\cdot y$ , 然而矩阵可逆是一个十分苛刻的条件,X 的列空间构成整个m维欧式空间$R^m$, 若$X\cdot \vec{b} = \vec{y}$对于每一个y值最多有一个解, 则X矩阵至多有m个列向量.

因此, 矩阵X只有是方阵且所有列向量都是线性无关的时候才满足要求, 若列向量线性相关, 则成该方阵X是奇异的.

这里引出了线性模型的基本模型: $$X\cdot \vec{b} = \vec{y}$$

X可逆时 ,我们可以直接对两边求逆, 得到线性模型的唯一解:
$$\vec b = X^{-1}\cdot y$$

然而,样本特征组成的矩阵X往往是不可逆的, 即X往往不是方阵, 或者是奇异的方阵.

正因为在现实世界里, 直接对矩阵求逆来得到唯一解 $\vec{b}$ 几乎是不可能的, 所以我们才会退而求其次, 用最小化误差来逼近唯一解, 这叫做松弛求解.

求最小化误差的一般方法是求残差的平方和最小化, 这也就是所谓的线性最小二乘法.

1.4 范数(norm)

在机器学习中, 通常用范数来衡量一个矩阵的大小, $L^p$范数公式: $$||x||_p = \left( \sum_i|x_i|^p \right)^\frac 1 p$$

注意抓重点: 范数在机器学习中是用来衡量一个向量的大小.

范数: 是将向量映射到非负值的函数. 简单来讲, 向量$\vec x$的范数是原点到$\vec x$的距离. 这里之所以介绍范数, 是因为它涉及到机器学习中非常重要的正则化技术.

$p = 2$时, $L^2$称为欧几里得范数(Euclidean norm), 表示原点到向量$\vec x$的欧氏距离, $L^2$范数通常简写为$||x||$ , 它非常频繁地出现在机器学习中. 此外, 平方$L^2$范数$\left(||x||\right)^2$也经常用来衡量向量的大小, 可以简单地用点积$\left( \vec x \right)^\top \cdot \vec x$计算.

$L^2$范数: $$||x||_2 = (\sum_i|x_i|^2)^\frac 1 2 $$
平方$L^2$范数: $$ ||x|| = \sum_i|x_i|^2$$
$L^1$范数: $$ ||x||_1 = \sum_i|x_i| $$
Frobenius范数: $$||A||_F=\sqrt{\sum_{i,j}{A_{i,j}}^{2}}$$

关于范数, 注意以下几点:

  • 平方$L^2$ 范数对$\vec x$各元素导数只和对应元素相关, 而$L^2$范数对个元素的导数和整个向量相关, 因此平方$L^2$范数计算更方便.

  • 有时候平方$L^2$范数在原点附近增长缓慢, 在某些机器学习业务场景下, 区分元素值是否非零很重要, 此时更倾向于使用$L^1$范数.

  • $L^1$范数在各个位置斜率相同, 且数学形式较简单, 每当$\vec x$中某元素从0增加了$\epsilon$ 时, 对应$L^1$范数也增加$\epsilon $, $L^1$范数通常被用在零和非零差异非常重要的机器学习问题中.

  • "$L^0$范数"通常用向量中非零元素个数来衡量向量大小, 但是这种说法不严谨, 因为从数学意义上讲,对向量缩放$\alpha$倍, 向量大小会变, 但是机器学习中, 非零元素数目不变, 这和向量运算的数学意义相悖.

  • $L^\infty$范数称为最大范数(max norm), 表示最大幅值元素的绝对值: $||x||\infty=\max_i{|x_i|}$

  • Frobenius范数在机器学习中用来衡量矩阵大小.

  • 两个点积可以用范数来表示: $\vec{x}^T \cdot \vec{y} = ||\vec{x}||_2||\vec{y}||_2cos\theta $

在机器学习中, $L^2$和$L^1$范数分别对应$L^2$和$L^1$正则化, 详情参考线性模型中的岭回归(Ridge Regression)和套索回归(Lasso).

1.5 伪逆(Moore-Penrose)

非方阵方程,其逆矩阵没有意义. 假设要求解线性方程
$$\vec{A} \cdot x = \vec{y}$$

等式两边左乘左逆$\vec{B}$后: $$x = \vec{B}y$$

是否存在唯一映射, 将$\vec{A}$映射到$\vec{B}$取决于问题形式:

  1. 若矩阵A行数大于列数, 则可能无解;

  2. 若矩阵A行数小于列数, 则可能有多个解.

伪逆可以解决上述问题. 矩阵A的伪逆定义为:

$$\lim_{a \searrow 0}(\vec{A^T}\vec{A} + \alpha \vec{I})^{-1}\cdot\vec{A^T}$$

违逆计算的简化公式为:
$$\vec{A^+} = \vec{V}\vec{D^+}\vec{U^T}$$
其中, 矩阵U, D, V是矩阵A的奇异值分解后的特殊矩阵, 其中$\vec{U}$和$\vec{V}$都是正交矩阵, $\vec{D}$为对角矩阵(不一定是方阵). 对角矩阵D的伪逆$\vec{D^+}$是非零元素取倒数后再转置得到的.奇异值分解称为SVD(Singular Value Decomposition).

  1. 矩阵A的列数多于行数时, 可能有多个解. 伪逆求解线性方程是众多解法中的一种, 即: $\vec{x} = \vec{A^+}\vec{y}$是所有可行解中欧几里得距离最小的一个

  2. 矩阵A列数小于行数时, 可能没有解. 伪逆求解得到的x是$\vec{A}x$和$\vec{y}$的欧几里得距离$||\vec{A}x-\vec{y}||_2^2$最小的解, 这里又回到了求解线性问题的一般思路上: 线性最小二乘法.

1.6 常用的距离

1、曼哈顿距离
也称为城市街区距离,数学定义如下:

$$d=\sum_{k=1}^n|x_{1k}-x_{2k}|$$

2. 欧氏距离
前面提到过, 欧氏距离就是$L_2$范数, 定义如下:

$$d = \sqrt{\sum_{k=1}^n(x_{1k}-x_{2k})^2}$$

3. 闵可夫斯基距离
上述两种距离的更一般形式, 完整的定义如下:

$$d = \sqrt[p]{\sum_{k=1}^n(x_{1k}-x_{2k})^p}$$

4. 切比雪夫距离
即前面提到过的无穷范数$L^\infty$范数, 数学表达式:

$$d=max(|x_{1k}-x_{2k}|)$$

二. 概率与信息论部分

2.1 基础概念

随机变量(连续,离散): 对可能状态的描述
概率分布: 用来指定每个状态的可能性
加条件概率: 求B条件下, A发生的概率: $$ P(A|B)=\frac{P(AB)}{P(B)}$$
条件独立性
离散型变量和概率质量函数PMF(Probability Mass Function), 连续性变量和概率密度函数, 随机变量的独立性和条件独立性, 边缘概率, 条件概率.

条件概率的链式法则:
$$P(a,b,c)=P(a|b|c)P(b,c)$$
$$P(b,c)=P(b|c)P(c)$$
$$P(a,b,c)=P(a|b,c)P(b|c)P(c)$$

2.2 期望,方差,协方差

期望反应函数$f(x)$的平均值. 设$E_x~p[f(x)]$是函数$f(x)$关于某分布$P(x)$的期望:

  • 对于离散型随机变量: $$E_x~p[f(x)]=\sum_x{P(x)f(x)}$$

  • 对于连续性随机变量:

$$E_x~p[f(x)]=\int p(x)f(x)dx$$

通常在概率上下文中可以不写脚标: $E[f(x)]$, 更一般地, 当没有歧义时可以省略方括号, 将期望简写为$E$.

期望是线性的: $$E_x[\alpha{f(x)}+\beta{g(x)}]=\alpha{E_x}[f(x)]+\beta{E_x}[g(x)]$$

方差衡量x依它的概率分布采样时, 随机变量x的函数$f(x)$差异程度. 方差的定义:
$$ Var(f(x))=E[|f(x)-E[f(x)]|^2]$$

协方差给出两个变量的线性相关度这些变量的尺度. 协方差定义:
$$ Cov(f(x),g(y))=E[(f(x)-E[f(x)])(g(y)-E(g(y)])]$$

关于协方差的特性:

  • 若协方差绝对值很大, 则变量值得变化很大, 且相距各自均值很远

  • 若协方差为正, 则两变量x,y都倾向于取较大值, 若协方差为负, 则一个倾向于取较大值,另一个倾向取较小值

相关系数: 将每个变量归一化, 之衡量变量间的相关性, 不关注变量尺度大小.

2.3 常用的概率分布模型

Bernoulli分布和Multinoulli分布

Bernoulli分布是单个二值随机变量分布, 单参数$\phi{\in}[0,1]$控制,$\phi$给出随机变量等于1的概率. 一些性质:
$$P(x=1)=\phi$$
$$P(x=0) = 1-\phi$$
$$P(x=x)=\phi^x(1-\phi)^{1-x}$$
$$E_x[x]=\phi$$
$$Var_x(x)=\phi{(1-\phi)}$$

Multinoulli分布也叫范畴分布, 是单个$k$值随机分布,经常用来表示对象分类的分布.
, 其中$k$是有限值.Multinoulli分布由向量$\vec{p}\in[0,1]^{k-1}$参数化,每个分量$p_i$表示第i个状态的概率, 且$p_k=1-1^Tp$.

适用范围: 伯努利分布适合对离散型随机变量建模, 注意下述狄拉克$\delta$函数适用对连续性随机变量的经验分布建模.

高斯分布

高斯也叫正态分布(Normal Distribution), 概率度函数如下:
$$N(x;\mu,\sigma^2) = \sqrt{\frac{1}{2\pi\sigma^2}}exp\left ( -\frac{1}{2\sigma^2}(x-\mu)^2 \right )$$
其中, $\mu$和$\sigma$分别是均值和方差, 中心峰值x坐标由$\mu$给出, 峰的宽度受$\sigma$控制, 最大点在$x=\mu$处取得, 拐点为$x=\mu{\pm}\sigma$.

深度学习系列-基础知识串讲

正态分布中,±1σ、±2σ、±3σ下的概率分别是68.3%、95.5%、99.73%,这3个数最好记住。
此外, 令$\mu=0,\sigma=1$高斯分布即简化为标准正态分布:
$$N(x;\mu,\sigma^2) = \sqrt{\frac{1}{2\pi}}exp\left ( -\frac{1}{2}x^2 \right )$$

对概率密度函数高效求值:
$$N(x;\mu,\beta^{-1})=\sqrt{\frac{\beta}{2\pi}}exp\left(-\frac{1}{2}\beta(x-\mu)^2\right)$$
其中, $\beta=\frac{1}{\sigma^2}$, 通过参数$\beta\in(0,\infty)$来控制分布的精度.

问: 何时采用正态分布?
答: 缺乏实数上分布的先验知识, 不知选择何种形式时, 默认选择正态分布总是不会错的, 理由如下:

  1. 中心极限定理告诉我们, 很多独立随机变量均近似服从正态分布, 现实中很多复杂系统都可以被建模成正态分布的噪声, 即使该系统可以被结构化分解.

  2. 正态分布是具有相同方差的所有概率分布中, 不确定性最大的分布, 换句话说, 正态分布是对模型加入先验知识最少的分布.

正态分布的推广:
正态分布可以推广到$R^n$空间, 此时称为多位正态分布, 其参数是一个正定对称矩阵$\sum$:
$$N(x;\vec\mu,\sum)=\sqrt{\frac{1}{2\pi^ndet(\sum)}}exp\left(-\frac{1}{2}(\vec{x}-\vec{\mu})^T\sum^-1(\vec{x}-\vec{\mu})\right)$$

对多为正态分布概率密度高效求值:
$$N(x;\vec{\mu},\vec\beta^{-1}) = \sqrt{det(\vec\beta)}{(2\pi)^n}exp\left(-\frac{1}{2}(\vec{x}-\vec\mu)^T\beta(\vec{x}-\vec\mu)\right)$$

, 此处, $\vec\beta$是一个精度矩阵.

指数分布和Laplace分布

指数分布

深度学习中, 指数分布用来描述在$x=0$点出取得边界点的分布, 指数分布定义如下:

$$p(x;\lambda)=\lambda1_{x\geq 0}exp(-\lambda{x})$$
, 指数分布用指示函数$I_{x>=0}$来使x取负值时的概率为零.

Laplace分布
Laplace分布允许我们在任意一点$\mu$处设置概率质量的峰值:
$$ Laplace(x;\mu;\gamma)=\frac{1}{2\gamma}exp\left(-\frac{|x-\mu|}{\gamma}\right)$$

Dirac分布和经验分布

Dirac分布
Dirac分布可保证概率分布中所有质量都集中在一个点上. Diract分布的狄拉克δ函数(也称为单位脉冲函数)定义如下:
$$p(x)=\delta(x-\mu), x\neq \mu$$
$$\int_{a}^{b}\delta(x-\mu)dx = 1, a < \mu < b$$

狄拉克δ函数图像:

深度学习系列-基础知识串讲

说明:

  • 严格来说狄拉克δ函数不能算是一个函数,而是一种数学对象, 因为满足以上条件的函数是不存在的, 但是我们可以用分布的概念来解释, 因此称为狄拉克分布或者$\delta$分布

  • 它是一种极简单的广义函数. 广义函数是一种数学对象, 依据积分性质而定义. 我们可以把狄拉克$\delta$函数想成一系列函数的极限点, 这一系列函数把除0以外的所有点的概率密度越变越小.

经验分布
狄拉克分布常作为经验分布的一个组成部分:
$$\hat{p}(\vec{x})=\frac{1}{m}\sum_{i=1}^{m}\delta(\vec{x}-{\vec{x}}^{(i)})$$

, 其中, m个点$x^{(1)}$, ..., $x^{(m)}$是给定的数据集, 经验分布将概率密度$\frac{1}{m}$赋给了这些点.

当我们在训练集上训练模型时, 可以认为从这个训练集上得到的经验分布指明了采样来源.

适用范围: 狄拉克δ函数适合对连续型随机变量的经验分布

分布的混合

2.4 深度学习常用激活函数的特性

2.5 贝叶斯理论

2.6 信息论,熵,交叉熵, KL散度

三. 数值计算部分

3.1 上溢,下溢和softmax

3.2 基于梯度的损失函数优化

  • 一阶优化(梯度下降)

  • 二阶最优化算法(牛顿优化算法)

  • Jacobian和Hessian矩阵

  • 约束优化

  • 线性最小二乘法

四. 机器学习基础部分

4.1 模型学习

  • 分类

  • 回归

  • 去燥和异常检测

  • 密度估计

  • 无监督和有监督算法介绍

  • 线性回归

4.2 过拟合和欠拟合

  • 奥卡姆剃须刀约简原则

  • 贝叶斯误差

  • 没有免费午餐定理

  • 正则化

4.3 验证和估计

  • 点估计

  • 偏差,均方差,方差和标准差

  • 最大似然估计

  • 贝叶斯统计

4.4 监督学习算法

  • 逻辑回归(Logistic Regression)

  • 支持向量机(SVM)

4.5 无监督学习算法

  • 主成分分析

  • K-均值聚类

4.6 随机梯度下降算法(SGD)

4.7 其它

  • 维数灾难

  • 局部不变性和平滑正则化

  • 流形学习

五. 深度网络部分

5.1 深度前馈网络(感知机)

  • 线性单元

  • 隐藏单元

  • 输出单元

  • 损失函数

  • 激活函数

5.2 BP反向传播算法

5.3 深度学习中的正则化

...

未完待续...

相关推荐