想象你是一家盲盒餐厅的主厨。客人只给了你两条信息:不吃香菜、别太辣。除此之外,你对他们的口味一无所知。这时候要设计一份“惊喜套餐”,你会怎么做?最稳妥的做法,是让菜单里每一道菜出现的可能性尽量均等——不偏爱红烧肉,也不冷落清蒸鱼。等客人再多说一句“偏爱甜口”,你才稍微提高甜味菜的权重,但其他菜仍保留最大的出场空间。 这个思路,就是“最大熵原理”:在已知约束下,选择信息熵最大、也就是最均匀、最不做额外假设的那一个概率分布。你能确定的规则越少,剩下的可能性就越要保持“一视同仁”。这篇文章会带你从信息熵出发,逐步推导出指数族分布、最大熵模型,以及它在自然语言处理中的经典应用。学完之后,你会明白“均匀”不是退让,而是一种充满数学保证的智慧。

岗位关联

对 AI 从业者而言,最大熵原理是连接概率建模与机器学习的桥梁:它解释了为什么 softmax、逻辑回归和高斯分布如此常见,也让“最少假设”变成可计算的优化目标。

目录
  1. 可视化演示
  2. 信息熵回顾
  3. 最大熵思想
  4. 约束与变分
  5. 指数族分布
  6. 经典特例
  7. 对偶推导
  8. 最大熵模型
  9. 应用与局限
  10. AI 应用场景
  11. Python 演示
  12. 常见误区
  13. 面试题

可视化演示

展示最大熵原理的熵最大化选择、拉格朗日推导指数族分布与最大熵NLP分类器应用,点击按钮切换不同维度。

本节配有交互动效(进入视口后自动加载,约 3KB)。

最大熵原理:约束下选熵最大的分布 满足已知约束的所有分布中选熵最大的 熵最大等价于引入最少额外假设最客观 H(p) = -Σ p(x) log p(x) → max 最大熵原理是最少假设原则的数学表达

信息熵回顾

主厨设计盲盒菜单时,最怕“拍脑袋”。如果你完全不知道客人口味,却硬把所有机会都押给麻辣小龙虾,那就等于在凭空制造惊喜或投诉。更好的办法,是让每一道候选菜都享有大致相同的出场机会。这种“还没拿定主意”的程度,在信息论里就叫不确定性,数学上用信息熵去度量。

假设随机变量 $X$ 有 $n$ 种取值,第 $i$ 种取值的概率是 $p_i$。熵的定义是:

所以,盲盒主厨的直觉“完全没信息就均分”,其实就是在做一次熵最大化。后面你会看到,这个直觉可以被严格推广到“知道一点点约束”的情形。

H(p)=−∑i=1npilog⁡pi\displaystyle H(p)=-\sum_{i=1}^{n}p_i\log p_i
熵可以理解成“菜单的平均惊讶程度”:每种可能越难猜,熵越高;越确定,熵越低。
  1. 概率分布$p_1,\dots,p_n$ 像一个菜单上每道菜被选中的份额,加起来必须等于 1。
    ∑i=1npi=1\displaystyle \sum_{i=1}^{n}p_i=1
  2. 单个结果的惊讶度$-\log p_i$ 表示看到结果 $i$ 时的惊讶量,概率越小惊讶越大。
    −log⁡pi\displaystyle -\log p_i
  3. 求期望把每个结果的惊讶度按概率加权平均,得到平均不确定性。
    Ep[−log⁡p]=∑ipi(−log⁡pi)\displaystyle \mathbb{E}_{p}[-\log p]=\sum_{i}p_i(-\log p_i)
  4. 等概率时最大当所有 $p_i$ 都等于 $1/n$,没有任何偏好,熵达到最大值 $\log n$。
    pi=1n⟹H(p)=log⁡n\displaystyle p_i=\frac{1}{n}\quad\Longrightarrow\quad H(p)=\log n

最大熵思想

主厨现在收到两条硬性约束:菜品不能含花生,不能太辣。除此之外,客人的其他偏好仍然是个谜。你依然不应当额外假设“他们爱吃烤鸭”或“他们一定不吃甜的”。正确的做法,是让所有符合那两条规则的菜单组合尽量均等地占据概率空间。

