当前位置: 积分机 >> 积分机介绍 >> 从香农熵到手推KL散度一文带你纵览机器学
q)=H(p,q)-H(p)。而当我们针对Q最小化交叉熵时,H(p)为常量,因此它能够被省略。交叉熵在这种情况下也就等价于KL散度,因为KL散度可以简单地从最大似然估计推导出来,因此下文详细地以GAN为例利用MLE推导KL散度的表达式。KL散度与交叉熵紧密相关,KL散度是另一个在机器学习中用来衡量相似度的量:从q到p的KL散度如下:D_KL(p
q)。在贝叶斯推理中,DKL(p
q)衡量当你修改了从先验分布q到后验分布p的信念之后带来的信息增益,或者换句话说,就是用后验分布q来近似先验分布p的时候造成的信息损失。例如,在训练一个变分自编码器的隐藏空间表征时就使用了KL散度。KL散度可以用熵和交叉熵表示:交叉熵衡量的是用编码方案q对服从p的事件进行编码时所需bit数的平均值,而KL散度给出的是使用编码方案q而不是最优编码方案p时带来的额外bit数。从这里我们可以看到,在机器学习中,p是固定的,交叉熵和KL散度之间只相差一个常数可加项,所以从优化的目标来考虑,二者是等价的。而从理论角度而言,考虑KL散度仍然是有意义的,KL散度的一个属性就是,当p和q相等的时候,它的值为0。KL散度有很多有用的性质,最重要的是它是非负的。KL散度为0当且仅当P和Q在离散型变量的情况下是相同的分布,或者在连续型变量的情况下是『几乎处处』相同的。因为KL散度是非负的并且衡量的是两个分布之间的差异,它经常被用作分布之间的某种距离。然而,它并不是真的距离因为它不是对称的:对于某些P和Q,D_KL(P
Q)不等于D_KL(Q
P)。这种非对称性意味着选择D_KL(P
Q)还是D_KL(Q
P)影响很大。在李弘毅的讲解中,KL散度可以从极大似然估计中推导而出。若给定一个样本数据的分布P_data(x)和生成的数据分布P_G(x;θ),那么GAN希望能找到一组参数θ使分布P_g(x;θ)和P_data(x)之间的距离最短,也就是找到一组生成器参数而使得生成器能生成十分逼真的图片。现在我们可以从训练集抽取一组真实图片来训练P_G(x;θ)分布中的参数θ使其能逼近于真实分布。因此,现在从P_data(x)中抽取m个真实样本{^1,^2,…,^},其中符号「^」代表上标,即x中的第i个样本。对于每一个真实样本,我们可以计算P_G(x^i;θ),即在由θ确定的生成分布中,x^i样本所出现的概率。因此,我们就可以构建似然函数:其中「∏」代表累乘、P_G(x^i;θ)代表第i个样本在生成分布出现的概率。从该似然函数可知,我们抽取的m个真实样本在P_G(x;θ)分布中全部出现的概率值可以表达为L。又因为若P_G(x;θ)分布和P_data(x)分布相似,那么真实数据很可能就会出现在P_G(x;θ)分布中,因此m个样本都出现在P_G(x;θ)分布中的概率就会十分大。下面我们就可以最大化似然函数L而求得离真实分布最近的生成分布(即最优的参数θ):在上面的推导中,我们希望最大化似然函数L。若对似然函数取对数,那么累乘∏就能转化为累加∑,并且这一过程并不会改变最优化的结果。因此我们可以将极大似然估计化为求令log[P_G(x;θ)]期望最大化的θ,而期望E[logP_G(x;θ)]可以展开为在x上的积分形式:∫P_data(x)logP_G(x;θ)dx。又因为该最优化过程是针对θ的,所以我们添加一项不含θ的积分并不影响最优化效果,即可添加-∫P_data(x)logP_data(x)dx。添加该积分后,我们可以合并这两个积分并构建类似KL散度的形式。该过程如下:这一个积分就是KL散度的积分形式,因此,如果我们需要求令生成分布P_G(x;θ)尽可能靠近真实分布P_data(x)的参数θ,那么我们只需要求令KL散度最小的参数θ。此外,我们可以将KL散度的积分形式转换为我们熟悉的KL散度表达式:在离散型变量的情况下,KL散度衡量的是,当我们使用一种被设计成能够使得概率分布Q产生的消息的长度最小的编码,发送包含由概率分布P产生的符号消息时,所需要的额外信息量。在机器学习中的使用你或许疑问,这里的熵和机器学习是如何相关的。下面我们看一下一些具体的领域。贝叶斯学习首先,上面描述的高斯分布的例子是很重要的,因为在机器学习应用中,高斯分布是一个很常见的建模选择。机器学习的目标就是减少熵。我们希望做一些预测,而且我们必须对自己的预测比较确定。而熵正好可以用来衡量这个置信度。在贝叶斯学习中,经常假设一个先验分布具有较宽广的概率密度函数,这反映了随机变量在观测之前的不确定性。当数据来了以后,熵会减小,并且让后验分布在最可能的参数值周围形成峰值。决策树学习在决策树的学习算法中,一般包含了特征选择、决策树的生成与决策树的剪枝过程。决策树的特征选择在于选取对训练数据有分类能力的特征,而通常特征选择的准则是信息增益或信息增益比。在李航的统计学习方法中,一般熵H(Y)与条件熵H(Y
X)之差可以称为互信息(MutualInformation),决策树学习中的信息增益等价于训练数据中类与特征的互信息。若给定训练数据集D和特征A,经验熵H(D)表示对数据集D进行分类的不确定性。而经验条件熵H(D
A)表示在特征A给定的条件下对数据集D进行分类的不确定性。那么它们的差,即信息增益,就表示由于特征A而使得对数据集D的分类的不确定性减少的程度。显然,对于数据集D而言,信息增益依赖于特征,不同的特征往往具有不同的信息增益。信息增益大的特征具有更强的分类能力。根据信息增益准则的特征选择方法是:对训练数据集(或子集)D,计算其每个特征的信息增益,并比较它们的大小,选择信息增益最大的特征。因此在决策树学习中,熵被用来构建树。通过将数据集S根据可能的「最佳」属性分成一些子数据集,从根节点开始构建决策树,「最佳」属性也就是能够将得到的子数据集的熵最小化的属性。这个过程被递归地重复,直到没有更多的属性来分割。此过程被称为ID3算法,由此可见ID3算法的核心是在决策树各个结点上应用信息增益准则选择特征,递归地构建决策树。分类不管是在二分类问题还是多分类问题中,交叉熵是logistic回归和神经网络中的标准损失函数。通常,p是真实分布,q是模型描述的分布。让我们来看一个二分类logistic回归中的一个例子。两个类别的标签分别是0和1,logistic模型给每一个输入赋予以下概率:q_(y=1)=y_hat,q_(y=0)=1-y_hat。这个可以简写为q∈{y_hat,1y_hat}。尽管真实标签是精确的0和1,但是这里还是写成p∈{y,1y},因此不要被这个表达方式搞混。在这个标记下,每个样本的真实值和估计分布之间的交叉熵如下:当它被作为一个损失函数使用的时候,我们用的是N个样本的交叉熵均值,结语以上基本上来说就是机器学习中所涉及的信息论基础,虽然我们并不怎么使用信息论中关于消息长度的解释,但机器学习主要使用用信息论的一些关键思想来描述概率分布或者量化概率分布之间的相似性。信息论是我们构建损失函数随必须要考虑的,而且它的对数形式很容易与输出单元一般采用的指数形式相结合而提高学习的效率。此外,现代深度网络的成功与最大似然估计的流行,很大程度是因为有像信息熵那样对数形式的损失函数而取得极大的提升。原文链接:本文为机器之心编译,转载请联系本
转载请注明:http://www.aideyishus.com/lkyy/8532.html