17、序列数据模型:隐马尔可夫模型与条件随机场详解

序列数据模型:隐马尔可夫模型与条件随机场详解

1. 对数概率计算

在给定状态序列和预定义的 λ 模型的情况下,计算观察到特定序列的概率的对数,代码如下:

def logProb: Double = foldLeft(lambda.getT, (s, t)
                    => s + Math.log(ct(t)), Math.log(alpha))//9

此方法计算概率的对数而非概率本身,因为概率对数的求和比概率的乘积更不容易导致下溢。

2. Beta 类(反向变量)

Beta 值的递归计算与 Alpha 类类似,只是在状态序列上的迭代是反向进行的。其实现步骤如下:
1. 计算 [M5] 并对 t=0 时跨状态的 beta 值进行归一化 [M6]。
2. 迭代计算并归一化从时间 T - 1 到 t 的 beta 值,该值从 t + 1 时的值更新而来 [M7]。

具体公式如下:
- M5:Beta 的初始化:βT - 1(t) = 1
- M6:初始 beta 值的归一化:
(\hat{\beta} {T - 1}(i)=\frac{\beta {T - 1}(i)}{\sum_{j = 0}^{N - 1}\beta_{T - 1}(j)})
- M7:Beta 的归一化求和:
(\hat{\beta} {t}(i)=\frac{1}{c {t}}\sum_{j = 0}^{N - 1}a_{i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值