这个原则就叫最大熵原理:在满足已知约束的所有概率分布中,选择熵最大的那一个。它也被称为“信息上的奥卡姆剃刀”,因为它的精神是:如无必要,勿增假设。数学上写作:

如果已知约束为空,$\mathcal{P}$ 包含所有分布,$p^{*}$ 就是均匀分布;如果约束逐渐增多,$\mathcal{P}$ 变小,$p^{*}$ 就会在约束允许的范围内尽量保持平坦。

p∗=arg⁡max⁡p∈PH(p)\displaystyle p^{*}=\mathop{\arg\max}_{p\in\mathcal{P}}H(p)
这个式子是说:从所有可行的分布集合 $\mathcal{P}$ 里,挑出一个让熵最大的分布 $p^{*}$,它代表“最少假设”。
  1. 候选集合$\mathcal{P}$ 是所有满足已知约束(比如期望值、范围)的分布的集合。
    P={p:已知约束全部成立}\displaystyle \mathcal{P}=\{p:\text{已知约束全部成立}\}
  2. 目标函数$H(p)$ 是当前分布的不确定程度,也是我们要最大化的目标。
    H(p)=−∑xp(x)log⁡p(x)\displaystyle H(p)=-\sum_{x}p(x)\log p(x)
  3. argmax 操作$\mathop{\arg\max}$ 的含义是“找到使目标最大的那个 $p$”,而不是“最大值本身”。
    p∗=arg⁡max⁡p∈PH(p)\displaystyle p^{*}=\mathop{\arg\max}_{p\in\mathcal{P}}H(p)
  4. 最优解$p^{*}$ 就是约束内最均匀、最不武断的分布。
    p∗=“最中立的盲盒菜单”\displaystyle p^{*}=\text{“最中立的盲盒菜单”}

约束与变分

盲盒厨房有两类规则必须遵守。第一类是“概率总和定律”:所有菜被选中的概率加在一起必须等于 100%。第二类来自客人提供的外部信息,例如“平均口味甜度是 3.2 分”。这类信息通常写成期望值约束:$\sum_{x}p(x)x=m$。

要在这些约束下最大化熵,我们并不需要枚举所有分布。数学家发明了一个聪明的工具——拉格朗日乘子法:把“求带约束的最优分布”变成“求一个无约束函数的驻点”。构造拉格朗日函数:

解这个方程会发现:最优 $p_i$ 不再是一次次试出来的,而是由一个简洁的指数形式直接给出,这正是下一节的指数族分布。

L(p,μ,λ)=−∑ipilog⁡pi+μ(∑ipi−1)+λ(∑ipixi−m)\displaystyle \mathcal{L}\bigl(p,\mu,\lambda\bigr)=-\sum_{i}p_i\log p_i+\mu\Bigl(\sum_{i}p_i-1\Bigr)+\lambda\Bigl(\sum_{i}p_i x_i-m\Bigr)
拉格朗日乘子相当于“规则管家” $\mu$ 和 $\lambda$,每违反一条规则,就在目标里多算一笔罚金。
  1. 熵目标第一项就是我们要最大化的熵,不过带了个负号,所以最大化熵等价于最小化这一项。
    −∑ipilog⁡pi\displaystyle -\sum_{i}p_i\log p_i
  2. 归一化约束$\mu$ 负责保证所有概率加起来等于 1。
    μ(∑ipi−1)=0\displaystyle \mu\Bigl(\sum_{i}p_i-1\Bigr)=0
  3. 期望值约束$\lambda$ 负责保证模型计算的均值等于已知的 $m$。
    λ(∑ipixi−m)=0\displaystyle \lambda\Bigl(\sum_{i}p_i x_i-m\Bigr)=0
  4. 求导取极值对每个 $p_i$ 求偏导并令其为零,得到最优分布必须满足的方程。
    ∂L∂pi=0\displaystyle \frac{\partial\mathcal{L}}{\partial p_i}=0

指数族分布

把上一节的求导结果整理一下:最优分布 $p(x)$ 正比于一个指数函数。为了让概率加起来等于 1,需要除以一个归一化常数。这个最终形态被称为指数族分布,它是“在给定约束下尽可能均匀”这一问法的通用答案。

