引言
不确定性可以说是在用数学工具对世界进行建模和认知的时候不可回避的问题,也是机器学习中的一个最基本的概念。于是,我们需要对这种不确定性进行量化和计算,而概率论能够为此提供一个合理的框架。所以,概率论是机器学习中最重要的基础理论之一,这也是本文要详细梳理概率论的基础知识的出发点。如果再辅之以其他工具如决策论、线性代数、微积分等,还能够在让我们构建世界观的同时,有切实可用的方法论。
本文会尽可能全面的列出机器学习中涉及到概率论的重要的基础的公理、定理、推理、定义、算法等,给出重要的公式、流程,但不会涉及证明和详细推导过程,作为梳理和备用,适用于入门和需要快速了解相关原理的情形,渴望更深层次的理解和探讨,建议系统的阅读相关资料书籍。
随机变量与概率
首先,我们简单的回顾一下随机事件、随机变量、概率等基本的概念。
随机事件和随机变量
对于不总是出现同一个结果的现象,我们称之为 随机现象 ,随机现象所有的可能结果组成了 样本空间 ,而样本空间中的一个或者几个点集被称为 随机事件,通常使用 \(A, B, C, ...\) 等大写字母表示。
于是,用于表示随机事件的结果的数学变量,被称作 随机变量,在一般数学表达上使用 \(X, Y, Z\) 这样的大写字母。随机变量可以用来表示随机事件或者随机事件的组合,于是涉及到了随机事件之间的关系和运算法则。
总的来说,随机事件的关系包括:包含关系 , 相等关系 , 互不相容。包含关系是指,事件 \(A\) 是事件 \(B\) 的子集,\(A\) 的发生必然导致 \(B\) 的发生,用 \(A \subset B\) 表示。相等关系是指,事件 \(A\) 和事件 \(B\) 相互包含,用 \(A = B\) 表示 。互不相容表示,事件 \(A\) 和事件 \(B\) 没有交集,\(A\) 和 \(B\) 不可能同时发生,用 \(A \cap B = \varnothing\) 表示。
随机事件的运算法则包含 并,交 , 差,余。并:事件 \(A\) 或者事件 \(B\) 至少有一个发生,用 \(A \cup B\) 表示;交:事件 \(A\) 和事件 \(B\) 同时发生,用 \(A \cap B\) 表示;差:事件 \(A\) 发生,且事件 \(B\) 不发生,用减号 \(A - B\) 表示;余:事件 \(A\) 和事件 \(B\) 只能有一个发生(其实就是非的意思),用 \(A = \bar{B}\) 表示。以上运算都满足交换律、结合律和分配律,还满足德摩根定律(De Morgan's laws),也称作反演律,没有什么神奇的,表达式是:\(\overline{A \cap B} = \bar{A} \cup \bar{B}\)。
概率
确定事件的概率,常用的方法有频率方法、古典方法、几何方法。
频率方法,是观察事件 \(A\) 大量重复实验,记录 \(A\) 出现的次数,也称作 频数,频数与总实验数之比记作 \(A\) 的概率,即 \(p(A) = \frac{n(A)}{N}\),实践表明随着实验次数的增加,该比值将稳定在真实值附近,但是受到实验次数不能无限进行的限制,该方法只能得到近似的估计值。
古典方法,是在经验的基础上,通过逻辑分析总结得到概率的计算表达式,基本的计算方法是利用事件 \(A\) 在样本空间中所占有的个数与样本空间中所有样本点的个数之比计算 \(A\) 的概率,也就是 \(P(A) = \frac{N_A}{N}\)。
几何方法,利用几何工具的辅助,假设样本空间内各处是等可能的,有一个事件的可能充满某一子区域,然后就用这个子区域占整体区域的大小来表示这个区域代表的事件 \(A\) 的概率,写成 \(P(A) = \frac{S_A}{S}\)。
此外,还有根据个人的经验和主观判断来定义事件发生的概率,俗话说就是凭感觉,当然这不能是玄学的范畴。
当然,概率有一些性质和计算规则。比如,\(P(\varnothing) = 0\),不可能事件的概率为 0,\(P(\Omega) = 1\),\(\Omega\) 是整个样本空间,必然事件的概率为 1。
概率是可加的,例如若干个 互不相容 的事件 \(A_1, A_2, A_3, \cdots, A_n\) 的概率之和为 \[P(A_{\sum}) = \sum_{i} P(A_i) \]
如果对于一般事件,那么就要使用加法公式了 \[P(A \cup B) = P(A) + P(B) - P(A \cap B) \] 可以想象两个重叠了一部分的矩形,要求重叠的面积,那么对两个矩形面积求和后还要减去它们中间重叠的部分,这就是加法公式的意义。于是,自然的有一个不等式推论,即 \(P(A \cup B) \leq P(A) + P(B)\)。
条件概率和独立性
条件概率
条件概率 的定义是在某一个事件 \(B\) 发生的情况下,求另一个事件 \(A\) 发生的概率,记作 \(P(A|B)\),定义为 \[P(A|B) = \frac{P(AB)}{P(B)} \] 其中重要的一点是 \(P(B) > 0\)。 ## 乘法公式 乘法公式 可以直接从上式推导出,若 \(P(B) > 0\),则 \[P(AB) = P(B)P(A|B) \] 在机器学习中,更为常见的是乘法公式的一般式子,设 \(P(A_1 A_2 A_3 \cdots A_{n-1}) > 0\),则有 \[P(A_1 \cdots A_n) = P(A_1) P(A_2|A_1) P(A_3|A_1 A_2) \cdots P(A_n| A_1 \cdots A_{n-1}) \]
全概率公式
全概率公式 定义为 \[P(A) = \sum_{i=1}^{n}{P(B_i)P(A|B_i)} \] 其中,\(B_1, B_2 \cdots B_n\) 表示对一个样本空间的分割,也就是 \(B_1, B_2 \cdots B_n\) 是互不相容的。
贝叶斯公式
贝叶斯公式 应该算是概率论中最重要的公式了,它可以帮助我们借助容易计算的概率去计算一些不那么容易计算的概率。其可以记作 \[P(B|A) = \frac{P(A|B)P(B)}{P(A)} \] 更一般的表达式为 \[p(B_i|A) = \frac{P(A|B_i)P(B_i)}{\sum_{j}{P(B_j)P(A|B_j)}} \] 其中 \(i, j = 1, 2 \cdots n\),\(B_1, B_2 \cdots B_n\) 表示对一个样本空间的分割。
独立性
独立性 表示两个事件之间不是相互影响的,就称作这两个事件是 相互独立 的,如果有多个事件,当多个事件之间两两相互独立,才能称这些事件相互独立。如果两个事件是相互独立的,那么他们同时发生的概率可以直接由各自发生的概率相乘得到,记作 \(P(AB)=P(A)P(B)\)。
马尔可夫性质
马尔可夫性质 也是机器学习中常用到的基本概念之一,它表示,一个随机过程的状态只跟当前状态有关,而跟过往的所有的状态都无关。用数学公式表达为 \[P(B_{n+1}|B_1, B_2 \cdots B_n) = P(B_{n+1} | B_n) \]
概率分布
随机变量有 连续随机变量 和离散随机变量 之分,那么相应的,用随机变量的 分布函数 来描述随机变量在所有取值上的概率,也有 连续分布 和离散分布 之分。一般来说,分布函数表示的是概率,在整个自变量域内是单调的,而且还是非减的。针对连续的情况,更普遍的是用 概率密度 函数来描述概率的分布情况,对于概率密度的积分才得到概率本身(类比密度和质量的关系)。概率密度函数是非负的,而且在整个定义域上的积分之和一定等于 1。在接下来的章节中,如果不加以特殊的说明,那么都是针对连续的情况 而言。
常用的分布
在机器学习中,一些复杂的分布会使用一些简单的同时性质比较好的分布组合而成,因此,我们需要了解一些常用的简单的分布,其中最常见的应当是高斯分布了。
高斯分布
高斯分布 又叫做 正太分布,记作 \(X \sim N(\mu, \sigma^2)\),也可以写成 \(p(x) \sim N(\mu, \sigma^2)\),其中 \(X\) 表示随机变量,\(p(x)\) 表示概率密度函数,其公式为 \[p(x) = \frac{1}{\sqrt{2\pi\sigma^2}}\exp{\frac{-(x - \mu)^2}{2\sigma^2}} \] 其中,\(\mu\) 表示均值,\(\sigma^2\) 为方差。标准高斯分布 的参数为 \(\mu = 0\),\(\sigma = 1\)。高斯分布很好的性质,比如任意高斯分布可以由一个标准的高斯分布得到,记作 \(p(x) \sim N(0, 1)\),这个性质可是使得随机采样可以参与梯度下降的优化算法,是随机优化算法的基本用法之一。高斯分布的 68.27% 的样本在平均值左右的一个标准差的范围内,95.45% 的样本在平均值左右的两个标准差的范围内,而 99.73% 的样本都分布在平均值左右的三个标准差的范围内。高斯分布能够对现实中很多问题进行建模,当问题非常复杂的时候,还能够使用不同的高斯分布组合成复杂的 混合高斯分布 来描述,其中每个组成部分之间的概率表示可以为均匀分布或者自定义的其他分布。
其他常用分布
其他常见的分布有 均匀分布,概率密度函数的数学表达为 \[p(x) = \left\{\begin{aligned} &\frac{1}{b-a} \qquad a \leq x \leq b \\ &0 \qquad \qquad other \end{aligned} \right. \]
复杂的分布
事实上,现实里的数据都是服从一些非常复杂的分布,对它们需要进行建模分析,可以使用 高斯混合模型,用于近似描述。高斯混合模型是多个高斯分布的线性集合,可以表示 \[p(x) = \sum_{i=1}^{k}\pi_i N(\mu_i, \sigma_i^2) \] 其中,\(\pi_i\) 表示第 \(i\) 个高斯分布的系数(或者也称作这个高斯分布出现的概率),而且满足 \(\sum_{i}\pi_i = 1\),\(\mu_i, \sigma_i^2\) 表示第 \(i\) 个高斯分布的均值和方差。
概率分布的数学特征
期望
期望 的定义是随机分布的加权平均值,可以写作 \[E(X) = \mathbb{E}_{p(x)}[\cdot] = \int_{-\infty}^{+\infty}xp(x) \ dx \] 其中 \(\cdot\) 表示常数,也就是求的是本身的期望,如果替换成函数 \(g(x)\) 则表示在这个函数下的期望,在积分中需要乘上这个函数的值,比如 \[\mathbb{E}_{p(x)}[g(x)] = \int_{-\infty}^{+\infty}g(x)p(x) \ dx \] 严格来说,\(g(x)\) 还需要满足处处可导、单调等一些好的数学性质,这里不做专门展开了,证明也不详细介绍了。如果这个积分不收敛,那么可以说期望不存在。
方差
方差 表示的是随机分布偏离均值的程度,或者说是波动的大小。可以写作 \[Var(X) = \int_{-\infty}^{+\infty}(x - \mathbb{E}_{p(x)}[\cdot])^2p(x) \ dx \] 方差有一个更加实用的性质是 \[Var(X) = E(X^2) - (E(X)^2) \] “平方的期望减去期望的平方”,可以在各种场合快速计算方差。
多维随机分布
多维随机分布简单来说就是样本空间的维度扩升到了高维,于是随机变量成为了 联合随机变量 密度函数成为了 联合分布函数 ,表示每一维的随机事件一起发生的概率,在连续分布中,使用 联合密度函数 刻画,一般来说使用向量的方式记录,如 \(p(\boldsymbol{x})\),加粗的 \(\boldsymbol{x}\) 表示向量。通过联合密度函数,求联合分布函数,当然也是使用多重积分进行的。最常见的有二维联合分布,\(p(\boldsymbol{x},\boldsymbol{y})\),在计算机视觉里面很常用,比如使用二维高斯分布作滤波器进行滤波操作等等。如果固定其他维度,对于某一个维度进行积分,那么表示这个 边缘分布,主要关注的就是对于某一个随机变量的分布。
协方差
在二维随机分布中还有一个重要的概念,协方差。协方差表示两个分量之间的相关性,定义如下 \[Cov(X,Y) = E[(X - E(X))(Y - E(Y))] \] 如果为 0,则表示不相关,大于 0,是正相关,小于 0,是负相关。由协方差还可以引出 相关系数,定义如下 \[Corr(X,Y) = \frac{Cov(X,Y)}{\sqrt{Var(X)Var(Y)}} \] 当然,在刻画两个变量的相关性的时候,还有更加丰富的方法,比如信息论中的互信息等,在下面会讲到。
Jensen 不等式
Jensen 不等式 是一个常用的不等式,假设给定一个凸函数,如标准的二次函数,在上面作任意两点之间的割线,那么所得到的割线一定在函数的上方,这就是 Jensen 不等式的几何意义。它的定义是,对一平均做凸函数变换,会小于等于先做凸函数变换再平均,于是在使用概率密度函数时,我们可以得到 \[\begin{split} \phi (\int_{-\infty}^{+\infty} g(x) p(x) \ dx) &\leq \int_{-\infty}^{+\infty} \phi(g(x)) p(x) \ dx \\ \phi (\mathbb{E}_{p(x)}[g(x)]) & \leq \mathbb{E}_{p(x)}[\phi(g(x))p(x)] \end{split} \]
特征函数
如果考虑将密度函数作傅里叶变换,可以得到 \[\phi(t) = \int_{-\infty}^{+\infty} e^{itx} \ dx = \mathbb{E}_{p(x)}[e^{itx}] \] 其中 \(i = \sqrt{-1}\) 为虚数单位。于是,傅里叶变化就是关于函数 \(g(x,t) = e^{itx}\) 的均值。密度函数的傅里叶变换有着许多用处,比如能把独立随机变量和的分布的卷积运算 (积分运算) 转换成乘法运算,能把求分布的各阶原点矩 (积分运算) 转换成微分运算,能把随机变量序列的极限分布转换成一般的函数极限问题,通常也把密度函数的傅里叶变换称作为概率密度分布的 特征函数。
特征函数有许多好的数学性质:
1、 \(|\phi(t)| \leq \phi(0) = 1\)
2、 \(\phi(-t)\) 与 \(\phi(t)\) 互为共轭,为 \(\phi(-t) = \overline{\phi(t)}\)
3、 概率分布的和的特征函数为特征函数的积,为 \(\phi_{p(x) + p(y)}(t) = \phi_{p(x)}(t) \cdot \phi_{p(y)}(t)\)
4、 设 \(\mathbb{E}[x^{l}]\) 存在,则其特征函数 \(\phi(t)\) \(l\) 次可导,且 \(\phi^{k}(0) = i^{k} \mathbb{E}[x^{l}]\)
5、 特征函数在 \((-\infty, +\infty)\) 一致连续
6、 特征函数是非负的
7、 特征函数是唯一的
参数估计
参数估计主要用于估计随机分布中的未知参数、未知参数的函数或者未知的特征数或函数等,在机器学习中,最广泛的应用主要在于估计设定的随机分布的参数,例如最大似然估计、最大化期望算法、贝叶斯估计等等。这里,我们主要回顾一下这些经典的算法。
最大似然估计
最大似然估计 叫做 Maximum Likelihood Estimation,简称 MLE,是根据已有的数据进行验证,使得所给定的模型和所估计的模型参数在所给的数据上得到最大的符合。如果我们已有模型,那么根据模型写出一致数据所发生的概率,成为似然函数,然后似然函数对参数求导,使之为 0,那么就可以解出所的参数。用数学表示,记 \(p(x|\theta)\),\(\theta \in \Theta\), 其中 \(\theta\) 表示一个或多个未知参数,且其所有可能的取值空间用 \(\Theta\) 表示。现在有一些列的观测数据 \(x_1, x_2, \cdots x_n\),那么似然函数可以写成 \[\begin{split} L(\theta;x_1, x_2, \cdots x_n) &= p(x_1, x_2, \cdots x_n | \theta) \\ &= \prod \limits_{i=1}^{n}p(x_i|\theta) \end{split} \] 简记 \(L(\theta)\),最大似然估计可以写成 \[\begin{split} \hat{\theta} &= \arg\max_{\theta \in \Theta} L(\theta) \\ &= \arg\max_{\theta \in \Theta} \log L(\theta) \\ &= \arg\max_{\theta \in \Theta} \log \prod \limits_{i=1}^{n}p(x_i|\theta) \\ &= \arg\max_{\theta \in \Theta} \sum_{i=1}^{n} \log p(x_i|\theta) \end{split} \]
最大化数学期望
最大化数学期望 叫做 Expectation Maximization,简称 EM。EM 算法是优化算法的一种,它的概率模型通常依赖于无法观测的隐变量,因此事实上我们是不能够直接求解方程的,也无法使用梯度下降的方式,于是它采用一种优化迭代的思想逼近最优。
例如,我们需要估计学校中男生、女生的身高分布模型,通过随机抽样得到一些样本,但由于粗心导致男生和女生的样本混合在一起,并且无法区分了,也没有任何关于学校中男生、女生的人数分布模型的信息可供参考。
如果能够区分男生、女生的样本,或者有先验的男生、女生的人数分布模型,那么我们完全可以使用最大似然估计,假设男女生身高分布都是高斯分布,那么对于男生的样本或者属于男生样本的概率,我们可以根据高斯分布写出所有样本都出现的概率,然后构造似然函数,似然函数就是以参数为未知变量,而样本为已知量,那么最后将似然函数对参数求导,并令导数为 0,即可求得最大似然估计的参数。
但现在的问题是,我们无法区分男生、女生的样本,也就是说这里引入了一个无法求得的隐藏变量,它决定了男生还是女生的样本。于是这里使用 EM 算法。在这个例子中,首先初始化男生或者女生样本的身高分布的参数,然后估计每个样本更可能是属于男生还是女生,在当前估计下,使用最大似然估计当前数据下的参数,然后不断迭代直到参数稳定。
上面通过例子比较感性的了解了 EM 的算法思想,那么接下来通过数学工具严谨的推导一遍。假设现有一系列数学样本 \(\boldsymbol{x} = \{x_1, x_2, \cdots x_n \}\),且有一系列对应的隐藏变量 \(\boldsymbol{z} = \{z_1, z_2, \cdots z_n \}\) 来给出样本的一些特定信息,于是有 \(p(x) = \int_{z} p(x, z)\),设参数用 \(\theta\) 表示,现在我们写出这些样本的似然函数并取对数(将乘法拆成加法) \[L(\theta | \boldsymbol{x}, \boldsymbol{z}) = \int_{i=1}^{n}{\log \int_{z_i} p(x_i, z_i|\theta)} \]
如果我们将 \(Q_i(z_i)\) 看成是 \(z_i\) 的分布,但这个分布目前是不知道的,于是我们可以对上式的右边部分进行变化得到 \[\begin{split} \int_{i=1}^{n}\log \int_{z_i} p(x_i, z_i|\theta) &= \int_{i=1}^{n}\log \int_{z_i} Q_i(z_i) \frac{p(x_i, z_i|\theta)}{Q_i(z_i)} \\ & \geq \int_{i=1}^{n} \int_{z_i} Q_i(z_i) \log \frac{p(x_i, z_i|\theta)}{Q_i(z_i)} \end{split} \] 上式中的不等号是使用 Jensen 不等式的结果。所以,最后通过不断提高下界的方式,也就是不断求上式中不等号的右边的式子的最大值,并以此来逼近左侧的最大值。直观的理解方式是,先固定 \(\theta\),优化 \(Q_i(z_i)\),使得下界达到最大,然后固定 \(Q_i(z_i)\),优化 \(\theta\) 求似然函数的最大值,如此反复就能逼近最大的值,也对应了 EM 算法的 E 步骤和 M 步骤。其中,不等式取等号的时候,是在 \(\frac{p(x_i, z_i|\theta)}{Q_i(z_i)}\) 这一项为常数的时候,此时 \(\log\) 在积分符号外侧或者内侧都不影响积分运算(求均值运算)。于是有 \[p(x_i, z_i|\theta) = CQ_i(z_i) \] 对两侧同时积分(关于 \(z_i\)) \[\int_{z_i}p(x_i, z_i|\theta) = C\int_{z_i}Q_i(z_i) \] 其实,在给出 \(Q_i(z_i)\) 的时候,暗含了一个隐藏条件 \(\int_{z_i}Q_i(z_i) = 1\),这样的构造能使得问题简化,于是 \(\int_{z_i}p(x_i, z_i|\theta) = C\) 也是常数。最后发现 \[\begin{split} Q_i(z_i) &= \frac{p(x_i, z_i|\theta)}{\int_{z_i}p(x_i, z_i|\theta)} \\ &= \frac{p(x_i, z_i|\theta)}{p(x_i|\theta)} \\ &= p(z_i|x_i, \theta) \end{split} \] 是一个后验概率,所以计算 \(Q_i(z_i)\) 的时候就是计算后验概率。
最大后验估计
最大似然估计是频率学派的代表,而与之相对的贝叶斯学派的代表是 最大后验估计,叫作 Maximum a Posteriori estimation,简称 MAP。相比于最大似然估计,最大后验估计加入了参数的先验分布的假设,然后通过数据对齐进行调整。设 \(p(x|\theta)\),\(\theta \in \Theta\), 其中 \(\theta\) 表示一个或多个未知参数,且其所有可能的取值空间用 \(\Theta\) 表示,同样,现在有一些列的观测数据 \(x_1, x_2, \cdots x_n\)。那么后验概率 \(p(\theta|x)\) 可以用贝叶斯公式求解, \[p(\theta|x) = \frac{p(x|\theta) p(\theta)}{p(x)} \propto p(x|\theta) p(\theta) \] 于是有 \[\begin{split} \arg\max_{\theta \in \Theta} p(\theta|x) &= \arg\max_{\theta \in \Theta} p(x|\theta)p(\theta) \\ &= \arg\max_{\theta \in \Theta} p(x_1, x_2, \cdots x_n|\theta)p(\theta) \\ &= \arg\max_{\theta \in \Theta} \left( \prod \limits_{i=1}^{n}p(x_i|\theta) \right ) p(\theta) \\ &= \arg\max_{\theta \in \Theta} \left(\sum_{i=1}^{n} \log p(x_i|\theta) \right ) + \log p(\theta) \end{split} \] 然后,仍然可以使用对参数 \(\theta\) 求导,并且置为 0,使用梯度下降的方式求解最终结果。
最大似然估计,认为事件的出现是一种确定的方式,跟谁去观察是没有关系的,所以直接对事件进行建模,从而直接从使得这些事件的出现更加合理的基础上求解参数,在有大量的数据的情况下能够较为准确的得到模型参数。而最大后验估计,则认为这些事件的出现是不确定的,跟谁去观察是有关系的,不同的观察将出现不同的结果,也就是说不同的观察将导致不同的模型或者参数,于是可以说模型或者参数本身服从一定的分布。如果给出这些模型或者参数的先验分布的假设,后续可以通过观察数据进行校验,从而使的估计的模型或者参数能够趋于接近真实的情况。当给出的先验模型能够比较符合实际时,能够得到比较好的结果,当观测数据量越来越大时,会削弱先验模型的主导。值得一提的是,如果假设先验模型或者参数服从均匀分布,那么最大后验估计和最大似然估计就是一样的了。
熵与 KL 散度
在机器学习中,经常使用的基本概念还有熵、KL 散度(Kullback–Leibler Divergence)等。接下来,我们再简单回顾一下这些基本概念和一些常用的数学技巧。
熵
熵 通常是用来测量随机变量的不确定度的。设变量 \(x\) 服从分布 \(p(x)\), 记作 \(x \sim p(x)\),那么随机变量 \(X\) 的熵 \(H(X)\) 定义为 \[H(X) = - \int_{x \in \mathcal{X}} p(x) \ log \ p(x) \]
当然,如果有一对随机变量服从联合分布,记作 \(x, y \sim ~ p(x,y)\),那么 联合熵 \(H(X,Y)\) 显然可以写作 \[H(X, Y) = - \int_{x \in \mathcal{X}} \int_{y \in \mathcal{Y}}p(x, y) \ log \ p(x,y) \]
这一对随机变量的 条件熵 \(H(Y|X)\) 可以写成 \[\begin{split} H(Y|X) &= \int_{x \in \mathcal{X}} p(x) \ H(Y|X=x) \\ &= - \int_{x \in \mathcal{X}} p(x) \int_{y \in \mathcal{Y}} p(y|x) \ log \ p(y|x) \\ &= - \int_{x \in \mathcal{X}} \int_{y \in \mathcal{Y}} p(x, y) \ log \ p(y|x) \end{split} \]
其中,有个常用的定理链式法则 \[\begin{split} H(X, Y) &= H(X) + H(Y|X) \\ H(X, Y|Z) &= H(X|Z) + H(Y|X, Z) \end{split} \]
KL 散度
KL 散度(Kullback–Leibler Divergence, KLD)也称作相对熵,是用来测量两个分布之间的“距离”(或者称之为相似程度)。两个分布 \(p(x), q(x)\) 之间的 KL 散度定义为 \[\begin{equation} D_{KL}(p(x)||q(x)) = \int_{x \in \mathcal{X}} p(x)log\frac{p(x)}{q(x)} \end{equation} \]
KL 散度的几个小性质:
1、\(D_{KL}(p(x)||q(x)) \geq 0\),
2、\(D_{KL}(p(x)||q(x)) = 0\),当且仅当 \(p(x) = q(x)\),
3、\(D_{KL}(p(x)||q(x)) \neq D_{KL}(q(x)||p(x))\)。
互信息与自信息
熵和 KL 散度还联系到信息论中的自信息与互信息的概念,这里也简单介绍一下。
互信息
互信息 定义为,给定联合分布 \(p(x, y)\) 和边缘分布 \(p(x), p(y)\), \[\begin{equation} \begin{split} I(X; Y) &= \int_{x \in \mathcal{X}} \int_{y \in \mathcal{Y}} p(x, y) \ log \ \frac{p(x,y)}{p(x)p(y)} \\ &= D_{KL}(p(x,y)||p(x)p(y)) \end{split} \label{midef} \end{equation} \] \(I(X;Y)\) 可以理解成联合分布 \(p(x,y)\) 与边缘分布乘积 \(p(x)p(y)\) 之间的 KL 散度。通过观察,可以将公式 \(\eqref{midef}\) 进一步变化得到 \[\begin{equation} \begin{split} I(X; Y) &= \int_{x \in \mathcal{X}} \int_{y \in \mathcal{Y}} p(x, y) \ log \ \frac{p(x,y)}{p(x)p(y)} \\ &= \int_{x \in \mathcal{X}} \int_{y \in \mathcal{Y}} p(x, y) \ log \ \frac{p(x|y)}{p(x)} \\ &= - \int_{x \in \mathcal{X}} \int_{y \in \mathcal{Y}} p(x, y) \ log \ p(x) + \int_{x \in \mathcal{X}} \int_{y \in \mathcal{Y}} p(x, y) \ log \ p(x|y) \\ &= - \int_{x \in \mathcal{X}} p(x) \ log \ p(x) - \left(- \int_{x \in \mathcal{X}} \int_{y \in \mathcal{Y}} p(x, y) \ log \ p(x|y) \right) \\ &= H(X) - H(X|Y) \end{split} \label{mitra} \end{equation} \] 这就是 KL 散度和熵之间的联系。
自信息
如果把公式 \(\eqref{mitra}\) 中的 \(Y\) 随机变量替换成 \(X\) 随机变量,就可以得到 \[\begin{equation} I(X;X) = H(X) - H(X|X) = H(X) \label{sidef} \end{equation} \] 这被定义为自信息,从公式 \(\eqref{sidef}\) 来看,熵和自信息在某种程度上是一致的。