Skip to content

搞英语 → 看世界

翻译英文优质信息和名人推特

Menu
  • 首页
  • 作者列表
  • 独立博客
  • 专业媒体
  • 名人推特
  • 邮件列表
  • 关于本站
Menu

负对数似然、交叉熵和 KL 散度的直观处理

Posted on 2025-06-16

过去几个月,我一直在撰写上一篇文章“ 用中学数学从零开始理解法学硕士”(LLM )的后续内容。下一篇文章旨在涵盖从零开始的强化学习,(希望)内容简单易懂(尽管我担心我得放宽中学数学的限制)。然而,今天早上我突然想到,那篇文章中用到的一些概念单独阅读起来可能很有趣。所以,我写了一篇关于对数似然、交叉熵和KL散度的文章。我知道,这远不如从零开始全面讲解强化学习那么令人兴奋,但这仍然是一项持续的使命。

负对数似然(NLL)

假设p ( x ) 是一个概率分布函数。其中, x可以是任意值,可以是数字、向量或其他不规则维度的对象。如果p是连续的,则意味着δ · p ( x ) 是从p中随机抽取的样本位于x的δ邻域内的概率,下面的求和将变成积分。现在,我们写下样本x的概率 = ( x _1 , x _2 , x _3 ,…, x_n ),其中有n 个观测值。我们做一个简化的假设,即从概率分布中抽取的每个样本都与另一个样本独立:

现在,现实世界的设定是,我们通常不知道真实的分布p 。我们拥有的是观测值x ,而我们真正想要做的是以某种方式概括世界的本质,以便我们能够通过从这些观测值x中学习来做出有用的预测。如果我们能算出p ,我们就搞定了。总结一下:

  • 我们所拥有的: x ,来自现实世界的观察结果
  • 我们想要的是: p ,产生观测值的潜在概率分布

由于现实世界无限复杂,这几乎是徒劳的。但是,我们能否恢复一个更简单的世界模型,以便做出一些相关的预测呢?我们将这个分布称为q ,基本上,我们会对q进行迭代,并尝试使其尽可能接近p 。如果q是世界的真实状态,那么x在q下的概率将是:

现在,我们可以对q进行迭代,以最大化这个概率,并将我们假设的世界模型与我们实际观察到的情况对齐,并希望q能够很好地近似p 。在这种情况下,由于我们正在迭代q并且x是固定的,我们也可以将此概率解释为“假设x是我们在现实中观察到的,那么q是世界真实状态的可能性”。这使我们能够将世界视为一个固定的参考点,并调整q以与现实保持一致。这通常写为

数学根本没有改变,这只是一个解释的问题。一个实际的考虑是,这些概率可能很小,因此将它们相乘通常会导致非常小的数字(例如,如果 LLM 词汇量为 32k,则每个标记的概率可以是 1/32k = 3.13e-5,如果您有一个包含 10 个标记的句子,则将这些标记相乘 10 次就会得到大约 e-50)。为了使计算易于管理,我们可以取对数,它也具有乘积将变成总和的好属性(例如,另一方面,log(1/32k) = -10.37,并且更容易管理 – 这里的底数是e )。由于对数是严格单调增函数,我们可以最大化概率的对数而不是概率,这将等同于同一事情。现在,由于概率始终小于 1,因此对数值将始终为负数。如果我们把所有值都乘以负号,把所有对数值都变成正数,会怎么样呢?这会产生一个奇妙的副作用,那就是最大化问题现在变成了最小化问题。所以,在寻找一个好的q 值时,我们真正要做的就是最小化负对数似然(NLL):

需要注意的是,任何q的 NLL 都不会低于真实分布p的 NLL(我们在此不做证明)。我们真正要做的是让q的 NLL 尽可能接近真实分布p的 NLL。我们看到:

低 NLL ≃ 高可能性 ≃ 高概率

交叉熵

为了理解交叉熵,我们先来直观地了解一下熵。熵指的是系统中“随机性”的程度。例如,假设世界遵循分布p (当然,我们不知道p的具体值,但我们假设它存在),我们之前已经记下了样本x的概率。如果我们问“从 p 中抽取一个平均样本的概率是多少?”——这能很好地衡量随机性吗?如果p是确定性的,那么我们总是会得到相同的输出,并且该输出的概率为 1。另一方面,如果p可以取很多随机值,那么每个值的概率可能很小。因此,“平均样本”出现的概率很低。由于我们喜欢取负对数来简化问题,所以我们用这些概率的对数来表示。所以我们真正想要得到的是:

其中和是所有可能的x的和。例如,考虑一次公平的抛硬币和一次公平的掷六面骰子。对于每个x ,抛硬币的熵为p(x)=1/2 ,这里的熵为 2×(1/2 × log(1/2)) = 0.69。对于每个x ,掷骰子的熵为p(x)=1/6 ,这里的熵为 6×(1/6 × log(1/6)) = 1.79。因此,掷骰子的熵更高是有道理的。

