杨记

碎片化学习令人焦虑,系统化学习使人进步

0%

人工智能数学概览

AI基础学习,学习自华为iLearnX网站

数学与人工智能概览

线性代数:描述深度学习算法的基础也是核心。它通过矩阵表示法来实现深度学习方法。待处理的非结构化数据转都换成离散的矩阵或向量形式。比如一张图像可以表示为按顺序排列的像素数组形式,声音数据可以表示为向量形式、神经网络就是无数的矩阵运算和非线性变换的结合。

概率论与统计学:研究数据分布与如何处理数据。深度学习算法所做的绝大多数事情就是预测,预测源于不确定性,而概率论与统计就是讨论不确定性的学科

微积分:数学分析的基础

线性代数

线性代数与人工智能

  • 神经网络中的所有参数都被存储在矩阵中;线性代数使矩阵运算变得更加快捷简便,尤其是在GPU上训练模型时,因为GPU可以并行地以向量和矩阵运算
  • 图像在计算中被表示为按序排列的像素数组
  • 视游戏使用庞大的矩阵来产生令人炫目的游戏体验

矩阵的概念及矩阵运算

  • 标量(Scalar):一个数,如:x=3

  • 向量(Vector):有序排列的列数,如:

  • 矩阵(Matirx):由 $m \times n$ 个数排成 m 行 n 列的数表,行列数一样的称为方阵。

表示方式有:$A_{m\times n}$ 或 $A=(a_{ij})_{m\times n}$

张量(Tensor)是深度学习中的一个重要概念,是 Tensorflow、 Pytorchs等很多深度学习框架重要组成部分。深度学习中的很多运算与模型优化过程都是基于tensor完成。

张量定义:一个多维数组

零阶张量:标量;一阶张量:向量;二阶张量:矩阵

矩阵加法

行、列数相同的矩阵对应元素($c_{ij}=a_{ij}+b_{ij}$)相加,$A_{m\times n}+B_{m\times n}$ 等到新的矩阵 ${C_{m\times n}}$

标量和矩阵乘法

$k\cdot A_{m\times n}=(ka_{ij})_{m\times n}$

矩阵乘法:

$A=(a_{ij})_{m\times n}$   $B=(b_{ij})_{n\times p}$

$C=AB=(c_{ij})_{m\times p}$

$c_{ij}=a_{i}b_{j}=\sum\limits_{k\in [1,m]}a_{ik}b_{kj}$

注:A的列数和B的行数必须相等

线性变换

对向量的旋转,缩放,映射

  • 反射(镜像变换)
  • 相似变换
  • 旋转变换

定义:设$V_n$ ,$U_m$分別是n维和m维的线性空间,T是一个从$V_n$到$U_m$的映射,如果映射满足:

(1)任一元素$\alpha_1$,$\alpha_2$∈$V_n$(从而$\alpha_1+\alpha_2\in V_n$),有

   $T(\alpha_1+\alpha_2)=T(\alpha_1)+T(\alpha_2)$

(2)任一元素$\alpha \in V_n$,$\lambda \in R$(从而$\lambda\alpha \in V_n$),有

   $T(\lambda\alpha)=\lambda T(\alpha)$

那么,T就称为从$V_n$到$U_m$的线性映射,或称为线性变换。

可以将线性代数看作是讨论空间变換与向量运动的科学,而空间变換与向量运动都是由线性变換实现的

线性变换的应用:线性变换在深度学习中最直观的应用为通过矩阵乘法对图像或语音数据集进行增强。如将图像沿着某个方向平移、对图像进行旋转或缩放等以产生新的图像

