σμimplied vol · KKmax(S−K,0)udβρᵢⱼfat tailsPnL · drawdownyield · TdSₜ = μSₜ dt + σSₜ dWₜC = S·N(d₁) − K·e⁻ʳᵀ·N(d₂)σₚ² = wᵀΣwd₁ = [ln(S/K) + (r + σ²⁄2)T] ⁄ σ√T∂V/∂t + ½σ²S²·∂²V/∂S² + rS·∂V/∂S − rV = 0Sharpe = (Rₚ − R_f) ⁄ σₚVaR₉₉ = μ − 2.33σρ = Cov(X,Y) ⁄ σₓσᵧE[Rₚ] = Σ wᵢ·E[Rᵢ]φ(x) = e^(−x²/2) ⁄ √2πE[Rᵢ] = R_f + βᵢ(E[Rₘ] − R_f)dXₜ = θ(μ − Xₜ)dt + σ dWₜσ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁C − P = S − K·e⁻ʳᵀΔ = ∂V/∂S Γ = ∂²V/∂S²p = (e^(rΔt) − d) ⁄ (u − d)rₜ = ln(Pₜ ⁄ Pₜ₋₁)E[Xₜ₊₁ | ℱₜ] = Xₜf* = (bp − q) ⁄ bz = (x − μ) ⁄ σP(N=k) = λᵏe^(−λ) ⁄ k!Θ = −∂V/∂Tν = S·φ(d₁)·√Tmin wᵀΣw s.t. wᵀμ = μ*∫Σ∂∞λ
uantCraft Academy路线图学习路线
Ctrl K
AO
+1.2k 位学习者
登录加入 ↗
路线图学习路线
AO
+1.2k 位学习者
登录
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
σμimplied vol · KKmax(S−K,0)udβρᵢⱼfat tailsPnL · drawdownyield · TdSₜ = μSₜ dt + σSₜ dWₜC = S·N(d₁) − K·e⁻ʳᵀ·N(d₂)σₚ² = wᵀΣwd₁ = [ln(S/K) + (r + σ²⁄2)T] ⁄ σ√T∂V/∂t + ½σ²S²·∂²V/∂S² + rS·∂V/∂S − rV = 0Sharpe = (Rₚ − R_f) ⁄ σₚVaR₉₉ = μ − 2.33σρ = Cov(X,Y) ⁄ σₓσᵧE[Rₚ] = Σ wᵢ·E[Rᵢ]φ(x) = e^(−x²/2) ⁄ √2πE[Rᵢ] = R_f + βᵢ(E[Rₘ] − R_f)dXₜ = θ(μ − Xₜ)dt + σ dWₜσ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁C − P = S − K·e⁻ʳᵀΔ = ∂V/∂S Γ = ∂²V/∂S²p = (e^(rΔt) − d) ⁄ (u − d)rₜ = ln(Pₜ ⁄ Pₜ₋₁)E[Xₜ₊₁ | ℱₜ] = Xₜf* = (bp − q) ⁄ bz = (x − μ) ⁄ σP(N=k) = λᵏe^(−λ) ⁄ k!Θ = −∂V/∂Tν = S·φ(d₁)·√Tmin wᵀΣw s.t. wᵀμ = μ*∫Σ∂∞λ
uantCraft Academy路线图学习路线
Ctrl K
AO
+1.2k 位学习者
登录加入 ↗
路线图学习路线
AO
+1.2k 位学习者
登录
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
Hidden Markov Models 学习路线›模块 2 · 核心算法›主题 2.4·~1小时 10分钟高级

Baum-Welch 与 EM

路线进度模块 2/3 · 主题 4/4
2.4 Baum-Welch 与 EM
—实验得分— / 100总 XP—连续天数—

让模型自己学出它的数

到目前为止我们都假设已知 π\piπ、AAA 和 BBB。真实数据里并非如此,只有观测。Baum-Welch 算法从数据中学出这些数,它是期望最大化(EM)的一个例子,靠重复两步工作。E 步:用当前的数和前向-后向算法算出每一天每个隐含状态以及每次状态切换有多大可能。M 步:通过计数重新估计这些数,只是用这些概率代替整数计数。

πi←γ1(i),Aij←∑t=1T−1ξt(i,j)∑t=1T−1γt(i),Bj(k)←∑tγt(j) [ot=k]∑tγt(j)\pi_i\leftarrow\gamma_1(i),\qquad A_{ij}\leftarrow\frac{\sum_{t=1}^{T-1}\xi_t(i,j)}{\sum_{t=1}^{T-1}\gamma_t(i)},\qquad B_j(k)\leftarrow\frac{\sum_t\gamma_t(j)\,[o_t=k]}{\sum_t\gamma_t(j)}πi​←γ1​(i),Aij​←∑t=1T−1​γt​(i)∑t=1T−1​ξt​(i,j)​,Bj​(k)←∑t​γt​(j)∑t​γt​(j)[ot​=k]​(1)

