《统计学习方法》——隐马尔可夫模型(中)

news2025/5/14 2:58:17

概率计算算法

直接计算法

给定模型 λ = ( A , B , π ) \lambda=(A,B,\pi) λ=(A,B,π)和观测序列 O = ( o 1 , o 2 , ⋯   , o T ) O=(o_1,o_2,\cdots,o_T) O=(o1,o2,,oT),计算观测序列 O O O出现的概率 P ( O ∣ λ ) P(O|\lambda) P(Oλ)。最直接的方法就是按概率公式直接计算。通过列举所有可能的长度为 T T T的状态序列 I = ( i 1 , i 2 , ⋯   , i T ) I=(i_1,i_2,\cdots,i_T) I=(i1,i2,,iT),求各个状态序列 I I I与观测序列 O = ( o 1 , o 2 , ⋯   , o T ) O=(o_1,o_2,\cdots,o_T) O=(o1,o2,,oT)的联合概率 P ( O , I ∣ λ ) P(O,I|\lambda) P(O,Iλ),然后对所有可能的状态序列求和,就得到 P ( O ∣ λ ) P(O|\lambda) P(Oλ)

状态序列 I = ( i 1 , i 2 , ⋯   , i T ) I=(i_1,i_2,\cdots,i_T) I=(i1,i2,,iT)的概率为
P ( I ∣ λ ) = P ( i 1 , i 2 , ⋯   , i T ∣ λ ) = P ( i 1 ) ∏ t = 2 T P ( i t ∣ i 1 , ⋯   , i t − 1 , λ ) 联合概率分布 = P ( i 1 ) ∏ t = 2 T P ( i t ∣ i t − 1 , λ ) 齐次马尔可夫假设 = π i 1 ∏ t = 2 T a i t − 1 , i t = π i 1 a i 1 , i 2 a i 2 , i 3 ⋯ a i T − 1 , i T (10.10) \begin{aligned} P(I|\lambda) &= P(i_1,i_2,\cdots,i_T|\lambda) \\ &= P(i_1) \prod_{t=2}^T P(i_t|i_1,\cdots,i_{t-1},\lambda) & 联合概率分布 \\ &= P(i_1) \prod_{t=2}^T P(i_t|i_{t-1},\lambda) & 齐次马尔可夫假设 \\ &= \pi_{i_1} \prod_{t=2}^T a_{i_{t-1},i_t} \\ &= \pi_{i_1}a_{i_1,i_2}a_{i_2,i_3}\cdots a_{i_{T-1},i_T} \end{aligned} \tag{10.10} P(Iλ)=P(i1,i2,,iTλ)=P(i1)t=2TP(iti1,,it1λ)=P(i1)t=2TP(itit1,λ)=πi1t=2Tait1,it=πi1ai1,i2ai2,i3aiT1,iT联合概率分布齐次马尔可夫假设(10.10)

就是由初始概率生成第一个状态 i 1 i_1 i1,然后转移到第二个状态 i 2 i_2 i2,最后到第 T T T个状态 i T i_T iT的概率之积。

对于固定的状态序列 I = ( i 1 , i 2 , ⋯   , i T ) I=(i_1,i_2,\cdots,i_T) I=(i1,i2,,iT),观测序列 O = ( o 1 , o 2 , ⋯   , o T ) O=(o_1,o_2,\cdots,o_T) O=(o1,o2,,oT)的概率是:
P ( O ∣ I , λ ) = P ( o 1 , o 2 , ⋯   , o T ∣ i 1 , i 2 , ⋯   , i T , λ ) = P ( o T ∣ o 1 , o 2 , ⋯   , o T − 1 , i 1 , i 2 , ⋯   , i T , λ ) P ( o 1 , o 2 , ⋯   , o T − 1 ∣ i 1 , i 2 , ⋯   , i T , λ ) = P ( o T ∣ i T , λ ) P ( o 1 , o 2 , ⋯   , o T − 1 ∣ i 1 , i 2 , ⋯   , i T , λ ) 观测独立假设 = P ( o T ∣ i T , λ ) P ( o T − 1 ∣ o 1 , o 2 , ⋯   , o T − 2 , i 1 , i 2 , ⋯   , i T , λ ) P ( o 1 , o 2 , ⋯   , o T − 2 ∣ i 1 , i 2 , ⋯   , i T , λ ) = P ( o T ∣ i T , λ ) P ( o T − 1 ∣ i T − 1 , λ ) P ( o 1 , o 2 , ⋯   , o T − 2 ∣ i 1 , i 2 , ⋯   , i T , λ ) = ∏ t = 1 T P ( o t ∣ i t ) = ∏ t = 1 T b i t ( o t ) = b i 1 ( o 1 ) b i 2 ( o 2 ) ⋯ b i T ( o T ) (10.11) \begin{aligned} P(O|I,\lambda) &= P(o_1,o_2,\cdots,o_T|i_1,i_2,\cdots,i_T,\lambda) \\ &= P(o_T|o_1,o_2,\cdots,o_{T-1},i_1,i_2,\cdots,i_T,\lambda) P(o_1,o_2,\cdots,o_{T-1}|i_1,i_2,\cdots,i_T,\lambda)\\ &= P(o_T|i_T,\lambda) P(o_1,o_2,\cdots,o_{T-1}|i_1,i_2,\cdots,i_T,\lambda) & 观测独立假设 \\ &= P(o_T|i_T,\lambda) P(o_{T-1}|o_1,o_2,\cdots,o_{T-2},i_1,i_2,\cdots,i_T,\lambda) P(o_1,o_2,\cdots,o_{T-2}|i_1,i_2,\cdots,i_T,\lambda)\\ &= P(o_T|i_T,\lambda) P(o_{T-1}|i_{T-1},\lambda) P(o_1,o_2,\cdots,o_{T-2}|i_1,i_2,\cdots,i_T,\lambda)\\ &= \prod_{t=1}^T P(o_t|i_t) \\ &= \prod_{t=1}^T b_{i_t}(o_t) \\ &= b_{i_1}(o_1)b_{i_2}(o_2)\cdots b_{i_T}(o_T) \end{aligned} \tag{10.11} P(OI,λ)=P(o1,o2,,oTi1,i2,,iT,λ)=P(oTo1,o2,,oT1,i1,i2,,iT,λ)P(o1,o2,,oT1i1,i2,,iT,λ)=P(oTiT,λ)P(o1,o2,,oT1i1,i2,,iT,λ)=P(oTiT,λ)P(oT1o1,o2,,oT2,i1,i2,,iT,λ)P(o1,o2,,oT2i1,i2,,iT,λ)=P(oTiT,λ)P(oT1iT1,λ)P(o1,o2,,oT2i1,i2,,iT,λ)=t=1TP(otit)=t=1Tbit(ot)=bi1(o1)bi2(o2)biT(oT)观测独立假设(10.11)