特殊矩阵

  • 转置矩阵:把矩阵$A=(a_{ij})_{s\times n}$的行与列相互交换产生的矩阵称为A的转置,记作$A^T$或A’。

  • 单位矩阵:所有沿主对角线的元素都是1,而其他位置的所有元素都是0的矩阵。任意矩阵与单位矩阵相乘,都不会改变。

  • 逆矩阵:方阵A的逆矩阵记作$A^{-1}$,其满足$A^{-1}A=I_{n}$

    • 逆矩阵在深度学习中的应用:牛顿法优化神经网络。
    • 在深度学习中,经常需要球逆矩阵,但是由于求逆矩阵的计算开销巨大,因此通常会将矩阵转换成其它特殊矩阵的形式以避免或简化矩阵求逆。
  • 正交矩阵:设n阶方阵$A=(a_{ij})_{n\times n}$满足$AA^{T}=A^{T}A=I_n$,则称A为正交矩阵,即$A^{-1}=A^T$

    • 正交矩阵的行向量之间与列向量之间都是两两正交(向量点积为0)的单位向量

    • n阶正交矩阵可以看作n为空间中任意互相垂直(正交)坐标基。

    • 向量乘以一个正交矩阵:可以看作是对向量只进行旋转,而没有伸缩和空间映射作用

    • 正交矩阵的应用:

      • RNN中防止梯度消失和维度爆炸的方法:正交初始化。
      • 对于正交矩阵,可以将求逆矩阵的过程转化为求矩阵转置,大大减小了计算量
      • 矩阵分解
  • 对角矩阵:主对角线之外的元素皆为0的矩阵。常写为$diag(\lambda_1,\lambda_2,…,\lambda_n)$,即

    • 对角矩阵的和、差、积、方幂为主对角线上元素的和、差、积、方幂
    • 对角矩阵的逆矩阵为:

    • 对对角矩阵进行乘法操作或逆矩阵求解(仅方阵)十分高效、计算量小。因此在机器学习中,我们将某些矩阵限制为对角矩阵以降低计算开销。

  • 对称矩阵:

    • 设方阵$A=(a_{ij})_{n\times n}$,满足$A^T=A$,即$a_{ij}=a_{ji}$,则称A为对称矩阵

    • 协方差矩阵,距离矩阵

  • 行列式

    • 行列式是一个将方阵映射到一个标量的函数,记作det(A)或|A|。行列式可以看作是矩阵有向面积或体积的推广。或者说是在n维欧几里得空间中,行列式描述了一个线性变换对“体积”所造成的影响。

    • 行列式的意义

      • 行列式等于矩阵特征值的乘积。
      • 行列式的绝对值可以用来衡量矩阵参与矩阵乘法后空间扩大或缩小了多少

        • 如正交矩阵的行列式大小都为1或-1。即用正交矩阵进行线性变换后的矩阵在空间中的有向面积或体积保持不变
      • 行列式的正负表示空间的定向。

    • 行列式的应用:求矩阵特征值,求解线性方程等

矩阵分解

特征值和特征向量

  • 定义:设A是数域$K$上的$n$阶方阵,如果K中有非零列向量$\alpha$使得$A\alpha=\lambda \alpha$,且$\lambda \in K$,则称$\lambda$是A的一个特征值,称
    $\alpha$是A的属于特征值$\lambda$的一个特征向量。
  • 一个矩阵对应着一种线性变换,通过矩阵乘法实现对向量的旋转、压缩和映射。如果矩阵作用于某一个向量或某些向量使这些向量只发生伸缩变换,而不产生旋转及投影的效果,那么这些向量就称为这个矩阵的特征向量,伸缩的比例就是特征值。

特征值与特征向量的计算

  • 怎样求矩阵A的特征值与特征向量:

    其中,$|A-\lambda I|=0$称为矩阵A的特征方程,$\lambda$为特征方程的解,即特征根,将特征根代入$A\alpha=\lambda \alpha$即可求得特征向量a。

  • 特征值与特征向量的计算过程涉及到求解行列式,由此也可看出只有方阵才能求解其特征值与特征向量。