这里 γt(i)\gamma_t(i)γt​(i) 是第 ttt 天处于状态 iii 的平滑概率,ξt(i,j)\xi_t(i,j)ξt​(i,j) 是第 ttt 天到第 t+1t+1t+1 天从 iii 转到 jjj 的平滑概率。所以新的 AijA_{ij}Aij​ 就是 i→ji\to ji→j 转移的期望次数除以停留在 iii 的期望天数。有两点值得知道:数据的对数似然在 EM 每一轮之间绝不会下降,所以改进停止时就可以收手;但 EM 只会爬到最近的峰,可能停在局部极大值,不同的初始值可能给出不同的答案。实践中会尝试多个起点,保留最好的。

对 小、大、大 的一轮沿用上一个主题,三天里平静的平滑概率为 (0.430, 0.118, 0.097)(0.430,\ 0.118,\ 0.097)(0.430, 0.118, 0.097)。平静天数的期望为 0.6450.6450.645。平静的新初始概率为 0.4300.4300.430。只有第一天是小波动,所以平静下出现小波动的新概率为 0.430/0.645=0.6670.430/0.645=0.6670.430/0.645=0.667。平静到平静的转移期望次数为 0.1790.1790.179,转移之前停留在平静的期望天数为 0.430+0.118=0.5480.430+0.118=0.5480.430+0.118=0.548,所以新的 ACC=0.179/0.548=0.327A_{CC}=0.179/0.548=0.327ACC​=0.179/0.548=0.327。三天数据只是示意,真实运行会在成千上万天上重复这一步,直到对数似然不再改进。
  • E 步:用当前的数通过前向-后向算出 γ\gammaγ 和 ξ\xiξ。
  • M 步:把 π\piπ、AAA、BBB 重新估计为期望计数除以期望总数。
  • 对数似然绝不下降,但 EM 可能停在局部极大:多试几个起点。

实验:评分内容

  • 平静日的期望天数10 分
  • 新的发射概率15 分
  • 新的初始概率10 分
  • 新的转移概率15 分
  • EM 保证什么15 分
  • EM 的一轮10 分
  • 配对术语10 分
  • 为什么起点重要15 分
0/ 已答 8 题
任务
1数值作答10 分未作答

三天里平静的平滑概率为 0.430, 0.118, 0.0970.430,\ 0.118,\ 0.0970.430, 0.118, 0.097。平静日的期望天数(它们的和)是多少?保留三位小数。

c=c =c=允许误差:± 0.002
2数值作答15 分未作答

只有第一天是小波动。新的 BC(s)B_C(s)BC​(s),即小波动日的平静平滑权重除以平静日期望天数 0.430/0.6450.430/0.6450.430/0.645,是多少?保留三位小数。

b=b =b=允许误差:± 0.003
3数值作答10 分未作答

由上面的数,平静的新初始概率 πC←γ1(C)\pi_C\leftarrow\gamma_1(C)πC​←γ1​(C) 是多少?

p=p =p=允许误差:± 0.003
4数值作答15 分未作答

平静到平静的转移期望次数为 0.1790.1790.179,转移之前停留在平静的期望天数为 0.5480.5480.548。新的 ACC=0.179/0.548A_{CC}=0.179/0.548ACC​=0.179/0.548 是多少?保留三位小数。

a=a =a=允许误差:± 0.003
5选择15 分未作答

从 EM 的一轮到下一轮,数据的对数似然有什么保证?

6排列步骤10 分未作答

把 Baum-Welch 的步骤按正确顺序排列。

拖动以重新排序;也可聚焦某项,按空格抬起,用方向键移动,再按空格放下。

  1. 1M 步:由期望计数重新估计 pi、A、B
  2. 2从对 pi、A、B 的一个猜测开始
  3. 3检查对数似然,重复到不再改进
  4. 4E 步:用前向-后向算出 gamma 和 xi
7配对10 分未作答

把每个术语与其含义配对。

为左侧每一项选择配对项。

γt(i)\gamma_t(i)γt​(i)
ξt(i,j)\xi_t(i,j)ξt​(i,j)
E 步
M 步
8用文字解释15 分未作答

用一两句话解释:为什么从不同的初始值运行 Baum-Welch 可能得到不同的答案。

数学模式键盘或 LaTeX 输入第 1/8 题 · Ctrl ⏎ 检查

登录后即可运行你的代码。

所有讲解均可免费阅读。创建账户或登录后,即可运行代码、运行测试并提交此实验。

  • 浏览器内 IDE 与 bash 终端,无需安装
  • 即时评分、XP 以及你在学习路线中的位置
创建账户登录
或
使用 GitHub 继续