【菜狗每日记录】隐马尔可夫模型、隐半马尔可夫、层次狄利克雷过程——20251209

目录

隐马尔可夫模型(HMM)

[🧠1、 生活化比喻](#🧠1、 生活化比喻)

[🚗 2、对应到驾驶](#🚗 2、对应到驾驶)

隐半马尔可夫模型(HSMM)

[🧠1、 生活化比喻](#🧠1、 生活化比喻)

[🚗 2、对应到驾驶](#🚗 2、对应到驾驶)

层次狄利克雷过程(HDP)

[🟩 1、DP(Dirichlet Process)是什么?](#🟩 1、DP(Dirichlet Process)是什么?)

[通俗解释 DP](#通俗解释 DP)

[🟩 3、HDP 是什么?(生活化解释)](#🟩 3、HDP 是什么?(生活化解释))

[① 全局菜单 G₀(所有人共享)](#① 全局菜单 G₀(所有人共享))

[② 每个人自己的菜单 Gᵢ(每位驾驶员的风格)](#② 每个人自己的菜单 Gᵢ(每位驾驶员的风格))


一、隐马尔可夫模型(HMM)

系统在不同"隐藏状态"之间转换,每个状态产生可观察数据。

🧠1、 生活化比喻

假设你隔着门听一个人在屋里运动,你只能听到声音,但看不到动作。

屋里可能有三种"动作状态":

  1. 跑步

  2. 走路

  3. 静止

这些动作看不见 → 隐藏状态(Hidden State)

你能听到什么?

  • 跑步 = "哒哒哒"

  • 走路 = "踏...踏..."

  • 静止 = "无声"

这些声音就是 观测值(Observation)

并且:

  • 如果他现在在跑,很可能下一秒仍然在跑(状态会延续)

  • 但也可能切换到走路状态

所以 HMM 就是:

"一个你看不到的状态序列,在背后支配你能观察到的数据。"


🚗 2、对应到驾驶

隐藏状态 = 驾驶 primitive(比如 closing-in、keeping、falling-behind)

可观测数据 = 车距、相对速度、加速度

你看不到驾驶员的"心理状态",但能看到车的行为。

HMM 就是把"行为序列"分解成若干隐藏的"动作块"。


二、隐半马尔可夫模型(HSMM)

👉 核心:每个隐藏状态有"持续时间"。

HMM 有个很不现实的问题:

默认每一帧都有可能切状态。也就是说"一个动作只能持续一帧"。

这非常不符合驾驶、人类行为等现实情况。


🧠1、 生活化比喻

HMM 认为:

  • 跑步 → 下秒可能马上走路 → 再下一秒马上静止

但真实情况是:

  • 跑步至少要持续几秒

  • 走路也不会 0.1 秒就换一次状态

所以 HSMM 做了一个改进:

每个状态不仅有"状态名",还有"持续时间"。

比如:跑步持续 8 秒 → 走路持续 5 秒 → 静止 12 秒。


🚗 2、对应到驾驶

驾驶中一个 primitive(例如 closing in)通常持续 3~10 秒。HSMM 能真正刻画这种"阶段性行为"。


三、层次狄利克雷过程(HDP)

当你有多个序列(多个驾驶员、多段数据)要共享模式,又不想提前设定"有几个模式",HDP 就是完美方案。

🟩 1、DP(Dirichlet Process)是什么?

🔍 场景:你要做"模式发现"

比如你想发现:

  • 某驾驶员有多少个 driving primitives?

  • 每个 primitive 的位置/速度/加速度特征是什么?

  • primitive 数量未知且理论上可能无限

常规聚类(K-means、GMM)有个缺陷:

必须提前指定 K(类别数)。

但你不知道驾驶员到底有 5 种、10 种,还是 18 种 primitive。

于是 DP 出场了。


通俗解释 DP

想象:

  • 有一家餐厅,桌子无限多(= 模式数量无限)。

  • 第一个客人坐第一桌。

  • 第二个客人选择:

    • 坐已有桌子(概率 ∝ 已有人的数量)

    • 开一张新桌子(概率 ∝ 超参数 α)

结果就是:

  • 你不需要设定桌子数量(模式数量)

  • 由数据自动决定到底用了多少桌子(primitive 数)

也就是说:

DP 可以从"无限多模式"中自动选择实际需要的模式数量。

DP 的本质是一个"生成式过程(generative process)"。

它规定:

数据是这样产生的:
先从一个"类别分布 G"中抽取一个类别,再生成数据。而 G 自己来自一个 DP。

G ~ DP(α, H)

θ_n ~ G

x_n ~ F(θ_n)

  • G 是一个无限类别的菜单(由 DP 生成)

  • θₙ 是该数据点选了哪道菜(类别)

  • xₙ 是该类别生成的数据

DP 就是一个让"类别数量可以自动生长"的聚类机制。

当旧类别够用,就继续用旧的;当旧类别不能解释新数据,就新开一个。


🟩 3、HDP 是什么?(生活化解释)

把 HDP 想象成一个"两层结构的无限菜单系统"。


① 全局菜单 G₀(所有人共享)

G₀ 是一个"无限的菜品列表",比如:

复制代码
菜1:炒饭  
菜2:烤串  
菜3:拉面  
菜4:寿司  
菜5:披萨  
... 无限多

你不需要决定"这个菜单里有多少个菜",
HDP 会自己决定实际上用到哪些菜。

这就是"Dirichlet Process(DP)"的作用。

② 每个人自己的菜单 Gᵢ(每位驾驶员的风格)

虽然大家共享同一个"无限菜库",

但每个人的"点菜偏好"不同。

比如:

  • 驾驶员 A 喜欢"保持车距 + 温和加速"

  • 驾驶员 B 喜欢"激进接近 + 急刹"

  • 驾驶员 C 喜欢"巡航 + 偶尔跟车"

HDP 让每个人的 Gᵢ:

  • 从全局 G₀ 中抽取

  • 但抽到的权重不同(体现不同驾驶风格)

🟧 所以 HDP =(全体共享 + 个体偏好) + 无限可能类别

你可以理解成:

全体驾驶员共享同一套 primitive(驾驶模式),
但每位驾驶员使用这些 primitive 的频率不同。

这就是 HDP 的本质。


🟥 HDP 为什么如此重要?(特别在驾驶行为分析里)

驾驶行为模式本身具有三个特征:

✔(1)模式数量未知

我们不知道有几种 primitive:

  • 是 3 个?(closing / keeping / falling)

  • 是 10 个?(不同程度的加速/刹车)

  • 是 20 个?(微观变化更多)

✔(2)不同驾驶员使用的模式不同

激进驾驶员 vs 温和驾驶员

→ 使用 primitive 的比例不同

✔(3)多个驾驶员应该共享同一套 primitive

否则你没法比较风格、没法聚类驾驶员。

HDP 结构 驾驶行为意义
G₀ = 全局 primitive 集合 所有驾驶员共享的行为模式
Gᵢ = 个体 primitive 分布 该驾驶员偏好的行为风格
模式数量无限但前几个最重要 primitive 实际不会太多
可能创建新模式 数据中出现新行为时自动建模

|----------------|------------------|
| DP(狄利克雷过程) | 只处理"一个序列"的无限类别问题 |

|----------------|---------------------|
| HDP(层次 DP) | 处理"多个序列共享类别"的无限类别问题 |

------小狗照亮每一天

20251209

相关推荐
Tipriest_6 小时前
torch训练出的模型的组成以及模型训练后的使用和分析办法
人工智能·深度学习·torch·utils
QuiteCoder6 小时前
深度学习的范式演进、架构前沿与通用人工智能之路
人工智能·深度学习
周名彥6 小时前
### 天脑体系V∞·13824D完全体终极架构与全域落地研究报告 (生物计算与隐私计算融合版)
人工智能·神经网络·去中心化·量子计算·agi
MoonBit月兔6 小时前
年终 Meetup:走进腾讯|AI 原生编程与 Code Agent 实战交流会
大数据·开发语言·人工智能·腾讯云·moonbit
大模型任我行7 小时前
人大:熵引导的LLM有限数据训练
人工智能·语言模型·自然语言处理·论文笔记
weixin_468466857 小时前
YOLOv13结合代码原理详细解析及模型安装与使用
人工智能·深度学习·yolo·计算机视觉·图像识别·目标识别·yolov13
蹦蹦跳跳真可爱5897 小时前
Python----大模型(GPT-2模型训练加速,训练策略)
人工智能·pytorch·python·gpt·embedding
xwill*7 小时前
π∗0.6: a VLA That Learns From Experience
人工智能·pytorch·python
jiayong237 小时前
知识库概念与核心价值01
java·人工智能·spring·知识库
雨轩剑7 小时前
做 AI 功能不难,难的是把 App 发布上架
人工智能·开源软件