历史上,人们发现许多常见分布都属于指数族:正态、泊松、几何、二项分布等。它们之所以普遍,正是因为它们往往就是某一组约束下的最大熵分布。

\displaystyle p(x)=\frac{1}{Z(\lambda)}\exp\bigl(\lambda x\bigr),\qquadZ(\lambda)=\sum_{x}\exp\bigl(\lambda x\bigr)
如果把每种菜看成一个 $x$,$\lambda$ 就是“约束带来的倾斜力度”。$\lambda=0$ 时完全没有倾斜,分布退化为均匀分布。
  1. 指数因子$\exp(\lambda x)$ 来自拉格朗日求导后的直接结果,说明了每个取值 $x$ 的相对权重。
    exp⁡(λx)\displaystyle \exp(\lambda x)
  2. 配分函数$Z(\lambda)$ 把所有 $\exp(\lambda x)$ 加起来,作用是保证总概率恰好为 1。
    Z(λ)=∑xexp⁡(λx)\displaystyle Z(\lambda)=\sum_{x}\exp(\lambda x)
  3. 自然参数$\lambda$ 控制分布的形状,$\lambda>0$ 时分布偏向较大的 $x$,$\lambda<0$ 时偏向较小的 $x$。
    λ∈(−∞,+∞)\displaystyle \lambda\in(-\infty,+\infty)
  4. 充分统计量这里的 $x$ 就是约束中被“记录”的统计量,其他细节不再影响分布形状。
    p(x)∝exp⁡(λ⋅x)\displaystyle p(x)\propto\exp\bigl(\lambda\cdot x\bigr)

经典特例

主厨手里的信息每多一条,菜单形状就变化一次。变化规律很有意思:

  • 无约束:只知道菜品范围,不知道任何偏好,最大熵分布是均匀分布。
  • 均值约束:只知道平均口味偏甜或偏咸,最大熵分布是向右或向左倾斜的指数斜坡。
  • 均值 + 方差约束:既知道平均水平,又知道离散程度,最大熵分布会变成中间高、两边低的钟形,也就是高斯分布。

以均值 $\mu$ 和方差 $\sigma^2$ 为约束为例,最大熵分布正是:

从均匀到指数斜坡再到高斯,同一个原理在不同约束下长出了不同的形状。约束越多,能“均匀”的余地越小,熵也就越低。

p(x)∝exp⁡ ⁣(−(x−μ)22σ2)\displaystyle p(x)\propto\exp\!\left(-\frac{(x-\mu)^2}{2\sigma^2}\right)
高斯分布并不是“某个天才拍脑袋发明的”,它是在“只知道均值和方差”这种信息状态下最诚实、最不武断的选择。
  1. 均值约束$\mu$ 是分布的中心,相当于菜单整体口味的平均水平。
    E[X]=μ\displaystyle \mathbb{E}[X]=\mu
  2. 二次型惩罚$(x-\mu)^2$ 表示偏离中心越远,被分配到的概率越小。
    (x−μ)2\displaystyle (x-\mu)^2
  3. 方差缩放$\sigma^2$ 是离散程度,$\sigma$ 越大,分布越扁越平,熵越高。
    (x−μ)22σ2\displaystyle \frac{(x-\mu)^2}{2\sigma^2}
  4. 归一化补上 $\frac{1}{\sqrt{2\pi\sigma^2}}$ 后,积分正好等于 1。
    p(x)=12πσ2exp⁡ ⁣(−(x−μ)22σ2)\displaystyle p(x)=\frac{1}{\sqrt{2\pi\sigma^2}}\exp\!\left(-\frac{(x-\mu)^2}{2\sigma^2}\right)

对偶推导

“在约束下找分布”听上去像是一个无穷维的变分问题,很不好算。但如果把最优分布 $p^{*}$ 代回拉格朗日函数,沿着“对偶”思路走一步,你会惊喜地发现:问题变成了“调节参数 $\lambda$”的普通无约束优化。

化简后的对偶目标函数为:

