视频封面

视频元信息

  • 课程:吴恩达深度学习专项课程 · 序列模型(Sequence Models)· 第三周 序列模型与注意力机制
  • 小节:3.2 选择最有可能的句子(Picking the Most Likely Sentence)
  • 主题:机器翻译建模为条件语言模型,以及为什么不能用贪心搜索

内容摘要(TL;DR)

本节把机器翻译建模为条件语言模型:编码器(绿色)读取法语输入并输出表示,解码器(紫色)结构与语言模型几乎相同,只是不再以全零向量起步,而是以输入句子的编码表示起步。因此模型估计的是 P(英文翻译 | 法语输入)。做翻译时不能随机采样,而应寻找使该条件概率最大的句子 y。因为句子组合数呈指数级爆炸,无法穷举;而贪心搜索(每步只选当前最优词)并不保证全局最优,所以需要束搜索(beam search)这类近似搜索算法。


一、回顾:语言模型 [00:00]

要点:

  • 语言模型的作用是估计一个句子的概率,也可以用来生成新的句子。
  • 在生成式结构里,前一步的输出会作为下一步的输入(反馈连接)。

详细说明:

  • 转录中提到 X1、X2 等输入符号,其中 X2 实际上等于 Y1(或 Y2),即 Y1 是反馈回来的上一步输出。
  • 为了让幻灯片更简洁,吴恩达把 X1 简化为全零向量,X2、X3 等则直接使用上一步生成的前一个输出。
  • 理解:这就是标准的自回归(autoregressive)生成方式——把已生成的词不断喂回网络,逐个预测下一个词。

基础事实:语言模型 P(y1, y2, …, yTy) 通常被分解为各步条件概率的乘积,每一步都依赖之前已生成的词。


二、机器翻译模型:条件语言模型 [01:08]

要点:

  • 机器翻译模型与语言模型结构几乎相同,差别只在初始输入。
  • 语言模型从全零向量起步;机器翻译模型从编码网络对输入句子的表示起步。
  • 因此它被称为条件语言模型(conditional language model)。

详细说明:

  • 用颜色区分两部分:绿色表示编码器(encoder)网络,紫色表示解码器(decoder)网络。
  • 转录明确指出:紫色的解码网络看起来和上面的语言模型几乎一模一样。
  • 唯一区别:不再总是用全零向量起步,而是先有一个编码网络,对输入句子求出某种表示,然后用输入句子的表示来启动解码网络,而不是用全零表示。

推导:

  • 普通语言模型建模的是 P(任意英文句子)。
  • 机器翻译模型建模的是 P(英文翻译 | 法语输入),例如 P("Jane is visiting Africa in September" | "Jane visite l'Afrique en Septembre")。
  • 因为概率是在给定输入条件下求的,所以叫"条件"语言模型。

考点:条件语言模型与普通语言模型的唯一结构差异 = 解码器初始状态来自编码器对输入句子的表示,而非全零向量。


三、翻译时应该做什么:最大化而非采样 [02:42]

要点:

  • 给定法语输入,模型给出不同英文翻译各自的概率。
  • 不应该随机采样输出,而应寻找使条件概率最大的英文句子 y。
  • 采样可能得到不同质量的结果,甚至偶尔得到很差的翻译。

详细说明:

  • 设 X = 法语句子 "Jane visite l'Afrique en Septembre",模型给出各个英文翻译对应的概率。
  • 若从分布 P(y|x) 中随机采样:
    • 有时得到较好的翻译,如 "Jane is visiting Africa in September";
    • 有时得到略显生硬但不算太糟的翻译;
    • 有时纯属运气得到语序混乱的句子;
    • 偶尔甚至采样出非常糟糕的翻译。
  • 因此翻译任务的目标不是"随机生成一句话",而是找到一个英文句子 y,使该条件概率最大化。

理解:语言模型可以用于"生成"(采样,追求多样性),而机器翻译用于"求解"(搜索,追求最优)。同一个模型,两种使用范式。

易错点:把机器翻译当成"随机生成句子"来用,是常见误解。翻译的目标是 argmax P(y|x),而不是 sample。


四、为什么不用贪心搜索 [04:39]