因此,熵仅仅是系统真实分布的 NLL 的期望值。如果熵接近于零(因此 NLL 也接近于零),你就能相当确定地知道p 的值。实际上,这意味着,如果你抽取一个样本,没有发现太多随机性(例如,太阳几千年来一直从东方升起),你就可以相当确定底层分布p的值(即,太阳明天应该从东方升起)。另一方面,如果概率很低,你对p的值就没有信心了。

低 NLL ≃ 高可能性 ≃ 高概率 ≃ 高确定性 ≃ 低随机性

现在,由于实际上我们并不知道p 的真实值,我们试图计算q的 NLL,然后最小化它以尽可能接近p 。在此过程中,我们实际上是使用来自现实世界的样本来计算 NLL。这些样本取自现实世界的真实分布——p 。因此,如果我们要计算我们试图优化的 NLL 的预期值,那就是交叉熵,结果会是这样的:

所以,基本上,熵测量的是抽样时真实分布的预期 NLL,而交叉熵测量的是抽样时近似分布的预期 NLL。交叉熵永远不会小于熵,这一事实源于我们上文关于 NLL 的评论,但我们不会在本文中证明这一点。你真正想要的是最小化交叉熵值,使其尽可能接近熵,从而使q接近真实分布p 。

但是,由于真实分布p未知,你无法真正计算交叉熵。所以你只能用观察到的样本来近似计算。例如,如果我们有一个样本x_1 ,x_2 ,…,x_n ,那么我们假设它们在真实分布下的概率p ( x_i ) = 1(因为这就是我们观察到的),并计算交叉熵,它当然与q的 NLL 相同(因为我们首先通过对 NLL 取期望来获得交叉熵)。

因此,当我们使用交叉熵损失时,我们实际上使用的是模型q的 NLL。我不明白为什么我们不更常将损失称为 NLL,而要称为交叉熵,因为后者更准确地描述了正在计算的损失。但机器学习从业者确实会用一些不必要的复杂方式和词语来描述简单的概念。

KL散度

现在我们理解了熵和交叉熵,KL散度就相当容易理解了。它只是交叉熵和熵之间的差异:

KL 散度衡量的是近似分布q下的预期 NLL 比真实分布p下的预期 NLL 高出多少。本质上,KL 散度是指当真实分布为p时,假设世界行为类似于q ,我们需要额外付出多少(以 NLL 为单位)。由于系统的熵是固定的,因此最小化交叉熵与最小化 KL 散度是同一回事。

原文: https://rohit-patel.medium.com/an-intuitive-treatment-of-negative-log-likelihood-cross-entropy-and-kl-divergence-553f2ea25f07?source=rss-9934e7726dba——2

本站文章系自动翻译,站长会周期检查,如果有不当内容,请点此留言,非常感谢。
  • Abhinav
  • Abigail Pain
  • Adam Fortuna
  • Alberto Gallego
  • Alex Wlchan
  • Answer.AI
  • Arne Bahlo
  • Ben Carlson
  • Ben Kuhn
  • Bert Hubert
  • Bits about Money
  • Brian Krebs
  • ByteByteGo
  • Chip Huyen
  • Chips and Cheese
  • Christopher Butler
  • Colin Percival
  • Cool Infographics
  • Dan Sinker
  • David Walsh
  • Dmitry Dolzhenko
  • Dustin Curtis
  • Elad Gil
  • Ellie Huxtable
  • Ethan Marcotte
  • Exponential View
  • FAIL Blog
  • Founder Weekly
  • Geoffrey Huntley
  • Geoffrey Litt
  • Greg Mankiw
  • Henrique Dias
  • Hypercritical
  • IEEE Spectrum
  • Investment Talk
  • Jaz
  • Jeff Geerling
  • Jonas Hietala
  • Josh Comeau
  • Lenny Rachitsky
  • Liz Danzico
  • Lou Plummer
  • Luke Wroblewski
  • Matt Baer
  • Matt Stoller
  • Matthias Endler
  • Mert Bulan
  • Mostly metrics
  • News Letter
  • NextDraft
  • Non_Interactive
  • Not Boring
  • One Useful Thing
  • Phil Eaton
  • Product Market Fit
  • Readwise
  • ReedyBear
  • Robert Heaton
  • Rohit Patel
  • Ruben Schade
  • Sage Economics
  • Sam Altman
  • Sam Rose
  • selfh.st
  • Shtetl-Optimized
  • Simon schreibt
  • Slashdot
  • Small Good Things
  • Taylor Troesh
  • Telegram Blog
  • The Macro Compass
  • The Pomp Letter
  • thesephist
  • Thinking Deep & Wide
  • Tim Kellogg
  • Understanding AI
  • 英文媒体
  • 英文推特
  • 英文独立博客
©2025 搞英语 → 看世界 | Design: Newspaperly WordPress Theme