这个对偶视角意义重大:最大熵问题被转化成了最大似然估计问题,梯度恰好是“模型期望 − 经验期望”。当两者相等时,模型不再增加任何多余假设。

g(λ)=log⁡Z(λ)−λm\displaystyle g(\lambda)=\log Z(\lambda)-\lambda m
原来的任务是“找一个分布”,现在的任务是“找一个权重 $\lambda$”。两者解得的最优分布完全一致。
  1. 对数配分函数$\log Z(\lambda)$ 来自把 $p^{*}$ 代回拉格朗日后的熵项与归一化项。
    log⁡Z(λ)\displaystyle \log Z(\lambda)
  2. 线性惩罚项$-\lambda m$ 吸收掉期望值约束,$m$ 是已知平均口味的数值。
    −λm\displaystyle -\lambda m
  3. 对偶问题最大化原始熵,等价于最小化 $-g(\lambda)$。
    min⁡λ(−log⁡Z(λ)+λm)\displaystyle \min_{\lambda}\bigl(-\log Z(\lambda)+\lambda m\bigr)
  4. 凸性保证$g(\lambda)$ 是关于 $\lambda$ 的凸函数,因此一定存在唯一最优解。
    g′′(λ)=Varp[X]≥0\displaystyle g''(\lambda)=\mathrm{Var}_{p}[X]\ge 0

最大熵模型

回到 AI 实战。文本分类、词性标注这类任务中,输入是句子 $x$,输出是标签 $y$。我们想学一个条件分布 $p(y|x)$,既要用特征刻画数据规律,又不想过分自信地忽略其他可能。于是把最大熵原理用到条件分布上,就得到了最大熵模型:

因此,最大熵模型并不是一个冷门模型——它就是逻辑回归的推广形态。很多深度学习分类器最后的 softmax 层,都在无意中继承了最大熵的思想。

p(y∣x)=1Z(x)exp⁡ ⁣(∑j=1Jλjfj(x,y))\displaystyle p(y\mid x)=\frac{1}{Z(x)}\exp\!\Bigl(\sum_{j=1}^{J}\lambda_j f_j(x,y)\Bigr)
这里的 $f_j(x,y)$ 像一个个“特征探测器”:比如“这个词是否全大写”“上一个标签是否是名词”。$\lambda_j$ 则是每个探测器的信任权重。
  1. 特征函数$f_j(x,y)$ 负责从句子和标签组合里抽取信号。
    fj(x,y)∈{0,1}\displaystyle f_j(x,y)\in\{0,1\}
  2. 线性加权把 $J$ 个特征得分乘以权重后求和,得到这个 $(x,y)$ 组合的原始分数。
    ∑j=1Jλjfj(x,y)\displaystyle \sum_{j=1}^{J}\lambda_j f_j(x,y)
  3. 条件配分函数$Z(x)$ 对给定输入 $x$ 下的所有候选标签 $y$ 求和,完成归一化。
    Z(x)=∑yexp⁡ ⁣(∑jλjfj(x,y))\displaystyle Z(x)=\sum_{y}\exp\!\Bigl(\sum_{j}\lambda_j f_j(x,y)\Bigr)
  4. 整体形状这个表达式本质上就是多分类 softmax。
    p(y∣x)=exp⁡(score(x,y))∑y′exp⁡(score(x,y′))\displaystyle p(y\mid x)=\frac{\exp(\text{score}(x,y))}{\sum_{y'}\exp(\text{score}(x,y'))}

应用与局限

主厨把道理带进了真实餐厅:文本分类、垃圾邮件识别、词性标注和命名实体识别,都能用最大熵模型搭起一个漂亮的概率框架。但开业之后问题也来了:真实特征极其稀疏,一个词可能只出现在少数句子中;参数训练通常要通过迭代缩放或梯度类方法反复调整,收敛很慢。数学上,训练迭代的核心梯度可以写成:

最大熵模型不是万能的。它擅长“不做假设”,但它并不承诺“准确率最高”;当特征之间高度相关、数据稀少时,它同样会过拟合。现代深度学习虽然换上了更复杂的网络结构,但 softmax 输出层下的那颗“尽量均匀、最少假设”的心脏,始终还在跳动。