特征分解

  • 方阵A有$n$个线性无关的特征向量$\alpha_1,\alpha_2,…,\alpha_n$相对应的特征值为$\lambda_1,\lambda_2,…,\lambda_n$,则$A$的特征分解为:
    其中$P=\{\alpha_1,\alpha_2,…,\alpha_n\},\lambda=\{\lambda_1,\lambda_2,…,\lambda_n\}$。
  • 把矩阵分解为一组特征向量和特征值,是使甲最广的矩阵分解方法之一
  • 线性空间的角度看,特征值越大,则矩阵在对应的特征向量上的方差越大,信息量越多
  • 最优化中,矩阵特征值的大小与函数值的变化快慢有关,在最大特征值所对应的特征方向上函数值变化最大,也就是该方向上的方向导数最大。
  • 应用:用于降维的PCA(Principle Component Analysis)、最优化问题、用于处理模型过拟合的正则化。

奇异值分解

  • 奇异值分解:将矩阵分解为奇异向量和奇异值。可以将矩阵$A=(a_{ij})_{m\times n}$分解为三个矩阵的乘积:

    其中$U=(b_{ij})_{m\times m}$,$\Sigma$=$(c_{ij})_{m\times n},V^T=(d_{ij})_{n\times n}$。矩阵$U和V$都为正交矩阵,矩阵$U$的列向量称为左奇异向量,矩阵$V$的列向量称为右奇异向量,$\Sigma$为对角矩阵(不一定为方阵),$\Sigma$对角线上的元素称为矩阵$A$的奇异值,奇异值按从大到小的顺序排列。

  • 奇异值分解的应用:PCA,数据压缩(以图像压缩为代表)算法,特征提取、数字水印和LSA(latent semantic analysis,潜在语义分析)。

  • 奇异值分解可以理解为在原空间内找到一组正交基$v_i$通过矩阵乘法将这组正交基映射到像空间中,其中奇异值对应伸缩系数。

  • 奇异值分解将矩阵原本混合在一起的旋转、缩放和投影的三种作用效果分解出来了。

  • 奇异值分解应用实例-图像压缩

    • 奇异值分解:
  • 将上式中的A看作一个m*n个像素组成的图像矩阵,式中奇异值矩阵中的奇异值按从大到小排列数值越大,说明其对应的奇异向量越重要;值越小,则不是重要组成部分可以舍去。若只取前k项即能基本看清图像,则可以达到图像压缩的效果。

概率论

概率论是研究不确定的学科。

概率论是现有许多人工智能算法的基础。现阶段的很多人工智能算法都是数据驱动的,且目的大多为了做预测或是作出更好的決策。如

机器翻译中,如何检测你输入的语言种类。一种简单的方法就是把你输入的词或句子进行分解计算各语言模型的概率,然后概率最高的是最后确定的语言模型

 用神经网络进行图像分类,网络的输出是衡量分类结果可信程度的概率值,即分类的置信度,我们选择置信度最高的作为图像分类结果

混合高斯模型、隐马尔科夫模型等传统语音处理模型都是以概率论为基础的