由状态 i 1 i_1 i1产生观测 o 1 o_1 o1,状态 i 2 i_2 i2产生观测 o 2 o_2 o2,到状态 i T i_T iT产生观测 o T o_T oT的概率之积。

那么 O O O I I I同时出现的概率为:
P ( O , I ∣ λ ) = P ( O ∣ I , λ ) P ( I ∣ λ ) = b i 1 ( o 1 ) b i 2 ( o 2 ) ⋯ b i T ( o T ) π i 1 a i 1 , i 2 a i 2 , i 3 ⋯ a i T − 1 , i T = π i 1 b i 1 ( o 1 ) a i 1 , i 2 b i 2 ( o 2 ) ⋯ a i T − 1 , i T b i T ( o T ) (10.12) \begin{aligned} P(O,I|\lambda) &= P(O|I,\lambda) P(I|\lambda) \\ &= b_{i_1}(o_1)b_{i_2}(o_2)\cdots b_{i_T}(o_T) \pi_{i_1}a_{i_1,i_2}a_{i_2,i_3}\cdots a_{i_{T-1},i_T} \\ &= \pi_{i_1} b_{i_1}(o_1)a_{i_1,i_2}b_{i_2}(o_2)\cdots a_{i_{T-1},i_T}b_{i_T}(o_T) \end{aligned} \tag{10.12} P(O,Iλ)=P(OI,λ)P(Iλ)=bi1(o1)bi2(o2)biT(oT)πi1ai1,i2ai2,i3aiT1,iT=πi1bi1(o1)ai1,i2bi2(o2)aiT1,iTbiT(oT)(10.12)
上式只是针对一种状态序列 I I I,对所有可能的状态序列 I I I求和,就可以得到观测序列 O O O的概率 P ( O ∣ λ ) P(O|\lambda) P(Oλ),即
P ( O ∣ λ ) = ∑ I P ( O , I ∣ λ ) = ∑ I P ( O ∣ I , λ ) P ( I ∣ λ ) = ∑ i 1 , i 2 , ⋯   , i T π i 1 b i 1 ( o 1 ) a i 1 , i 2 b i 2 ( o 2 ) ⋯ a i T − 1 , i T b i T ( o T ) (10.13) \begin{aligned} P(O|\lambda) &= \sum_I P(O,I|\lambda) \\ &= \sum_I P(O|I,\lambda) P(I|\lambda) \\ &= \sum_{i_1,i_2,\cdots,i_T} \pi_{i_1} b_{i_1}(o_1)a_{i_1,i_2}b_{i_2}(o_2)\cdots a_{i_{T-1},i_T}b_{i_T}(o_T) \end{aligned} \tag{10.13} P(Oλ)=IP(O,Iλ)=IP(OI,λ)P(Iλ)=i1,i2,,iTπi1bi1(o1)ai1,i2bi2(o2)aiT1,iTbiT(oT)(10.13)
但是,直接利用上式计算量非常大。其中 ∑ i 1 , i 2 , ⋯   , i T \sum_{i_1,i_2,\cdots,i_T} i1,i2,,iT共有 N T N^T NT种可能(长度为 T T T,每个位置都有 N N N种可能),而计算 π i 1 b i 1 ( o 1 ) a i 1 , i 2 b i 2 ( o 2 ) ⋯ a i T − 1 , i T b i T ( o T ) \pi_{i_1} b_{i_1}(o_1)a_{i_1,i_2}b_{i_2}(o_2)\cdots a_{i_{T-1},i_T}b_{i_T}(o_T) πi1bi1(o1)ai1,i2bi2(o2)aiT1,iTbiT(oT)的时间复杂度为 O ( T ) O(T) O(T),所以整体的时间复杂度是 O ( T N T ) O(TN^T) O(TNT)阶的,这种算法实际上不可行。

下面介绍计算观测序列概率 P ( O ∣ λ ) P(O|\lambda) P(Oλ)的有效算法:前向-后向算法(forward-backward algorithm)。

前向算法

定义10.2(前向概率) 给定隐马尔可夫模型 λ \lambda λ,定义到时刻 t t t部分观测序列为 o 1 , o 2 , ⋯   , o t o_1,o_2,\cdots,o_t o1,o2,,ot且状态为 q i q_i qi的概率为前向概率,记作
α t ( i ) = P ( o 1 , o 2 , ⋯   , o t , i t = q i ∣ λ ) (10.14) \alpha_t(i) = P(o_1,o_2,\cdots,o_t,i_t=q_i|\lambda) \tag{10.14} αt(i)=P(o1,o2,,ot,it=qiλ)(10.14)
这个公式中 α \alpha α的下标变成了观测序列,参数变成了状态。

从这个定义可以看到,显然我们可以基于时刻 a t − 1 a_{t-1} at1来表示 α t \alpha_t αt,即可以递推地求得前向概率 α t ( i ) \alpha_t(i) αt(i)及观测序列概率 P ( O ∣ λ ) P(O|\lambda) P(Oλ)

算法10.2(观测序列概率的前向算法)

输入:隐马尔可夫模型 λ \lambda λ,观测序列 O O O

输出:观测序列概率 P ( O ∣ λ ) P(O|\lambda) P(Oλ)

(1) 初值
α 1 ( i ) = π i b i ( o 1 ) , i = 1 , 2 , ⋯   , N (10.15) \alpha_1(i) = \pi_i b_i(o_1), \quad i=1,2,\cdots,N \tag{10.15} α1(i)=πibi(o1),i=1,2,,N(10.15)
t = 1 t=1 t=1时,只看到观测 o 1 o_1 o1,是初始时刻的状态 i 1 = q i i_1=q_i i1=qi和观测 o 1 o_1 o1的联合概率,即初始状态为 i i i的概率 π i \pi_i πi乘以 状态 i i i产生观测 o 1 o_1 o1的概率 b i ( o 1 ) b_i(o_1) bi(o1)

(2) 递推 对 t = 1 , 2 , ⋯   , T − 1 t=1,2,\cdots,T-1 t=1,2,,T1

计算到时刻 t + 1 t+1 t+1部分观测序列为 o 1 , o 2 , ⋯   , o t , o t + 1 o_1,o_2,\cdots,o_t,o_{t+1} o1,o2,,ot,ot+1且在时刻 t + 1 t+1 t+1处处于状态 q i q_i qi的前向概率。

