共同基金定理与协方差定价,共同基金定理的陈述哪个是正确的

  

  机器心脏编译   

  

  参与:李志伟、Geek AI   

  

  甘并不是唯一的一代楷模。本教程讨论的是数学中最直接的生成模型(容易处理的密度估计模型)。看完这篇文章,你就知道如何定量比较似然模型了。散度最小化:生成模型的一般框架   

  

  生成模型(其实都是统计机器学习模型)是为了从一些(可能是条件的)概率分布p(x)中采样局部数据,学习逼近p(x)的模型p(x)。建模过程允许我们根据给定的原始数据推断观察到的信息。以下是通过生成模型可以实现的各种操作:   

  

  从p(x)中取一个新样本,学习并解释观测值x的分层潜变量Z,可以对潜变量进行干预,查看干预分布p_(x|do(z))。请注意,这仅在您的条件分布对正确的因果关系zx建模时有效,并且我们假设可忽略性成立。在我们的模型分布下查询新数据点X '的可能性,从而检测异常。   

  

  由于我们可以将分类和回归问题解释为学习生成模型的过程,因此对条件分布建模具有更直接的应用:   

  

  机器P(英语翻译句子|法语句子)字幕P(字幕|图像)最小化均方误差min {1/2 (x ) 2}等回归目标函数在数学上等价于具有对角协方差的高斯分布的最大对数似然估计:max {1/2 (x ) 2}   

  

  为了使p(x)接近p(x),首先要提出两个分布之间距离的概念。在统计学中,更常见的是设计一个“距离”的弱概念,我们称之为“散度”。与几何距离不同,散度是不对称的(D(p,q)D(q,p))。如果我们可以定义概率分布之间的形式差异,我们可以尝试通过优化将其最小化。   

  

  我们可以定义各种散度D(p_||p),通常选择适合生成模型的算法的散度。这里,我们只列举其中的几个:   

  

  最大平均差(MMD)詹森-香农散度(JSD)库尔贝克-莱布勒散度(KLD)反向KLDKernelizedStein散度(KSD)Bregman散度Hyvrinen得分卡方散度散度   

  

  与几何距离不同,两个分布之间的散度不需要对称。通过对无限数据的无数次计算,所有这些散度给出了同一个答案,即D(p_||p)=0当且仅当p _ p,请注意,这些差异不同于感知评价指标(如Inception score),感知评价指标不能保证在高数据约束下收敛到同一结果(但如果你关注图像的视觉质量,这些指标是有用的)。   

  

  然而,大多数实验只涉及有限的数据和计算,因此选择测量非常重要,它实际上可以改变最终学习到的世代分布p_(x)的定性行为。例如,如果目标密度P是多峰的,模型分布Q的表达是弱的,最小化正向KL D_KL(p || q)将学习模式覆盖行为;而最小化反向KL D_KL(q||p)将导致模式丢弃。关于原因的更详细解释,请参考下面这篇博文:https://blog.evjang.com/2016/08/variational-bayes.html.   

  

  在最小化散度的框架下考虑生成模型是很有用的,因为它让我们可以仔细思考:我们对于训练的生成模型的要求是什么。可能是隐式密度模型(GAN),其中采样相对容易,但对数概率无法计算。它也可能是一个基于能量的模型,其中不可能进行采样,而(非标准化)对数概率很容易计算。   

  

  这篇博文将涉及使用最直接的指标(Kullback-Leibler散度)训练和评估的模型。这些模型包括自回归模型、归一化流和变分自编码器(近似)。优化KLD相当于优化对数概率,我们将在下一节推导出原因!   

  

  平均对数概率和压缩   

  

  我们想对一些数据生成随机过程的概率分布p(x)进行建模。一般来说,我们假设从足够大的数据集中采样与从真实数据生成过程中采样大致相同。例如,从MNIST数据集提取图像相当于从创建MNIST数据集的实际手写过程中提取样本。   

  

  给定一组独立且相同分布的测试图像x_1,从p(x)采样的x_N,以及由参数化的似然模型p_,我们希望最大化下面的目标函数:   

  

     

  

     

  

  由于我们实际上无法枚举所有的x_i,平均对数概率是真实似然P和模型似然p_之间负交叉熵的蒙特卡罗估计。简而言之,这意味着“最大化数据的平均似然”,或者等同于“最小化真实分布和模型分布之间的负交叉熵”。   

  

  通过一些代数运算,负交叉熵可以用KL散度(相对熵)求和   

p 的绝对熵重写:

  

香农(Shannon)的信源编码定理(1948)告诉我们,熵 H(p) 是你可以构造的任何编码的平均编码长度的下界,以无损地传递来自 p(x) 的样本。更大的熵意味着更大的「随机性」,这是无法压缩的。特别是,当我们使用自然对数 log_e 计算熵时,它采用「自然信息单位」(或简称 nat)。用 log_2 计算熵时,结果的单位是我们熟悉的「位」。H(p) 项与 θ 无关,因此最大化 L(θ) 实际上恰好等价于最小化 KL(p,p_θ)。这就是最大似然也被称为最小化 KL 散度的原因。

  

KL 散度 KL(p,p_θ) 或相对熵,是对来自 p(x) 的数据编码所需的「额外的 nat」的数量,该过程使用基于 p_θ(x) 的熵编码方案。因此,负交叉熵的蒙特卡罗估计 L(θ) 也用 nat 表示。

  

将二者放在一起,交叉熵只不过是使用基于 p_θ 的码本,传送来自 p 的样本所需的平均编码长度。无论(最优编码)如何,我们都会支付 H(p) nat 的「基本费用」,我们还会为 p_θ 与 p 的任何偏差支付额外的「精细的」KL(p,p_θ) nat。

  

我们可以用一种可解释性很强的方式比较两个不同模型的交叉熵:假设模型 θ_1 具有平均似然 L(θ_1),模型 θ_2 具有平均似然 L(θ_2)。减去 L(θ1)-L(θ2) 使得熵项 H(p) 抵消,最终得到 KL(p,p_(θ_1))-KL(p,p_(θ_2))。该数是「从 p_(θ_1) 转换到编码 p_(θ_2) 时需要支付的减少的惩罚值」。

  

表达能力,优化和泛化能力是一个良好的生成模型的三个重要特性,而似然则提供了可解释的度量,用来在我们的模型中调试这些属性。如果生成模型不能记忆训练集,则表明在优化过程(会卡住)或表达能力(欠拟合)的方面存在困难。

  

Cifar10 图像数据集包含 50,000 个训练样本,因此我们知道能完美地记忆数据的模型将为训练数据集中的每个图像分配恰好 1/50000 的概率质量,从而得到 log_2(1/50000) 的负交叉熵,或者说为每个图像分配 15.6 位(这与每个图像有多少像素无关!)。当然,我们通常不希望我们的生成模型过拟合这种极端情况,但在调试生成模型时,记住这个上限,作为一种检合理性检查是很有用的。

  

比较训练和测试似然之间的差异可以告诉我们,网络是在生硬地记忆训练集还是学习泛化到测试集的东西,或者在模型无法捕获的数据上是否存在语义上有意义的模式。

相关文章