∂∂λjlog⁡Z(λ)=Ep[fj]−Ep~[fj]\displaystyle \frac{\partial}{\partial\lambda_j}\log Z(\lambda)=\mathbb{E}_{p}[f_j]-\mathbb{E}_{\tilde{p}}[f_j]
这个式子说明:每更新一步权重,模型期望特征要往数据经验特征的方向靠近一小步。残差归零时,训练完成。
  1. 对数配分函数求导$\log Z(\lambda)$ 对 $\lambda_j$ 的导数,等于模型分布下的特征期望。
    ∂log⁡Z∂λj=Ep[fj]\displaystyle \frac{\partial\log Z}{\partial\lambda_j}=\mathbb{E}_{p}[f_j]
  2. 模型期望$\mathbb{E}_{p}[f_j]$ 是当前模型预测出的特征平均出现次数。
    Ep[fj]=∑xp(x)fj(x)\displaystyle \mathbb{E}_{p}[f_j]=\sum_{x}p(x)f_j(x)
  3. 经验期望$\mathbb{E}_{\tilde{p}}[f_j]$ 是训练数据里特征的平均出现次数。
    Ep~[fj]=1N∑n=1Nfj(xn)\displaystyle \mathbb{E}_{\tilde{p}}[f_j]=\frac{1}{N}\sum_{n=1}^{N}f_j(x_n)
  4. 平衡条件梯度为零意味着模型期望等于经验期望,约束被完美满足。
    Ep[fj]=Ep~[fj]\displaystyle \mathbb{E}_{p}[f_j]=\mathbb{E}_{\tilde{p}}[f_j]

AI 应用场景

垃圾邮件文本分类

阶段:判别式概率建模

解决的问题:传统规则过滤垃圾邮件需要人工维护上千条正则规则,长尾特征永远补不完。最大熵模型把“出现免费”“包含链接”“发件人陌生”等信号编码成特征函数,在约束下自动学习权重,既拟合已知规律,又不对未见模式妄加猜测。

具体案例:某邮箱系统采集百万封已标注邮件,定义 $f_1$=是否含“中奖”,$f_2$=是否含可疑链接,$f_3$=发送频率等 50 个特征;训练一个条件最大熵模型,预测 $p(\text{垃圾}|\text{邮件})$。模型上线后拦截率提升 18%,误杀率反而下降。

词性标注与命名实体识别

阶段:序列标注与结构化预测

解决的问题:孤立判断一个词的词性容易出错,比如“苹果”既是水果也是品牌。最大熵模型可以把前后词、词形、大小写、共现词等组合成特征约束,在整句上下文下给出概率最大的标签序列。

具体案例:对句子“苹果发布了新手机”,特征函数同时检查“当前词是否为专有名词”“前一个词是否为动词”“下一词是否为名词”等。模型给每个标签候选打分,再用 softmax 归一化,最终准确识别出“苹果”是组织名而非水果。

Python 演示

python34 行
"""最大熵原理演示:已知离散随机变量 X 的取值为 {0,1,2,3,4,5},约束 E[X]=mu,求熵最大的分布。"""import math  def maxent_on_support(xs, mu):    """用二分法解 lambda,使 p(x) ~ exp(lambda*x) 的均值等于 mu。"""    lo, hi = -50.0, 50.0    for _ in range(200):        lam = (lo + hi) / 2.0        z = sum(math.exp(lam * x) for x in xs)        mean = sum(x * math.exp(lam * x) for x in xs) / z        if mean < mu:            lo = lam        else:            hi = lam    lam = (lo + hi) / 2.0    z = sum(math.exp(lam * x) for x in xs)    ps = [math.exp(lam * x) / z for x in xs]    ent = -sum(p * math.log(p) for p in ps)    return lam, ps, ent  if __name__ == "__main__":    xs = [0, 1, 2, 3, 4, 5]    mu = 3.2    lam, ps, ent = maxent_on_support(xs, mu)    print("lambda =", round(lam, 6))    print("p      =", [round(p, 6) for p in ps])    print("E[X]   =", round(sum(x * p for x, p in zip(xs, ps)), 6))    print("H(p)   =", round(ent, 6))
目的:在仅知道期望均值的约束下,用二分搜索求出最大熵分布,直观看到“尽量均匀但仍满足约束”的指数斜坡。
  1. lam = (lo + hi) / 2.0每次迭代把拉格朗日乘子 $\lambda$ 折半搜索,二分法保证收敛。
  2. z = sum(math.exp(lam * x) for x in xs)计算配分函数 $Z(\lambda)$,用于归一化。
  3. mean = sum(x * math.exp(lam * x) for x in xs) / z计算当前 $\lambda$ 下的模型均值。
  4. if mean < mu:若当前均值小于目标,说明 $\lambda$ 应调大。
  5. ps = [math.exp(lam * x) / z for x in xs]按指数族形式生成最终最大熵分布。
  6. ent = -sum(p * math.log(p) for p in ps)计算最终分布的熵,验证它在约束内达到最高。

