HMM总结

文章目录

  • 4.HMM-->CRF
    • 4.1 HMM--是个序列
      • 4.1.1 推断问题(evaluate)
      • 4.1.2 viterbi decoding解码
      • 4.1.3 学习,参数估计
      • 4.1.4计算实例
      • 4.1.5 EM(baum-welch算法)的上溢出和下溢出

概率图模型
code

4.HMM–>CRF

4.1 HMM–是个序列

在这里插入图片描述

  • x-观测到的
  • 条件独立
    • 给定yt
      • yt−1和yt+1(所有的过去和未来也都独立)y_{t-1}和y_{t+1}(所有的过去和未来也都独立)yt1yt+1(独立
      • xu和xsx_{u}和x_{s}xuxs独立
  • 表示
    • 状态分布:πi=p(y1i=1)\pi_i=p(y_1^i=1)πi=p(y1i=1)
    • 状态转移矩阵A,aij为转移概率
      • P(yt+1j∣yti=1)P(y_{t+1}^j|y_t^i=1)P(yt+1jyti=1)
    • 发射概率P(x∣y)P(x|y)P(xy)
    • 则联合概率P(x,y)=p(y1)Πt=1T−1P(yt+1j∣yti)Πt=1TP(xt∣yt)P(x,y)=p(y_1)\Pi_{t=1}^{T-1}P(y_{t+1}^j|y_t^i)\Pi_{t=1}^{T}P(x_t|y_t)P(x,y)=p(y1)Πt=1T1P(yt+1jyti)Πt=1TP(xtyt)
      • 参数化P(x,y)=πy1Πt=1T−1ayt+1,ytΠt=1TP(xt∣yt)P(x,y)=\pi_{y_1}\Pi_{t=1}^{T-1}a_{y_{t+1},y_t}\Pi_{t=1}^{T}P(x_t|y_t)P(x,y)=πy1Πt=1T1ayt+1,ytΠt=1TP(xtyt)
  • 三个基础问题
    1. 状态序列解码(推断)问题:
      • 给定x,θ−−>y:p(y∣x,θ)x,\theta-->y:p(y|x,\theta)x,θ>y:p(yx,θ)
    2. 似然评估问题evaluate
      • 给定x,θ−−>似然函数P(x∣θ)x,\theta --> 似然函数P(x|\theta)x,θ>P(xθ)
    3. 参数估计问题(学习
      • 给定x−−>θ=argmaxP(x∣θ)x --> \theta=argmax P(x|\theta)x>θ=argmaxP(xθ)

4.1.1 推断问题(evaluate)

在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • P(x)=Σy1,y2,...,yTP(x,y)=Σy1,y2,...,yTπy1Πt=1T−1ayt+1,ytΠt=1TP(xt∣yt)=ΣyP(x∣y)p(y)=Σy1Σy2...ΣyTπy1Πt=1T−1ayt+1,ytΠt=1TP(xt∣yt)P(x)=\Sigma_{y_1,y_2,...,y_T} P(x,y)=\Sigma_{y_1,y_2,...,y_T}\pi_{y_1}\Pi_{t=1}^{T-1}a_{y_{t+1},y_t}\Pi_{t=1}^{T}P(x_t|y_t)\\=\Sigma_y P(x|y)p(y)\\=\Sigma_{y_1}\Sigma_{y_2}...\Sigma_{y_T}\pi_{y_1}\Pi_{t=1}^{T-1}a_{y_{t+1},y_t}\Pi_{t=1}^{T}P(x_t|y_t)P(x)=Σy1,y2,...,yTP(x,y)=Σy1,y2,...,yTπy1Πt=1T1ayt+1,ytΠt=1TP(xtyt)=ΣyP(xy)p(y)=Σy1Σy2...ΣyTπy1Πt=1T1ayt+1,ytΠt=1TP(xtyt)
    • yi={q1,q2,...,qN}−−−O(NT)太y_i=\{q_1,q_2,...,q_N\}---O(N^T)太yi={q1,q2,...,qN}O(NT)
    • 很多连乘,但是并不是跟所有的都有关,就可以往后推求和
  • P(yt∣x)=P(x∣yt)P(yt)P(x)=P(x1,...,xt∣yt)P(xt+1,...,xn∣yt)P(yt)P(x)P(y_t|x)=\frac{P(x|y_t)P(y_t)}{P(x)}=\frac{P(x1,...,x_t|y_t)P(x_{t+1},...,x_n|y_t)P(y_t)}{P(x)}P(ytx)=P(x)P(xyt)P(yt)=P(x)P(x1,...,xtyt)P(xt+1,...,xnyt)P(yt)
    • P(yt∣x)=γ(yt)=P(x1,...,xt,yt)P(xt+1,...,xn∣yt)P(x)=α(yt)β(yt)P(x)P(y_t|x)=\gamma(y_t)=\frac{P(x1,...,x_t,y_t)P(x_{t+1},...,x_n|y_t)}{P(x)}=\frac{\alpha(y_t)\beta(y_t)}{P(x)}P(ytx)=γ(yt)=P(x)P(x1,...,xt,yt)P(xt+1,...,xnyt)=P(x)α(yt)β(yt)
      • p(x)=Σytα(yt)β(yt)p(x)=\Sigma_{y_t}\alpha(y_t)\beta(y_t)p(x)=Σytα(yt)β(yt)
      • 其中𝛼(𝑦𝑡)是产生部分输出序列 𝑥1, ⋯ , 𝑥𝑡并结束于𝑦𝑡的概率
      • 其中β(𝑦𝑡)是从𝑦𝑡状态开始产生输出序列𝑥𝑡+1, ⋯ , 𝑥𝑇的概率
  • 递归的计算
    • α(yt+1)=Σytα(yt)ayt+1,ytP(xt+1∣yt+1)\alpha(y_{t+1})=\Sigma_{y_t}\alpha(y_t)a_{y_{t+1},y_t}P(x_{t+1}|y_{t+1})α(yt+1)=Σytα(yt)ayt+1,ytP(xt+1yt+1)
      • 初始化α(y0)=P(x0,y0)=p(x0∣y0)P(y0)=P(x0∣y0)πy0\alpha(y_0)=P(x_0,y_0)=p(x_0|y_0)P(y_0)=P(x_0|y_0)\pi_{y_0}α(y0)=P(x0,y0)=p(x0y0)P(y0)=P(x0y0)πy0
    • β(yt)=Σyt+1β(yt+1)ayt+1,ytP(xt+1∣yt+1)\beta(y_{t})=\Sigma_{y_{t+1}}\beta(y_{t+1})a_{y_{t+1},y_t}P(x_{t+1}|y_{t+1})β(yt)=Σyt+1β(yt+1)ayt+1,ytP(xt+1yt+1)
      • 初始化β(yT)=1就行了\beta(y_T)=1就行了β(yT)=1
        • 假定β(yT)为单位向量,我们可以准确计算出βyT−1假定\beta(y_T)为单位向量,我们可以准确计算出\beta_{y_{T-1}}β(yT)βyT1
          • P(x)=Σiα(yTi)β(yTi)=Σiα(yTi)=P(x)P(x)=\Sigma_i\alpha(y_T^i)\beta(y_T^i)=\Sigma_i \alpha(y_T^i)=P(x)P(x)=Σiα(yTi)β(yTi)=Σiα(yTi)=P(x)
    • 为了计算所有的yt的后验概率,需要为每一步计算alpha/beta—一次前向一次后向
    • ξ(yt,yt+1)=P(yt,yt+1∣x)=P(x∣yt,yt+1)P(yt+1∣yt)P(yt)p(x)=P(x1,...xt∣yt)P(xt+1∣yt+1)P(xt+2,...xn∣yt+1)P(yt+1∣yt)P(yt)p(x)=α(yt)P(xt+1∣yt+1)β(yt+1)ayt+1,ytp(x)\xi(y_t,y_{t+1})=P(y_t,y_{t+1}|x)\\=\frac{P(x|y_t,y_{t+1})P(y_{t+1}|y_t)P(y_t)}{p(x)}\\=\frac{P(x1,...x_t|y_t)P(x_{t+1}|y_{t+1})P(x_{t+2},...x_n|y_{t+1})P(y_{t+1}|y_t)P(y_t)}{p(x)}\\=\frac{\alpha(y_t)P(x_{t+1}|y_{t+1})\beta(y_{t+1})a_{y_{t+1},y_t}}{p(x)}ξ(yt,yt+1)=P(yt,yt+1x)=p(x)P(xyt,yt+1)P(yt+1yt)P(yt)=p(x)P(x1,...xtyt)P(xt+1yt+1)P(xt+2,...xnyt+1)P(yt+1yt)P(yt)=p(x)α(yt)P(xt+1yt+1)β(yt+1)ayt+1,yt
    • 似然函数–简单求和最终步的α\alphaα可得到
    • 状态的后验概率–再使用β递归再使用\beta递归使β
    • –>P(ytk=1∣x)=α(yt)β(yt)P(x)P(y_t^k=1|x)=\frac{\alpha(y_t)\beta(y_t)}{P(x)}P(ytk=1x)=P(x)α(yt)β(yt)
    • –>如何得到整个序列的最大后验证概率

4.1.2 viterbi decoding解码

  • y∗=argmaxyP(y∣x)=argmaxyP(x,y)y*=argmax_y P(y|x)=argmax_y P(x,y)y=argmaxyP(yx)=argmaxyP(x,y)
  • Vtk=maxy1,...,yt−1P(x1,...,xt−1,y1,...,yt−1,xt,ytk=1)V_t^k=max_{y_1,...,y_{t-1}} P(x_1,...,x_{t-1},y_1,...,y_{t-1},x_t,y_t^k=1)Vtk=maxy1,...,yt1P(x1,...,xt1,y1,...,yt1,xt,ytk=1)
    • 结尾为yt=ky_t=kyt=k时,最可能状态序列的概率
    • 递归形式Vtk=p(xt∣ytk=1)maxiVt−1iai,kai,k=p(yik∣yi):i−>kV_t^k=p(x_t|y_t^k=1)max_i V_{t-1}^ia_{i,k}\\a_{i,k}=p(y_ik|y_i):i->kVtk=p(xtytk=1)maxiVt1iai,kai,k=p(yikyi):i>k
    • 动态规划(路径规划)问题:距离=1/p,使得cost最小
    • Vtk:t时刻,yt=k−−到达qk状态maxy1,...,yt−1终点已经确定,路径没有确定,找概率最大的路径V_t^k:t时刻,y_t=k--到达q_k状态\\max_{y_1,...,y_{t-1}} 终点已经确定,路径没有确定,找概率最大的路径Vtktyt=kqkmaxy1,...,yt1
      在这里插入图片描述

4.1.3 学习,参数估计

  • 极大似然估计:EM算法

    • 最大化P(x∣θ)P(x|\theta)P(xθ)
    • 参数A、π,输出分布的参数A、\pi,输出分布的参数Aπ,
  • P(x∣θ)=Σy1,y2,...,yTP(x,y)=Σy1,y2,...,yTπy1Πt=1T−1ayt+1,ytΠt=1TP(xt∣yt,η)P(x|\theta)=\Sigma_{y_1,y_2,...,y_T} P(x,y)=\Sigma_{y_1,y_2,...,y_T}\pi_{y_1}\Pi_{t=1}^{T-1}a_{y_{t+1},y_t}\Pi_{t=1}^{T}P(x_t|y_t,\eta)P(xθ)=Σy1,y2,...,yTP(x,y)=Σy1,y2,...,yTπy1Πt=1T1ayt+1,ytΠt=1TP(xtyt,η)

  • 假设P(xt∣yt,η)=Πi=1MΠj=1L[ηij]ytixtj假设P(x_t|y_t,\eta)=\Pi_{i=1}^M \Pi_{j=1}^L[\eta_{ij}]^{y_t^ix_t^j}P(xtyt,η)=Πi=1MΠj=1L[ηij]ytixtj

  • M
    在这里插入图片描述

  • α^ij=mijΣk=1Nmikη^ij=nijΣk=1Nnikπ^i=y1i\hat{\alpha}_{ij}=\frac{m_{ij}}{\Sigma_{k=1}^N m_{ik}}\\ \hat{\eta}_{ij}=\frac{n_{ij}}{\Sigma_{k=1}^N n_{ik}}\\ \hat{\pi}_i=y_1^iα^ij=Σk=1Nmikmijη^ij=Σk=1Nniknijπ^i=y1i

  • E步
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述

  • 缺点

    • 仅捕捉了状态之间和状态及其对应输出之间的关系(上下文)
    • 学习目标和预测目标不匹配
      • 我们只要p(y|x),但只知道p(x,y)—产生式模型

4.1.4计算实例

在这里插入图片描述* A:aij:i->j

  • 前向计算
    • 时间1:
      • α(y1=1)=P(x1∣y1=1)πy1=1=0.5∗0.2=0.1(x1=红)α(y1=2)=P(x1∣y1=2)πy1=2=0.4∗0.4=0.16α(y1=3)=P(x1∣y1=3)πy1=3=0.7∗0.4=0.28\alpha(y_1=1)=P(x_1|y_1=1)\pi_{y_1=1}=0.5*0.2=0.1\\(x1=红) \alpha(y_1=2)=P(x_1|y_1=2)\pi_{y_1=2}=0.4*0.4=0.16 \alpha(y_1=3)=P(x_1|y_1=3)\pi_{y_1=3}=0.7*0.4=0.28α(y1=1)=P(x1y1=1)πy1=1=0.50.2=0.1x1=α(y1=2)=P(x1y1=2)πy1=2=0.40.4=0.16α(y1=3)=P(x1y1=3)πy1=3=0.70.4=0.28
    • 时间2:x2=白
      • α(y2=1)=(Σy1α(y1)P(y2=1∣y1))P(x2∣y2)=(0.1∗0.5+0.16∗0.3+0.28∗0.2)∗0.5=0.077α(y2=2)=(α(y1=1)P(y2=2∣y1=1)+α(y1=2)P(y2=2∣y1=2)+α(y1=3)P(y2=2∣y1=3))∗P(x2∣y2=2)=(0.1∗0.2+0.16∗0.5+0.28∗0.3)∗0.6=0.1104α(y2=3)=(0.1∗0.3+0.16∗0.2+0.28∗0.5)∗0.3=0.0606\alpha(y_2=1)=(\Sigma_{y_1}\alpha(y_1)P(y_2=1|y_1))P(x_2|y_2)=(0.1*0.5+0.16*0.3+0.28*0.2)*0.5=0.077\\ \alpha(y_2=2)=(\alpha(y_1=1)P(y_2=2|y_1=1)+\alpha(y_1=2)P(y_2=2|y_1=2)+\alpha(y_1=3)P(y_2=2|y_1=3))*P(x_2|y_2=2)=(0.1*0.2+0.16*0.5+0.28*0.3)*0.6=0.1104\\ \alpha(y_2=3)=(0.1*0.3+0.16*0.2+0.28*0.5)*0.3=0.0606α(y2=1)=(Σy1α(y1)P(y2=1y1))P(x2y2)=(0.10.5+0.160.3+0.280.2)0.5=0.077α(y2=2)=(α(y1=1)P(y2=2y1=1)+α(y1=2)P(y2=2y1=2)+α(y1=3)P(y2=2y1=3))P(x2y2=2)=(0.10.2+0.160.5+0.280.3)0.6=0.1104α(y2=3)=(0.10.3+0.160.2+0.280.5)0.3=0.0606
    • 时间3:x3=红
      • α(y3=1)=(0.077∗0.5+0.1104∗0.3+0.0606∗0.2)∗0.5=0.4187α(y3=2)=(0.077∗0.2+0.1104∗0.5+0.0606∗0.3)∗0.4=0.03551α(y3=3)=(0.077∗0.3+0.1104∗0.2+0.0606∗0.5)∗0.7=0.05284p(x)=Σiα(yTi)=α(y3=1)+α(y3=2)+α(y3=3)=0.13022\alpha(y_3=1)=(0.077*0.5+0.1104*0.3+0.0606*0.2)*0.5=0.4187\\ \alpha(y_3=2)=(0.077*0.2+0.1104*0.5+0.0606*0.3)*0.4=0.03551\\ \alpha(y_3=3)=(0.077*0.3+0.1104*0.2+0.0606*0.5)*0.7=0.05284\\ p(x)=\Sigma_i \alpha(y_T^i)=\alpha(y_3=1)+\alpha(y_3=2)+\alpha(y_3=3)=0.13022α(y3=1)=(0.0770.5+0.11040.3+0.06060.2)0.5=0.4187α(y3=2)=(0.0770.2+0.11040.5+0.06060.3)0.4=0.03551α(y3=3)=(0.0770.3+0.11040.2+0.06060.5)0.7=0.05284p(x)=Σiα(yTi)=α(y3=1)+α(y3=2)+α(y3=3)=0.13022
  • 后向计算:
    • β(y3=1)=1,β(y3=2)=1,β(y3=3)=1\beta(y_3=1)=1,\beta(y_3=2)=1,\beta(y_3=3)=1β(y3=1)=1β(y3=2)=1β(y3=3)=1
    • 时间2
      • β(y2)=Σy3β(y3)ay3,y2P(x3∣y3)=β(y3=1)ay3=1,y2P(x3∣y3=1)+β(y3=2)ay3=2,y2P(x3∣y3=2)+β(y3=3)ay3,y2P(x3∣y3=3)\beta(y_2)=\Sigma_{y_3}\beta(y_3)a_{y_3,y_2}P(x_3|y_3)\\ =\beta(y_3=1)a_{y_3=1,y_2}P(x_3|y_3=1)+\beta(y_3=2)a_{y_3=2,y_2}P(x_3|y_3=2)+\beta(y_3=3)a_{y_3,y_2}P(x_3|y_3=3)β(y2)=Σy3β(y3)ay3,y2P(x3y3)=β(y3=1)ay3=1,y2P(x3y3=1)+β(y3=2)ay3=2,y2P(x3y3=2)+β(y3=3)ay3,y2P(x3y3=3)
      • β(y2=1)=1∗0.5∗0.5+1∗0.2∗0.4+1∗0.2∗0.7=0.47\beta(y_2=1)=1*0.5*0.5+1*0.2*0.4+1*0.2*0.7=0.47β(y2=1)=10.50.5+10.20.4+10.20.7=0.47
      • β(y2=2)=1∗0.3∗0.5+1∗0.5∗0.4+1∗0.2∗0.7=0.49\beta(y_2=2)=1*0.3*0.5+1*0.5*0.4+1*0.2*0.7=0.49β(y2=2)=10.30.5+10.50.4+10.20.7=0.49
      • β(y2=3)=1∗0.2∗0.5+1∗0.3∗0.4+1∗0.5∗0.7=0.57\beta(y_2=3)=1*0.2*0.5+1*0.3*0.4+1*0.5*0.7=0.57β(y2=3)=10.20.5+10.30.4+10.50.7=0.57
    • 时间1
      • β(y2=1)=0.47∗0.5∗0.5+0.49∗0.2∗0.6+0.57∗0.2∗0.3=0.2105\beta(y_2=1)=0.47*0.5*0.5+0.49*0.2*0.6+0.57*0.2*0.3=0.2105β(y2=1)=0.470.50.5+0.490.20.6+0.570.20.3=0.2105
      • β(y2=2)=0.47∗0.3∗0.5+0.49∗0.5∗0.6+0.57∗0.2∗0.3=0.2517\beta(y_2=2)=0.47*0.3*0.5+0.49*0.5*0.6+0.57*0.2*0.3=0.2517β(y2=2)=0.470.30.5+0.490.50.6+0.570.20.3=0.2517
      • β(y2=3)=0.47∗0.2∗0.5+0.49∗0.3∗0.6+0.57∗0.5∗0.3=0.2207\beta(y_2=3)=0.47*0.2*0.5+0.49*0.3*0.6+0.57*0.5*0.3=0.2207β(y2=3)=0.470.20.5+0.490.30.6+0.570.50.3=0.2207

代码

import torch
import torch.nn as nn
import torch.optim as optim
y_size=3;
x_size=2;
transition=torch.tensor([[0.5,0.2,0.3],[0.3,0.5,0.2],[0.2,0.3,0.5]])
b=torch.tensor([[0.5,0.5],[0.4,0.6],[0.7,0.3]])
pi=torch.tensor([[0.2],[0.4],[0.4]])
x=[0,1,0]
def alpha(x):#前向算法p(x1,x2,x3,...,xt,yt)alpha=(b[:,x[0]]*pi[:].reshape(y_size)).reshape(1,y_size)# print(alpha)for i in range(1,len(x)):alpha=torch.cat((alpha,(torch.matmul(alpha[i-1],transition)*b[:,x[i]]).reshape(1,y_size)),0)return alpha
alpha=alpha(x)
print(alpha)
"""
tensor([[0.1000, 0.1600, 0.2800],[0.0770, 0.1104, 0.0606],[0.0419, 0.0355, 0.0528]])"""
def p(x,alpha):#p(x)# alpha=alpha(x);return torch.sum(alpha[len(x)-1])
p(x,alpha)
#tensor(0.1302)
def beta(x):beta=torch.ones(1,y_size)for i in range(len(x)-2,-1,-1):beta=torch.cat((torch.sum(beta[0]*transition*b[:,x[i+1]],axis=1).reshape(1,y_size),beta))return beta
beta=beta(x)
tensor([[0.2451, 0.2622, 0.2277],[0.5400, 0.4900, 0.5700],[1.0000, 1.0000, 1.0000]])
def gamma(alpha,beta,p_x):return alpha*beta/p_x
def xi(x,alpha,beta,p_x):# print(alpha_yt,b[y_t1,x_t1],beta_yt1,transition[y_t,y_t1])# return alpha_yt*b[y_t1,x_t1]*beta_yt1*transition[y_t,y_t1]/p_xxi=[]for t in range(0,len(x)-1):xi.append((alpha[t].reshape(y_size,1)*transition*b[:,x[t+1]]*beta[t+1]))# print(xi[t])return torch.cat(xi).reshape(len(xi),y_size,y_size)

在这里插入图片描述
在这里插入图片描述

  • 求最优路径(维特比,贪心)
    • δ(y1)=α(y1)=P(x1∣y1)πy1\delta(y_1)=\alpha(y_1)=P(x_1|y_1)\pi_{y_1}δ(y1)=α(y1)=P(x1y1)πy1
    • δ(yt+1)=maxy1δ(y1)P(y2=1∣y1))P(x2∣y2)=max(δ(y1=1)P(y2=2∣y1=1),δ(y1=2)P(y2=2∣y1=2),δ(y1=3)P(y2=2∣y1=3))∗P(x2∣y2=1)\delta(y_{t+1})=max_{y_1}\delta(y_1)P(y_2=1|y_1))P(x_2|y_2)=max(\delta(y_1=1)P(y_2=2|y_1=1),\delta(y_1=2)P(y_2=2|y_1=2),\delta(y_1=3)P(y_2=2|y_1=3))*P(x_2|y_2=1)δ(yt+1)=maxy1δ(y1)P(y2=1y1))P(x2y2)=max(δ(y1=1)P(y2=2y1=1),δ(y1=2)P(y2=2y1=2),δ(y1=3)P(y2=2y1=3))P(x2y2=1)
  • HMM(x–O)
    • 则联合概率P(x,y)=p(y1)Πt=1T−1P(yt+1j∣yti)Πt=1TP(xt∣yt)P(x,y)=p(y_1)\Pi_{t=1}^{T-1}P(y_{t+1}^j|y_t^i)\Pi_{t=1}^{T}P(x_t|y_t)P(x,y)=p(y1)Πt=1T1P(yt+1jyti)Πt=1TP(xtyt)
      • 参数化P(x,y)=πy1Πt=1T−1ayt+1,ytΠt=1TP(xt∣yt)P(x,y)=\pi_{y_1}\Pi_{t=1}^{T-1}a_{y_{t+1},y_t}\Pi_{t=1}^{T}P(x_t|y_t)P(x,y)=πy1Πt=1T1ayt+1,ytΠt=1TP(xtyt)
    • P(x)=Σy1,y2,...,yTP(x,y)=Σy1,y2,...,yTπy1Πt=1T−1ayt+1,ytΠt=1TP(xt∣yt)=ΣyP(x∣y)p(y)=Σy1Σy2...ΣyTπy1Πt=1T−1ayt+1,ytΠt=1TP(xt∣yt)P(x)=\Sigma_{y_1,y_2,...,y_T} P(x,y)=\Sigma_{y_1,y_2,...,y_T}\pi_{y_1}\Pi_{t=1}^{T-1}a_{y_{t+1},y_t}\Pi_{t=1}^{T}P(x_t|y_t)\\=\Sigma_y P(x|y)p(y)\\=\Sigma_{y_1}\Sigma_{y_2}...\Sigma_{y_T}\pi_{y_1}\Pi_{t=1}^{T-1}a_{y_{t+1},y_t}\Pi_{t=1}^{T}P(x_t|y_t)P(x)=Σy1,y2,...,yTP(x,y)=Σy1,y2,...,yTπy1Πt=1T1ayt+1,ytΠt=1TP(xtyt)=ΣyP(xy)p(y)=Σy1Σy2...ΣyTπy1Πt=1T1ayt+1,ytΠt=1TP(xtyt)
    • P(yt∣x)=γ(yt)=P(x1,...,xt,yt)P(xt+1,...,xn∣yt)P(x)=α(yt)β(yt)P(x)P(y_t|x)=\gamma(y_t)=\frac{P(x1,...,x_t,y_t)P(x_{t+1},...,x_n|y_t)}{P(x)}=\frac{\alpha(y_t)\beta(y_t)}{P(x)}P(ytx)=γ(yt)=P(x)P(x1,...,xt,yt)P(xt+1,...,xnyt)=P(x)α(yt)β(yt)
    • 递归的计算
      • α(yt+1)=Σytα(yt)ayt+1,ytP(xt+1∣yt+1)\alpha(y_{t+1})=\Sigma_{y_t}\alpha(y_t)a_{y_{t+1},y_t}P(x_{t+1}|y_{t+1})α(yt+1)=Σytα(yt)ayt+1,ytP(xt+1yt+1)
        • 初始化α(y0)=P(x0,y0)=p(x0∣y0)P(y0)=P(x0∣y0)πy0\alpha(y_0)=P(x_0,y_0)=p(x_0|y_0)P(y_0)=P(x_0|y_0)\pi_{y_0}α(y0)=P(x0,y0)=p(x0y0)P(y0)=P(x0y0)πy0
      • β(yt)=Σyt+1β(yt+1)ayt+1,ytP(xt+1∣yt+1)\beta(y_{t})=\Sigma_{y_{t+1}}\beta(y_{t+1})a_{y_{t+1},y_t}P(x_{t+1}|y_{t+1})β(yt)=Σyt+1β(yt+1)ayt+1,ytP(xt+1yt+1)
        • 初始化β(yT)=1就行了\beta(y_T)=1就行了β(yT)=1
          • 假定β(yT)为单位向量,我们可以准确计算出βyT−1假定\beta(y_T)为单位向量,我们可以准确计算出\beta_{y_{T-1}}β(yT)βyT1
            • P(x)=Σiα(yTi)β(yTi)=Σiα(yTi)=P(x)P(x)=\Sigma_i\alpha(y_T^i)\beta(y_T^i)=\Sigma_i \alpha(y_T^i)=P(x)P(x)=Σiα(yTi)β(yTi)=Σiα(yTi)=P(x)
