本文是将文章【条件随机场的学习算法】中的公式单独拿出来做一个详细的解析, 便于初学者更好的理解。
公式 (11.37):
E P ~ [ s l ] = ∑ x , y P ~ ( x , y ) ∑ i = 1 n + 1 s l ( y i , x , i ) = ∑ x , y P ~ ( x ) P ( y ∣ x ) ∑ i = 1 n s l ( y i , x , i ) exp ( δ K 1 + l T ( x , y ) ) , l = 1 , 2 , ⋯ , K 2 (11.37) \begin{aligned} E_{\tilde{P}}[s_l] &= \sum_{x, y} \tilde{P}(x, y) \sum_{i=1}^{n+1} s_l(y_i, x, i) \notag \\ &= \sum_{x, y} \tilde{P}(x) P(y|x) \sum_{i=1}^{n} s_l(y_i, x, i) \exp(\delta_{K_1 + l} T(x, y)), \\ l &= 1, 2, \cdots, K_2 \end{aligned} \tag{11.37} EP~[sl]l=x,y∑P~(x,y)i=1∑n+1sl(yi,x,i)=x,y∑P~(x)P(y∣x)i=1∑nsl(yi,x,i)exp(δK1+lT(x,y)),=1,2,⋯,K2(11.37)
公式的背景
该公式定义了 状态特征函数 s l s_l sl 的期望值 E P ~ [ s l ] E_{\tilde{P}}[s_l] EP~[sl]。这里涉及到:
- 经验分布 P ~ ( x , y ) \tilde{P}(x, y) P~(x,y):基于训练数据计算得到的联合概率分布。
- 模型分布 P ( y ∣ x ) P(y|x) P(y∣x):条件随机场模型给定输入 x x x 时的条件概率分布。
- 状态特征函数 s l s_l sl:描述输出标签 y i y_i yi 在输入序列 x x x 的某个位置 i i i 上的特征值。
符号解释
-
E P ~ [ s l ] E_{\tilde{P}}[s_l] EP~[sl]:
- 表示状态特征 s l s_l sl 在训练数据分布 P ~ ( x , y ) \tilde{P}(x, y) P~(x,y) 下的期望值。
-
P ~ ( x , y ) \tilde{P}(x, y) P~(x,y):
- 训练数据的经验分布,表示 ( x , y ) (x, y) (x,y) 出现的联合概率。
-
P ( y ∣ x ) P(y|x) P(y∣x):
- CRF 模型的条件概率分布,表示给定输入
x
x
x 时,输出
y
y
y 的概率:
P ( y ∣ x ) = exp ( ∑ k w k f k ( y , x ) ) Z w ( x ) . P(y|x) = \frac{\exp\left(\sum_k w_k f_k(y, x)\right)}{Z_w(x)}. P(y∣x)=Zw(x)exp(∑kwkfk(y,x)).
- CRF 模型的条件概率分布,表示给定输入
x
x
x 时,输出
y
y
y 的概率:
-
s l ( y i , x , i ) s_l(y_i, x, i) sl(yi,x,i):
- 状态特征函数,描述在位置 i i i,标签 y i y_i yi 和输入 x x x 的某种特征值。
- 例如, s l s_l sl 可以表示标签 y i y_i yi 是否等于某个特定值或输入 x x x 在位置 i i i 上的某个属性。
-
T ( x , y ) T(x, y) T(x,y):
-
T
(
x
,
y
)
T(x, y)
T(x,y) 是所有特征函数的加权和:
T ( x , y ) = ∑ k = 1 K f k ( y , x ) . T(x, y) = \sum_{k=1}^K f_k(y, x). T(x,y)=k=1∑Kfk(y,x).
-
T
(
x
,
y
)
T(x, y)
T(x,y) 是所有特征函数的加权和:
-
exp ( δ K 1 + l T ( x , y ) ) \exp(\delta_{K_1 + l} T(x, y)) exp(δK1+lT(x,y)):
- 表示引入参数修正量 δ K 1 + l \delta_{K_1 + l} δK1+l,用于对当前模型参数的调整进行补偿。
-
l = 1 , 2 , … , K 2 l = 1, 2, \dots, K_2 l=1,2,…,K2:
- 表示状态特征函数 s l s_l sl 的索引,状态特征共有 K 2 K_2 K2 个。
公式的逐步解释
1. 期望的定义
第一行:
E
P
~
[
s
l
]
=
∑
x
,
y
P
~
(
x
,
y
)
∑
i
=
1
n
+
1
s
l
(
y
i
,
x
,
i
)
,
E_{\tilde{P}}[s_l] = \sum_{x, y} \tilde{P}(x, y) \sum_{i=1}^{n+1} s_l(y_i, x, i),
EP~[sl]=x,y∑P~(x,y)i=1∑n+1sl(yi,x,i),
- 这是状态特征 s l s_l sl 在训练数据的经验分布 P ~ ( x , y ) \tilde{P}(x, y) P~(x,y) 下的期望值。
- 对所有可能的 x x x 和 y y y 进行加权求和,其中 s l ( y i , x , i ) s_l(y_i, x, i) sl(yi,x,i) 是序列中第 i i i 位置的状态特征值。
2. 分解为边缘分布和条件分布
第二行:
E
P
~
[
s
l
]
=
∑
x
,
y
P
~
(
x
)
P
(
y
∣
x
)
∑
i
=
1
n
s
l
(
y
i
,
x
,
i
)
exp
(
δ
K
1
+
l
T
(
x
,
y
)
)
.
E_{\tilde{P}}[s_l] = \sum_{x, y} \tilde{P}(x) P(y|x) \sum_{i=1}^{n} s_l(y_i, x, i) \exp(\delta_{K_1 + l} T(x, y)).
EP~[sl]=x,y∑P~(x)P(y∣x)i=1∑nsl(yi,x,i)exp(δK1+lT(x,y)).
-
将联合概率 P ~ ( x , y ) \tilde{P}(x, y) P~(x,y) 分解为边缘分布 P ~ ( x ) \tilde{P}(x) P~(x) 和条件分布 P ( y ∣ x ) P(y|x) P(y∣x):
P ~ ( x , y ) = P ~ ( x ) P ( y ∣ x ) . \tilde{P}(x, y) = \tilde{P}(x) P(y|x). P~(x,y)=P~(x)P(y∣x). -
exp ( δ K 1 + l T ( x , y ) ) \exp(\delta_{K_1 + l} T(x, y)) exp(δK1+lT(x,y)):
- 这一项表示引入了对模型参数的修正量 δ K 1 + l \delta_{K_1 + l} δK1+l,对应于 s l s_l sl 的更新。
-
内部和式:
∑ i = 1 n s l ( y i , x , i ) , \sum_{i=1}^{n} s_l(y_i, x, i), i=1∑nsl(yi,x,i),
表示状态特征 s l s_l sl 在序列中所有位置的累加值。
公式的作用
-
计算目标:
- 公式用于计算状态特征 s l s_l sl 在当前模型分布 P ( y ∣ x ) P(y|x) P(y∣x) 下的期望值。
-
参数更新:
- 在改进的迭代尺度法(IIS)中,参数 δ K 1 + l \delta_{K_1 + l} δK1+l 的更新依赖于状态特征的期望值。
- 目标是使 经验期望 和 模型预测的期望 一致,从而调整模型参数。
-
修正项的引入:
- 通过 exp ( δ K 1 + l T ( x , y ) ) \exp(\delta_{K_1 + l} T(x, y)) exp(δK1+lT(x,y)),将参数的更新与当前模型的预测进行动态结合,确保优化过程能够逐步逼近最优解。
总结
公式 (11.37) 定义了状态特征函数 s l s_l sl 的期望值。它通过将经验分布 P ~ ( x , y ) \tilde{P}(x, y) P~(x,y) 分解为边缘分布 P ~ ( x ) \tilde{P}(x) P~(x) 和条件分布 P ( y ∣ x ) P(y|x) P(y∣x),引入参数修正量 δ K 1 + l \delta_{K_1 + l} δK1+l 来实现状态特征在模型分布下的动态调整。在 改进的迭代尺度法(IIS) 中,该公式用于计算状态特征的期望值,为参数更新提供依据,目标是让模型的预测分布逐渐逼近真实数据分布。