线性链条件随机场CRF

       概率无向图模型,又称为马尔科夫随机场,是一个可以由无向图表示的联合概率分布。如果联合概率分布P(Y)满足成对、局部或全局马尔科夫性,就称此联合概率分布为概率无向图模型,或马尔科夫条件随机场。
       条件随机场是给定一组输入随机变量条件下另一组输出随机变量的条件概率分布模型,其特点是假设输出变量构成马尔科夫随机场。线性链条件随机场是无向图、判别模型。 通过因子分解,条件随机场的条件概率分布表示为其最大团中随机变量的函数的乘积形式,函数一般由两种特征组成,一种是转移特征,另一种为状态特征。

1 马尔科夫随机场

线性链条件随机场CRF_第1张图片
z = ∑ x ∏ i = 1 K φ i ( x c i ) z=\sum_x\prod_{i=1}^K\varphi_i(x_{c_i}) z=xi=1Kφi(xci)

2 线性链条件随机场

线性链条件随机场CRF_第2张图片

  1. 概率密度函数参数形式如下:
    p ( Y ∣ X ) = 1 z e x p ∑ i = 1 K F i ( x c i ) ( 线 性 链 的 条 件 随 机 场 有 n − 1 个 最 大 团 , n 为 节 点 个 数 ) = 1 z e x p ∑ t = 1 T F t ( y t − 1 , y t , x 1 : T ) ( 假 设 存 在 一 个 y 0 , 所 以 为 T 个 最 大 团 ) = 1 z e x p ∑ t = 1 T F ( y t − 1 , y t , x 1 : T ) ( 将 T 个 F 函 数 合 并 为 一 个 F ) = 1 z e x p ∑ 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 ) ] ( λ k 和 η l 是 参 数 需 要 学 习 , f k 和 g l 是 特 征 函 数 , 一 般 为 指 示 函 数 ) p(Y|X)=\frac{1}{z}exp\sum_{i=1}^{K}F_i(x_{c_i})(线性链的条件随机场有n-1个最大团,n为节点个数)\\ =\frac{1}{z}exp\sum_{t=1}^{T}F_t(y_{t-1},y_t,x_{1:T})(假设存在一个y_0,所以为T个最大团)\\ =\frac{1}{z}exp\sum_{t=1}^{T}F(y_{t-1},y_t,x_{1:T})(将T个F函数合并为一个F)\\ =\frac{1}{z}exp\sum_{t=1}^{T}[\sum_{k=1}^{K}\lambda_kf_k(y_{t-1},y_t,x_{1:T})+\sum_{l=1}^{L}\eta_lg_l(y_t,x_{1:T})](\lambda_k和\eta_l是参数需要学习,f_k和g_l是特征函数,一般为指示函数) p(YX)=z1expi=1KFi(xci)(线n1n)=z1expt=1TFt(yt1,yt,x1:T)(y0T)=z1expt=1TF(yt1,yt,x1:T)(TFF)=z1expt=1T[k=1Kλkfk(yt1,yt,x1:T)+l=1Lηlgl(yt,x1:T)](λkηlfkgl)
    注:K和L是提前确定的
  2. 概率密度函数向量形式如下:
    y = ( y 1 y 2 ⋅ ⋅ y T )   x = ( x 1 x 2 ⋅ ⋅ x T )   λ = ( λ 1 λ 2 ⋅ ⋅ λ K )   η = ( η 1 η 2 ⋅ ⋅ η L )   f = ( f 1 f 2 ⋅ ⋅ f K )   g = ( g 1 g 2 ⋅ ⋅ g L ) y=\begin{pmatrix} y_1 \\ y_2 \\ \cdot \\ \cdot \\ y_T \end{pmatrix} \ x=\begin{pmatrix} x_1 \\ x_2 \\ \cdot \\ \cdot \\ x_T \end{pmatrix} \ \lambda=\begin{pmatrix} \lambda_1 \\ \lambda_2 \\ \cdot \\ \cdot \\ \lambda_K \end{pmatrix} \ \eta=\begin{pmatrix} \eta_1 \\ \eta_2 \\ \cdot \\ \cdot \\ \eta_L \end{pmatrix} \ f=\begin{pmatrix} f_1 \\ f_2 \\ \cdot \\ \cdot \\ f_K \end{pmatrix} \ g=\begin{pmatrix} g_1 \\ g_2 \\ \cdot \\ \cdot \\ g_L \end{pmatrix} y=y1y2yT x=x1x2xT λ=λ1λ2λK η=η1η2ηL f=f1f2fK g=g1g2gL
    p ( Y = y ∣ X = x ) = 1 z ( x , λ , η ) e x p ∑ t = 1 T [ λ T ⋅ f ( y t − 1 , y t , x ) + η T ⋅ g ( y t , x ) ] = 1 z ( x , λ , η ) e x p [ λ T ⋅ ∑ t = 1 T f ( y t − 1 , y t , x ) + η T ⋅ ∑ t = 1 T g ( y t , x ) ] p(Y=y|X=x)=\frac{1}{z(x,\lambda,\eta)}exp\sum_{t=1}^{T}[\lambda^{T}\cdot f(y_{t-1},y_t,x)+\eta^T\cdot g(y_t, x)]\\ =\frac{1}{z(x,\lambda,\eta)}exp[\lambda^{T}\cdot \sum_{t=1}^{T}f(y_{t-1},y_t,x)+\eta^T\cdot \sum_{t=1}^{T}g(y_t, x)] p(Y=yX=x)=z(x,λ,η)1expt=1T[λTf(yt1,yt,x)+ηTg(yt,x)]=z(x,λ,η)1exp[λTt=1Tf(yt1,yt,x)+ηTt=1Tg(yt,x)]
    θ = ( λ η )   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=1Tft=1Tg)
    p ( Y = y ∣ X = x ) = 1 z ( x , θ ) e x p ( θ T ⋅ H ( y t , y t − 1 , x ) ) p(Y=y|X=x)=\frac{1}{z(x,\theta)}exp(\theta^T\cdot H(y_t,y_{t-1},x)) p(Y=yX=x)=z(x,θ)1exp(θTH(yt,yt1,x))