随机变量及其分布

  • 随机试验

    • 可以在相同的条件下重复进行。
    • 每次试验的可能结果不止一个,并且能事先明确试验的所有可能结果。
    • 进行一次试验之前不能确定哪一个结果会出现。
  • 样本点:一个随机试验所有可能结果的集合是样本空间,而随机试验中的每个可能结果称为样本点

  • 随机事件:随机试验的某些样本点组成的集合,常用大写字母表示

  • 随机变量:本质是一个函数,是从样本空间的子集到实数的映射,将事件转換成一个数值。一些随机试验的结果可能不是数,因此很难进行描述和研究,比如S=(正面,反面)。因此将随机试验的每一个结果与实数对应起来,从而引入了随机变量的概念。随机变量用大写字母表示,其取值用小写字母表示。

      按照随机变量的可能取值,可分为:
      离散随机变量:随机变量的全部可能取到的值是有限个或可列无限多个。如:某年某地的出生人数
      连续随机变量:随机变量的全部可能取到的值有无限个,或数值无法一列举。如:奶牛每天挤出奶的量可能是一个区间中的任意值
    
  • 分布律

    • 对于离散随机变量,我们通常分布律来描述其取值规律。
    • 分布律,又叫概率质量函数(Probability Mass Function, PMF):设离散型随机变量X的所有可能取值为$x_k$(k=1,2,…),X取各个可能值的概率,即事件{$X=x_k$}的概率,为

      $p_k$满足:

      (1)、$p_k\geq 0,k=1,2,…$

      (2)、$\sum^\infty_{k=1}p_k=1$

  • 特殊离散分布-伯努利分布

    • 伯努利分布(0-1分布,两点分布,a-b分布):设随机变量X只可能取0与1两个值,它的分布律是:$p\{X=k\}=p^k(1-p)^{1-k}, k=0,1 (0<p<1)$

      |X |0 |1
      —|—|—
      $p_k$ | $1-p$ | $p$

      $E(X)=p,Var(x)=p(1-p)$

    • 伯努利分布主要用于二分类句题,可以用伯努利朴素贝叶斯进行文本分类或垃圾邮件分类。伯努利模型中每个特征的取值为1和0,即某个单词在文档中是否出现过,或是否为垃圾邮件。
    • 为防止模型过拟合,常会用dropout方法随机丢弃神经元,每个神经元都被建模为伯努利随机变量被抛弃的概率为$p$,成功输出的比例为$1-p$
  • 特殊离散分布-二项分布

    • 二项分布是重复n次伯努利试验满足的分布。
    • 若用X表示n重伯努利试验中事件A发生的次数,则n次试验中事件A发生k次的概率为
    • 此时称X服从参数为n,p的二项分布,记为X~B(n,p)。其中
    • 二项分布在NLP中使用得非常广泛,例如估计文本中含有“的”字的句子所占百分比,或者确定一个动词在语言中常被用于及物动词还是非及物动词
    • 如在 Dropout方法中,对于某一层的n个神经元在每个训练步骤中可以被看作是n个伯努利实验的集合,即被丢弃的神经元总数服从参数为$n,p$的二项分布
  • 特殊离散分布-泊松分布

    • 泊松分布:若随机变量所有可能的取值为0,1,2,…,而取每个值的概率为:记为:$X$~$P(\lambda)$。$E(X)=\lambda,D(X)=\lambda$。参数$\lambda$是单位时间或单位面积内随机事件的平均发生率。
    • 泊松分布,是二项分布当n很大p很小时的近似计算。
    • 泊松分布用于描述单位时间内随机事件发生的次数。如一段时间内某一客服电话受到的服务请求的次数、汽车站台的候客人数、机器出现的故障数、自然灾害发生的次数、DNA序列的变异数等。
    • 图像处理中,图像会因为观点显示仪器测量造成的不确定性而出现服从泊松分布的泊松噪声,我们经常会给图像加泊松噪声用于图像的数据增强
  • 分布函数

    • 分布函数,又叫累计分布函数(Cumulative Distribution Function,CDF):设$X$是一个随机变量,x是任意实数,函数$F(x)$称为X的分布函数,
    • 分布函数$F(x)$的意义:如果将X看成是数轴上的随机点的坐标,那么分布函数$F(x)$在$x$处的函数值就表示$X$落在区间$(-\infty,x]$上的概率,即随机变量$x$小于等于$x$的概率。
  • 连续型随机变量与概率密度函数

    • 对于连续随机变量$X$的分布函数$F(X)$,存在非负函数$f(x)$,使对于任意实数$x$有则称函数$f(x)$称为$X$的概率密度函数
      (Probability Density Function,PDF),简称概率密度。
  • 特殊分布-正态分布

    • 若连续型随机变量$X$的概率密度函数为其中$\mu,\sigma$为常数,则称$X$服从参数为$\mu,\sigma$的正态分布或高斯分布,记为$X$~$N(\mu,\sigma^2)$。当$\mu=0,\sigma=1$时称随机变量$X$服从标准正态分布,记为$X$~$N(0,1)$。

    • 在自然现象和社会现象中,大量随机变量都服从或近似服从正态分布。高斯分布是机器学习中最常用的分布,如:

      • 图像处理中,我们可以给图像添加高斯噪声用于图像增强等任务。也可以用高斯滤波器去除噪声并平滑图像。还可以用混合高斯模型进行图像的前景目标检测。
      • 在传统语音识別模型GMM-HMM(高斯混合模型-隐马尔科夫)中,高斯混合模型就是由多个高斯分布混合起来的模型。

