CRF算法原理
CRF算法背景
条件随机场(Conditional Random Fiedl)是指给定一组输入的随机变量条件下另一组输出随机变量的条件概率分布模型,其特点是假设输出随机变量构成马尔可夫随机场。条件随机场打破了隐马尔可夫模型的俩个假设(观测独立性假设和齐次马尔可夫性假设),使输入向量和输出向量之间的关系更加明显,从而使其在文本处理等问题上的表现更加优越。
条件随机场相关的知识基础
概率无向图模型
概率无向图模型的定义
概率无向图模型又称马尔可夫随机场,它是一个可以由无向图表示的联合概率分布。
设无向图 G = ( V , E ) G=(V,E) G=(V,E)表示概率分布 P ( Y ) P(Y) P(Y),其中结 v ∈ V v\in V v∈V表示一个随机变量 Y v Y_{v} Yv,边 e ∈ E e\in E e∈E表示随机变量之间的概率依赖关系。
若联合概率分布 P ( Y ) P(Y) P(Y)满足成对马尔可夫性、局部马尔可夫性或者是全局马尔可夫性,就称此联合概率分布为概率无向图(马尔可夫随机场)。
成对马尔可夫性
在无向图中任意给定的俩个没有边连接的点 u ( Y u ) u(Y_{u}) u(Yu)和 v ( Y v ) v(Y_{v}) v(Yv),并记其他所有节点为 O ( Y O ) O(Y_{O}) O(YO)。成对马尔可夫性是指在给定随机变量组的 Y O Y_{O} YO的条件下, Y u Y_{u} Yu和 Y v Y_{v} Yv是相互独立的。即 P ( Y v , Y u ∣ Y O ) = P ( Y v ∣ Y O ) P ( Y u ∣ Y O ) P(Y_{v},Y_{u}|Y_{O})=P(Y_{v}|Y_{O})P(Y_{u}|Y_{O}) P(Yv,Yu∣YO)=P(Yv∣YO)P(Yu∣YO)
局部马尔可夫性
设结点
v
∈
V
v\in V
v∈V,与
v
v
v相连的所有节点集合为
W
W
W,以及除了
W
(
Y
W
)
W(Y_{W})
W(YW)和
v
(
Y
v
)
v(Y_{v})
v(Yv)外的所有节点为
O
(
Y
O
)
O(Y_{O})
O(YO)。局部马尔可夫性是指在给定随机变量组
Y
W
Y_{W}
YW的前提下,随机变量
Y
v
Y_{v}
Yv和随机变量组
Y
O
Y_{O}
YO相互独立,即
P
(
Y
v
,
Y
O
∣
Y
W
)
=
P
(
Y
v
∣
Y
W
)
P
(
Y
O
∣
Y
W
)
P(Y_{v},Y_{O}|Y_{W}) = P(Y_{v}|Y_{W})P(Y_{O}|Y_{W})
P(Yv,YO∣YW)=P(Yv∣YW)P(YO∣YW)当
P
(
Y
O
∣
Y
W
)
>
0
P(Y_{O}|Y_{W})>0
P(YO∣YW)>0时,可以有
P
(
Y
v
∣
Y
W
)
=
P
(
Y
v
∣
Y
O
,
Y
W
)
P(Y_{v}|Y_{W})=P(Y_{v}|Y_{O},Y_{W})
P(Yv∣YW)=P(Yv∣YO,YW)
全局马尔可夫性
设集合
A
、
C
A、C
A、C是被集合
B
B
B分开的任意节点集合。全局马尔可夫性是指在给定随机变量组
Y
B
Y_{B}
YB的前提下随机变量组
Y
A
Y_{A}
YA和随机变量组
Y
C
Y_{C}
YC相互独立,即
P
(
Y
A
,
Y
C
∣
Y
B
)
=
P
(
Y
A
∣
Y
B
)
P
(
Y
C
∣
Y
B
)
P(Y_{A},Y_{C}|Y_{B}) = P(Y_{A}|Y_{B})P(Y_{C}|Y_{B})
P(YA,YC∣YB)=P(YA∣YB)P(YC∣YB)
概率无向图模型的因子分解
无向图中的团与最大团
无向图中任何俩个结点均有边连接的结点子集称为团。若该团再无法通过增加结点称为更大的团,则惩称之为最大团。(这里我们可以通过图来看下,团只要任意俩个点连通即可,但最大团是再增加便失去团的性质了),下面通过例子展示一下团和最大团
从上图我们可以发现上图中的团有
(
(
A
,
B
)
,
(
A
,
C
)
,
(
B
,
C
)
,
(
C
,
D
)
,
(
A
,
B
,
C
)
)
((A,B),(A,C),(B,C),(C,D),(A,B,C))
((A,B),(A,C),(B,C),(C,D),(A,B,C))。然后我们逐个分析分析团
(
A
,
B
)
(A,B)
(A,B),团
(
A
,
B
)
(A,B)
(A,B)可以增加结点
C
C
C,成为团
(
A
,
B
,
C
)
(A,B,C)
(A,B,C),所以它不是最大团。同理团
(
A
,
C
)
(A,C)
(A,C)和团
(
B
,
C
)
(B,C)
(B,C)也是团而不是最大团。对于团
(
C
,
D
)
(C,D)
(C,D),我们可以发现它无法增加结点变成更大的团,所以它也是最大团。最后分析团
(
A
,
B
,
C
)
(A,B,C)
(A,B,C),如果团加入结点
D
D
D,则失去了团的性质,所以团
(
A
,
B
,
C
)
(A,B,C)
(A,B,C)是最大团
因子分解
将概率无向图模型的联合概率分布表示为其最大团上的随机变量的函数的乘积形式的操作,称为概率无向图模型的因子分解。(简而言之,联合概率分布就是把所有的最大团都乘起来)
给定一个无向图
G
G
G,
C
C
C表示
G
G
G的所有的最大团,
Y
C
i
Y_{C_{i}}
YCi表示某个最大团
C
i
C_{i}
Ci的随机变量。所以概率无向图模型的联合概率分布
P
(
Y
)
P(Y)
P(Y)可以表示为
P
(
Y
)
=
1
Z
∏
C
Ψ
c
(
Y
c
)
P(Y)=\frac{1}{Z}\prod_{C}\Psi_{c}(Y_{c})
P(Y)=Z1C∏Ψc(Yc)
其中
Z
=
∑
Y
∏
C
Ψ
C
(
Y
C
)
\displaystyle Z =\sum_{Y}\prod_{C}\Psi_{C}(Y_{C})
Z=Y∑C∏ΨC(YC)表示为规范化因子(相当于做了个归一化的操作)
其中
Ψ
C
(
Y
C
)
\displaystyle \Psi_{C}(Y_{C})
ΨC(YC)称为势函数且严格正,通常我们定义
Ψ
C
(
Y
C
)
=
exp
{
−
E
(
Y
C
)
}
\displaystyle \Psi_{C}(Y_{C}) = \exp\{-E(Y_{C})\}
ΨC(YC)=exp{−E(YC)},
E
(
Y
C
)
E(Y_{C})
E(YC)称为能量函数。
条件随机场的定义
条件随机场就是在给定随机变量 X X X的前提下,随机变量Y的马尔可夫场。这里我们主要研究线性链上的马尔可夫场,也称之为线性链条件随机场(linear chain conditional random field)。即 P ( Y ∣ X ) P(Y|X) P(Y∣X)的定义如下 P ( Y ∣ X ) = 1 Z exp { ∑ i = 1 K F i ( x C i ) } P(Y|X) = \frac{1}{Z}\exp\{\sum_{i=1}^{K}F_{i}(x_{C_{i}})\} P(Y∣X)=Z1exp{i=1∑KFi(xCi)}所以有 P ( Y ) = 1 Z ∏ C exp { − E ( Y C ) } = 1 Z exp ∑ i = 1 K F i ( x C i ) = 1 Z exp { ∑ t = 1 T F t ( y t − 1 , t t , x 1 : T ) } P(Y)=\frac{1}{Z}\prod_{C}\exp\{-E(Y_{C})\}=\frac{1}{Z}\exp{\sum_{i=1}^{K}}F_{i}(x_{C_{i}})=\frac{1}{Z}\exp\{\sum_{t=1}^{T}F_{t}(y_{t-1},t_{t},x_{1:T})\} P(Y)=Z1C∏exp{−E(YC)}=Z1expi=1∑KFi(xCi)=Z1exp{t=1∑TFt(yt−1,tt,x1:T)}其中 F t ( y t − 1 , t t , x 1 : T ) F_{t}(y_{t-1},t_{t},x_{1:T}) Ft(yt−1,tt,x1:T)是每个最大团的的函数。
我们可以通过下图解释一下为什么可以用这个公式进行表达。下图是线性链条件随机场,其中
X
X
X是给定的随机变量,这里的随机变量
Y
Y
Y构成了马尔可夫随机场,所以相邻的变量
y
y
y之间构成一个最大团。注意这里讨论的是输出变量Y的随机场与X无关
接下来我们需要解决
F
t
(
y
t
−
1
,
t
t
,
x
1
:
T
)
F_{t}(y_{t-1},t_{t},x_{1:T})
Ft(yt−1,tt,x1:T)表示式的问题。它可以拆成三部分
Δ
y
t
−
1
\Delta_{y_{t-1}}
Δyt−1、
Δ
y
t
\Delta_{y_{t}}
Δyt和
Δ
y
t
,
y
t
−
1
\Delta_{y_{t},y_{t-1}}
Δyt,yt−1,即
F
t
(
y
t
−
1
,
t
t
,
x
1
:
T
)
=
Δ
y
t
−
1
+
Δ
y
t
+
Δ
y
t
,
y
t
−
1
F_{t}(y_{t-1},t_{t},x_{1:T})=\Delta_{y_{t-1}}+\Delta_{y_{t}}+\Delta_{y_{t},y_{t-1}}
Ft(yt−1,tt,x1:T)=Δyt−1+Δyt+Δyt,yt−1然后我们通过观察可以发现
Δ
y
t
−
1
\Delta_{y_{t-1}}
Δyt−1在
t
t
t取
t
−
1
t-1
t−1时也出现了,所以我们可以进行合并,即
F
t
(
y
t
−
1
,
t
t
,
x
1
:
T
)
=
Δ
y
t
+
Δ
y
t
,
y
t
−
1
F_{t}(y_{t-1},t_{t},x_{1:T})=\Delta_{y_{t}}+\Delta_{y_{t},y_{t-1}}
Ft(yt−1,tt,x1:T)=Δyt+Δyt,yt−1将
Δ
t
−
1
\Delta_{t-1}
Δt−1扔给了F_{t-1},这样可以带来计算上的化简。
接下来可以定义
Δ
\Delta
Δ函数,对
Δ
y
t
−
1
,
y
t
,
x
1
:
T
\Delta_{y_{t-1},y_{t},x_{1:T}}
Δyt−1,yt,x1:T,可以有
Δ
y
t
−
1
,
y
t
,
x
1
:
T
=
∑
k
=
1
K
λ
k
f
k
(
y
t
−
1
,
y
t
,
x
1
:
T
)
\Delta_{y_{t-1},y_{t},x_{1:T}} = \sum^{K}_{k=1}\lambda_{k}f_{k}(y_{t-1},y_{t},x_{1:T})
Δyt−1,yt,x1:T=k=1∑Kλkfk(yt−1,yt,x1:T)其中
f
k
(
y
t
−
1
,
y
t
,
x
1
:
T
)
f_{k}(y_{t-1},y_{t},x_{1:T})
fk(yt−1,yt,x1:T)可以认为是一个特征函数,举例如下:
f
k
(
y
t
−
1
=
名词
,
y
t
=
形容词
,
x
1
:
T
)
=
0
f_{k}(y_{t-1}=名词,y_{t}=形容词,x_{1:T})=0
fk(yt−1=名词,yt=形容词,x1:T)=0
f
k
(
y
t
−
1
=
形容词
,
y
t
=
名词
,
x
1
:
T
)
=
1
f_{k}(y_{t-1}=形容词,y_{t}=名词,x_{1:T})=1
fk(yt−1=形容词,yt=名词,x1:T)=1通过这种特殊制的方式来定义函数
f
f
f,
K
K
K指其个数,
λ
k
\lambda_{k}
λk指其权重
对
Δ
y
t
,
x
1
:
T
\Delta_{y_{t},x_{1:T}}
Δyt,x1:T,有
Δ
y
t
,
x
1
:
T
=
∑
l
=
1
L
η
l
g
l
(
y
t
,
x
1
:
T
)
\Delta_{y_{t},x_{1:T}} = \sum_{l=1}^{L}\eta_{l}g_{l}(y_{t},x_{1:T})
Δyt,x1:T=l=1∑Lηlgl(yt,x1:T)
其中
g
l
(
y
t
,
x
1
:
T
)
g_{l}(y_{t},x_{1:T})
gl(yt,x1:T)为特征函数,
L
L
L指其个数,
η
l
\eta_{l}
ηl指其权重
所以 P ( Y ∣ X ) P(Y|X) P(Y∣X)可以简化 P ( Y ∣ X ) = 1 Z exp { ∑ t = 1 T [ ∑ k = 1 K λ k f k ( y t − 1 , y t , x 1 : T ) + ∑ l = 1 L η l g l ( y t , x 1 : T ) ] } = 1 Z exp { ∑ k = 1 K λ k ∑ t = 1 T f k ( y t − 1 , y t , x 1 : T ) + ∑ l = 1 L η l ∑ t = 1 T g l ( y t , x 1 : T ) } \begin{alignat*}{2}P(Y|X)&=\frac{1}{Z}\exp \{\sum^{T}_{t=1}\left[ \sum^{K}_{k=1}\lambda_{k}f_{k}(y_{t-1},y_{t},x_{1:T})+\sum_{l=1}^{L}\eta_{l}g_{l}(y_{t},x_{1:T})\right] \} \\ &=\frac{1}{Z}\exp \{\sum_{k=1}^{K}\lambda_{k}\sum_{t=1}^{T}f_{k}(y_{t-1},y_{t},x_{1:T})+\sum_{l=1}^{L}\eta_{l}\sum_{t=1}^{T}g_{l}(y_{t},x_{1:T})\}\end{alignat*} P(Y∣X)=Z1exp{t=1∑T[k=1∑Kλkfk(yt−1,yt,x1:T)+l=1∑Lηlgl(yt,x1:T)]}=Z1exp{k=1∑Kλkt=1∑Tfk(yt−1,yt,x1:T)+l=1∑Lηlt=1∑Tgl(yt,x1:T)}
这里的累加可以化成矩阵的形式,令
y
=
(
y
1
y
2
⋮
y
T
)
,
x
=
(
x
1
x
2
⋮
x
T
)
,
λ
=
(
λ
1
λ
2
⋮
λ
T
)
,
η
=
(
η
1
η
2
⋮
η
T
)
y=\begin{pmatrix} y_{1} \\ y_{2} \\ \vdots\\ y_{T} \end{pmatrix},x = \begin{pmatrix} x_{1} \\ x_{2} \\ \vdots\\ x_{T} \end{pmatrix},\lambda=\begin{pmatrix} \lambda_{1} \\ \lambda_{2} \\ \vdots\\ \lambda_{T} \end{pmatrix},\eta=\begin{pmatrix} \eta_{1} \\ \eta_{2} \\ \vdots\\ \eta_{T} \end{pmatrix}
y=
y1y2⋮yT
,x=
x1x2⋮xT
,λ=
λ1λ2⋮λT
,η=
η1η2⋮ηT
f
=
(
f
1
f
2
⋮
f
T
)
=
f
(
y
t
−
1
,
y
t
,
x
1
:
T
)
,
g
=
(
g
1
g
2
⋮
g
T
)
=
g
(
y
t
,
x
1
:
T
)
f = \begin{pmatrix} f_{1} \\ f_{2} \\ \vdots\\ f_{T} \end{pmatrix}=f(y_{t-1},y_{t},x_{1:T}),g = \begin{pmatrix} g_{1} \\ g_{2} \\ \vdots\\ g_{T} \end{pmatrix}=g(y_{t},x_{1:T})
f=
f1f2⋮fT
=f(yt−1,yt,x1:T),g=
g1g2⋮gT
=g(yt,x1:T)则有
∑
k
=
1
K
λ
k
∑
t
=
1
T
f
k
(
y
t
−
1
,
y
t
,
x
1
:
T
)
+
∑
l
=
1
L
η
l
∑
t
=
1
T
g
l
(
y
t
,
x
1
:
T
)
=
λ
T
∑
t
=
1
T
f
+
η
T
∑
t
=
1
T
g
\begin{alignat*}{2}\sum_{k=1}^{K}\lambda_{k}\sum_{t=1}^{T}f_{k}(y_{t-1},y_{t},x_{1:T})+\sum_{l=1}^{L}\eta_{l}\sum_{t=1}^{T}g_{l}(y_{t},x_{1:T}) &=\lambda^{T}\sum_{t=1}^{T}f+\eta^{T}\sum_{t=1}^{T}g\end{alignat*}
k=1∑Kλkt=1∑Tfk(yt−1,yt,x1:T)+l=1∑Lηlt=1∑Tgl(yt,x1:T)=λTt=1∑Tf+ηTt=1∑Tg
这里我们还可以在简化一点,令
θ
=
(
λ
η
)
,
H
=
(
∑
t
=
1
T
f
∑
t
=
1
T
g
)
\theta = \begin{pmatrix} \lambda\\ \eta\end{pmatrix},H = \begin{pmatrix} \sum_{t=1}^{T}f\\ \sum_{t=1}^{T}g\end{pmatrix}
θ=(λη),H=(∑t=1Tf∑t=1Tg)
即
λ
T
∑
t
=
1
T
f
+
η
T
∑
t
=
1
T
g
=
θ
T
H
\lambda^{T}\sum_{t=1}^{T}f+\eta^{T}\sum_{t=1}^{T}g = \theta^{T}H
λTt=1∑Tf+ηTt=1∑Tg=θTH
最后,我们可以得到 P ( Y = y ∣ X = x ) = 1 z ( x , θ ) exp { θ T H ( y t , y t − 1 , x 1 : T ) } = 1 z ( x , θ ) exp { < θ , H > } P(Y=y|X=x) = \frac{1}{z(x,\theta)}\exp\{\theta^{T}H(y_{t},y_{t-1},x_{1:T})\}=\frac{1}{z(x,\theta)}\exp\{<\theta,H>\} P(Y=y∣X=x)=z(x,θ)1exp{θTH(yt,yt−1,x1:T)}=z(x,θ)1exp{<θ,H>}
条件随机场主要解决的三个问题
条件随机场的概率计算问题
条件随机场的概率计算问题主要是讨论边缘概率计算的问题即求 P ( y t ∣ X ) P(y_{t}|X) P(yt∣X)
即给定 P ( Y = y ∣ X = x ) P(Y=y|X=x) P(Y=y∣X=x),求 P ( y t = i ∣ x ) P(y_{t}=i|x) P(yt=i∣x) P ( y ∣ x ) = 1 z ∏ t = 1 T Ψ t ( y t − 1 , y t , x ) P(y|x) = \frac{1}{z}\prod_{t=1}^{T}\Psi_{t}(y_{t-1},y_{t},x) P(y∣x)=z1t=1∏TΨt(yt−1,yt,x),故 P ( y t = i ∣ x ) = ∑ y 1 , y 2 , ⋯ , y t − 1 , y t + 1 , ⋯ , y T P ( y ∣ x ) = ∑ y 1 : y t − 1 ∑ y t + 1 : y T 1 z ∏ t ′ = 1 T Ψ t ′ ( y t ′ − 1 , y t ′ , x ) P(y_{t}=i|x)=\sum_{y_{1},y_2,\cdots,y_{t-1},y_{t+1},\cdots,y_{T}}P(y|x)=\sum_{y_{1}:y_{t-1}}\sum_{y_{t+1}:y_{T}}\frac{1}{z}\prod_{t^{'}=1}^{T}\Psi_{t^{'}}(y_{t^{'}-1},y_{t^{'}},x) P(yt=i∣x)=y1,y2,⋯,yt−1,yt+1,⋯,yT∑P(y∣x)=y1:yt−1∑yt+1:yT∑z1t′=1∏TΨt′(yt′−1,yt′,x)
上述等式的算法复杂度为 O ( ∣ s ∣ T ⋅ T ) O(|s|^{T}\cdot T) O(∣s∣T⋅T),复杂度为指数级,所以需要进行简化。
首先可以将连乘展开,可以发现对于
t
t
t时刻前包括
t
t
t时刻的势能函数只与
y
1
:
y
t
−
1
y_{1}:y_{t-1}
y1:yt−1有关,
t
t
t时刻后的势能函数只与
y
t
+
1
:
y
T
y_{t+1}:y_{T}
yt+1:yT有关。
所以这里可以将其切分成俩部分
P
(
y
t
=
i
∣
x
)
=
1
z
δ
l
e
f
t
,
δ
r
i
g
h
t
P(y_{t}=i|x) =\frac{1}{z} \delta_{left},\delta_{right}
P(yt=i∣x)=z1δleft,δright
其中
δ
l
e
f
t
=
∑
y
1
:
y
t
−
1
Ψ
(
y
0
,
y
1
,
x
)
⋅
Ψ
(
y
1
,
y
2
,
x
)
⋯
Ψ
(
y
t
−
2
,
y
t
−
1
,
x
)
⋅
Ψ
(
y
t
−
1
,
y
t
=
i
,
x
)
\delta_{left} = \sum_{y_{1}:y_{t-1}}\Psi(y_{0},y_{1},x)\cdot \Psi(y_{1},y_{2},x)\cdots \Psi(y_{t-2},y_{t-1},x)\cdot \Psi(y_{t-1},y_{t}=i,x)
δleft=y1:yt−1∑Ψ(y0,y1,x)⋅Ψ(y1,y2,x)⋯Ψ(yt−2,yt−1,x)⋅Ψ(yt−1,yt=i,x)
δ
r
i
g
h
t
=
∑
y
t
+
1
:
y
T
Ψ
(
y
t
=
i
,
y
t
+
1
,
x
)
⋅
Ψ
(
y
t
+
2
,
y
t
+
3
,
x
)
⋯
Ψ
(
y
T
−
2
,
y
T
−
1
,
x
)
⋅
Ψ
(
y
T
−
1
,
y
T
,
x
)
\delta_{right} = \sum_{y_{t+1}:y_{T}}\Psi(y_{t}=i,y_{t+1},x)\cdot \Psi(y_{t+2},y_{t+3},x)\cdots \Psi(y_{T-2},y_{T-1},x)\cdot \Psi(y_{T-1},y_{T},x)
δright=yt+1:yT∑Ψ(yt=i,yt+1,x)⋅Ψ(yt+2,yt+3,x)⋯Ψ(yT−2,yT−1,x)⋅Ψ(yT−1,yT,x)
先对
δ
l
e
f
t
\delta_{left}
δleft进行简化
δ
l
e
f
t
=
∑
y
0
Ψ
(
y
0
,
y
1
,
x
)
∑
y
1
Ψ
(
y
1
,
y
2
,
x
)
⋯
∑
y
t
−
2
Ψ
(
y
t
−
2
,
y
t
−
1
,
x
)
∑
y
t
−
1
Ψ
(
y
t
−
1
,
y
t
=
i
,
x
)
\delta_{left}=\sum_{y_{0}}\Psi(y_{0},y_{1},x)\sum_{y_{1}}\Psi(y_{1},y_{2},x)\cdots\sum_{y_{t-2}}\Psi(y_{t-2},y_{t-1},x)\sum_{y_{t-1}} \Psi(y_{t-1},y_{t}=i,x)
δleft=y0∑Ψ(y0,y1,x)y1∑Ψ(y1,y2,x)⋯yt−2∑Ψ(yt−2,yt−1,x)yt−1∑Ψ(yt−1,yt=i,x)
这里可以令
α
t
(
i
)
=
δ
l
e
f
t
\alpha_{t}(i) =\delta_{left}
αt(i)=δleft,则有
α
t
(
i
)
=
α
t
−
1
(
j
)
∑
j
Ψ
(
y
t
−
1
=
j
,
y
t
=
i
,
x
)
\alpha_{t}(i)=\alpha_{t-1}(j)\sum_{j}\Psi(y_{t-1}=j,y_{t}=i,x)
αt(i)=αt−1(j)j∑Ψ(yt−1=j,yt=i,x)
同理对于 δ r i g h t \delta_{right} δrighty有 δ r i g h t = ∑ y T Ψ ( y T − 1 , y T , x ) ∑ y T − 1 Ψ ( y T − 2 , y T − 1 , x ) ⋯ ∑ y t + 2 Ψ ( y t + 1 , y t + 2 , x ) ∑ y t + 1 Ψ ( y t = i , y t + 1 , x ) \delta_{right}=\sum_{y_{T}}\Psi(y_{T-1},y_{T},x)\sum_{y_{T-1}}\Psi(y_{T-2},y_{T-1},x)\cdots\sum_{y_{t+2}}\Psi(y_{t+1},y_{t+2},x)\sum_{y_{t+1}} \Psi(y_{t}=i,y_{t+1},x) δright=yT∑Ψ(yT−1,yT,x)yT−1∑Ψ(yT−2,yT−1,x)⋯yt+2∑Ψ(yt+1,yt+2,x)yt+1∑Ψ(yt=i,yt+1,x)
这里令 β t ( i ) = δ r i g h t \beta_{t}(i) = \delta_{right} βt(i)=δright,则有 β t ( i ) = ∑ j Ψ ( y t = i , y t + 1 = j , x ) β t + 1 ( j ) \beta_{t}(i) = \sum_{j}\Psi(y_{t}=i,y_{t+1}=j,x)\beta_{t+1}(j) βt(i)=j∑Ψ(yt=i,yt+1=j,x)βt+1(j)
综上,有
P
(
y
=
i
∣
x
)
=
1
z
α
t
(
i
)
β
t
(
i
)
P(y=i|x) = \frac{1}{z}\alpha_{t}(i)\beta_{t}(i)
P(y=i∣x)=z1αt(i)βt(i)
其中
z
(
x
)
=
α
T
T
(
x
)
o
n
e
s
(
1
,
∣
s
∣
)
z(x) = \alpha_{T}^{T}(x) ones(1,|s|)
z(x)=αTT(x)ones(1,∣s∣)
条件随机场的学习问题
条件随机场的学习问题就是如何根据现有的训练数学求解最优的模型参数,即
θ
^
=
arg max
∏
i
=
1
N
P
(
y
i
∣
x
i
)
\hat{\theta}=\argmax\prod_{i=1}^{N}P(y^{i}|x^{i})
θ^=argmaxi=1∏NP(yi∣xi)其中
N
N
N为训练的数据量,
θ
=
(
λ
,
η
)
\theta=(\lambda,\eta)
θ=(λ,η)
所以学习算法的目的是通过极大化似然函数,求得更优的参数。将概率密度函数代入有
λ
^
,
η
^
=
arg max
λ
,
η
∏
i
=
1
N
1
z
(
x
,
λ
,
η
)
exp
{
∑
t
=
1
T
[
λ
T
f
(
y
t
−
1
,
y
t
,
x
)
+
η
T
g
(
y
t
,
x
)
]
}
\hat{\lambda},\hat{\eta}=\argmax_{\lambda,\eta}\prod_{i=1}^{N}\frac{1}{z(x,\lambda,\eta)}\exp\{\sum_{t=1}^{T}\left[\lambda^{T}f(y_{t-1},y_{t},x)+\eta^{T}g(y_{t},x)\right]\}
λ^,η^=λ,ηargmaxi=1∏Nz(x,λ,η)1exp{t=1∑T[λTf(yt−1,yt,x)+ηTg(yt,x)]} 由于是指数函数的累积,所以可以取对数简化
λ
^
,
η
^
=
arg max
λ
,
η
∑
i
=
1
N
[
−
log
z
(
x
i
,
λ
,
η
)
+
∑
t
=
1
T
[
λ
T
f
(
y
t
−
1
,
y
t
,
x
)
+
η
T
g
(
y
t
,
x
)
]
]
\hat{\lambda},\hat{\eta} = \argmax_{\lambda,\eta}\sum_{i=1}^{N}\left[-\log{z(x^{i},\lambda,\eta)}+\sum_{t=1}^{T}\left[\lambda^{T}f(y_{t-1},y_{t},x)+\eta^{T}g(y_{t},x)\right]\right]
λ^,η^=λ,ηargmaxi=1∑N[−logz(xi,λ,η)+t=1∑T[λTf(yt−1,yt,x)+ηTg(yt,x)]]
这里令
L
(
λ
,
η
,
x
i
)
=
∑
i
=
1
N
[
−
log
z
(
x
i
,
λ
,
η
)
+
∑
t
=
1
T
[
λ
T
f
(
y
t
−
1
,
y
t
,
x
)
+
η
T
g
(
y
t
,
x
)
]
]
\displaystyle L(\lambda,\eta,x^{i})=\sum_{i=1}^{N}\left[-\log{z(x^{i},\lambda,\eta)}+\sum_{t=1}^{T}\left[\lambda^{T}f(y_{t-1},y_{t},x)+\eta^{T}g(y_{t},x)\right]\right]
L(λ,η,xi)=i=1∑N[−logz(xi,λ,η)+t=1∑T[λTf(yt−1,yt,x)+ηTg(yt,x)]],则有
λ
^
,
η
^
=
arg max
λ
,
η
L
(
λ
,
η
,
x
i
)
\hat{\lambda},\hat{\eta} = \argmax_{\lambda,\eta}L(\lambda,\eta,x^{i})
λ^,η^=λ,ηargmaxL(λ,η,xi)由于是求函数最大值,所以要用梯度上升进行求解
∇
λ
L
=
∑
i
=
1
N
[
−
∇
λ
log
z
(
x
i
,
λ
,
η
)
+
∑
t
=
1
T
f
(
y
t
−
1
,
y
t
,
x
i
)
]
\nabla_{\lambda}L=\sum_{i=1}^{N}\left[-\nabla_{\lambda}\log{z(x^{i},\lambda,\eta)}+\sum_{t=1}^{T}f(y_{t-1},y_{t},x^{i})\right]
∇λL=i=1∑N[−∇λlogz(xi,λ,η)+t=1∑Tf(yt−1,yt,xi)]
这里有个知识点就是log-partition function的求导结果为充分统计量的数学期望,即
∇
λ
log
z
(
x
i
,
λ
,
η
)
=
E
[
∑
t
=
1
T
f
(
y
t
−
1
,
y
t
,
x
i
)
]
=
∑
y
P
(
y
∣
x
i
)
∑
t
=
1
T
f
(
y
t
−
1
,
y
t
,
x
i
)
=
∑
t
=
1
T
∑
y
P
(
y
∣
x
i
)
f
(
y
t
−
1
,
y
t
,
x
i
)
=
∑
t
=
1
T
∑
y
t
−
1
∑
y
t
∑
y
t
1
:
y
t
−
2
∑
y
t
+
1
:
y
T
P
(
y
∣
x
i
)
f
(
y
t
−
1
,
y
t
,
x
i
)
=
∑
t
=
1
T
∑
y
t
−
1
∑
y
t
P
(
y
t
−
1
,
y
t
∣
x
i
)
f
(
y
t
−
1
,
y
t
,
x
i
)
\begin{alignat*}{2}\nabla_{\lambda}\log{z(x^{i},\lambda,\eta)}&=E\left[\sum_{t=1}^{T}f(y_{t-1},y_{t},x^{i})\right]\\&=\sum_{y}P(y|x^{i})\sum_{t=1}^{T}f(y_{t-1},y_{t},x^{i})\\&=\sum_{t=1}^{T}\sum_{y}P(y|x^{i})f(y_{t-1},y_{t},x^{i})\\&=\sum_{t=1}^{T}\sum_{y_{t-1}}\sum_{y_{t}}\sum_{y_{t_1}:y_{t-2}}\sum_{y_{t+1}:y_{T}}P(y|x^{i})f(y_{t-1},y_{t},x^{i})\\&=\sum_{t=1}^{T}\sum_{y_{t-1}}\sum_{y_{t}}P(y_{t-1},y_{t}|x^{i})f(y_{t-1},y_{t},x^{i})\end{alignat*}
∇λlogz(xi,λ,η)=E[t=1∑Tf(yt−1,yt,xi)]=y∑P(y∣xi)t=1∑Tf(yt−1,yt,xi)=t=1∑Ty∑P(y∣xi)f(yt−1,yt,xi)=t=1∑Tyt−1∑yt∑yt1:yt−2∑yt+1:yT∑P(y∣xi)f(yt−1,yt,xi)=t=1∑Tyt−1∑yt∑P(yt−1,yt∣xi)f(yt−1,yt,xi)这里
P
(
y
t
−
1
,
y
t
∣
x
i
)
P(y_{t-1},y_{t}|x^{i})
P(yt−1,yt∣xi)跟概率密度函数的计算是类似的,但是多了一个变量简单而言
P
(
y
t
−
1
,
y
t
∣
x
i
)
=
1
z
α
t
−
2
Ψ
(
y
t
−
1
,
y
t
∣
x
i
)
β
t
+
1
\displaystyle P(y_{t-1},y_{t}|x^{i})=\frac{1}{z}\alpha_{t-2}\Psi(y_{t-1},y_{t}|x^i)\beta_{t+1}
P(yt−1,yt∣xi)=z1αt−2Ψ(yt−1,yt∣xi)βt+1
然后就可以求其更新后的
λ
\lambda
λ,即
λ
t
+
1
=
λ
t
+
s
t
e
p
∗
∇
λ
L
(
λ
t
,
η
t
,
x
i
)
\lambda^{t+1} = \lambda^{t}+step*\nabla_{\lambda}L(\lambda^{t},\eta^{t},x^{i})
λt+1=λt+step∗∇λL(λt,ηt,xi)
同理对于
η
\eta
η,有
η
t
+
1
=
η
t
+
s
t
e
p
∗
∇
η
L
(
λ
t
,
η
t
,
x
i
)
\eta^{t+1} = \eta^{t}+step*\nabla_{\eta}L(\lambda^{t},\eta^{t},x^{i})
ηt+1=ηt+step∗∇ηL(λt,ηt,xi)
(这里充分统计量、边缘概率密度和
η
\eta
η的导数后续再研究补上,但整体的思想比较明确了)
条件随机场的Decoding问题
条件随机场的解码问题与HMM中的解码问题类似,都是求条件概率最大的输出序列,即 y ∗ = arg max y 1 , y 2 , ⋯ , y T P ( y ∣ x ) = arg max y 1 , y 2 , ⋯ , y T 1 z ( x , θ ) θ T H = arg max y 1 , y 2 , ⋯ , y T θ T H = arg max y 1 , y 2 , ⋯ , y T ∑ t = 1 T θ T ( f g ) = arg max y 1 , y 2 , ⋯ , y T ∑ t = 1 T θ T F ( y t − 1 , y t , x ) \begin{alignat*}{2}y^{*}&=\argmax_{y_{1},y_{2},\cdots,y_{T}}P(y|x)\\ &=\argmax_{y_{1},y_{2},\cdots,y_{T}}\frac{1}{z(x,\theta)}\theta^{T}H\\ &=\argmax_{y_{1},y_{2},\cdots,y_{T}}\theta^{T}H\\&=\argmax_{y_{1},y_{2},\cdots,y_{T}}\sum_{t=1}^{T}\theta^{T}\begin{pmatrix} f\\g \end{pmatrix}\\ &=\argmax_{y_{1},y_{2},\cdots,y_{T}}\sum_{t=1}^{T}\theta^{T}F(y_{t-1},y_{t},x)\end{alignat*} y∗=y1,y2,⋯,yTargmaxP(y∣x)=y1,y2,⋯,yTargmaxz(x,θ)1θTH=y1,y2,⋯,yTargmaxθTH=y1,y2,⋯,yTargmaxt=1∑TθT(fg)=y1,y2,⋯,yTargmaxt=1∑TθTF(yt−1,yt,x)
接下来令 H t ( i ) \Eta_{t}(i) Ht(i)为 t t t时刻 y y y取值 i i i的最大概率,则有 H 1 ( i ) = θ T F ( y 0 , y 1 = i , x ) \Eta_{1}(i) = \theta^{T}F(y_{0},y_{1}=i,x) H1(i)=θTF(y0,y1=i,x)则递推公式为 H t + 1 ( i ) = max j = 1 , 2 , ⋯ , ∣ s ∣ { H t ( j ) + θ T F ( y t = j , y t + 1 = i , x ) } H_{t+1}(i)= \max_{j=1,2,\cdots,|s|}\{H_{t}(j)+\theta^{T}F(y_{t}=j,y_{t+1}=i,x)\} Ht+1(i)=j=1,2,⋯,∣s∣max{Ht(j)+θTF(yt=j,yt+1=i,x)}
同时使用 Θ t + 1 ( i ) \Theta_{t+1}(i) Θt+1(i)记录 t + 1 t+1 t+1时刻取 y = i y=i y=i时 t t t时刻最佳的 y t y_{t} yt,即 Θ t + 1 ( i ) = arg max j = 1 , 2 , ⋯ , ∣ s ∣ { H t ( j ) + θ T F ( y t = j , y t + 1 = i , x ) } \Theta_{t+1}(i)=\argmax_{j=1,2,\cdots,|s|}\{H_{t}(j)+\theta^{T}F(y_{t}=j,y_{t+1}=i,x)\} Θt+1(i)=j=1,2,⋯,∣s∣argmax{Ht(j)+θTF(yt=j,yt+1=i,x)}
所以我们可以用回溯方法求解最佳路径,令 y T ∗ = arg max i = 1 , 2 , ⋯ , ∣ s ∣ H T ( i ) \displaystyle y^{*}_{T} = \argmax_{i=1,2,\cdots,|s|}\Eta_{T}(i) yT∗=i=1,2,⋯,∣s∣argmaxHT(i)则有 y t ∗ = Θ t + 1 ( y t + 1 ∗ ) t = T − 1 , T − 2 , ⋯ , 1 y_{t}^{*} =\Theta_{t+1}(y_{t+1}^{*}) \quad t=T-1,T-2,\cdots,1 yt∗=Θt+1(yt+1∗)t=T−1,T−2,⋯,1
所以最优的路径 y ∗ = ( y 1 ∗ , y 2 ∗ , ⋯ , y n ∗ ) y^{*} = (y_{1}^{*},y_{2}^{*},\cdots,y_{n}^{*}) y∗=(y1∗,y2∗,⋯,yn∗)
以上内容属于个人学习总结,如有错误请指正