常见误区

误区我听说最大熵原理就是“越均匀越好”,所以学完以后不管有没有约束,都把每个类别的概率设成一样的。

正解均匀是“没有任何约束”时的结果。只要引入约束,比如“平均口味值必须是 3.2”,分布就必须满足这个条件。最大熵是指在所有满足约束的分布里选熵最大的那个,而不是无视约束强行均匀。厨师会把甜味比例调高,但其余口味仍尽力保持开放。

为何常见:标题里“知道越少越要均匀”让人只记住了“均匀”两个字,忽略了前提“已知约束下”。

误区模型学的特征越多,不是应该越“聪明”、越均匀吗?所以我以为增加约束会让熵越变越大。

正解约束本质上是删掉可行域中的自由度。每加一条“不能辣”,菜单空间就缩小一圈;熵通常只降不升。增加信息让系统更确定,而不是更随机。

为何常见:把“模型能力增强”和“不确定性增加”混为一谈,误以为“学到更多”等于“有更多可能”。

误区既然要最大化熵,是不是训练时要故意把预测结果打乱,让它更随机?

正解最大熵是一种选择分布的原则,不是随机采样手段。它是在约束下做凸优化,求出一个权重参数 $\lambda$,让模型对未知因素保持中性。它不添加随机扰动,也不会为了随机而随机。

为何常见:日常语言里“熵”常被理解成“混乱”,于是把熵最大化误当成“让过程更混乱”。

误区最大熵模型听起来是信息论里的高级东西,逻辑回归就是算 sigmoid,两个应该八竿子打不着。

正解条件最大熵模型 $p(y|x)\propto\exp(\sum_j\lambda_j f_j(x,y))$ 正是多分类逻辑回归的指数族形式。二分类时取 $y\in\{0,1\}$ 再化简,得到的就是 sigmoid 函数。两者是一家人。

为何常见:教材里常把逻辑回归放在“分类算法”,把最大熵放在“信息论”,割裂了它们共同的指数族出身。

面试题

Q1. 最大熵原理的核心思想是什么?

单选题 · easy

  • A.在已知约束下选择熵最大的分布← 正确答案
  • B.选择所有维度方差最大的方案
  • C.让每个特征尽量取到极小值
  • D.优先采用最简单的线性模型

答案:A。最大熵原理是在已知约束的分布集合里选熵最大者,代表“最少假设”。B 的方差与熵不是一回事;C 误解特征的意义;D 把奥卡姆剃刀简化成了“线性模型”,并不等价。

Q2. 对一个取值为 {1,2,3,4}、无任何约束的离散随机变量,最大熵分布是?

单选题 · easy

  • A.退化为一个固定常数取值
  • B.均匀分布,每个取值概率相等← 正确答案
  • C.几何分布的指数衰减形态
  • D.只在前两个取值各分一半

答案:B。没有任何约束时,主厨没有理由偏爱任何一个取值,所以四个概率都取 1/4,熵达到最大值 log4。其余选项都引入了额外假设。

Q3. 已知 X 取值范围为 {1,…,8},约束 E[X]=3.2,最大熵分布的形状最接近?

单选题 · mid

  • A.向右微升的指数斜坡形态← 正确答案
  • B.完全平坦的均匀直线形态
  • C.只在均值点放质量的退化
  • D.上下剧烈震荡的锯齿波形