公式推导如下:
α t + 1 ( i ) = P ( o 1 , o 2 , ⋯   , o t , o t + 1 , i t + 1 = q i ∣ λ ) = ∑ j = 1 N P ( o 1 , o 2 , ⋯   , o t , o t + 1 , i t = q j , i t + 1 = q i ∣ λ ) 引入 i t = q j = ∑ j = 1 N P ( o t + 1 ∣ o 1 , o 2 , ⋯   , o t , i t = q j , i t + 1 = q i , λ ) P ( o 1 , o 2 , ⋯   , o t , i t = q j , i t + 1 = q i ∣ λ ) = ∑ j = 1 N P ( o t + 1 ∣ i t + 1 = q i , λ ) P ( o 1 , o 2 , ⋯   , o t , i t = q j , i t + 1 = q i ∣ λ ) 观测独立假设 = ∑ j = 1 N P ( o t + 1 ∣ i t + 1 = q i , λ ) P ( i t + 1 = q i ∣ o 1 , o 2 , ⋯   , o t , i t = q j , i t + 1 = q i , λ ) P ( o 1 , o 2 , ⋯   , o t , i t = q j ∣ λ ) = ∑ j = 1 N P ( o t + 1 ∣ i t + 1 = q i , λ ) P ( i t + 1 = q i ∣ i t = q j , λ ) P ( o 1 , o 2 , ⋯   , o t , i t = q j ∣ λ ) 齐次马尔可夫假设 = [ ∑ j = 1 N P ( i t + 1 = q i ∣ i t = q j , λ ) P ( o 1 , o 2 , ⋯   , o t , i t = q j ∣ λ ) ] P ( o t + 1 ∣ i t + 1 = q i ) = [ ∑ j = 1 N a j i α t ( j ) ] b i ( o t + 1 ) \begin{aligned} \alpha_{t+1}(i) &= P(o_1,o_2,\cdots,o_t,o_{t+1},i_{t+1}=q_i|\lambda) \\ &= \sum_{j=1}^N P(o_1,o_2,\cdots,o_t,o_{t+1},i_t = q_j ,i_{t+1}=q_i|\lambda) & 引入i_t=q_j\\ &= \sum_{j=1}^N P(o_{t+1}|o_1,o_2,\cdots,o_t,i_t = q_j ,i_{t+1}=q_i,\lambda) P(o_1,o_2,\cdots,o_t,i_t = q_j ,i_{t+1}=q_i|\lambda) \\ &= \sum_{j=1}^N P(o_{t+1}| i_{t+1}=q_i,\lambda) P(o_1,o_2,\cdots,o_t,i_t = q_j ,i_{t+1}=q_i|\lambda) & 观测独立假设\\ &= \sum_{j=1}^N P(o_{t+1}| i_{t+1}=q_i,\lambda) P(i_{t+1}=q_i|o_1,o_2,\cdots,o_t,i_t = q_j ,i_{t+1}=q_i,\lambda)P(o_1,o_2,\cdots,o_t,i_t = q_j |\lambda) \\ &= \sum_{j=1}^N P(o_{t+1}| i_{t+1}=q_i,\lambda) P(i_{t+1}=q_i|i_t = q_j,\lambda )P(o_1,o_2,\cdots,o_t,i_t = q_j |\lambda) & 齐次马尔可夫假设 \\ &=\left[ \sum_{j=1}^N P(i_{t+1}=q_i|i_t = q_j ,\lambda)P(o_1,o_2,\cdots,o_t,i_t = q_j |\lambda) \right] P(o_{t+1}| i_{t+1}=q_i) \\ &= \left[ \sum_{j=1}^N a_{ji} \alpha_t(j) \right ] b_{i}(o_{t+1}) \end{aligned} αt+1(i)=P(o1,o2,,ot,ot+1,it+1=qiλ)=j=1NP(o1,o2,,ot,ot+1,it=qj,it+1=qiλ)=j=1NP(ot+1o1,o2,,ot,it=qj,it+1=qi,λ)P(o1,o2,,ot,it=qj,it+1=qiλ)=j=1NP(ot+1it+1=qi,λ)P(o1,o2,,ot,it=qj,it+1=qiλ)=j=1NP(ot+1it+1=qi,λ)P(it+1=qio1,o2,,ot,it=qj,it+1=qi,λ)P(o1,o2,,ot,it=qjλ)=j=1NP(ot+1it+1=qi,λ)P(it+1=qiit=qj,λ)P(o1,o2,,ot,it=qjλ)=[j=1NP(it+1=qiit=qj,λ)P(o1,o2,,ot,it=qjλ)]P(ot+1it+1=qi)=[j=1Najiαt(j)]bi(ot+1)引入it=qj观测独立假设齐次马尔可夫假设
把上式整理一下,就得到了书中的形式:

α t + 1 ( i ) = [ ∑ j = 1 N α t ( j ) a j i ] b i ( o t + 1 ) , i = 1 , 2 , ⋯   , N (10.16) \alpha_{t+1}(i) = \left[\sum_{j=1}^N \alpha_{t}(j) a_{ji}\right] b_{i}(o_{t+1}),\quad i=1,2,\cdots,N \tag{10.16} αt+1(i)=[j=1Nαt(j)aji]bi(ot+1),i=1,2,,N(10.16)

(3) 终止

因为
α T ( i ) = P ( o 1 , o 2 , ⋯   , o T , i T = q i ∣ λ ) \alpha_T(i) = P(o_1,o_2,\cdots,o_T,i_T=q_i|\lambda) αT(i)=P(o1,o2,,oT,iT=qiλ)
所以
P ( O ∣ λ ) = ∑ i = 1 N P ( O , i t = q i ∣ λ ) = ∑ i = 1 N α T ( i ) (10.17) P(O|\lambda) = \sum_{i=1}^N P(O,i_t=q_i|\lambda)=\sum_{i=1}^N \alpha_{T}(i) \tag{10.17} P(Oλ)=i=1NP(O,it=qiλ)=i=1NαT(i)(10.17)
如图10.2所示,前向算法实际是基于“状态序列的路径结构”递推计算 P ( O ∣ λ ) P(O|\lambda) P(Oλ)的算法。其高效的关键在于记住并利用前一步计算的前向概率,避免了重复计算,然后利用路径结构将前向概率递推到全局,得到 P ( O ∣ λ ) P(O|\lambda) P(Oλ)。这样,利用前向概率计算 P ( O ∣ λ ) P(O|\lambda) P(Oλ)的计算量是 O ( N 2 T ) O(N^2T) O(N2T)阶的,而不是直接计算的 O ( T N T ) O(TN^T) O(TNT)

在每个时间步 t t t,每个状态都需要与前一个时间步 t − 1 t-1 t1 N N N个状态的结果相乘。而每个时间步 t t t,都有 N N N个状态,所以是 N 2 N^2 N2,总共有 T T T个时间步,所以总量是 O ( N 2 T ) O(N^2T) O(N2T)

