
廖盛斌编著
本书分为7章,其内容包括代数学和分析学的基础概念、微积分的基础概念、矩阵与线性变换、矩阵分解、最优化理论与算法、概率模型和信息论的基础概念。本书强调数学概念并采用图形化的方式对其进行解释,以利于读者理解,同时,本书给出了数学知识在机器学习和人工智能领域的具体应用,将数学知识和工程实践有机结合,以使读者能对数学知识有更深层次的理解。
信息论的基础概念 信息论是数学、物理、统计、通信等多个学科的交叉领域,在机器学习与人工智能领域有广泛应用。信息论由被称为“信息论之父”的克劳德·香农提出,它是主要研究信息的量化、传输、存储和处理的一门学科。本章主要介绍信息论在机器学习与人工智能领域常用的基础概念。熵 7.1.1 熵的概念 信息论的基本思想是对信息进行量化。香农首先提出了采用信息熵(简称熵)来表示信息量的大小。信息的信息量大小与它的不确定性有密切关系,而不确定性可以用概率模型来刻画,人们正是沿着这样的思路,建立了熵的概率模型。 1.自信息 自信息表示一个随机事件所包含的信息量。对于一个随机变量X,假定它的概率分布是p(x),则随机事件X=x的自信息定义是 I(x)=-log p(x) 在自信息定义中,若对数的底数是2,则自信息的单位是比特(bit);若对数的底数是e,则自信息的单位是奈特(nat)。1bit表示一个随机事件发生的概率是[插图]时传递的信息量。很显然,概率越大,事件发生的可能性就越大,这样事件的不确定性就越小,即I(x)越小。 2.熵的定义 此处熵的定义是香农从热力学中借鉴过来的,是信息熵的简称。对于分布是p(x)的随机变量X,它的自信息的数学期望就是随机变量X的熵,记为H(X),即 [插图] 在式(7.1)中,当随机变量X是离散型随机变量时,如果随机变量X的取值集合是X,根据数学期望的定义,有 [插图] 在式(7.1)中,当随机变量X是连续型随机变量时,如果随机变量X的概率密度函数是f(x),根据数学期望的定义,有 [插图] 在熵的定义中,有两种特殊情况,分别是p(x)=0和p(x)=1。当p(x)=0时,0log0=0;当p(x)=1时,H(X)=0。这表明,熵越高,随机变量的不确定性越大,随机变量的信息越多;熵越低,随机变量的不确定性越小,随机变量的信息越少。当一个随机变量服从均匀分布时,它的随机性最强,即它的不确定性最大,这样它的熵就最大。 例7.1 离散型随机变量X的概率分布如表7.1所示,求它们相应的熵。 表7.1 离散型随机变量X的概率分布 [插图] 解:根据熵的定义,有 H1(X)=-1×log1-0log0-0log0-0log0=0 H2(X)=-0.5×log0.5-0.1×log0.1-0.2×log0.2-0.2×log0.2≈0.530 H3(X)=-0.25×log0.25-0.25×log0.25-0.25×log0.25-0.25×log0.25≈0.602 由例7.1的结果可知,对同一个随机变量,均匀分布的熵最大。 例7.2 假设随机变量X~N(μ,σ2),求它的熵H(X)。 解:根据熵的定义,有 [插图] 利用连续型随机变量概率密度函数的性质[插图],上式可化简为 [插图] 上式右边第二项利用方差的定义,可以得到 [插图] 由例7.2的结果可知,正态分布的熵与均值无关,只与方差有关,因为正态分布的方差决定了它的随机性程度。 7.1.2 联合熵 7.1.1节针对随机变量X,给出了熵的定义。本节要介绍的联合熵是对熵的推广,它描述了多个随机变量的不确定性。为简单起见,本节以两个随机变量为例,给出联合熵的定义。 假设X和Y是两个离散型随机变量,随机变量X的取值集合是X,随机变量Y的取值集合是Y,它们的联合概率分布是p(x,y),则随机变量X和随机变量Y的联合熵定义是 [插图] 类似地,假设X和Y是两个连续型随机变量,随机变量X的取值集合是X,它们的联合概率分布是p(x,y),则随机变量X和随机变量Y的联合熵定义是例7.3 假定两个离散型随机变量X和Y的概率分布如表7.2所示,求它们的联合熵H(X,Y)。 表7.2 随机变量X和随机变量Y的概率分布 [插图] 解:根据离散型随机变量联合熵的定义,有 H(X,Y)=-0.1×log0.1-0.1×log0.1-0.1×log0.1-0.1×log0.1-0.2×log0.2 -0.1×log0.1-0.2×log0.2-0.1×log0.1≈0.88 例7.4 假设随机变量x服从n维正态分布N(μ,Σ),求随机变量x的熵H(x)。 解:根据连续型随机变量联合熵的定义,有 [插图] 上式第二个等号右边第一项利用连续型随机变量概率密度函数性质[插图],可化简为 [插图] 下面计算上式右边第二项。由于协方差矩阵Σ是对称正定的,根据矩阵的Cholesky分解方法,存在矩阵L,使得Σ=LLT,这样有 [插图] 在上式中令y=(L-1)T(x-μ)=(LT)-1(x-μ),则有 x =LTy+μ 从而有 [插图] 则式(7.2)右边第二项(除常数因子外)积分可以变形为 [插图] 将式(7.3)代入上式,得到 [插图] 在上式第二个等号右边利用[插图],上式可以化简为 [插图] 对上式右边积分采用分部积分法,可以得到 [插图] 将上式代入式(7.2),得到随机向量x的熵是 [插图] 根据以上结果可知,多维正态分布的熵只与协方差矩阵有关,与均值无关,这与一维正态分布的情形一致。 7.1.3 条件熵 条件熵用于刻画在已知一个随机变量取值的条件下另外一个随机变量的信息量。假设X和Y是两个离散型随机变量,随机变量X的取值集合是X,随机变量Y的取值集合是Y,它们的联合概率分布是p(x,y),则给定随机变量Y的取值条件下随机变量X的熵称为它们的条件熵,其定义是 [插图] 当X和Y是两个连续型随机变量时,它们的联合概率分布是p(x,y),则给定随机变量Y的取值条件下随机变量X的熵称为它们的条件熵,其定义是 [插图] 例7.5 根据例7.3中的信息,求H(X|Y)。 解:首先,根据例7.3中两个离散型随机变量X和Y的概率分布,可以得到随机变量Y的边缘概率分布如表7.3所示。 表7.3 随机变量Y的边缘概率分布 [插图] 根据条件熵的定义有 [插图] 7.1.4 互信息 互信息是衡量两个随机变量之间相互依赖关系的量,用I(X,Y)表示。若X、Y是离散型随机变量,随机变量X的取值集合是X,随机变量Y的取值集合是Y,p(x,y)是它们的联合概率分布,则随机变量X、Y之间的互信息I(X,Y)定义是 [插图] 若X、Y是连续型随机变量,p(x,y)是它们的联合概率分布,则随机变量X、Y之间的互信息I(X,Y)定义是 [插图] 互信息的基本性质如下。 (1)对称性。 根据互信息的定义可知,交换随机变量X、Y的位置,I(X,Y)与I(Y,X)表达式一样,所以有I(X,Y)=I(Y,X),即互信息满足对称性。 (2)若随机变量X、Y相互独立,则I(X,Y)=0。 由于随机变量X、Y相互独立,因此有p(x,y)=(x)p(y),根据互信息的定义有 [插图] 连续的情况类似可证。 (3)非负性。 构造函数[插图],对函数g(z)求导,则有 [插图] 根据上式可以得到,当0<z<1时,g′(z)<0,函数g(z)单调减少;当z>1时,g′(z)>0,函数g(z)单调增加。因此,z=1是函数g(z)的极小点,又由于g(1)=0,这样得到g(z)≥0,即 [插图] 也就是 [插图] 根据互信息的定义,结合以上不等式有 [插图] 这样就证明互信息的非负性。由该性质和性质(2)可知,随机变量X、Y之间的相互依赖关系越紧密,它们的互信息I(X,Y)就越大,否则就越小。特别地,当随机变量X、Y相互独立时,它们的互信息最小,即I(X,Y)=0。 (4)I(X,Y)=H(X)+H(Y)-H(X,Y),I(X,Y)=H(X)-H(X|Y). 根据互信息、熵和联合熵的定义有 [插图] 这样就证明了第一个等式。下面证明第二个等式。 根据互信息的定义有 [插图] 于是第二个等式得证。 已知互信息I(X,Y)刻画了随机变量X、Y之间的相互依赖关系,这种依赖关系可能是一种线性依赖关系,也可能是一种非线性依赖关系。这一点与上面介绍的相关系数有本质区别,以下性质(5)说明了这一点。 (5)随机变量X、Y服从二维正态分布,它们的互信息是I(X,Y),相关系数是ρ,则有 [插图] 根据假设有 [插图] 根据熵的定义有 [插图] 根据联合熵的定义有 [插图] 利用性质(4)有 [插图] 7.1.5 熵的性质 上面给出了熵、联合熵和条件熵的概念,本节将对它们的基本性质和关系进行总结和分析。相关结论的证明以离散型随机变量为例给出,假定随机变量X的取值集合是X,随机变量Y的取值集合是Y,它们的联合概率分布是p根据熵的定义有 [插图] 根据联合熵的定义有 [插图] 利用性质(4)有 [插图] 7.1.5 熵的性质 上面给出了熵、联合熵和条件熵的概念,本节将对它们的基本性质和关系进行总结和分析。相关结论的证明以离散型随机变量为例给出,假定随机变量X的取值集合是X,随机变量Y的取值集合是Y,它们的联合概率分布是p(x,y),连续型随机变量情形可将求和符号修改为积分符号进行类似证明。 (1)非负性。 熵H(X)、联合熵H(X,Y)和条件熵H(X|Y)都满足非负性,即 H(X)≥0,H(X,Y)≥0,H(X|Y)≥0 (2)最大熵原理。 在介绍熵的定义时,先假设随机变量X的概率分布已知,然后根据随机变量的概率分布给出了它不确定的度量。但是,在很多时候,随机变量X的概率分布不是已知的,而一些关于随机变量X的观测值或其他约束已知,那么随机变量X的概率分布要如何确定?这就是最大熵原理要揭示的问题,即在掌握部分信息的情况下,确定随机变量X的概率分布。基本的思路就是取符合约束条件且熵最大的概率分布作为随机变量X的概率分布,也就是说,在学习概率模型时,最大熵原理可以理解为在满足约束条件的所有概率模型或分布中选择熵最大的模型。 假设一个随机变量X取n个不同的值,每一个取值的概率是p1、p2、…、pn,可以证明只有等概率分布时熵最大。由于概率p1、p2、…、pn满足[插图],因此该问题可归结为以下最优化问题。 [插图] 为了求出满足最大熵的概率pi,构造拉格朗日函数,即 [插图] 将上式对pi求偏导数,并令偏导数为零,得到 [插图] 于是有 pi=eλ-1,i=1,2,…,n 根据[插图]得到 neλ-1=1 即 [插图] 因此有 [插图] 这就证明,当离散型随机变量取n个不同值,且等概率分布[插图]时,它的熵取最大值。又因为该优化问题的目标函数是凹函数,所以此时的熵是最大熵分布。这个结论表明[插图]=logn。 连续型随机变量也有类似的结论。若随机变量X是区间[a,b]上的连续型随机变量,则其最大熵分布是区间[a,b]的均匀分布。连续型随机变量最大熵问题还有一个重要结论,以下给出该结论及证明。 对于连续型随机变量X,如果已知它的数学期望E(X)=μ,方差D(X)=σ2,则其最大熵分布是正态分布N(μ,σ2)。 假定连续型随机变量X的概率分布是p(x),其最大熵问题可以归结为以下最优化问题。 [插图]X,Y)=H(X)+H(Y|X)≥H(X) H(X,Y)=H(Y)+H(X|Y)≥H(Y) 综合以上两个等式,可得 H(X,Y)≥max{H(X),H(Y)} (6)H(X)≥H(X|Y),H(Y)≥H(Y|X). 根据互信息的非负性,可得 I(X,Y)=H(X)-H(X|Y)≥0 从而有H(X)≥H(X|Y),另外一个等式类似可证。 (7)熵、联合熵、条件熵和互信息之间的关系。 熵、联合熵、条件熵和互信息之间的关系图如图7.1所示。其中,图7.1中左边的椭圆表示熵H(X),右边的椭圆表示熵H(Y);两个椭圆的交集表示互信息I(X,Y);两个椭圆的并集表示联合熵H(X,Y);左边的椭圆减去它与右边椭圆的交集表示条件熵H(X|Y),右边的椭圆减去它与左边椭圆的交集表示条件熵H(Y|X)。 [插图] 图7.1 熵、联合熵、条件熵和互信息之间的关系图 7.1.6 熵在机器学习中的应用 熵在机器学习中有广泛的应用。机器学习中一个常见的任务是分类,分类本质上是不确定性降低的过程(把某一对象分配到某个类别),而熵刻画了不确定性的度量,因此可以用熵大小作为分类的依据,这就引出了采用熵最小的属性作为分类属性,这就是著名的决策树算法(也称为ID3算法)的基本思路。下面通过一个具体例子介绍熵在决策树算法中的应用,该例参考了文献[1]的部分内容和文献[2]的部分代码。 首先给出用于构造决策树的数据。假设有表7.4所示的用于构造决策树的数据集,每一个样本数据由阴晴、气温、湿度、风力及根据这些信息给定的是否适合打网球的决策组成。 表7.4 用于构造决策树的数据集 [插图] 在表7.4中,第一列代表日期,这里可以简单地看出样本的编号,第二至五列代表数据属性,最后一列代表目标,也就是决策的结果。把前十行数据作为训练数据,最后四行数据作为测试数据,以设计一个分类算法,根据前十行数据,建立属性列与目标列之间的映射关系,从而使未知数据(这里是表7.4中后四行数据)能根据分类算法学习的映射关系和属性列的值预测出测试数据目标列的值。 下面要介绍的算法称为决策树算法,它是一种基于信息熵的分类算法。假定用D表示表7.4中的测试数据集,根据信息熵的概念,有 [插图] 其中,H(D)是测试数据集的熵,K是分类类别的数量或目标列取不同值的数量(表7.4中的K=2),Ci是第i个类别的数据样本,[插图]是测试数据集D中数据样本的数量,[插图]是集合Ci的样本数量。 对于根据表7.4中的测试数据集构造决策树来对样本进行分类,首先容易想到的问题是,应该选择哪个属性开始或作为树的根节点。很显然,选择不同顺序的属性对数据集进行分类,对构成决策树的性能会有很大影响。在根据某个属性对数据集进行分类之前和之后信息发生的变化称为信息增益。决策树算法就是选择获得信息增益最大的属性作为每次节点选择的依据。若按照某个属性A对测试数据集D进行分类,则分类之后测试数据集D的熵是H(D|A),这样信息增益就是 g(D|A)=H(D)-H(D|A) 其中,条件熵H(D|A)的计算公式是 [插图] 以上公式中,n是属性A将测试数据集D分成不同类别的数量;Cki是属性A将测试数据集D分成目标列i中某个类别k的样本数据。例如,针对表7.4的数据集,如果属性A是“风力”,那么n=2,即表示“强”和“弱”;Cki表示C强,是、C强,否、C弱,是、C弱,否。 有了以上准备,就可以根据表7.4的测试数据集和信息熵来构建决策树了。详细的步骤如下。 (1)计算测试数据集D的熵H(D)。 [插图]交叉熵与损失函数 7.2.1 交叉熵的定义 上面介绍的熵是定义在一个概率分布上的,而交叉熵是定义在两个概率分布上的。交叉熵是用来刻画两个概率分布之间的差异程度。两个概率分布的交叉熵的值越小,两个概率分布就越接近。对于两个离散型随机变量,它们的概率分布分别是p(x)和q(x),则它们的交叉熵定义是 [插图] 同样地,对于两个连续型随机变量,它们的概率分布分别是p(x)和q(x),则它们的交叉熵定义是 [插图] 例7.6 假设离散型随机变量X的概率分布如表7.5所示,求它们的交叉熵。 表7.5 离散型随机变量X的概率分布 [插图] 解:根据交叉熵的定义,有 H(p,q)=-0.3×log0.1-0.2×log0.4-0.3×log0.1-0.2×log0.4≈0.76 7.2.2 交叉熵的性质 (1)非负性。 根据交叉熵的定义,可以得到H(p,q)≥0。 (2)非对称性。 一般情况下,H(p,q)≠H(q,p)。这个结论可以通过例7.6得到验证。对于例7.6,可以计算 H(q,p)=-0.1×log0.3-0.4×log0.2-0.1×log0.3-0.4×log0.2≈0.66 这样就有H(p,q)≠H(q,p)。但是对于特殊的情况,若p(x)=q(x),则有 H(p,q)=H(q,p)=H(p)=H(q) (3)当两个概率分布相等时,它们的交叉熵最小。 假设一个随机变量X取n个不同的值,对于概率分布p(x),每一个取值的概率是p1、p2、…、pn;对于概率分布q(x),每一个取值的概率是q1、q2、…、qn。假定概率分布p(x)固定,那么概率分布q(x)怎样取值时,这两个概率分布的交叉熵最小?由于概率q1、q2、…、qn满足[插图],因此该问题可归结为以下最优化问题。 [插图] 为了求出满足最小熵的概率qi,构造拉格朗日函数,即 [插图] 将上式对qi求偏导,并令偏导数等于零,可得 [插图] 于是,有 pi=λqi,i=1,2,…,n 根据[插图],可得 λ=1 从而,有 pi=qi,i=1,2,…,n 这就说明,当概率分布q(x)的取值是qi=pi时,它们的交叉熵取最值。由于该优化问题的目标函数是凸函数,因此这里的最值是最小值,也就是说,当概率分布q(x)和已知的分布p(x)一样时,它们的交叉熵最小,并且这时有 [插图] 上式说明,交叉熵的最小值是信息熵,即 H(p,q)≥H(p),H(p,q)≥H(q) 7.2.3 概率分布推断 由于交叉熵衡量了两个概率分布的差异程度,而在机器学习与人工智能领域,很多问题可以转化为学习一个概率分布,人们希望模型学习到的概率分布与另外一个概率分布接近或一致,这样,在模型可能输出的多个概率分布中,人们应该选择哪一个作为其学习到的概率分布?解决这个问题的常见工具就是交叉熵。 对于一个分类问题,如MINIST手写体数字识别问题(十分类问题),可以通过构建一个卷积神经网络模型,假设模型的输出是y1、y2、…、y10,使其输出经过softmax函数处理之后,得到一个概率分布是KL散度 7.3.1 KL散度的定义 KL散度也称为KL距离或相对熵,一般用于度量两个概率分布p(x)和q(x)之间的差异程度,其定义如下。 假定p(x)和q(x)是离散型随机变量X的两个概率分布,随机变量X的取值集合是X,它们之间的KL散度定义是 [插图] 假定p(x)和q(x)是连续型随机变量X的两个概率分布,它们之间的KL散度定义是 [插图] 例7.7 假设离散型随机变量X的概率分布如表7.6所示,求它们的KL散度。 表7.6 离散型随机变量X的概率分布 [插图] 解:根据离散型随机变量的KL散度定义,有 [插图] 而KL(q||p)是 [插图] 可见对于KL散度,一般不具有对称性,即KL(p||q)≠KL(q||p)。 例7.8 假设有两个正态分布[插图]和[插图],求它们之间的KL散度。 解:根据连续型随机变量的KL散度定义,有 [插图] 利用对数的性质,可将上式变形为 [插图] 利用[插图]和方差的定义,有 [插图] 即得 [插图] 而 [插图] 将上式右边的被积函数展开,可得 [插图] 利用方差的定义、期望的定义及[插图],上式可变形为 [插图] 将上面的结果,代入[插图],可得 [插图] 这个例子的结论可以推广到多维正态分布的情形,这里直接给出具体的结果[插图]。对于两个n维正态分布,假定它们的概率分布分别是p1(x)和p2(x),其中 [插图] 则它们的KL散度是 [插图] 7.3.2 从熵编码的角度理解KL散度 7.3.1节给出了KL散度的定义及计算的例子,实际上人们还可以从信息论的熵编码来更深入地理解KL散度的物理含义。信息论中的重要事情是解决信息的编码与传输问题,也就是在信道容量一定时,如果能对数据进行编码和压缩,就可以传输尽可能多的信息。那么应该怎么对数据进行编码?对概率分布是p(x)的符号或数据进行编码时,它的熵H(p)称为理论上的最优平均编码长度,这种编码方式称为熵编码。 熵编码的物理含义是什么?例如,人们进行抛硬币随机试验,结果出现硬币正面向上或反面向上的概率都是[插图],这样最优编码长度是[插图],因为抛硬随机试验的结果只可能是两种(0或1)。给定一串要传输的文本信息,其中字母x出现的概率是p(x),它的最优编码长度是-logp(x),这样要传输的文本信息的平均编码长度是x取不同值时最优编码的加权平均值,即[插图],这恰好就是熵,这说明基于概率分布p(x)的编码去编码来自概率分布p(x)的样本,其最优编码长度所需要的比特数就是熵,这就是熵的物理意义[插图]。 根据交叉熵的定义,H(p,q)=Ep(-logq(x)),其物理意义可以理解为,采用概率分布q(x)的编码对来自概率分布p(x)的样本进行编码的平均长度或比特数。 当读者理解了熵和交叉熵的物理意义,其可以采用类似的方式来理解KL散度的物理意义。KL散度用于度量两个概率分布p(x)和q(x)之间的差异程度,其物理意义可以理解为,已知概率分布p(x),用概率分布q(x)来近似概率分布p(x)所造成的信息损失量。因为来自概率分布p(x)的样本最优编码长度是它的熵H(p),但是用概率分布q(x)的编码去编码来自概率分布p(x)的样本,所需的平均编码长度是H(p,q),这样造成的信息损失量是 [插图] 上式右边刚好是KL散度的定义,这说明KL散度的物理意义是,对于概率分布p(x)和q(x),用概率分布q(x)的编码去编码来自概率分布p(x)的样本,相对于概率分布p(x)的最优编码而言,KL散度表示用来度量使用基于概率分布q(x)的编码来编码来自概率分布p(x)的样本所需的平均额外比特数。 7.3.3 KL散度的性质 (1)非负性KL(p||q)≥0。 根据KL(p||q)散度的定义,有 [插图] 利用概率模型中介绍的Jensen不等式,有 [插图] 这样就证明了散度的非负性,并且,在p(x)=q(x)时,KL(p||q)=0。 (2)非对称性。 例7.7说明了在一般情况下,KL(p||q)≠KL(q||p)。 (3)根据散度的非负性,容易得到对于连续型随机变量的概率分布p来说,它的熵H(p)小于或等于与另外一个概率分布q的交叉熵,即H(p)≤H(p,q)。 利用KL散度的非负性,有 [插图] 根据对数性质,上式可变形为 [插图] 即 [插图] 故 H(p)≤H(p,q) (4)散度、交叉熵和熵之间的关系:KL(p||q)=H(p,q)-H(p)。 这个性质在7.3.2节中给出了。 7.3.4 KL散度在机器学习中的应用 本节将介绍机器学习中的经典模型:变分自编码器(Variational Auto-Encoding,VAE)。VAE是一种生成式模型,其目的是先将原始图像编码到潜在隐变量空间(低维),然后解码回来,其常见应用是图像的生成。 经典的自编码器是通过一个编码器将图像压缩或映射到一个潜在隐变量空间的,并通过一个解码器将图像重构出来,其示意图如图7.3所示[插图]。 [插图] 图7.3 自编码器示意图 自编码器是将原始图像进行压缩编码,VAE不是将原始图像压缩成潜在隐变量空间中的固定编码,而是学习原始图像数据特征的概率分布,将原始图像转化为统计分布的参数,如平均值和方差。VAE使用学习到的平均值和方差从分布中随机采样一个点,并将这个点解码到原始图像的数据空间,从而达到生成图像的目的,其示意图如图7.4所示[插图]。 [插图] 图7.4 VAE示意图 简单的理解就是,VAE将原始图像编码为潜在隐变量空间的概率分布p(z|x),在解码时从该概率分布中采
可以作为大学数学的复习,不建议新手直接阅读
本书太数学,覆盖内容相对全面,包括人工智能三大数学,基本是数学系的学习方式。不太像是人工智能专业的,相应例子太少。最后还有部分信息论的内容。 纯数学教授写的书,严谨,按部就班,绝大多数定理定义推论都有证明;但对自学者不友好,一定要有LLM辅助,否则数学系的学生也难,步骤像是给理论数学专业学生写的,只是内容都是与AI有关。 教授有先验经验,部分定义定理概念觉着读者会知晓,读时容易蒙圈。 但如果与LLM和Python结合着读,内容非常详实,而且可以出发很多联想!