答案:A。均值 3.2 小于无约束时的中点 4.5,所以 $\lambda<0$,指数族分布向左倾斜,形成向右微降的斜坡。它仍尽量平坦,但必须满足均值约束。

Q4. 配分函数在最大熵分布中起什么作用?

单选题 · mid

  • A.将概率之和标准化为单位一← 正确答案
  • B.决定特征函数的选择顺序
  • C.使熵直接降低到最小值
  • D.自动删除多余的约束条件

答案:A。$Z=\sum_x\exp(\lambda x)$ 是一个归一化常数,确保所有概率加起来等于 1。它不选特征、不降熵、不删约束。

Q5. 下面哪些情况会导致分布更均匀、熵更高?

多选题 · hard

  • A.删除一个已有的约束条件← 正确答案
  • B.加入一个全新的约束条件
  • C.约束设在与自然期望一致处← 正确答案
  • D.约束值推向支持域极值端点

答案:AC。删除约束会扩大可行域,熵不降反升。约束设在自然期望附近时,$\lambda\approx0$,分布接近均匀。B 收紧可行域,D 会拉大 $\lambda$,两者都会降低熵。

Q6. 在带均值约束的最大熵问题中,拉格朗日乘子 $\lambda$ 的真实含义是什么?

单选题 · mid

  • A.约束未被满足时承担的惩罚强度← 正确答案
  • B.训练阶段随机设定的学习率初值
  • C.保证条件分布归一化的常数项
  • D.特征空间中样本的维数数目

答案:A。$\lambda$ 是期望约束对应的乘子,它的大小决定分布向目标均值倾斜的程度。它不是学习率、不是归一化常数、更不是维度数。

Q7. 为什么说最大熵与最大似然在指数族中互为对偶?

多选题 · hard

  • A.对数配分函数求导可得模型期望← 正确答案
  • B.最大熵解可由最大似然估计获得← 正确答案
  • C.因为两者名称中都包含最大二字
  • D.对偶梯度是模型期望减经验期望← 正确答案

答案:ABD。$\partial\log Z/\partial\lambda=\mathbb{E}_p[f]$ 恰恰是训练中要用到的梯度,最大熵约束问题的解可以通过对训练数据做最大似然估计得到,梯度残差归零时模型期望等于经验期望。C 只是巧合的名称相似,不是数学原因。

Q8. 在最大熵模型 $p(y|x)=\exp(\sum_j\lambda_j f_j)/Z(x)$ 中,$Z(x)$ 的求和对象是?

单选题 · easy

  • A.对标签空间 Y 中所有候选标签求和← 正确答案
  • B.对训练样本集合中的全部样本求和
  • C.对特征空间 J 中所有特征权重求和
  • D.对输入空间 X 中的全部输入求和

答案:A。$Z(x)$ 是输入 $x$ 给定的条件下,对所有可能标签 $y$ 的原始分数求和,使概率在标签空间上归一化。它不遍历样本、特征或输入。

Q9. 以下关于最大熵模型局限的表述,正确的是?

单选题 · mid

  • A.特征多时参数训练通常迭代较慢← 正确答案
  • B.特征数量再多训练也无需迭代
  • C.熵约束太严必然导致严重过拟合
  • D.模型只能处理二分类的判别问题

答案:A。最大熵模型特征通常高维稀疏,训练需要迭代缩放或梯度类方法,特征多时收敛较慢。它支持多分类;过拟合主要来自特征冗余和数据稀疏,而不是“熵约束太严”。

Q10. 最大熵分布是给定约束下不确定性最大的分布,这种“不多做假设”的另一种准确表达是?

单选题 · extreme

  • A.对未知信息坚持分配最少先验意见← 正确答案
  • B.对未知信息尽可能增加先验意见
  • C.对已有约束条件选择直接地拒绝
  • D.对未知信息一律赋予零概率权重

答案:A。最大熵的含义是对未知信息保持中性,不额外添加先验意见,而不是拒绝已知约束,更不是给未知信息分配零概率或强加更多假设。零概率是一种极强的假设,恰与最大熵相反。