image-20230502173720900

后向算法

定义 10.3(后向概率) 给定隐马尔可夫模型 λ \lambda λ,定义在时刻 t t t状态为 q i q_i qi的条件下,从 t + 1 t+1 t+1 T T T的部分观测序列为 o t + 1 , o t + 2 , ⋯   , o T o_{t+1},o_{t+2},\cdots,o_T ot+1,ot+2,,oT的概率为后向概率,记作
β t ( i ) = P ( o t + 1 , o t + 2 , ⋯   , o T ∣ i t = q i , λ ) (10.18) \beta_t(i) = P(o_{t+1},o_{t+2},\cdots,o_T|i_t=q_i,\lambda) \tag{10.18} βt(i)=P(ot+1,ot+2,,oTit=qi,λ)(10.18)
这里和前向概率有点不同,隐藏状态 i t = q i i_t=q_i it=qi作为条件观测 o t + 1 : T o_{t+1:T} ot+1:T,下面也推导一下。

同样可以用递推的方法求得后向概率 β t ( i ) \beta_t(i) βt(i)及观测序列 P ( O ∣ λ ) P(O|\lambda) P(Oλ)

算法 10.3(观测序列概率的后向算法)

输入: 隐马尔可夫模型 λ \lambda λ,观测序列 O O O

输出: 观测序列概率 P ( O ∣ λ ) P(O|\lambda) P(Oλ)

(1)
β T ( i ) = 1 , i = 1 , 2 , ⋯   , N (10.19) \beta_T(i) = 1, \quad i=1,2,\cdots,N \tag{10.19} βT(i)=1,i=1,2,,N(10.19)
初始概率为 1 1 1

(2) 对 t = T − 1 , T − 2 , ⋯ 1 t=T-1,T-2,\cdots 1 t=T1,T2,1

我们希望通过 β t + 1 ( j ) = P ( o t + 2 , ⋯   , o T ∣ i t + 1 = q j , λ ) \beta_{t+1}(j) = P(o_{t+2},\cdots,o_T|i_{t+1}=q_j,\lambda) βt+1(j)=P(ot+2,,oTit+1=qj,λ)来表示 β t ( i ) \beta_{t}(i) βt(i)
β t ( i ) = P ( o t + 1 , o t + 2 , ⋯   , o T ∣ i t = q i , λ ) = ∑ j = 1 N P ( o t + 1 , o t + 2 , ⋯   , o T , i t + 1 = q j ∣ i t = q i , λ ) = ∑ j = 1 N P ( o t + 1 , o t + 2 , ⋯   , o T , ∣ i t + 1 = q j , i t = q i , λ ) P ( i t + 1 = q j ∣ i t = q i , λ ) = ∑ j = 1 N P ( o t + 1 , o t + 2 , ⋯   , o T , ∣ i t + 1 = q j , λ ) P ( i t + 1 = q j ∣ i t = q i , λ ) 阻隔 = ∑ j = 1 N P ( o t + 1 ∣ o t + 2 , ⋯   , o T , i t + 1 = q j , λ ) P ( o t + 2 , ⋯   , o T ∣ i t + 1 = q j , λ ) P ( i t + 1 = q j ∣ i t = q i , λ ) = ∑ j = 1 N P ( o t + 1 ∣ i t + 1 = q j , λ ) P ( o t + 2 , ⋯   , o T ∣ i t + 1 = q j , λ ) P ( i t + 1 = q j ∣ i t = q i , λ ) 观测独立假设 = ∑ j = 1 N b j ( o t + 1 ) β t + 1 ( j ) a i j = ∑ j = 1 N a i j b j ( o t + 1 ) β t + 1 ( j ) i = 1 , 2 , ⋯   , N (10.20) \begin{aligned} \beta_{t}(i) &= P(o_{t+1},o_{t+2},\cdots,o_T|i_t=q_i,\lambda) \\ &= \sum_{j=1}^N P(o_{t+1},o_{t+2},\cdots,o_T,i_{t+1}=q_j|i_t=q_i,\lambda) \\ &= \sum_{j=1}^N P(o_{t+1},o_{t+2},\cdots,o_T,|i_{t+1}=q_j,i_t=q_i,\lambda) P(i_{t+1}=q_j|i_t=q_i,\lambda) \\ &= \sum_{j=1}^N P(o_{t+1},o_{t+2},\cdots,o_T,|i_{t+1}=q_j,\lambda) P(i_{t+1}=q_j|i_t=q_i,\lambda) & 阻隔\\ &= \sum_{j=1}^N P(o_{t+1}|o_{t+2},\cdots,o_T,i_{t+1}=q_j,\lambda) P(o_{t+2},\cdots,o_T|i_{t+1}=q_j,\lambda) P(i_{t+1}=q_j|i_t=q_i,\lambda)\\ &= \sum_{j=1}^N P(o_{t+1} | i_{t+1}=q_j,\lambda) P(o_{t+2},\cdots,o_T|i_{t+1}=q_j,\lambda) P(i_{t+1}=q_j|i_t=q_i,\lambda) & 观测独立假设\\ &= \sum_{j=1}^N b_j(o_{t+1}) \beta_{t+1}(j) a_{ij} \\ &= \sum_{j=1}^N a_{ij} b_j(o_{t+1}) \beta_{t+1}(j) \quad i=1,2,\cdots, N \end{aligned} \tag{10.20} βt(i)=P(ot+1,ot+2,,oTit=qi,λ)=j=1NP(ot+1,ot+2,,oT,it+1=qjit=qi,λ)=j=1NP(ot+1,ot+2,,oT,it+1=qj,it=qi,λ)P(it+1=qjit=qi,λ)=j=1NP(ot+1,ot+2,,oT,it+1=qj,λ)P(it+1=qjit=qi,λ)=j=1NP(ot+1ot+2,,oT,it+1=qj,λ)P(ot+2,,oTit+1=qj,λ)P(it+1=qjit=qi,λ)=j=1NP(ot+1it+1=qj,λ)P(ot+2,,oTit+1=qj,λ)P(it+1=qjit=qi,λ)=j=1Nbj(ot+1)βt+1(j)aij=j=1Naijbj(ot+1)βt+1(j)i=1,2,,N阻隔观测独立假设(10.20)