def Viterbi(x):#贪婪V=b[:,x[0]]*pi[:].reshape(y_size);list=[]print("V0:",V)# 前向计算各部分概率for t in range(1,len(x)):# max,indices=torch.max(V[t - 1].reshape(y_size, 1) * transition, axis=0)# list.append(indices)# V=torch.cat((V,(b[:,x[t]]*max).reshape(1,y_size)),axis=0)max, indices = torch.max(V.reshape(y_size,1) * transition, axis=0)list.append(indices)V=b[:,x[t]]*maxprint("V",t,V)#后向寻找路径print("max-pathchoice",list)max,indices=torch.max(V,axis=0)path=indices.reshape(1)print(indices)for i in range(len(list)-1,-1,-1):path=torch.cat((list[0][path[0]].reshape(1),path))return path;#y1=path0,y2=path1print("path",Viterbi(x))
V0: tensor([0.1000, 0.1600, 0.2800])
V 1 tensor([0.0280, 0.0504, 0.0420])
V 2 tensor([0.0076, 0.0101, 0.0147])
max-pathchoice [tensor([2, 2, 2]), tensor([1, 1, 2])]
tensor(2)
path tensor([2, 2, 2])

4.1.5 EM(baum-welch算法)的上溢出和下溢出

通过放缩α,β\alpha,\betaα,β解决
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/481575.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