随机向量及其分布

在实际应用中,经常需要对所考虑的问题用多个变量来描述。我们把多个随机变量放在一起组成向量,称为多维随机变量或者随机向量。

定义:如果$X_1(\omega),X_2(\omega),…,X_n(\omega)$是定义在同一个样本空间$\Omega=\{\omega\}$上的n个随机变量,则称
n维(或n元)随机变量或随机向量

如我们通过人脸判断人的年龄,可能需要结合多个特征(随机变量),如脸形、脸部纹理、面部斑点、皮肤松弛度、发际线等,将这些特征结合映射为一个实数,即年龄。

  • 联合分布函数

    对应随机变量的分布函数,随机向量有对应的联合分布函数

    • 定义:对任意的n个实数$x_1,x_2,…,x_n$,则n个事件$\{X_1\leq x_1\},\{X_2\leq x_2\},…,\{X_n\leq x_n\}$同时发生的概率为
      称为n维随机变量的联合分布函数。
    • 二维联合分布函数:$F(x,y)=P(X≤x,Y\leq y)$,表示随机点(X,Y)落在以(x,y)为顶点的左下方无穷矩形区域的概率。
  • 联合概率密度

    对应一维随机变量的概率密度函数,随机向量有对应的联合概率密度。

    定义:如果存在二元非负函数$p(x,y)$,使得二维随机变量$(X,Y)$的分布函数可表示为
    则称$(X,Y)$为二维连续随机变量,称$p(u,v)$为$(X,Y)$的联合概率密度。

贝叶斯公式

  • 条件概率、贝叶斯公式(1)

    已知原因求解事件发生的概率通常被叫做条件概率也叫后验概率:

    • 我们经常需要在已知事件发生的情况下计算$P(X|Y)$,即事件已经发生了,再分析原因。
      此时若还知道先验概率$P(X)$,我们就可以用贝叶斯公式来计算
  • 条件概率、贝叶斯公式(2)

    假设$X$是由相互独立的事件组成的概率空间${X_1,X_2,…,X_n}$,则$P(Y)$可以用全概率公式展开:$P(Y)=P(Y|X_1)P(X_1)+P(Y|X_2)P(X_2)+…+P(Y|X_n)P(X_n)$,此时贝叶斯公式可表示为:

    • 贝叶斯公式应用:中文分词、统计机器翻译、深度贝叶斯网络等。
  • 期望、方差

    数学期望(或均值,亦简称期望):是试验中每次可能结果的概率乘以其结果的总和,是
    概率分布最基本的数学特征之ー。它反映随机变量平均取值的大小。

    对于离散型随机变量:$E(X)=\sum_{k=1} ^\infty x_k p_k,k=1,2,…$

    对于连续型随机变量:$E(X)=\int_{-\infty}^\infty xf(x)dx$

    方差:是衡量随机变量或一组数据离散程度的度量,即随机变量和其数学期望之间的偏离程度。

    另外,$\sqrt{D(X)}$,记为$\sigma(X)$,称为标准差或均方差。$X^*=\frac{X-E(X)}{\sigma(X)}$称为$X$的标准化变量。

  • 协方差、相关系数、协方差矩阵

    • 协方差:在某种意义上给出了两个随机变量线性相关性的强度。
    • 相关系数又叫线性相关系数,用来度量两个变量间的线性关系。
    • 随机变量$(X1,X2)$的协方差矩阵:
    • 其中,$c_{ij}=Cov(X_i,X_j)=E\{[X_i-E(X_i)][X_j-E(X_j)]\},i,j=1,2,…,n$ 协方差矩阵对角线上的元素分别是$X_1,X_2$的方差,其余元素为$X_1,X_2$的协方差。