要点:

  • 贪心搜索(greedy search)思路:每一步都选当前最可能的那个词。
  • 但逐步选最优 ≠ 整体最优,贪心搜索在序列生成中通常不奏效。
  • 真正想要的是整句联合概率最大的序列。

详细说明:

  • 贪心搜索是计算机科学中的经典算法:生成第一个词时,直接选条件语言模型下最可能的第一个词;选定后再选最可能的第二个词;再选最可能的第三个词,依此类推。
  • 我们真正想要的,是选出整段序列 y1, y2, …, yTy(带帽表示预测值),使整句的联合概率最大。
  • 但"先选最好的第一个词,再选最好的第二个词,再选最好的第三个词"这种做法并不真正有效。

推导(反例):

  • 考虑两句翻译:
    1. "Jane is visiting Africa in September."(更好、更简洁)
    2. "Jane is going to be visiting Africa in September."(不算太糟,但啰嗦,有多余的词)
  • 理想情况下,模型对第一句的 P(y|x) 更高。
  • 但如果算法已经选了前两个词 "Jane is":由于 "going" 是更常见的英文词,"Jane is going" 的概率可能反而高于 "Jane is visiting"。
  • 于是仅依据"前三个词概率最大"来选第三个词,很可能选中选项 2 的路径,最终得到整体更差的句子(以 P(y|x) 衡量)。

考点:贪心搜索的失败根源——局部最优不等于全局最优;常见词(如 going)的高频性会误导逐步决策。

思考:这是一个"短视"(myopic)问题的典型例子。每一步只看眼前一步的收益,忽略了这一步对后续所有步的影响。


五、组合爆炸与近似搜索 [07:18]

要点:

  • 英文句子的词组合数是天文数字(指数级)。
  • 因此穷举所有句子求最优 y 不可行。
  • 实际做法是使用近似搜索算法:不保证一定找到最优,但通常足够好。

详细说明:

  • 假设词典有 10000 个词,考虑长度最多 10 个词的翻译,则长度为 10 的句子共有 10000^10 种可能。
  • 这是一个巨大的句子空间,不可能逐一评估。
  • 因此最常见的做法是使用近似搜索算法(approximate search algorithm):
    • 它不保证成功,但会尝试选出使条件概率最大的句子 y;
    • 即使不保证找到真正最大化的 y,通常效果已经足够好。

考点:10000 词表 × 10 词长 → 10000^10 种句子,组合爆炸是必须用近似搜索的根本原因。

理解:束搜索(beam search)就是下一节要讲的近似搜索算法。它保留每步若干个最优候选(束宽 B),在计算量和搜索质量之间折中。


六、本节总结 [08:19]

要点:

  • 机器翻译可以表述为条件语言建模问题。
  • 与普通语言建模的关键区别:不是随机生成句子,而是寻找最可能的英文翻译。
  • 某语言的全部句子集合太大,无法穷举,必须借助搜索算法。
  • 下一节将学习束搜索(beam search)。

详细说明:

  • 本节核心逻辑链:语言模型 → 条件语言模型(编码器提供初始表示)→ 目标是 argmax P(y|x) → 采样不可取 → 贪心不可靠 → 组合爆炸 → 需要近似搜索 → 引出束搜索。

考点:本节是束搜索的前置铺垫,务必理解"为什么需要搜索算法"这一动机,而非死记结论。


关键术语对照

中文 英文 说明
语言模型 Language Model 估计句子概率,可生成新句子
条件语言模型 Conditional Language Model 给定输入条件下建模输出句子概率
编码器 Encoder 绿色部分,把输入句子编码为表示
解码器 Decoder 紫色部分,结构同语言模型
贪心搜索 Greedy Search 每步选当前最优词,不保证全局最优
束搜索 Beam Search 下一节的近似搜索算法
近似搜索算法 Approximate Search Algorithm 不保证最优,但通常足够好

关键标签 / 关键词

吴恩达深度学习 #序列模型 #机器翻译 #条件语言模型 #编码器解码器 #贪心搜索 #束搜索 #近似搜索 #组合爆炸 #argmax #P(y|x) #SequenceModels #BeamSearch #GreedySearch #ConditionalLanguageModel


生成时间:2026-10-11 00:21:40 生成平台:VideoNote www.xygy.top