南科大本科生在《物理评论快报》发文,实现由不定因果序驱动的量子冰箱

来源:FUTURE远见选编:FUTURE | 远见 闵青云 近日,南方科技大学物理系师生在实验中实现了由不定因果序驱动的量子冰箱。相关成果以「Experimental realization of a quantum refrigerator driven by indefinite causal orders」为题发表在《物…

论文学习12-Conditional Random Fields: Probabilistic Models for Segmenting and Labeling Sequence Data(CRF

文章目录abstract1.introduction1.2 条件模型2.标签偏差问题3.CRF提出条件随机场CRF abstract 我们提出了条件随机场,这是一个建立概率模型来分割和标记序列数据的框架。相对于隐马尔可夫模型和随机语法,条件随机场在这类任务中有几个优势,…

杨振宁六大数理工作赏析 | 祝贺杨先生百岁华诞

来源:返朴撰文:林开亮我的物理学界同事大多对数学采取功利主义的态度。也许因为受我父亲的影响,我较为欣赏数学。我欣赏数学家的价值观,钦佩数学的优美和力量:它既有战术上的随机应变,又有战略上的深谋远虑…

论文学习13Reconstructing the house from the ad: Structured prediction on real estate classifieds(实体关系抽取)

文章目录abstractIntroduction2. 相关工作3.房地产结构预测3.1问题形式化3.2 结构预测模型3.2.1 序列标注问题3.2.2 part-of tree constructLocally trained model (Threshold/Edmonds)Globally trained model (MTT)Transition-based dependency parsing (TB)4.实验5.pipeline总…

优化|深度学习或强化学习在组合优化方面有哪些应用?

来源:图灵人工智能前 言深度强化学习求解组合优化问题近年来受到广泛关注,是由于其结合了强化学习(Reinforcement learning)强大的决策(decision-making)能力和深度学习(deep learning)的各种模型(RNN、Transformer、GNN等等)强大的信息提取表征能力(r…

论文学习14-End-to-End Relation Extraction using LSTMs on Sequences and Tree Structures(端到端实体关系抽取)

文章目录abstract1.introduction2.相关工作3.model3.1嵌入层3.2 序列层3.3实体检测3.4 依赖层3.5 Stacking Sequence and Dependency Layers3.6关系分类3.7 训练4 实验总结本文:Miwa, M. and M. Bansal “End-to-End Relation Extraction using LSTMs on Sequences …

人工智能在基因组学市场增长机会以及整个基因组学领域的最新技术

来源:ScienceAI编译:萝卜皮人工智能等最新技术浪潮已经触及几乎所有行业和企业的海岸。基因组学领域也不例外。在 2020-2030 年的评估期内,最新技术在基因组学领域的日益普及将被证明是基因组学市场人工智能的主要增长贡献者。基因组学可以定…

论文学习15-Table Filling Multi-Task Recurrent Neural Network(联合实体关系抽取模型)

文章目录abstract1 introduction2.方 法2.1实体关系表(Figure-2)2.2 The Table Filling Multi-Task RNN Model2.3 Context-aware TF-MTRNN model2.4 Piggybacking for Entity-Relation Label Dependencies2.5 Ranking Bi-directional Recurrent Neural Network (R-biRNN)3.Mode…

【Brain】大脑里也有个Transformer!和「海马体」机制相同

来源: 墨玫人工智能【导读】Transformer模型性能强的原因是模拟了人脑?我不能创造的,我也不理解。——费曼想要创造人工智能,首先要理解人类的大脑因何有智能。随着神经网络的诞生及后续的辉煌发展,研究者们一直在为神…

CRF总结

文章目录计算下Z(矩阵)1.1 一般参数形式1.2 简化形式Z1.3 矩阵形式1.3.2 Z2.维特比算法3.前向算法4.后向算法5.使用前向后向的概率计算6.期望计算7.参数估计(学习)7.1 梯度上升参考文献CRF 是无向图模型code 它是一个判别式模型建…

CAAI名誉理事长李德毅院士谈机器的生命观

来源:图灵人工智能2022年9月28日上午,为促进人工智能产、学、研、经、用的发展,助力余杭区人民政府建设杭州市人工智能创新发展区,由中国人工智能学会主办的会士系列讲坛—第一期通过线上的形式在余杭区未来科技城成功举办。本次活…

论文学习16-Going out on a limb: without Dependency Trees(联合实体关系抽取2017)

文章目录abstract1. Introduction2. 相关工作3. Model3.1 Multi-layer Bi-directional Recurrent Network3.2实体检测3.3 attention model3.4 关系检测3.5双向编码4.训练5.实验5.2 evaluation metrics5.3 基线和以前的模型5.4 超参数6.结果Katiyar, A. and C. Cardie (2017). G…

困局中的英伟达:进一步是鲜花,退一步是悬崖

来源: AI前线整理:王强、冬梅看看最近几个月的股价,英伟达的投资者肯定不怎么开心:但如果把时间拉长到 5 年,我们看到的故事似乎又不一样了:2020 年底显然是是一个转折点。很多游戏玩家还清楚地记得&#x…

论文学习17-Global Normalization of Convolutional Neural Networks(联合实体关系抽取CNN+CRF)2017

文章目录abstract1.Introduction2.相关工作3.Model全局归一化层(使用线性链CRF)4.实验和分析4.3实验结果总结Adel, H. and H. Schtze “Global Normalization of Convolutional Neural Networks for Joint Entity and Relation Classification.”abstract CNNCRF&g…

特斯拉AI日点不燃仿人机器人的市场热情

来源:科技智谷编辑:Light"仿人机器人的巨大市场蓝海能否兑现,核心还要看产品量产和成本控制。近期,沉寂已久的仿人机器人市场终于迎来了它的“春晚”——特斯拉AI日。根据外媒报道,在9月30日(北京时间…

LSTM(序列标注,自实现)

文章目录1.LSTM1.1 单独计算单层LSTM-cell单层LSTMBPTT2.序列标注使用pytorch实现序列标注自实现lstmimport torchimport torch.nn as nndef prepare_sequence(seq, to_ix):idxs [to_ix[w] for w in seq]return torch.tensor(idxs, dtypetorch.long)training_data [("Th…

Science最新:Jeff Gore团队揭示复杂生态系统中涌现的相变

来源:集智俱乐部作者:胡脊梁编辑:邓一雪导语生态学致力于理解自然生态系统中的多样化的物种和复杂的动力学行为,然而科学家长期缺乏描述和预测生物多样性和生态动力学的统一框架。MIT物理系的胡脊梁和Jeff Gore等科学家结合理论和…

强化学习发现矩阵乘法算法,DeepMind再登Nature封面推出AlphaTensor

来源:机器之心 微信公众号DeepMind 的 Alpha 系列 AI 智能体家族又多了一个成员——AlphaTensor,这次是用来发现算法。数千年来,算法一直在帮助数学家们进行基本运算。早在很久之前,古埃及人就发明了一种不需要乘法表就能将两个数…

论文学习18-Relation extraction and the influence of automatic named-entity recognition(联合实体关系抽取模型,2007)

文章目录abstract1.introduction3.问题形式化4.系统架构5. 命名实体识别6.关系抽取(核方法)6.1global context kernel6.2 local context kernel6.3 shallow linguistic kernel7实验Giuliano, C., et al. “Relation extraction and the influence of aut…

Nature:进化新方式?线粒体DNA会插入我们的基因组

来源:生物通科学家们惊讶地发现,每4000个新生儿中就有一个会将线粒体中的一些遗传密码插入到我们的DNA中,这为人类的进化方式提供了新见解。剑桥大学和伦敦玛丽女王大学的研究人员表明,线粒体DNA也会出现在一些癌症DNA中&#xff…