3 三个问题

  1. 概率计算问题 ⇒ 给 与 p ( Y = y ∣ X = x ) 计 算 p ( y t ∣ x ) 给与p(Y=y|X=x)计算p(y_t|x) p(Y=yX=x)p(ytx)
  2. 学习问题 ⇒ 给 与 t r a i n i n g d a t a : { ( x i , y i ) } i = 1 N , 估 计 θ ^ = a r g max ⁡ θ ∏ i = 1 N p ( y i ∣ x i ) 给与training data:\{(x^i,y^i)\}_{i=1}^N,估计\hat \theta=arg\max \limits_{\theta}\prod_{i=1}^{N}p(y^i|x^i) trainingdata:{(xi,yi)}i=1Nθ^=argθmaxi=1Np(yixi)
  3. 解码问题 ⇒ y ^ = a r g max ⁡ p ( y ∣ x ) \hat y=arg \max p(y|x) y^=argmaxp(yx)

3.1 概率计算问题

用最初的形式,令 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}\varphi_t(y_{t-1},y_t,x) p(yx)=z1t=1Tφt(yt1,yt,x)
p ( y t = i ∣ x ) = ∑ y 1 : y t − 1 , y t + 1 , y T 1 z ∏ t ′ = 1 T φ t ( y t ′ − 1 , y t ′ , x ) = δ l e f t ⋅ δ r i g h t p(y_t=i|x)=\sum \limits_{y_1:y_{t-1},y_{t+1},y_T}\frac{1}{z}\prod_{t^{'}=1}^{T}\varphi_t(y_{t^{'}-1},y_{t^{'}},x)\\ =\delta_{left} \cdot \delta_{right} p(yt=ix)=y1:yt1,yt+1,yTz1t=1Tφt(yt1,yt,x)=δleftδright
δ l e f t = ∑ y 1 , y t − 1 φ 1 ( y 0 , y 1 , x ) ⋅ ⋅ φ t ( y t − 1 , y t = i , x ) = ∑ y t − 1 φ ( y t − 1 , y t = i , x ) ⋅ ⋅ ⋅ ∑ y 0 φ ( y 0 , y 1 , x ) ( 从 后 向 前 计 算 ) \delta_{left}=\sum \limits_{y_1,y_{t-1}}\varphi_1(y_{0},y_1,x) \cdot \cdot \varphi_t(y_{t-1},y_t=i,x)\\ =\sum_{y_{t-1}}\varphi(y_{t-1},y_t=i,x) \cdot \cdot \cdot \sum_{y_0}\varphi(y_0,y_1,x)(从后向前计算) δleft=y1,yt1φ1(y0,y1,x)φt(yt1,yt=i,x)=yt1φ(yt1,yt=i,x)y0φ(y0,y1,x)()
δ r i g h t = ∑ y t + 1 , y T φ t + 1 ( y t = i , y t + 1 , x ) ⋅ ⋅ φ T ( y T − 1 , y T , x ) = ∑ y T φ T ( y T − 1 , y T , x ) ⋅ ⋅ ⋅ ∑ y t + 1 φ t + 1 ( y t = i , y t + 1 , x ) \delta_{right}=\sum \limits_{y_{t+1},y_{T}}\varphi_{t+1}(y_{t}=i,y_{t+1},x) \cdot \cdot \varphi_T(y_{T-1},y_T,x)\\ =\sum_{y_T}\varphi_T(y_{T-1},y_T,x)\cdot \cdot \cdot \sum_{y_{t+1}}\varphi_{t+1}(y_{t}=i,y_{t+1},x) δright=yt+1,yTφt+1(yt=i,yt+1,x)φT(yT1,yT,x)=yTφT(yT1,yT,x)yt+1φt+1(yt=i,yt+1,x)
计算递推公式:
令:
α t ( i ) : 所 有 y 0 ⋅ ⋅ y t − 1 相 关 的 势 函 数 φ , y t = i 的 左 半 部 势 函 数 φ α t − 1 ( j ) : 所 有 y 0 ⋅ ⋅ y t − 2 相 关 的 势 函 数 φ , y t − 1 = j 的 左 半 部 势 函 数 φ \alpha_t(i):所有y_0 \cdot \cdot y_{t-1}相关的势函数\varphi,y_t=i的左半部势函数\varphi\\ \alpha_{t-1}(j):所有y_0 \cdot \cdot y_{t-2}相关的势函数\varphi,y_{t-1}=j的左半部势函数\varphi αt(i):y0yt1φyt=iφαt1(j):y0yt2φyt1=jφ
α t − 1 ( j ) 添 加 右 半 部 的 势 函 数 φ , 再 积 分 \alpha_{t-1}(j)添加右半部的势函数\varphi,再积分 αt1(j)φ,
∑ j φ t ( y t − 1 = j , y t = i , x ) α t − 1 ( j ) = α t ( i ) = δ l e f t \sum_{j}\varphi_t(y_{t-1}=j,y_t=i,x)\alpha_{t-1}(j)=\alpha_t(i)=\delta_{left} jφt(yt1=j,yt=i,x)αt1(j)=αt(i)=δleft
同理得:
β t ( i ) = δ r i g h t \beta_t(i)=\delta_{right} βt(i)=δright
所以:
p ( y t = i ∣ x ) = 1 z α t ( i ) β t ( i ) p(y_t=i|x)=\frac{1}{z}\alpha_t(i)\beta_t(i) p(yt=ix)=z1αt(i)βt(i)

3.2 学习问题

θ ^ = a r g max ⁡ θ ∏ i = 1 N p ( y i ∣ x i ) λ ^ , η ^ = a r g max ⁡ λ , η ∏ i = 1 N p ( y i ∣ x i ) \hat \theta=arg\max \limits_{\theta}\prod_{i=1}^{N}p(y^i|x^i)\\ \hat \lambda , \hat \eta=arg\max \limits_{\lambda,\eta}\prod_{i=1}^{N}p(y^i|x^i) θ^=argθmaxi=1Np(yixi)λ^,η^=argλ,ηmaxi=1Np(yixi)
用概率密度函数向量形式,令
p ( y ∣ x ) = 1 z ( x , λ , η ) e x p ∑ t = 1 T [ λ T ⋅ f ( y t − 1 , y t , x ) + η T ⋅ g ( y t , x ) ] p(y|x)=\frac{1}{z(x,\lambda,\eta)}exp\sum_{t=1}^{T}[\lambda^{T}\cdot f(y_{t-1},y_t,x)+\eta^T\cdot g(y_t, x)] p(yx)=z(x,λ,η)1expt=1T[λTf(yt1,yt,x)+ηTg(yt,x)]
λ ^ , η ^ = a r g max ⁡ λ , η l o g ∏ i = 1 N p ( y i ∣ x i ) = a r g max ⁡ λ , η ∑ i = 1 N l o g p ( y i ∣ x i ) = a r g max ⁡ λ , η ∑ i = 1 N ( − l o g z ( x i , λ , η ) + ∑ t = 1 T [ λ T f ( y t − 1 , y t , x i ) + η T g ( y t , x i ) ] ) = a r g max ⁡ λ , η L ( λ , η , x i ) \hat \lambda , \hat \eta=arg\max \limits_{\lambda,\eta}log \prod_{i=1}^Np(y^i|x^i)\\ =arg\max \limits_{\lambda,\eta}\sum_{i=1}^Nlogp(y^i|x^i)\\ =arg\max \limits_{\lambda,\eta}\sum_{i=1}^N(-logz(x^i,\lambda,\eta)+\sum_{t=1}^T[\lambda^{T}f(y_{t-1},y_t,x^i)+\eta^Tg(y_t, x^i)])\\ =arg\max \limits_{\lambda,\eta}L(\lambda,\eta,x^i) λ^,η^=argλ,ηmaxlogi=1Np(yixi)=argλ,ηmaxi=1Nlogp(yixi)=argλ,ηmaxi=1N(logz(xi,λ,η)+t=1T[λTf(yt1,yt,xi)+ηTg(yt,xi)])=argλ,ηmaxL(λ,η,xi)
用梯度上升法,求偏导,以 λ 为 例 \lambda为例 λ
∂ L ∂ λ = ∑ i = 1 N ( ∑ t = 1 T f ( y t − 1 , y t , x i ) − ∂ l o g z ( x i , λ , η ) ∂ λ ) ( z 对 λ 的 偏 导 有 固 定 值 , 不 做 解 释 ) = ∑ i = 1 N ( ∑ t = 1 T f ( y t − 1 , y t , x i ) − E [ ∑ t = 1 T f ( y t − 1 , y t , x i ) ] ) = ∑ i = 1 N ( ∑ 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 ) ) = ∑ i = 1 N ( ∑ 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 ) ) \frac{\partial L}{\partial \lambda}=\sum_{i=1}^{N}(\sum_{t=1}^{T}f(y_{t-1},y_t,x^i)-\frac{\partial logz(x^i,\lambda,\eta)}{\partial \lambda})(z对\lambda的偏导有固定值,不做解释)\\ =\sum_{i=1}^{N}(\sum_{t=1}^{T}f(y_{t-1},y_t,x^i)-E[\sum_{t=1}^Tf(y_{t-1},y_t,x^i)])\\ =\sum_{i=1}^{N}(\sum_{t=1}^{T}f(y_{t-1},y_t,x^i)-\sum_yp(y|x^i)\sum_{t=1}^Tf(y_{t-1},y_t,x^i))\\ =\sum_{i=1}^{N}(\sum_{t=1}^{T}f(y_{t-1},y_t,x^i)-\sum_yp(y|x^i)\sum_{t=1}^Tf(y_{t-1},y_t,x^i)) λL=i=1N(t=1Tf(yt1,yt,xi)λlogz(xi,λ,η))(zλ)=i=1N(t=1Tf(yt1,yt,xi)E[t=1Tf(yt1,yt,xi)])=i=1N(t=1Tf(yt1,yt,xi)yp(yxi)t=1Tf(yt1,yt,xi))=i=1N(t=1Tf(yt1,yt,xi)yp(yxi)t=1Tf(yt1,yt,xi))

4 参考

https://www.bilibili.com/video/av34444816

你可能感兴趣的:(机器学习)