01-语言模型+维特比

1. 什么是语言模型?

语言模型的目标是计算一个句子(或一串词序列)出现的概率。比如,判断"我爱你"和"爱我你"哪个更像人话。

  • 核心思想 :利用链式法则,一句话的概率等于每个词在给定前面所有词时出现概率的乘积。
    P(我, 爱, 你) = P(我) × P(爱|我) × P(你|我, 爱)

  • 实际简化(N-gram模型) :计算"条件概率"时,不可能回溯无限长的历史。通常假设一个词只与它前面的 N-1 个词相关。

    • Uni-gram (1-gram) :词与词完全独立。P(我,爱,你) ≈ P(我)P(爱)P(你) (不考虑上下文,效果差)
    • Bi-gram (2-gram) :只与前一个词相关。P(我,爱,你) ≈ P(我)P(爱|我)P(你|爱)
    • Tri-gram (3-gram):与前两个词相关。这是最常用的折中选择。
  • 应用:

    • 机器翻译 :译成"苹果很好吃"还是"苹果很吃好"?

2. 维特比算法------经典案例:词性标注

我们有一个隐马尔可夫模型(HMM),它由两部分构成:

  1. 转移概率:一个词性后面跟另一个词性的可能性。这部分由语言模型(通常是Bi-gram)提供。
  2. 发射概率:某个词性"产生"出当前单词的可能性。

任务 :给句子 "我 爱 编程" 标注词性 (我/代词,爱/动词,编程/名词)。

  1. 定义状态:词性集合 {代词, 动词, 名词, 形容词...}
  2. 定义观测:单词 {我, 爱, 编程...}
  3. 定义概率 :
    • 转移概率 (语言模型) :P(动词|代词) = 0.4, P(名词|动词) = 0.3...
    • 发射概率 :P(我|代词) = 0.8, P(爱|动词) = 0.9, P(编程|名词) = 0.7...
  4. 维特比算法执行过程 :
    • 初始化 (第1个词"我") :计算"我"是各种词性的概率。V(代词) = P(代词) × P(我|代词)。假设"代词"得分最高。
    • 迭代 (第2个词"爱") :对每个可能的当前词性(如"动词"),计算:
      上一最佳路径概率 × P(当前词性|上一词性) × P(爱|当前词性)
      关键 :假设上一词性是"代词"时分数最高,那么到达"动词"的最佳路径就是 ...代词→动词。其他如...名词→动词的路径就被丢弃。
    • 终止:处理完最后一个词后,回溯,得到整条最优路径:代词 → 动词 → 名词。

如果没有维特比 :枚举 代词/动词/名词,代词/名词/动词... 共27种,手工可行,但真实情况有上百种词性,句子有20个词时,组合数远超宇宙原子数。

有了维特比:每次只保留N条候选路径(N=词性个数),计算量线性增长,秒出结果。

总结与核心要点

概念 角色定位 解决的问题 输出
语言模型 定义"什么是合理的序列" (提供打分标准) 计算某条路径(词序列、词性序列)的合理程度。即 P(序列) 一个概率分数
维特比算法 寻找"得分最高的序列" (提供搜索方法) 在指数级爆炸的可能性中,高效找到全局最优路径。 最优的隐藏状态序列
相关推荐
机器学习之心11 分钟前
DCNN-PINN锂电池SOC估计,因果空洞卷积+物理信息神经网络,把库仑定律写进损失函数,MATLAB代码
人工智能·神经网络·matlab
信马堂4 小时前
WorkBuddy 接入第三方模型 API 全流程:安装与配置实录
人工智能·大模型·token·ai算力·workbuddy
朝朝辞暮i5 小时前
VLA 系统学习第 4 课:一个 Batch 进入神经网络后,模型到底是怎么“学会”的?
人工智能·python·神经网络·vla
IT古董5 小时前
《FDE前沿部署工程师实战教程》33 - Enterprise AI Observability:从Agent Trace到全链路智能运维
数据库·人工智能
xsd202411186 小时前
地网腐蚀AI识别算法全解析:从锈蚀图像到地下腐蚀快速定位
人工智能
oooost6 小时前
pytorch学习笔记2(transformer)
人工智能·机器学习
云杂项6 小时前
Exploring Model Inversion Attacks in the Black-box Setting(个人笔记)
人工智能
还卿一钵无情泪6 小时前
Unsloth 微调 构建自己的大模型 没有GPU也能微调
linux·开发语言·人工智能·python·大模型·nlp·unsloth
冬奇Lab7 小时前
LLM 驱动的自动化测试系列(06):移动端自动化(二)——DroidRun/Mobilerun 的角色级模型拆分
人工智能·测试
冬奇Lab7 小时前
一天一个开源项目(第230篇):HandRaw-Style —— 把 327 种手绘风格、165 种排版、36 种配色编号化,让 AI 画图不再每次都飘
人工智能·开源·资讯