(3)
P ( O ∣ λ ) = P ( o 1 , ⋯   , o T ∣ λ ) = ∑ i = 1 N P ( o 1 , ⋯   , o T , i 1 = q i ∣ λ ) = ∑ i = 1 N P ( o 1 , ⋯   , o T ∣ i 1 = q i , λ ) P ( i 1 = q i ∣ λ ) = ∑ i = 1 N P ( o 1 ∣ o 2 , ⋯   , o T , i 1 = q i , λ ) P ( o 2 , ⋯   , o T ∣ i 1 = q i , λ ) P ( i 1 = q i ∣ λ ) = ∑ i = 1 N P ( o 1 ∣ i 1 = q i , λ ) P ( o 2 , ⋯   , o T ∣ i 1 = q i , λ ) P ( i 1 = q i ∣ λ ) = ∑ i = 1 N b i ( o 1 ) β 1 ( i ) π i = ∑ i = 1 N π i b i ( o 1 ) β 1 ( i ) (10.21) \begin{aligned} P(O|\lambda) &= P(o_1,\cdots,o_T|\lambda) \\ &= \sum_{i=1}^N P(o_1,\cdots,o_T,i_1=q_i|\lambda) \\ &= \sum_{i=1}^N P(o_1,\cdots,o_T|i_1=q_i,\lambda)P(i_1=q_i|\lambda) \\ &= \sum_{i=1}^N P(o_1|o_2,\cdots,o_T,i_1=q_i,\lambda) P(o_2,\cdots,o_T|i_1=q_i,\lambda)P(i_1=q_i|\lambda) \\ &= \sum_{i=1}^N P(o_1|i_1=q_i,\lambda)P(o_2,\cdots,o_T|i_1=q_i,\lambda)P(i_1=q_i|\lambda) \\ &= \sum_{i=1}^N b_i(o_1) \beta_1(i) \pi_i \\ &= \sum_{i=1}^N \pi_i b_i(o_1)\beta_1(i) \end{aligned} \tag{10.21} P(Oλ)=P(o1,,oTλ)=i=1NP(o1,,oT,i1=qiλ)=i=1NP(o1,,oTi1=qi,λ)P(i1=qiλ)=i=1NP(o1o2,,oT,i1=qi,λ)P(o2,,oTi1=qi,λ)P(i1=qiλ)=i=1NP(o1i1=qi,λ)P(o2,,oTi1=qi,λ)P(i1=qiλ)=i=1Nbi(o1)β1(i)πi=i=1Nπibi(o1)β1(i)(10.21)
利用前向概率和后向概率的定义可以将观测序列概率 P ( O ∣ λ ) P(O|\lambda) P(Oλ)统一写成
P ( O ∣ λ ) = ∑ i = 1 N ∑ j = 1 N α t ( i ) a i j b j ( o t + 1 ) β t + 1 ( j ) , t = 1 , 2 , ⋯   , T − 1 (10.22) P(O|\lambda) = \sum_{i=1}^N \sum_{j=1}^N \alpha_t(i)a_{ij}b_j(o_{t+1})\beta_{t+1}(j),\quad t=1,2,\cdots,T-1 \tag{10.22} P(Oλ)=i=1Nj=1Nαt(i)aijbj(ot+1)βt+1(j),t=1,2,,T1(10.22)
这是公式怎么来的呢,我们也推导一下。为了简便,省去固定参数 λ \lambda λ

P ( O ) = P ( o 1 , ⋯   , o T ) = ∑ i = 1 N ∑ j = 1 N P ( o 1 , ⋯   , o T , i t = q i , i t + 1 = q j ) = ∑ i = 1 N ∑ j = 1 N P ( o 1 , ⋯   , o t , o t + 2 , ⋯   , o T , i t = q i , i t + 1 = q j ) P ( o t + 1 ∣ o 1 , ⋯   , o t , o t + 2 , ⋯   , o T , i t = q i , i t + 1 = q j ) = ∑ i = 1 N ∑ j = 1 N P ( o 1 , ⋯   , o t , o t + 2 , ⋯   , o T , i t = q i , i t + 1 = q j ) P ( o t + 1 ∣ i t + 1 = q j ) 观测独立假设 = ∑ i = 1 N ∑ j = 1 N P ( o 1 , ⋯   , o t , o t + 2 , ⋯   , o T , i t = q i , i t + 1 = q j ) b j ( o t + 1 ) = ∑ i = 1 N ∑ j = 1 N P ( o 1 , ⋯   , o t , i t = q i , i t + 1 = q j ) P ( o t + 2 , ⋯   , o T ∣ o 1 , ⋯   , o t , i t = q i , i t + 1 = q j ) b j ( o t + 1 ) = ∑ i = 1 N ∑ j = 1 N P ( o 1 , ⋯   , o t , i t = q i , i t + 1 = q j ) P ( o t + 2 , ⋯   , o T ∣ i t + 1 = q j ) b j ( o t + 1 ) D − 划分 = ∑ i = 1 N ∑ j = 1 N P ( i t + 1 = q j ∣ o 1 , ⋯   , o t , i t = q i ) P ( o 1 , ⋯   , o t , i t = q i ) P ( o t + 2 , ⋯   , o T ∣ i t + 1 = q j ) b j ( o t + 1 ) = ∑ i = 1 N ∑ j = 1 N P ( i t + 1 = q j ∣ i t = q i ) P ( o 1 , ⋯   , o t , i t = q i ) P ( o t + 2 , ⋯   , o T ∣ i t + 1 = q j ) b j ( o t + 1 ) 齐次马尔可夫假设 = ∑ i = 1 N ∑ j = 1 N a i j α t ( i ) β t + 1 ( j ) b j ( o t + 1 ) = ∑ i = 1 N ∑ j = 1 N α t ( i ) a i j b j ( o t + 1 ) β t + 1 ( j ) , t = 1 , 2 , ⋯   , T − 1 \begin{aligned} P(O) &= P(o_1,\cdots,o_T) \\ &= \sum_{i=1}^N \sum_{j=1}^N P(o_1,\cdots,o_T, i_t=q_i, i_{t+1} =q_j)\\ &= \sum_{i=1}^N \sum_{j=1}^N P(o_1,\cdots,o_t, o_{t+2},\cdots,o_T, i_t=q_i, i_{t+1} =q_j) P(o_{t+1}|o_1,\cdots,o_t, o_{t+2},\cdots,o_T, i_t=q_i, i_{t+1} =q_j) \\ &= \sum_{i=1}^N \sum_{j=1}^N P(o_1,\cdots,o_t, o_{t+2},\cdots,o_T, i_t=q_i, i_{t+1} =q_j) P(o_{t+1}|i_{t+1}=q_j) & 观测独立假设\\ &= \sum_{i=1}^N \sum_{j=1}^N P(o_1,\cdots,o_t, o_{t+2},\cdots,o_T, i_t=q_i, i_{t+1} =q_j) b_j(o_{t+1})\\ &= \sum_{i=1}^N \sum_{j=1}^N P(o_1,\cdots,o_t,i_t=q_i, i_{t+1} =q_j) P(o_{t+2},\cdots,o_T|o_1,\cdots,o_t,i_t=q_i, i_{t+1} =q_j)b_j(o_{t+1})\\ &= \sum_{i=1}^N \sum_{j=1}^N P(o_1,\cdots,o_t,i_t=q_i, i_{t+1} =q_j) P(o_{t+2},\cdots,o_T|i_{t+1} =q_j)b_j(o_{t+1}) & D-划分 \\ &= \sum_{i=1}^N \sum_{j=1}^N P(i_{t+1}=q_j|o_1,\cdots,o_t,i_t=q_i)P(o_1,\cdots,o_t,i_t=q_i)P(o_{t+2},\cdots,o_T|i_{t+1} =q_j)b_j(o_{t+1}) \\ &= \sum_{i=1}^N \sum_{j=1}^N P(i_{t+1}=q_j|i_t=q_i) P(o_1,\cdots,o_t,i_t=q_i)P(o_{t+2},\cdots,o_T|i_{t+1} =q_j)b_j(o_{t+1}) & 齐次马尔可夫假设 \\ &= \sum_{i=1}^N \sum_{j=1}^N a_{ij} \alpha_t(i) \beta_{t+1}(j)b_j(o_{t+1})\\ &= \sum_{i=1}^N \sum_{j=1}^N \alpha_t(i) a_{ij} b_j(o_{t+1})\beta_{t+1}(j), \quad t=1,2,\cdots,T-1 \end{aligned} P(O)=P(o1,,oT)=i=1Nj=1NP(o1,,oT,it=qi,it+1=qj)=i=1Nj=1NP(o1,,ot,ot+2,,oT,it=qi,it+1=qj)P(ot+1o1,,ot,ot+2,,oT,it=qi,it+1=qj)=i=1Nj=1NP(o1,,ot,ot+2,,oT,it=qi,it+1=qj)P(ot+1it+1=qj)=i=1Nj=1NP(o1,,ot,ot+2,,oT,it=qi,it+1=qj)bj(ot+1)=i=1Nj=1NP(o1,,ot,it=qi,it+1=qj)P(ot+2,,oTo1,,ot,it=qi,it+1=qj)bj(ot+1)=i=1Nj=1NP(o1,,ot,it=qi,it+1=qj)P(ot+2,,oTit+1=qj)bj(ot+1)=i=1Nj=1NP(it+1=qjo1,,ot,it=qi)P(o1,,ot,it=qi)P(ot+2,,oTit+1=qj)bj(ot+1)=i=1Nj=1NP(it+1=qjit=qi)P(o1,,ot,it=qi)P(ot+2,,oTit+1=qj)bj(ot+1)=i=1Nj=1Naijαt(i)βt+1(j)bj(ot+1)=i=1Nj=1Nαt(i)aijbj(ot+1)βt+1(j),t=1,2,,T1观测独立假设D划分齐次马尔可夫假设

