本文是将文章【条件随机场的学习算法】中的公式单独拿出来做一个详细的解析,便于初学者更好的理解。
公式 (11.38):
T ( x , y ) = ∑ k f k ( y , x ) = ∑ k = 1 K ∑ i = 1 n + 1 f k ( y i − 1 , y i , x , i ) . T(x, y) = \sum_{k} f_k(y, x) = \sum_{k=1}^K \sum_{i=1}^{n+1} f_k(y_{i-1}, y_i, x, i). T(x,y)=k∑fk(y,x)=k=1∑Ki=1∑n+1fk(yi−1,yi,x,i).
公式的背景与定义
这个公式定义了 所有特征函数的总和 T ( x , y ) T(x, y) T(x,y),即在给定输入序列 x x x 和标签序列 y y y 下,模型中所有特征函数 f k f_k fk 在序列中所有位置的累加值。
-
目的:
T ( x , y ) T(x, y) T(x,y) 表示在整个序列 y y y 和输入 x x x 下,模型所有特征函数的总贡献值。 -
作用:
这个值 T ( x , y ) T(x, y) T(x,y) 在条件随机场(CRF)的条件概率 P w ( y ∣ x ) P_w(y|x) Pw(y∣x) 计算中起到了关键作用:
P w ( y ∣ x ) = exp ( ∑ k w k f k ( y , x ) ) Z w ( x ) . P_w(y|x) = \frac{\exp\left(\sum_{k} w_k f_k(y, x)\right)}{Z_w(x)}. Pw(y∣x)=Zw(x)exp(∑kwkfk(y,x)).
其中 ∑ k f k ( y , x ) \sum_{k} f_k(y, x) ∑kfk(y,x) 就是公式中的 T ( x , y ) T(x, y) T(x,y)。
公式符号解释
-
T ( x , y ) T(x, y) T(x,y):
- 表示所有特征函数在给定输入 x x x 和输出 y y y 下的累加值。
-
f k ( y , x ) f_k(y, x) fk(y,x):
- 特征函数,描述输入 x x x 和输出 y y y 之间的某种关系。
- 特征函数可以是转移特征 t k ( y i − 1 , y i , x , i ) t_k(y_{i-1}, y_i, x, i) tk(yi−1,yi,x,i) 和状态特征 s l ( y i , x , i ) s_l(y_i, x, i) sl(yi,x,i)。
-
∑ k = 1 K \sum_{k=1}^K ∑k=1K:
- K K K 表示所有特征函数的数量。
-
∑ i = 1 n + 1 \sum_{i=1}^{n+1} ∑i=1n+1:
- i i i 表示标签序列中的位置索引,从 1 1 1 到 n + 1 n+1 n+1,因为标签序列 y y y 包括了起始状态和结束状态。
-
f k ( y i − 1 , y i , x , i ) f_k(y_{i-1}, y_i, x, i) fk(yi−1,yi,x,i):
- 特征函数 f k f_k fk 在位置 i i i 上的具体取值,依赖于输入 x x x 和标签的转移或状态。
逐步理解公式
1. 特征函数的总和
公式中:
T
(
x
,
y
)
=
∑
k
=
1
K
∑
i
=
1
n
+
1
f
k
(
y
i
−
1
,
y
i
,
x
,
i
)
,
T(x, y) = \sum_{k=1}^K \sum_{i=1}^{n+1} f_k(y_{i-1}, y_i, x, i),
T(x,y)=k=1∑Ki=1∑n+1fk(yi−1,yi,x,i),
可以看成两层求和:
-
第一层求和( k k k 的求和):
遍历所有特征函数 f k f_k fk,包括转移特征和状态特征。 -
第二层求和( i i i 的求和):
对给定序列 y y y 的每个位置 i i i(从 1 1 1 到 n + 1 n+1 n+1)累加特征函数 f k f_k fk 的值。- y i − 1 y_{i-1} yi−1 和 y i y_i yi:表示序列中第 i − 1 i-1 i−1 和 i i i 位置的标签。
- x x x:输入序列,影响 f k f_k fk 的取值。
- i i i:标签序列中的具体位置。
2. 特征函数的两种类型
在条件随机场中,特征函数通常分为两类:
-
转移特征 t k ( y i − 1 , y i , x , i ) t_k(y_{i-1}, y_i, x, i) tk(yi−1,yi,x,i):
- 描述标签在位置 i − 1 i-1 i−1 到 i i i 之间的转移关系,可能依赖于输入 x x x。
-
状态特征 s l ( y i , x , i ) s_l(y_i, x, i) sl(yi,x,i):
- 描述标签 y i y_i yi 在位置 i i i 与输入 x x x 之间的关系。
将这些特征函数累加,就可以得到整个序列的 特征总和 T ( x , y ) T(x, y) T(x,y)。
物理意义
-
特征总和 T ( x , y ) T(x, y) T(x,y):
- T ( x , y ) T(x, y) T(x,y) 表示给定输入 x x x 和标签 y y y 时,所有特征函数的总加权贡献值。
- 这一值直接决定了模型对标签序列 y y y 的得分(未归一化概率)。
-
条件概率的计算:
在条件随机场模型中,给定输入 x x x 时,标签序列 y y y 的概率为:
P w ( y ∣ x ) = exp ( T ( x , y ) ) Z w ( x ) , P_w(y|x) = \frac{\exp(T(x, y))}{Z_w(x)}, Pw(y∣x)=Zw(x)exp(T(x,y)),
其中 T ( x , y ) T(x, y) T(x,y) 就是特征总和。 -
学习目标:
- 通过最大化对数似然函数,模型会调整参数 w k w_k wk,使得 T ( x , y ) T(x, y) T(x,y) 对真实标签序列 y y y 更大。
- 同时,通过归一化因子 Z w ( x ) Z_w(x) Zw(x),确保模型分布是一个合法的概率分布。
公式的作用
-
特征累加:
- T ( x , y ) T(x, y) T(x,y) 是所有特征函数 f k f_k fk 在整个序列上的累加值,用于描述模型对 y y y 的打分。
-
模型的核心:
- 条件随机场的核心在于:
- T ( x , y ) T(x, y) T(x,y):特征函数的总和,表示未归一化的分数。
- Z w ( x ) Z_w(x) Zw(x):归一化因子,确保概率和为 1。
- 这两个部分一起构成了条件概率 P w ( y ∣ x ) P_w(y|x) Pw(y∣x)。
- 条件随机场的核心在于:
-
计算高效:
- 通过特征函数的分解(转移特征和状态特征),可以高效地计算 T ( x , y ) T(x, y) T(x,y) 和条件概率 P w ( y ∣ x ) P_w(y|x) Pw(y∣x)。
总结
公式 (11.38) 定义了 特征总和 T ( x , y ) T(x, y) T(x,y),即所有特征函数在给定输入 x x x 和标签 y y y 下的加权和。它是条件随机场模型计算条件概率 P w ( y ∣ x ) P_w(y|x) Pw(y∣x) 的核心部分,反映了模型对标签序列 y y y 的打分。通过最大化对数似然函数,模型会调整参数 w k w_k wk 以优化 T ( x , y ) T(x, y) T(x,y),从而提高模型对训练数据的拟合程度。