最优化问题

最优化问题:指的是改变$x$以最小化或最大化某个函数$f(x)$的任务。可以表示为:

其中$x=(x_1,x_2,…,x_n)^T\in R^n$,我们将$f(x)$称为目标函数或准则;当对其进行最小化时,也把它称为代价函数、损失函数、误差函数。

如果除目标函数以外,对参与优化的各变量没有其他约束,则称为无约束最优化问题。反之,称为有约束最优化问题。

最优化问题分类

  • 无约束最有化可以写为:

  • 约束优化:是优化问题的分支。实际生活中大多都是带约束条件的,我们希望在$x$的某些集合$s$中找$f(x)$的最大值或最小值。集合$s$内的点称为可行点

  • 等式约束最优化可以写为

  • 不等式约束最优化可以写为

</br>

最优化问题求解

  • 无约束优化求解:主要有解析法和直接法。

    • 直接法通常用于当目标函数表达式十分复杂或写不出具体表达式时的情況。通过数值计算,经过一系列迭代过程产生点列,在其中搜索最优点。
    • 解析法,即间接法,是根据无约束最优化问题的目标函数的解析表达式给出一种求最优解的方法,主要有梯度下降法、牛顿法、拟牛顿去、共轭方向法和共轭梯度法等。
  • 约束最优化求解:解决约束最优化问题最常用的方法是引用拉格朗日乘子(等式约束)或者KKT(Kuhn-Kuhn- Tucker)条件(不等式约束)将含有n个变量和k个约束条件的约束优化问题转化为含有(n+k)个变量的无约束优化问题进行求解

  • 在此我们重点讨论在深度学习最常用的无约東优化求解方法,即梯度下降算法。

</br>

梯度下降

凸函数:对于$\lambda \in (0,1)$,任意$x_1,x_2\in R$,都有则称$f(x)$是一个凸函数。凸函数的极值点出现在驻点处。

  • 优化的过程是逐渐调整模型或函数参数使其输出的预测值与真实值越来越接近的过程
  • 损失函数通常是用来描绘模型的预测值与真实值的一致程度
  • 优化的目标是寻找损失函数最小(大)值的过程
  • 若只优化一个变量,损失函数是一元的。若优化的变量有两个以上,则损失函数是二元及以上的。

</br>

一元函数的极值问题:

  • 函数极值存在于$f’(x)=0$的点处。
  • $f’(x)=0$的点称为临界点或驻点。
  • 函数的极值点一点是驻点,反之未必。

推广至多维函数的情形,用偏导数描述函数相对于各自变量的变化程度。

</br>

如何从初始位置到函数极值点?

  • 每一步都朝着函数值下降最快的方向移动一段距离
    • 函数下降(上升)最快的方向:函数值变化率最大的方向。
      • 导数:函数沿坐标轴正方向的变化率。
      • 方向导数:函数沿着任意方向的变化率(多个)
      • 最大方向导数:梯度。梯度方向即函数值变化率最大的方向,也就是我们需要沿着梯度方向寻找函数极值
    • 一段距离:步长,由经验获取的,可以在尝试过程中不断调整

</br>

  • 正梯度向量指向上坡,负梯度向量指向下坡。我们在负梯度方向上移动可以最快地减小函数值,这被称为最速下降法( method of steepest descent)或梯度下降( gradient descent).

  • 在梯度下降法中,每一步更新的方式为

  • 其中$\varepsilon$为学习率( (learning rate),是一个确定步长的正标量

  • 迭代在梯度为零或趋近于零的时候收敛

欢迎关注我的其它发布渠道