这里利用了前面介绍的D-划分:
P ( o t + 2 , ⋯   , o T ∣ o 1 , ⋯   , o t , i t = q i , i t + 1 = q j ) = P ( o t + 2 , ⋯   , o T ∣ i t + 1 = q j ) P(o_{t+2},\cdots,o_T|o_1,\cdots,o_t,i_t=q_i, i_{t+1} =q_j) = P(o_{t+2},\cdots,o_T|i_{t+1} =q_j) P(ot+2,,oTo1,,ot,it=qi,it+1=qj)=P(ot+2,,oTit+1=qj)
根据概率图就很直观了:

在这里插入图片描述

节点 o t + 2 , ⋯   , o T o_{t+2},\cdots,o_T ot+2,,oT中的任何一个节点到节点 o 1 , ⋯   , o t o_1,\cdots,o_t o1,,ot i t i_t it都要经过 i t + 1 i_{t+1} it+1,而 i t + 1 i_{t+1} it+1被观测到(它在条件中),所有的这种路径都是头到尾的,因此该条件独立性质成立。

一些概率与期望值的计算

利用前向概率和后向概率,可以得到关于单个状态和两个状态概率的计算公式。

1.给定模型 λ \lambda λ和观测 O O O,在时刻 t t t处于状态 q i q_i qi的概率。记
γ t ( i ) = P ( i t = q i ∣ O , λ ) (10.23) \gamma_t(i) = P(i_t=q_i|O,\lambda) \tag{10.23} γt(i)=P(it=qiO,λ)(10.23)
可以通过前向概率后向概率计算
γ t ( i ) = P ( i t = q i ∣ O , λ ) = P ( i t = q i , O ∣ λ ) P ( O ∣ λ ) \gamma_t(i) = P(i_t=q_i|O,\lambda) =\frac{P(i_t=q_i,O|\lambda) }{P(O|\lambda)} γt(i)=P(it=qiO,λ)=P(Oλ)P(it=qi,Oλ)

同样,为了简便,省去已知参数 λ \lambda λ

γ t ( i ) = P ( i t = q i ∣ O ) = P ( i t = q i , O ) P ( O ) = 1 P ( O ) P ( i t = q i ) P ( O ∣ i t = q i ) = P ( i t = q i ) P ( O ) P ( o 1 , ⋯   , o t ∣ i t = q i ) P ( o t + 1 , ⋯   , o T ∣ i t = q i ) D − 划分 = 1 P ( O ) P ( o 1 , ⋯   , o t , i t = q i ) P ( o t + 1 , ⋯   , o T ∣ i t = q i ) = α t ( i ) β t ( i ) P ( O ) = α t ( i ) β t ( i ) ∑ j = 1 N P ( O , i t = q j ) = α t ( i ) β t ( i ) ∑ j = 1 N α t ( j ) β t ( j ) (10.24) \begin{aligned} \gamma_t(i) &= P(i_t=q_i|O) \\ &= \frac{P(i_t=q_i,O)}{P(O)} \\ &= \frac{1}{P(O)} P(i_t=q_i) P(O|i_t=q_i) \\ &= \frac{P(i_t=q_i)}{P(O)} P(o_1,\cdots,o_t|i_t=q_i) P(o_{t+1},\cdots,o_T|i_t=q_i) & D-划分 \\ &= \frac{1}{P(O)} P(o_1,\cdots,o_t,i_t=q_i) P(o_{t+1},\cdots,o_T|i_t=q_i) \\ &= \frac{\alpha_t(i)\beta_t(i)}{P(O)} \\ &= \frac{\alpha_t(i)\beta_t(i)}{\sum_{j=1}^N P(O,i_t=q_j)} \\ &= \frac{\alpha_t(i)\beta_t(i)}{\sum_{j=1}^N \alpha_t(j)\beta_t(j)} \end{aligned} \tag{10.24} γt(i)=P(it=qiO)=P(O)P(it=qi,O)=P(O)1P(it=qi)P(Oit=qi)=P(O)P(it=qi)P(o1,,otit=qi)P(ot+1,,oTit=qi)=P(O)1P(o1,,ot,it=qi)P(ot+1,,oTit=qi)=P(O)αt(i)βt(i)=j=1NP(O,it=qj)αt(i)βt(i)=j=1Nαt(j)βt(j)αt(i)βt(i)D划分(10.24)
这里关键部分是 P ( O ∣ i t = q i ) = P ( o 1 , ⋯   , o t ∣ i t = q i ) P ( o t + 1 , ⋯   , o T ∣ i t = q i ) P(O|i_t=q_i) = P(o_1,\cdots,o_t|i_t=q_i) P(o_{t+1},\cdots,o_T|i_t=q_i) P(Oit=qi)=P(o1,,otit=qi)P(ot+1,,oTit=qi)

这个是怎么得到的呢?还是利用了D-划分规则:

在这里插入图片描述

可能还是没那么直观,再展开就好了:
P ( O ∣ i t = q i ) = P ( o 1 , ⋯   , o T ∣ i t = q i ) = P ( o 1 , ⋯   , o t ∣ i t = q i ) P ( o t + 1 , ⋯   , o T ∣ i t = q i , o 1 , ⋯   , o t ) = P ( o 1 , ⋯   , o t ∣ i t = q i ) P ( o t + 1 , ⋯   , o T ∣ i t = q i ) d − 划分 \begin{aligned} P(O|i_t=q_i) &= P(o_1,\cdots,o_T|i_t=q_i) \\ &= P(o_1,\cdots,o_t|i_t=q_i)P(o_{t+1},\cdots,o_T|i_t=q_i,o_1,\cdots,o_t) \\ &= P(o_1,\cdots,o_t|i_t=q_i) P(o_{t+1},\cdots,o_T|i_t=q_i) & d-划分 \end{aligned} P(Oit=qi)=P(o1,,oTit=qi)=P(o1,,otit=qi)P(ot+1,,oTit=qi,o1,,ot)=P(o1,,otit=qi)P(ot+1,,oTit=qi)d划分
这里 P ( o t + 1 , ⋯   , o T ∣ i t = q i , o 1 , ⋯   , o t ) = P ( o t + 1 , ⋯   , o T ∣ i t = q i ) P(o_{t+1},\cdots,o_T|i_t=q_i,o_1,\cdots,o_t) =P(o_{t+1},\cdots,o_T|i_t=q_i) P(ot+1,,oTit=qi,o1,,ot)=P(ot+1,,oTit=qi)利用了D-划分。

节点 o t + 1 , ⋯   , o T o_{t+1},\cdots,o_T ot+1,,oT 中的任何一个节点到节点 o 1 , ⋯   , o t o_1,\cdots,o_t o1,,ot中任意节点都要经过 i t i_{t} it,而 i t i_{t} it被观测到,所有的这种路径都是头到尾的,因此该条件独立性质成立。

2.给定模型 λ \lambda λ和观测 O O O,在时刻 t t t处于状态 q i q_i qi且在时刻 t + 1 t+1 t+1处于状态 q j q_j qj的概率。记
ξ t ( i , j ) = P ( i t = q i , i t + 1 = q j ∣ O , λ ) (10.25) \xi_t(i,j) = P(i_t=q_i,i_{t+1}=q_j|O,\lambda) \tag{10.25} ξt(i,j)=P(it=qi,it+1=qjO,λ)(10.25)
可以通过前向后向概率计算:
ξ t ( i , j ) = P ( i t = q i , i t + 1 = q j , O ) P ( O ) = P ( i t = q i , i t + 1 = q j , O ) ∑ i = 1 N ∑ j = 1 N P ( i t = q i , i t + 1 = q j , O ) \begin{aligned} \xi_t(i,j) &= \frac{P(i_t=q_i,i_{t+1}=q_j, O) }{P(O)} \\ &= \frac{P(i_t=q_i,i_{t+1}=q_j, O)}{\sum_{i=1}^N \sum_{j=1}^N P(i_t=q_i,i_{t+1}=q_j, O)} \end{aligned} ξt(i,j)=P(O)P(it=qi,it+1=qj,O)=i=1Nj=1NP(it=qi,it+1=qj,O)P(it=qi,it+1=qj,O)
P ( i t = q i , i t + 1 = q j , O ) = α t ( i ) a i j b j ( o t + 1 ) β t + 1 ( j ) P(i_t=q_i,i_{t+1}=q_j,O) = \alpha_t(i)a_{ij}b_j(o_{t+1})\beta_{t+1}(j) P(it=qi,it+1=qj,O)=αt(i)aijbj(ot+1)βt+1(j)我们以经在公式 ( 10.22 ) (10.22) (10.22)中证明过,这里直接拿来使用。

所以
ξ t ( i , j ) = α t ( i ) a i j b j ( o t + 1 ) β t + 1 ( j ) ∑ i = 1 N ∑ j = 1 N α t ( i ) a i j b j ( o t + 1 ) β t + 1 ( j ) (10.26) \xi_t(i,j) = \frac{\alpha_t(i)a_{ij}b_j(o_{t+1})\beta_{t+1}(j)}{\sum_{i=1}^N \sum_{j=1}^N \alpha_t(i)a_{ij}b_j(o_{t+1})\beta_{t+1}(j)} \tag{10.26} ξt(i,j)=i=1Nj=1Nαt(i)aijbj(ot+1)βt+1(j)αt(i)aijbj(ot+1)βt+1(j)(10.26)

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

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

相关文章

『python爬虫』23. selenium之窗口切换与iframe(保姆级图文)

目录 1. 窗口切换2. 抓取拉勾网职务信息2.1 拉勾网查看职务详情与价格2.2 完整代码 3. iframe的处理总结 欢迎关注 『python爬虫』 专栏,持续更新中 欢迎关注 『python爬虫』 专栏,持续更新中 1. 窗口切换 窗口句柄的定义:WebDriver对象有wi…

肝一肝设计模式【八】-- 外观模式

系列文章目录 肝一肝设计模式【一】-- 单例模式 传送门 肝一肝设计模式【二】-- 工厂模式 传送门 肝一肝设计模式【三】-- 原型模式 传送门 肝一肝设计模式【四】-- 建造者模式 传送门 肝一肝设计模式【五】-- 适配器模式 传送门 肝一肝设计模式【六】-- 装饰器模式 传送门 肝…

Windows本地快速搭建SFTP文件服务器,并端口映射实现公网远程访问

文章目录 1. 搭建SFTP服务器1.1 下载 freesshd服务器软件1.3 启动SFTP服务1.4 添加用户1.5 保存所有配置 2 安装SFTP客户端FileZilla测试2.1 配置一个本地SFTP站点2.2 内网连接测试成功 3 使用cpolar内网穿透3.1 创建SFTP隧道3.2 查看在线隧道列表 4. 使用SFTP客户端&#xff0…

ChatGPT 和 Elasticsearch:使用 ChatGPT 处理 Elastic 数据的插件

作者:Baha Azarmi 你可能已经阅读过这篇关于我们将 Elasticsearch 的相关性功能与 OpenAI 问答功能相结合的博文。 该帖子的主要思想是说明如何将 Elastic 与 OpenAI 的 GPT 模型结合使用来构建响应并向用户返回上下文相关的内容。 我们构建的应用程序可以公开一个…

好久不见,甚是想念

大家好,我是程序员小哈。 一晃停更好久了,之前因为12月份阳了,身体一直感觉没有完全恢复,就一直偷懒了,外加单位的事情比较多,实在是分身乏术,最近总算是告一段落了,咱们的知识分享…

shell脚本——流编辑器“三剑客”之sed命令

shell脚本——流编辑器“三剑客”之sed命令 一、流编辑器“三剑客”二、sed编辑器1、sed的工作流程2、命令格式3、常用选项4、常用操作5、打印内容6、使用地址7、删除行8、替换9、插入 一、流编辑器“三剑客” sed awk grep 二、sed编辑器 sed是一种流编辑器,流编…

手把手项目实战,搞完,直接写在简历上!

大家好,我是田哥 很多没有项目经验,或者没有亮点项目的朋友可以看过来。 最近田哥在搞一个项目:充电桩项目。本文给大家介绍这个项目背景、部分原型图、核心功能、核心模块、技术栈等。 项目背景介绍 随着我国汽车行业的不断发展&#xff0c…

AI绘画-Midjourney基础1-基本操作

Midjourney是一款 AI 绘画工具,可以根据你的提示(本文中称为 prompt)创作出各种图像。你只需要在Discord上和一个机器人聊天,就可以用简单的命令来控制它。目前已不支持免费试用,可以选择付费计划来获得更多功能和优势…

Ae 效果详解:Roto 笔刷和调整边缘

使用 Roto 笔刷工具或调整边缘工具之后,Ae 会向图层应用“Roto 笔刷和调整边缘” Roto Brush & Refine Edge效果。 版本 Version 目前包括 1.0(经典)1.0 Classic和 2.0 两个版本。 品质 Quality 选择围绕边缘的细节质量。 --标准 Stan…

传输时延和传播时延(补充:频段,信道带宽,数据速率的区别,以及帧大小和帧长)

先来看例题,看是否能区分 例题1: 假设生产管理网络系统采用B/S工作方式,经常上网的用户数为150个,每用户每分钟产生8个事务处理任务,平均事务章大小为0.05MB,则这个系统需要的信息传输速率为(68)。 (68)A…

Node接入ChatGPT 的最强对手Claude

由于个人的chatGPT免费版本即将到期, Claude 很火,在网上被说成是 ChatGPT 的最强对手,是 ChatGPT 的替代品。本文我将介绍下 Claude 是什么,以及如何免费使用 Claude. 什么是Claude 看一下它是如何自我介绍的 Slack Slack 是一款流行的团…

在 Transformers 中使用对比搜索生成可媲美人类水平的文本

1. 引言 自然语言生成 (即文本生成) 是自然语言处理 (NLP) 的核心任务之一。本文将介绍神经网络文本生成领域当前最先进的解码方法 对比搜索 (Contrastive Search)。提出该方法的论文 “A Contrastive Framework for Neural Text Generation” 最初发表于 NeurIPS 2022 ([论文]…

目标检测创新:一种基于区域的半监督方法,部分标签即可(附原论文下载)...

关注并星标 从此不迷路 计算机视觉研究院 公众号ID|ComputerVisionGzq 学习群|扫码在主页获取加入方式 论文地址:https://arxiv.org/pdf/2201.04620v1.pdf 计算机视觉研究院专栏 作者:Edison_G 研究表明,当训练数据缺少…

招募:AICG内容联合创作计划 | AIGC实践

AIGC(AI Generated Content,人工智能自动生成内容)必将成为小微创业团队进行低成本内容运营的最佳实践。 你同意这个观点吗? 如果我们恰好想法一致,或许可以一起搞点事情,探索一下商业场景下,应…

ChatGPT prompt指令大全

ChatGPT prompt指令大全 更多Prompt自动使用,可以在chrome插件中搜索 WebChatGPT,没有账号的,可以拉到文章最下面。 目录 担任雅思写作考官 写小说 充当 Linux 终端 充当英语翻译和改进者 充当论文润色者(拿摘要部分举例&am…

企业实践 | 如何从VMWare ESXi Shell中挂载以及拷贝NTFS或者FAT32分区格式的USB闪存驱动器...

欢迎关注「WeiyiGeek」公众号 点击 👇 下方卡片 即可关注我哟! 设为「星标⭐」每天带你 基础入门 到 进阶实践 再到 放弃学习! 涉及 网络安全运维、应用开发、物联网IOT、学习路径 、个人感悟 等知识 “ 花开堪折直须折,莫待无花空折枝。 ”…

K_A39_004 基于STM32等单片机驱动AT24C02模块 串口+OLED0.96显示

K_A39_004 基于STM32等单片机驱动AT24C02模块 串口OLED0.96显示 所有资源导航一、资源说明二、基本参数参数引脚说明 三、驱动说明时序对应程序: 四、部分代码说明1、接线引脚定义1.1、STC89C52RCAT24C02模块1.2、STM32F103C8T6AT24C02模块 五、基础知识学习与相关资料下载六、…

〖技术人必学的职业规划白宝书 - 职业规划篇②〗- 进入职场前必须要考虑的问题

历时18个月,采访 850 得到的需求。 不管你是在校大学生、研究生、还是在职的小伙伴,该专栏有你想要的职业规划、简历、面试的答案。说明:该文属于 技术人必学的职业规划白宝书 专栏,购买任意白宝书体系化专栏可加入TFS-CLUB 私域社…

如何优雅的使用各类LLM

近几个月,随着ChatGPT的风靡,大型语言预训练模型也如雨后春笋般地涌现,虽然效果差强人意,好在不受限制。配置稍好的电脑也能跑个7B、13B参数的大语言模型。 虽然模型众多,但是如果给每一个模型都单独去配置环境&#x…

Go语言的条件判断和循环语句

目录 【if语句】 if语句的内部变量 if语句的优雅写法 【switch语句】 switch语句的特点 switch语句的表达式类型 switch获取变量类型 x.(type) 【for语句】 for语句的变体 for...range break 和 continue goto for 语句的常见“坑”与避坑方法 Go语言的条件判断有…