条件随机场(Conditional Random Field,CRF)

文章目录

    • 1. 概率无向图模型
      • 1.1 模型定义
      • 1.2 概率无向图模型的因子分解
    • 2. 条件随机场的定义与形成
      • 2.1 条件随机场的定义
      • 2.2 条件随机场的参数化形式
        • 例题
      • 2.3 条件随机场的简化形式
      • 2.4 条件随机场的矩阵形式
        • 例题
    • 3. 条件随机场的概率计算问题
      • 3.1 前向-后向算法
      • 3.2 概率计算
      • 3.3 期望值的计算
    • 4. 条件随机场的学习算法
    • 5. 条件随机场的预测算法
      • 例题
      • 例题python代码

1. 概率无向图模型

概率无向图模型(probabilistic undirected graphical model),又称为马尔可夫随机场(Markov random field),是一个可以由无向图表示的联合概率分布。

1.1 模型定义

图Graph包含顶点node、edge,无向图指的是边没有方向的图。

概率图模型指的是,图中的表示随机变量之间的概率依赖关系。

无向图表示的随机变量之间存在 成对马尔科夫性、局部马尔科夫性、全局马尔科夫性

  • 成对马尔可夫性
    任意不相连的两个结点 u,vu,vu,v 分别对应随机变量 Yu,YvY_u,Y_vYuYv 。其他所有结点为 OOO, 对应随机变量组为 YOY_OYO
    成对马尔可夫性指:P(Yu,Yv∣YO)=P(Yu∣YO)P(Yv∣YO)\color{red}P(Y_u,Y_v|Y_O) = P(Y_u|Y_O)P(Y_v|Y_O)P(Yu,YvYO)=P(YuYO)P(YvYO)
  • 局部马尔可夫性
    vvv 是无向图中任意一个结点,WWW 是与 vvv 有连接的所有结点,OOOvvvWWW 以外的其他所有结点。
    局部马尔可夫性指:P(Yv,YO∣YW)=P(Yv∣YW)P(YO∣YW)\color{red}P(Y_v,Y_O|Y_W) = P(Y_v|Y_W)P(Y_O|Y_W)P(Yv,YOYW)=P(YvYW)P(YOYW)
    P(YO∣YW)>0P(Y_O|Y_W) > 0P(YOYW)>0 时,上式等价于 P(Yv∣YW)=P(Yv∣YW,YO)\color{red}P(Y_v|Y_W) = P(Y_v|Y_W,Y_O)P(YvYW)=P(YvYW,YO)
    在这里插入图片描述
  • 全局马尔可夫性
    设结点集合 A,BA,BA,B 是图中被结点集合 CCC 分开的任意结点集合
    全局马尔可夫性指:P(YA,YB∣YC)=P(YA∣YC)P(YB∣YC)\color{red}P(Y_A,Y_B|Y_C) = P(Y_A|Y_C)P(Y_B|Y_C)P(YA,YBYC)=P(YAYC)P(YBYC)
    在这里插入图片描述
    上述成对的、局部的、全局的马尔可夫性定义是等价

1.2 概率无向图模型的因子分解

团与最大团 的定义:
任何两个结点均有连接的结点子集称为,若 CCC 是无向图的一个团,且不能再加进任何一个结点使其成为一个更大的团,则称 CCC最大团(maximal clique)

在这里插入图片描述
例如,上图中2个结点组成的团有5个 {Y1,Y2},{Y2,Y3},{Y3,Y4},{Y4,Y2},{Y1,Y3}\{Y_1,Y_2\}, \{Y_2,Y_3\}, \{Y_3,Y_4\}, \{Y_4,Y_2\}, \{Y_1,Y_3\}{Y1,Y2},{Y2,Y3},{Y3,Y4},{Y4,Y2},{Y1,Y3},有2个最大团 {Y1,Y2,Y3},{Y2,Y3,Y4}\{Y_1,Y_2,Y_3\}, \{Y_2,Y_3,Y_4\}{Y1,Y2,Y3},{Y2,Y3,Y4}
{Y1,Y2,Y3,Y4}\{Y_1,Y_2,Y_3,Y_4\}{Y1,Y2,Y3,Y4} 不是一个团,因为 Y1Y_1Y1Y4Y_4Y4 没有边连接。

将概率无向图模型的联合概率分布表示为其 最大团 上的随机变量的函数的乘积形式的操作,称为 概率无向图模型的因子分解(factorization)

给定概率无向图模型,CCC 是图 GGG 上的最大团,YCY_CYC 表示 CCC 对应的随机变量。那么,概率无向图模型的联合概率分布 P(Y)P(Y)P(Y) 可写作所有最大团 CCC 上的函数 Ψ(YC)\Psi(Y_C)Ψ(YC)乘积形式:

P(Y)=1Z∏CΨC(YC),其中Z=∑Y∏CΨC(YC)是规范化因子\color{red}P(Y) = \frac{1}{Z} \prod\limits_C \Psi_C(Y_C),\quad 其中Z=\sum\limits_Y \prod\limits_C \Psi_C(Y_C)是规范化因子 P(Y)=Z1CΨC(YC),Z=YCΨC(YC)
函数 ΨC(YC)\Psi_C(Y_C)ΨC(YC) 称为势函数(potential function),通常定义为指数函数 ΨC(YC)=exp⁡{−E(YC)}\Psi_C(Y_C) = \exp \{-E(Y_C)\}ΨC(YC)=exp{E(YC)}

2. 条件随机场的定义与形成

2.1 条件随机场的定义

条件随机场:
XXXYYY 是随机变量,P(Y∣X)P(Y|X)P(YX) 是在给定 XXX 的条件下 YYY 的条件概率分布。若随机变量 YYY 构成一个无向图的马尔科夫随机场,即:

P(Yv∣X,Yω,ω≠v)=P(Yv∣X,Yω,ω∼v)\color{red}P(Y_v|X,Y_\omega, \omega \neq v) = P(Y_v|X,Y_\omega,\omega \sim v) P(YvX,Yω,ω=v)=P(YvX,Yω,ωv)
左边表示,条件里是多个 YωY_\omegaYω, 且 ω≠v\omega \neq vω=v;右边是多个 YωY_\omegaYω, 且 ω\omegaω 都与 vvv 相连。则称条件概率分布 P(Y∣X)P(Y|X)P(YX) 为条件随机场。

线性链条件随机场:
P(Yi∣X,Y1,...,Yi−1,Yi+1,...,Yn)=P(Yi∣X,Yi−1,Yi+1)i=1,2,...,n(在i=1,n时只考虑单边)\color{red}P(Y_i|X,Y_1,...,Y_{i-1},Y_{i+1},...,Y_n) = P(Y_i|X,Y_{i-1},Y_{i+1})\\ i=1,2,...,n(在i=1,n时只考虑单边) P(YiX,Y1,...,Yi1,Yi+1,...,Yn)=P(YiX,Yi1,Yi+1)i=1,2,...,n(i=1,n)

则称条件概率分布 P(Y∣X)P(Y|X)P(YX) 为线性链条件随机场。在标注问题中,XXX 表示输入观测序列,YYY 表示对应的输出标记序列或状态序列。
在这里插入图片描述

2.2 条件随机场的参数化形式

根据上面,可以给出线性链条件随机场 P(Y∣X)P(Y|X)P(YX) 的因子分解式,各因子是定义在相邻两个结点(最大团)上的势函数。在随机变量 XXX 取值为 xxx 的条件下,随机变量 YYY 取值为 yyy 的条件概率具有如下形式:

P(y∣x)=1Z(x)exp⁡(∑i,kλktk(yi−1,yi,x,i)+∑i,lμlsl(yi,x,i))其中,Z(x)=∑yexp⁡(∑i,kλktk(yi−1,yi,x,i)+∑i,lμlsl(yi,x,i))\begin{aligned} \color{red}P(y|x) &\color{red}= \frac{1}{Z(x)} \exp \Bigg( \sum\limits_{i,k} \lambda_k t_k (y_{i-1},y_i,x,i) + \sum\limits_{i,l} \mu_ls_l(y_i,x,i)\Bigg)\\ 其中,Z(x) &= \sum\limits_y \exp \Bigg( \sum\limits_{i,k} \lambda_k t_k (y_{i-1},y_i,x,i) + \sum\limits_{i,l} \mu_ls_l(y_i,x,i)\Bigg) \end{aligned} P(yx)Z(x)=Z(x)1exp(i,kλktk(yi1,yi,x,i)+i,lμlsl(yi,x,i))=yexp(i,kλktk(yi1,yi,x,i)+i,lμlsl(yi,x,i))
式中,tk,slt_k,s_ltk,sl 是特征函数,λk,μl\lambda_k,\mu_lλk,μl 是对应权值。Z(x)Z(x)Z(x) 是规范化因子。

  • tk\color{red} t_ktk上的特征函数,称为转移特征,依赖于当前和前一个位置
  • sl\color{red} s_lsl结点特征函数,称为状态特征,依赖于当前位置
  • tk,sl\color{red} t_k, s_ltk,sl 都依赖于位置,是局部特征函数。函数取值 1 或者 0
  • 条件随机场完全由 tk,slt_k,s_ltk,sl 特征函数,λk,μl\lambda_k,\mu_lλk,μl 对应权值 确定
  • 线性链条件随机场是对数线性模型(log linear model)

例题

设有一标注问题:输入观测序列 X=(X1,X2,X3)X=(X_1,X_2,X_3)X=(X1,X2,X3),输出标记序列 Y=(Y1,Y2,Y3)Y=(Y_1,Y_2,Y_3)Y=(Y1,Y2,Y3)Y1,Y2,Y3Y_1,Y_2,Y_3Y1,Y2,Y3 取值于 Y={1,2}\mathcal{Y} = \{1,2\}Y={1,2}.

假设特征 tk,slt_k,s_ltk,sl 和对应权值 λk,μl\lambda_k,\mu_lλk,μl 如下:
t1=t1(yi−1=1,yi=2,x,i),i=2,3,λ1=1,特征函数取值为1(其余条件取0)t2=t2(y1=1,y2=1,x,2),λ2=0.6t3=t3(y2=2,y3=1,x,3),λ3=1t4=t4(y1=2,y2=1,x,2),λ4=1t5=t5(y2=2,y3=2,x,3),λ5=0.2s1=s1(y1=1,x,1),μ1=1s2=s2(yi=2,x,i),i=1,2μ2=0.5s3=s3(yi=1,x,i),i=2,3μ3=0.8s4=s4(y3=2,x,3),μ4=0.5\begin{aligned} t_1&=t_1(y_{i-1}=1,y_i=2,x,i), i=2,3 , \lambda_1=1, 特征函数取值为1 (其余条件取0)\\ t_2 &= t_2(y_1=1,y_2=1,x,2), \quad\quad \lambda_2=0.6\\ t_3 &= t_3(y_2=2,y_3=1,x,3) ,\quad\quad \lambda_3=1\\ t_4 &= t_4(y_1=2,y_2=1,x,2) ,\quad\quad \lambda_4=1\\ t_5 &= t_5(y_2=2,y_3=2,x,3) ,\quad\quad \lambda_5=0.2\\ s_1 &= s_1(y_1=1,x,1), \quad\quad\quad\quad\quad \mu_1=1\\ s_2 &= s_2(y_i=2,x,i), i=1,2 \quad\quad \mu_2=0.5\\ s_3 &= s_3(y_i=1,x,i), i=2,3 \quad\quad \mu_3=0.8\\ s_4 &= s_4(y_3=2,x,3), \quad\quad\quad\quad\quad \mu_4=0.5 \end{aligned} t1t2t3t4t5s1s2s3s4=t1(yi1=1,yi=2,x,i),i=2,3,λ1=1,1(0)=t2(y1=1,y2=1,x,2),λ2=0.6=t3(y2=2,y3=1,x,3),λ3=1=t4(y1=2,y2=1,x,2),λ4=1=t5(y2=2,y3=2,x,3),λ5=0.2=s1(y1=1,x,1),μ1=1=s2(yi=2,x,i),i=1,2μ2=0.5=s3(yi=1,x,i),i=2,3μ3=0.8=s4(y3=2,x,3),μ4=0.5
对给定的观测序列 xxx,求标记序列为 y=(y1,y2,y3)=(1,2,2)y=(y_1,y_2,y_3) = (1,2,2)y=(y1,y2,y3)=(1,2,2) 的非规范化条件概率(未除以规范化因子的条件概率)。

解:
由线性链条件随机场模型有:
P(y∣x)∝exp⁡(∑i,kλktk(yi−1,yi,x,i)+∑i,lμlsl(yi,x,i))=exp⁡[∑k=15λk∑i=23tk(yi−1,yi,x,i)+∑k=14μk∑i=13sk(yi,x,i)]=exp⁡(1+0.2+1+0.5+0.5)=exp⁡(3.2)\begin{aligned} P(y|x) &\propto \exp \Bigg( \sum\limits_{i,k} \lambda_k t_k (y_{i-1},y_i,x,i) + \sum\limits_{i,l} \mu_ls_l(y_i,x,i)\Bigg)\\ &= \exp \Bigg[\sum\limits_{k=1}^5 \lambda_k \sum\limits_{i=2}^3t_k (y_{i-1},y_i,x,i) + \sum\limits_{k=1}^4 \mu_k \sum\limits_{i=1}^3 s_k(y_i,x,i) \Bigg]\\ &= \exp (1+0.2+1+0.5+0.5) = \exp (3.2) \end{aligned} P(yx)exp(i,kλktk(yi1,yi,x,i)+i,lμlsl(yi,x,i))=exp[k=15λki=23tk(yi1,yi,x,i)+k=14μki=13sk(yi,x,i)]=exp(1+0.2+1+0.5+0.5)=exp(3.2)

2.3 条件随机场的简化形式

  • 统一 K1K_1K1转移特征和 K2K_2K2状态特征,K=K1+K2K=K_1+K_2K=K1+K2,记特征函数:

fk(yi−1,yi,x,i)={tk(yi−1,yi,x,i),k=1,2,...,K1sl(yi,x,i),k=K1+l;l=1,2,...,K2f_k(y_{i-1},y_i,x,i)=\left\{ \begin{aligned} t_k(y_{i-1},y_i,x,i), \quad\quad\quad\quad k=1,2,...,K_1 \\ s_l(y_i,x,i), \quad k=K_1+l; l=1,2,...,K_2 \end{aligned} \right. fk(yi1,yi,x,i)={tk(yi1,yi,x,i),k=1,2,...,K1sl(yi,x,i),k=K1+l;l=1,2,...,K2

  • 对转移和状态特征在各个位置 iii 求和,记作:
    fk(y,x)=∑i=1nfk(yi−1,yi,x,i),k=1,2,...,Kf_k(y,x) = \sum\limits_{i=1}^n f_k(y_{i-1},y_i,x,i),k=1,2,...,K fk(y,x)=i=1nfk(yi1,yi,x,i)k=1,2,...,K

  • ωk\omega_kωk 表示特征 fk(y,x)f_k(y,x)fk(y,x) 的权值,即
    ωk={λk,k=1,2,...,K1μl,k=K1+l;l=1,2,...,K2\omega_k=\left\{ \begin{aligned} \lambda_k, \quad\quad\quad\quad\quad\quad k=1,2,...,K_1 \\ \mu_l, \quad k=K_1+l; l=1,2,...,K_2 \end{aligned} \right. ωk={λk,k=1,2,...,K1μl,k=K1+l;l=1,2,...,K2

  • 条件随机场可表示为
    P(y∣x)=1Z(x)exp⁡∑k=1Kωkfk(y,x)Z(x)=∑yexp⁡∑k=1Kωkfk(y,x)P(y|x) = \frac{1}{Z(x)} \exp \sum\limits_{k=1}^K \omega_kf_k(y,x)\\ Z(x) = \sum\limits_y \exp \sum\limits_{k=1}^K \omega_kf_k(y,x)P(yx)=Z(x)1expk=1Kωkfk(y,x)Z(x)=yexpk=1Kωkfk(y,x)

  • ω\omegaω 表示权值向量,ω=(ω1,ω2,...,ωK)T\omega = (\omega_1,\omega_2,...,\omega_K)^Tω=(ω1,ω2,...,ωK)T

  • F(y,x)F(y,x)F(y,x) 表示全局特征向量,即 F(y,x)=(f1(y,x),f2(y,x),...,fK(y,x))TF(y,x) = (f_1(y,x),f_2(y,x),...,f_K(y,x))^TF(y,x)=(f1(y,x),f2(y,x),...,fK(y,x))T

  • 条件随机场写成向量内积形式:
    Pω(y∣x)=exp⁡(ω⋅F(y,x))Zω(x),其中Zω(x)=∑yexp⁡(ω⋅F(y,x))\color{red}P_\omega(y|x) = \frac{\exp (\omega \cdot F(y,x))}{Z_\omega(x)}, 其中Z_\omega(x)= \sum\limits_y\exp (\omega \cdot F(y,x))Pω(yx)=Zω(x)exp(ωF(y,x)),Zω(x)=yexp(ωF(y,x))

2.4 条件随机场的矩阵形式

  • 在标记序列的两端添加首尾状态标记 y0=start、yn+1=stopy_0=start 、y_{n+1}=stopy0=startyn+1=stop

  • 引进 Mi(yi−1,yi∣x)=exp⁡∑k=1Kwkfk(yi−1,yi,x,i),i=1,2,...,n+1M_i(y_{i−1},y_i|x) = \exp\sum \limits_{k=1}^K w_k f_k(y_{i−1},y_i,x,i),i=1,2,...,n+1Mi(yi1,yix)=expk=1Kwkfk(yi1,yi,x,i),i=1,2,...,n+1,对比2.2节的表达式,可见该式少了对位置 iii 求和

  • 对每个位置创建一个 m∗mm*mmm 的方阵(m为状态的个数,行为 i−1i-1i1 位置的状态,列为 iii 位置的状态,值为 Mi(yi−1,yi∣x)M_i(y_{i−1},y_i|x)Mi(yi1,yix), 用矩阵 Mi(x)=[Mi(yi−1,yi∣x)]M_i(x) = [M_i(y_{i−1},y_i|x)]Mi(x)=[Mi(yi1,yix)] 来表示所有的情况)

  • 又因为 ∏i[exp⁡(∑k=1Kwkfk(yi−1,yi,x,i))]=exp⁡(∑k=1Kwk∑ifk(yi−1,yi,x,i))\prod\limits_i \Bigg[ \exp \Bigg(\sum\limits_{k=1}^K w_k f_k(y_{i−1},y_i,x,i) \Bigg)\Bigg] = \exp \Bigg(\sum\limits_{k=1}^K w_k\sum\limits_i f_k(y_{i−1},y_i,x,i) \Bigg)i[exp(k=1Kwkfk(yi1,yi,x,i))]=exp(k=1Kwkifk(yi1,yi,x,i))

  • 于是条件概率 Pω(y∣x)=1Zω(x)∏i=1n+1Mi(yi−1,yi∣x)\color{red}P_\omega(y|x) = \frac{1}{Z_\omega(x)} \prod\limits_{i=1}^{n+1} M_i(y_{i-1},y_i|x)Pω(yx)=Zω(x)1i=1n+1Mi(yi1,yix)
    Zω(x)Z_\omega(x)Zω(x) 是规范化因子,是 n+1n+1n+1 个矩阵乘积的 (start,stop)(start,stop)(start,stop) 位置的元素,是路径 start,y1,y2,...,yn,stopstart,y_1,y_2,...,y_n,stopstart,y1,y2,...,yn,stop 所有可能的状态组合的非规范化概率之和。
    Zω(x)=[M1(x)M2(x)⋅⋅⋅Mn+1(x)]start,stop\color{red} Z_\omega(x) = [M_1(x)M_2(x)\cdot\cdot\cdot M_{n+1}(x)]_{start,stop}Zω(x)=[M1(x)M2(x)Mn+1(x)]start,stop

例题

假设有如下线性链条件随机场,观测序列 xxx , 状态序列 y,i=1,2,3,n=3y, \quad i=1,2,3,\quad n=3y,i=1,2,3,n=3, 标记 yi∈{1,2}y_i \in \{1,2\}yi{1,2}, 假设 y0=start=1,y4=stop=1y_0 = start = 1, y_4 = stop = 1y0=start=1,y4=stop=1,各个位置的随机矩阵 M1(x),M2(x),M3(x),M4(x)M_1(x),M_2(x),M_3(x),M_4(x)M1(x),M2(x),M3(x),M4(x)
在这里插入图片描述
求状态序列 yyystartstartstart 为起点,stopstopstop 为终点所有路径的非规范化概率及规范化因子。
在这里插入图片描述
解:
所有可能的路径有 8 条:
各路径的非规范化概率是:
a01b11c11,a01b11c12,a01b12c21,a01b12c22a02b21c11,a02b21c12,a02b22c21,a02b22c22a_{01}b_{11}c_{11},\quad a_{01}b_{11}c_{12},\quad a_{01}b_{12}c_{21},\quad a_{01}b_{12}c_{22}\\ a_{02}b_{21}c_{11},\quad a_{02}b_{21}c_{12},\quad a_{02}b_{22}c_{21},\quad a_{02}b_{22}c_{22}a01b11c11,a01b11c12,a01b12c21,a01b12c22a02b21c11,a02b21c12,a02b22c21,a02b22c22

规范化因子 Zω(x)=[M1(x)M2(x)M3(x)M4(x)]1,1a01b11c11+a01b11c12+a01b12c21+a01b12c22+a02b21c11+a02b21c12+a02b22c21+a02b22c22Z_\omega(x) = [M_1(x)M_2(x) M_3(x)M_{4}(x)]_{1,1}\\ a_{01}b_{11}c_{11}+ a_{01}b_{11}c_{12}+ a_{01}b_{12}c_{21}+a_{01}b_{12}c_{22}+\\ a_{02}b_{21}c_{11}+ a_{02}b_{21}c_{12}+ a_{02}b_{22}c_{21}+a_{02}b_{22}c_{22}Zω(x)=[M1(x)M2(x)M3(x)M4(x)]1,1a01b11c11+a01b11c12+a01b12c21+a01b12c22+a02b21c11+a02b21c12+a02b22c21+a02b22c22
矩阵其他3个位置为 0 。可见规范化因子恰好等于所有路径非规范化概率之和

3. 条件随机场的概率计算问题

  • 给定条件随机场 P(Y∣X)P(Y|X)P(YX) ,输入序列 xxx,输出序列 yyy
  • 计算条件概率 P(Yi=yi∣x),P(Yi−1=yi−1,Yi=yi∣x)P(Y_i = y_i|x),\quad P(Y_{i-1} = y_{i-1},Y_i = y_i|x)P(Yi=yix),P(Yi1=yi1,Yi=yix) 以及相应数学期望

类似HMM,引进前向-后向向量进行计算。

3.1 前向-后向算法

对每个位置 i=0,1,...,n+1i = 0,1,...,n+1i=0,1,...,n+1,定义前向向量 αi(x)\alpha_i(x)αi(x)
α0(y∣x)={1,y=start0,否则\alpha_0(y|x)=\left\{ \begin{aligned} 1, \quad y=start\\ 0, \quad\quad\quad 否则 \end{aligned} \right. α0(yx)={1,y=start0,
递归公式:
αiT(yi∣x)=αi−1T(yi−1∣x)[Mi(yi−1,yi∣x)],i=1,2,...,n+1\alpha_i^T(y_i|x) = \alpha_{i-1}^T(y_{i-1}|x)[M_i(y_{i-1},y_i|x)],\quad i=1,2,...,n+1αiT(yix)=αi1T(yi1x)[Mi(yi1,yix)],i=1,2,...,n+1

又可以表示为:αiT(x)=αi−1T(x)Mi(x)\color{red}\alpha_i^T(x) = \alpha_{i-1}^T(x)M_i(x)αiT(x)=αi1T(x)Mi(x)

αi(yi∣x)\alpha_i(y_i|x)αi(yix) 表示在位置 iii 的标记是 yiy_iyi 并且从 1 到 iii 的前部分标记序列的非规范化概率,yiy_iyi 可取的值有 mmm 个,所以 αi(x)\alpha_i(x)αi(x)mmm 维列向量,TTT 表示转置。

同样,对每个位置 i=0,1,...,n+1i = 0,1,...,n+1i=0,1,...,n+1,定义后向向量 βi(x)\beta_i(x)βi(x)
βn+1(yn+1∣x)={1,yn+1=stop0,否则\beta_{n+1}(y_{n+1}|x)=\left\{ \begin{aligned} 1, \quad y_{n+1}=stop\\ 0, \quad\quad\quad\quad 否则 \end{aligned} \right. βn+1(yn+1x)={1,yn+1=stop0,
βi(yi∣x)=[Mi+1(yi,yi+1∣x)]βi+1(yi+1∣x)\beta_i(y_i|x) = [M_{i+1}(y_i,y_{i+1}|x)]\beta_{i+1}(y_{i+1}|x)βi(yix)=[Mi+1(yi,yi+1x)]βi+1(yi+1x)

又可以表示为:βi(x)=Mi+1(x)βi+1(x)\color{red} \beta_i(x) = M_{i+1}(x) \beta_{i+1}(x)βi(x)=Mi+1(x)βi+1(x)

βi(yi∣x)\beta_i(y_i|x)βi(yix) 表示在位置 iii 的标记是 yiy_iyi 并且从 i+1i+1i+1nnn 的后部分标记序列的非规范化概率。

3.2 概率计算

根据前后向向量的定义,可知:
P(Yi=yi∣x)=αiT(yi∣x)βi(yi∣x)Z(x)P(Yi−1=yi−1,Yi=yi∣x)=αi−1T(yi−1∣x)Mi(yi−1,yi∣x)βi(yi∣x)Z(x)其中,Z(x)=αnT(x)1=1β1(x),1是元素均为1的m维列向量。P(Y_i = y_i|x) = \frac{\alpha_i^T(y_i|x) \beta_i(y_i|x)}{Z(x)}\\ P(Y_{i-1}=y_{i-1},Y_i = y_i|x) = \frac{\alpha_{i-1}^T(y_{i-1}|x)M_i(y_{i-1},y_i|x)\beta_i(y_i|x)}{Z(x)}\\ 其中,Z(x) = \alpha_n^T(x)\mathbf{1} = \mathbf{1}\beta_1(x),\mathbf{1}是元素均为1的m维列向量。 P(Yi=yix)=Z(x)αiT(yix)βi(yix)P(Yi1=yi1,Yi=yix)=Z(x)αi1T(yi1x)Mi(yi1,yix)βi(yix)Z(x)=αnT(x)1=1β1(x),11m

3.3 期望值的计算

  • 特征函数 fkf_kfk 关于条件分布 P(Y∣X)P(Y|X)P(YX) 的数学期望
    EP(Y∣X)[fk]=∑yP(y∣x)fk(y,x)=∑yP(y∣x)∑i=1n+1fk(yi−1,yi,x,i)=∑i=1n+1∑yi−1yifk(yi−1,yi,x,i)P(Yi−1=yi−1,Yi=yi∣x)=∑i=1n+1∑yi−1yifk(yi−1,yi,x,i)αi−1T(yi−1∣x)Mi(yi−1,yi∣x)βi(yi∣x)Z(x)\begin{aligned} E_{P(Y|X)}[f_k] &= \sum_{y}P(y|x)f_k(y,x)\\ &= \sum_{y}P(y|x)\sum_{i=1}^{n+1} f_k(y_{i-1},y_i,x,i)\\ &= \sum_{i=1}^{n+1}\sum_{y_{i-1}y_i}f_k(y_{i-1},y_i,x,i)P(Y_{i-1}=y_{i-1},Y_i=y_i|x)\\ &= \sum_{i=1}^{n+1}\sum_{y_{i-1}y_i}f_k(y_{i-1},y_i,x,i)\frac{\alpha_{i-1}^T(y_{i-1}|x)M_i(y_{i-1},y_i|x)\beta_i(y_i|x)}{Z(x)}\\ \end{aligned}EP(YX)[fk]=yP(yx)fk(y,x)=yP(yx)i=1n+1fk(yi1,yi,x,i)=i=1n+1yi1yifk(yi1,yi,x,i)P(Yi1=yi1,Yi=yix)=i=1n+1yi1yifk(yi1,yi,x,i)Z(x)αi1T(yi1x)Mi(yi1,yix)βi(yix)其中,k=1,2,...,Kk=1,2,...,Kk=1,2,...,KZ(x)=αnT(x)1Z(x) = \alpha_n^T(x) \mathbf{1}Z(x)=αnT(x)1

  • 假设边缘分布 P(X)P(X)P(X) 的经验分布为 P~(X)\tilde P(X)P~(X) ,特征函数 fkf_kfk 关于联合分布 P(X,Y)P(X,Y)P(X,Y) 的数学期望:
    EP(X,Y)[fk]=∑x,yP(x,y)fk(y,x)=∑xP~(x)∑yP(y∣x)∑i=1n+1fk(yi−1,yi,x,i)=∑xP~(x)∑i=1n+1∑yi−1yifk(yi−1,yi,x,i)αi−1T(yi−1∣x)Mi(yi−1,yi∣x)βi(yi∣x)Z(x)\begin{aligned} E_{P(X,Y)}[f_k] &= \sum_{x,y}P(x,y)f_k(y,x)\\ &= \sum_x\tilde P(x) \sum_{y}P(y|x)\sum_{i=1}^{n+1} f_k(y_{i-1},y_i,x,i)\\ &= \sum_x\tilde P(x)\sum_{i=1}^{n+1}\sum_{y_{i-1}y_i}f_k(y_{i-1},y_i,x,i)\frac{\alpha_{i-1}^T(y_{i-1}|x)M_i(y_{i-1},y_i|x)\beta_i(y_i|x)}{Z(x)} \end{aligned}EP(X,Y)[fk]=x,yP(x,y)fk(y,x)=xP~(x)yP(yx)i=1n+1fk(yi1,yi,x,i)=xP~(x)i=1n+1yi1yifk(yi1,yi,x,i)Z(x)αi1T(yi1x)Mi(yi1,yix)βi(yix)其中,k=1,2,...,Kk=1,2,...,Kk=1,2,...,KZ(x)=αnT(x)1Z(x) = \alpha_n^T(x) \mathbf{1}Z(x)=αnT(x)1

通过一次前向扫描计算 αi,Z(x)\alpha_i,\quad Z(x)αi,Z(x) ,一次后向扫描计算 βi\beta_iβi ,可以计算所有的概率、特征的期望

4. 条件随机场的学习算法

学习方法包括极大似然估计正则化的极大似然估计

具体的优化实现算法有改进的迭代尺度法IIS梯度下降法拟牛顿法

看不懂(跳过)

5. 条件随机场的预测算法

给定条件随机场 P(Y∣X)P(Y|X)P(YX) 和观测序列 xxx ,求条件概率最大的状态序列 y∗y^*y 。与 HMM 类似,使用维特比算法。

由式 Pω(y∣x)=exp⁡(ω⋅F(y,x))Zω(x)P_\omega(y|x) = \frac{\exp (\omega \cdot F(y,x))}{Z_\omega(x)}Pω(yx)=Zω(x)exp(ωF(y,x)) 可得:

y∗=arg max⁡yPω(y∣x)=arg max⁡yexp⁡(ω⋅F(y,x))Zω(x)=arg max⁡yexp⁡(ω⋅F(y,x))=arg max⁡y(ω⋅F(y,x))\begin{aligned} y^* &= \argmax_y P_\omega(y|x)\\ &= \argmax_y \frac{\exp (\omega \cdot F(y,x))}{Z_\omega(x)}\\ &= \argmax_y \exp(\omega \cdot F(y,x))\\ &= \argmax_y (\omega \cdot F(y,x)) \end{aligned} y=yargmaxPω(yx)=yargmaxZω(x)exp(ωF(y,x))=yargmaxexp(ωF(y,x))=yargmax(ωF(y,x))

  • 预测问题变成求非规范化概率最大的最优路径问题:max⁡y(ω⋅F(y,x))\color{red}\max\limits_y (\omega \cdot F(y,x))ymax(ωF(y,x))
    其中:
    ω=(ω1,ω2,...,ωK)TF(y,x)=(f1(y,x),f2(y,x),...,fK(y,x))Tfk(y,x)=∑i=1nfk(yi−1,yi,x,i),k=1,2,...,K\begin{aligned} \omega &= (\omega_1,\omega_2,...,\omega_K)^T\\ F(y,x) &= (f_1(y,x),f_2(y,x),...,f_K(y,x))^T\\ f_k(y,x) &= \sum\limits_{i=1}^nf_k(y_{i-1},y_i,x,i),\quad k=1,2,...,K \end{aligned} ωF(y,x)fk(y,x)=(ω1,ω2,...,ωK)T=(f1(y,x),f2(y,x),...,fK(y,x))T=i=1nfk(yi1,yi,x,i),k=1,2,...,K
    最优路径问题:max⁡y(ω⋅F(y,x))=max⁡y∑i=1nω⋅Fi(yi−1,yi,x)\color{red}\max\limits_y (\omega \cdot F(y,x)) = \max\limits_y \sum\limits_{i=1}^n\omega \cdot F_i(y_{i-1},y_i,x)ymax(ωF(y,x))=ymaxi=1nωFi(yi1,yi,x)
    其中,Fi(yi−1,yi,x)=(f1(yi−1,yi,x,i),f2(yi−1,yi,x,i),...,fK(yi−1,yi,x,i))TF_i(y_{i-1},y_i,x) = (f_1(y_{i-1},y_i,x,i),f_2(y_{i-1},y_i,x,i),...,f_K(y_{i-1},y_i,x,i))^TFi(yi1,yi,x)=(f1(yi1,yi,x,i),f2(yi1,yi,x,i),...,fK(yi1,yi,x,i))T 是局部特征向量

维特比算法:

  • 先求出位置 1 的各个状态 j=1,2,...,mj=1,2,...,mj=1,2,...,m 的非规范化概率:
    δi(j)=ω⋅F1(y0=start,y1=j,x),j=1,2,...,m\delta_i(j) = \omega \cdot F_1(y_0 = start, y_1=j,x), \quad j=1,2,...,mδi(j)=ωF1(y0=start,y1=j,x),j=1,2,...,m

  • 求出到位置 i=2,3,...,ni=2,3,...,ni=2,3,...,n 的各个状态 l=1,2,...,ml=1,2,...,ml=1,2,...,m 的非规范化概率的最大值,同时记录最大路径
    δi(l)=max⁡1≤j≤m{δi−1(j)+ω⋅Fi(yi−1=j,yi=l,x)},l=1,2,...,m\delta_i(l) = \max\limits_{1 \leq j \leq m} \{ \delta_{i-1}(j) + \omega \cdot F_i(y_{i-1}=j, y_i=l,x) \}, \quad l=1,2,...,mδi(l)=1jmmax{δi1(j)+ωFi(yi1=j,yi=l,x)},l=1,2,...,m
    Ψi(l)=arg max⁡1≤j≤m{δi−1(j)+ω⋅Fi(yi−1=j,yi=l,x)},l=1,2,...,m\Psi_i(l) = \argmax\limits_{1 \leq j \leq m} \{ \delta_{i-1}(j) + \omega \cdot F_i(y_{i-1}=j, y_i=l,x) \}, \quad l=1,2,...,mΨi(l)=1jmargmax{δi1(j)+ωFi(yi1=j,yi=l,x)},l=1,2,...,m

  • i=ni=ni=n 时终止,求得非规范化概率最大值 max⁡y(ω⋅F(y,x))=max⁡1≤j≤mδn(j)\max\limits_y (\omega \cdot F(y,x)) = \max\limits_{1 \leq j \leq m} \delta_n(j)ymax(ωF(y,x))=1jmmaxδn(j),最优路径终点 yn∗=arg max⁡1≤j≤mδn(j)y_n^* = \argmax\limits_{1 \leq j \leq m} \delta_n(j)yn=1jmargmaxδn(j)

  • 由最优路径终点返回,yi∗=Ψi+1(yi+1∗),i=n−1,n−2,...,1y_i^* = \Psi_{i+1}(y_{i+1}^*), \quad i = n-1,n-2,...,1yi=Ψi+1(yi+1),i=n1,n2,...,1

  • 求得最优路径 y∗=(y1∗,y2∗,...,yn∗)Ty^* = (y_1^*,y_2^*,...,y_n^*)^Ty=(y1,y2,...,yn)T

例题

设有一标注问题:输入观测序列 X=(X1,X2,X3)X=(X_1,X_2,X_3)X=(X1,X2,X3),输出标记序列 Y=(Y1,Y2,Y3)Y=(Y_1,Y_2,Y_3)Y=(Y1,Y2,Y3)Y1,Y2,Y3Y_1,Y_2,Y_3Y1,Y2,Y3 取值于 Y={1,2}\mathcal{Y} = \{1,2\}Y={1,2}.

假设特征 tk,slt_k,s_ltk,sl 和对应权值 λk,μl\lambda_k,\mu_lλk,μl 如下:
t1=t1(yi−1=1,yi=2,x,i),i=2,3,λ1=1,特征函数取值为1(其余条件取0)t2=t2(y1=1,y2=1,x,2),λ2=0.6t3=t3(y2=2,y3=1,x,3),λ3=1t4=t4(y1=2,y2=1,x,2),λ4=1t5=t5(y2=2,y3=2,x,3),λ5=0.2s1=s1(y1=1,x,1),μ1=1s2=s2(yi=2,x,i),i=1,2μ2=0.5s3=s3(yi=1,x,i),i=2,3μ3=0.8s4=s4(y3=2,x,3),μ4=0.5\begin{aligned} t_1&=t_1(y_{i-1}=1,y_i=2,x,i), i=2,3 , \lambda_1=1, 特征函数取值为1 (其余条件取0)\\ t_2 &= t_2(y_1=1,y_2=1,x,2), \quad\quad \lambda_2=0.6\\ t_3 &= t_3(y_2=2,y_3=1,x,3) ,\quad\quad \lambda_3=1\\ t_4 &= t_4(y_1=2,y_2=1,x,2) ,\quad\quad \lambda_4=1\\ t_5 &= t_5(y_2=2,y_3=2,x,3) ,\quad\quad \lambda_5=0.2\\ s_1 &= s_1(y_1=1,x,1), \quad\quad\quad\quad\quad \mu_1=1\\ s_2 &= s_2(y_i=2,x,i), i=1,2 \quad\quad \mu_2=0.5\\ s_3 &= s_3(y_i=1,x,i), i=2,3 \quad\quad \mu_3=0.8\\ s_4 &= s_4(y_3=2,x,3), \quad\quad\quad\quad\quad \mu_4=0.5 \end{aligned} t1t2t3t4t5s1s2s3s4=t1(yi1=1,yi=2,x,i),i=2,3,λ1=1,1(0)=t2(y1=1,y2=1,x,2),λ2=0.6=t3(y2=2,y3=1,x,3),λ3=1=t4(y1=2,y2=1,x,2),λ4=1=t5(y2=2,y3=2,x,3),λ5=0.2=s1(y1=1,x,1),μ1=1=s2(yi=2,x,i),i=1,2μ2=0.5=s3(yi=1,x,i),i=2,3μ3=0.8=s4(y3=2,x,3),μ4=0.5
求给定的观测序列 xxx 对应的最优标记序列 y∗=(y1∗,y2∗,y3∗)y^* = (y_1^*,y_2^*,y_3^*)y=(y1,y2,y3)

解:

  • 初始化
    δ1(j)=ω⋅F1(y0=start,y1=j,x),j=1,2i=1,δ1(1)=μ1s1=1,δ1(2)=μ2s2=0.5\delta_1(j) = \omega \cdot F_1(y_0 = start, y_1 = j, x), \quad j=1,2 \quad \quad \quad \quad \quad \quad \quad \quad \\ i=1, \quad \delta_1(1) = \mu_1s_1=1,\quad \delta_1(2) = \mu_2s_2 = 0.5 \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad δ1(j)=ωF1(y0=start,y1=j,x),j=1,2i=1,δ1(1)=μ1s1=1,δ1(2)=μ2s2=0.5

  • 递推
    i=2δ2(l)=max⁡j{δ1(j)+ω⋅F2(j,l,x)}δ2(1)=max⁡{1+λ2t2+μ3s3,0.5+λ4t4+μ3s3}=max⁡{2.4,2.3}=2.4Ψ2(1)=1δ2(2)=max⁡{1+λ1t1+μ2s2,0.5+μ2s2}=max⁡{2.5,1}=2.5Ψ2(2)=1i=3δ3(l)=max⁡j{δ2(j)+ω⋅F3(j,l,x)}δ3(1)=max⁡{2.4+μ3s3,2.5+λ3t3+μ3s3}=max⁡{3.2,4.3}=4.3Ψ3(1)=2δ3(2)=max⁡{2.4+λ1t1+μ4s4,2.5+λ5t5+μ4s4}=max⁡{3.9,3.2}=3.9Ψ3(2)=1\begin{aligned} i=2\quad \delta_2(l) &=\max\limits_j \{\delta_1(j) + \omega \cdot F_2(j,l,x)\}\\ \delta_2(1) &= \max\{1+\lambda_2t_2 + \mu_3s_3,\quad 0.5+\lambda_4t_4 + \mu_3s_3\} = \max\{2.4,2.3\} = 2.4\\ &\quad\Psi_2(1) = 1\\ \delta_2(2) &= \max\{1+\lambda_1t_1 + \mu_2s_2,\quad 0.5+ \mu_2s_2\} = \max\{2.5,1\} = 2.5\\ &\quad\Psi_2(2) = 1\\ i=3 \quad \delta_3(l) &=\max\limits_j \{\delta_2(j) + \omega \cdot F_3(j,l,x)\}\\ \delta_3(1) &= \max\{2.4+ \mu_3s_3,\quad 2.5+\lambda_3t_3 + \mu_3s_3\} = \max\{3.2,4.3\} = 4.3\\ &\quad\Psi_3(1) = 2\\ \delta_3(2) &= \max\{2.4+\lambda_1t_1 + \mu_4s_4,\quad 2.5+\lambda_5t_5 + \mu_4s_4\} = \max\{3.9,3.2\} = 3.9\\ &\quad\Psi_3(2) = 1\\ \end{aligned} i=2δ2(l)δ2(1)δ2(2)i=3δ3(l)δ3(1)δ3(2)=jmax{δ1(j)+ωF2(j,l,x)}=max{1+λ2t2+μ3s3,0.5+λ4t4+μ3s3}=max{2.4,2.3}=2.4Ψ2(1)=1=max{1+λ1t1+μ2s2,0.5+μ2s2}=max{2.5,1}=2.5Ψ2(2)=1=jmax{δ2(j)+ωF3(j,l,x)}=max{2.4+μ3s3,2.5+λ3t3+μ3s3}=max{3.2,4.3}=4.3Ψ3(1)=2=max{2.4+λ1t1+μ4s4,2.5+λ5t5+μ4s4}=max{3.9,3.2}=3.9Ψ3(2)=1

  • 终止
    max⁡y(ω⋅F(y,x))=max⁡δ3(l)=δ3(1)=4.3y3∗=arg max⁡lδ3(l)=1\max\limits_y(\omega \cdot F(y,x)) = \max \delta_3(l) = \delta_3(1) = 4.3\\ y_3^* = \argmax\limits_l \delta_3(l) = 1ymax(ωF(y,x))=maxδ3(l)=δ3(1)=4.3y3=largmaxδ3(l)=1

  • 返回
    y2∗=Ψ3(y3∗)=Ψ3(1)=2y1∗=Ψ2(y2∗)=Ψ2(2)=1y_2^* = \Psi_3(y_3^*) = \Psi_3(1) = 2\\ y_1^* = \Psi_2(y_2^*) = \Psi_2(2) = 1 y2=Ψ3(y3)=Ψ3(1)=2y1=Ψ2(y2)=Ψ2(2)=1

所以最优状态序列为 y∗=(y1∗,y2∗,y3∗)=(1,2,1)y^* = (y_1^*,y_2^*,y_3^*)=(1,2,1)y=(y1,y2,y3)=(1,2,1)

例题python代码

# -*- coding:utf-8 -*-
# Python 3.7
# @Time: 2020/2/6 20:42
# @Author: Michael Ming
# @Website: https://michael.blog.csdn.net/
# @File: ConditionalRandomField_viterbi.py
import numpy as npdef viterbi(s, t):time = len(s)y_state = [0, 1]  # 表示状态 1,2m = len(y_state)  # 状态数量y_star = np.zeros((time), dtype=np.int32)  # 最优路径delta = np.zeros((time, m))  # 最大概率矩阵(可以DP状态压缩)psi = np.zeros((time, m), dtype=np.int32)  # 记录最优路径# 初始化deltadelta[0][0] = s[0][0]delta[0][1] = s[0][1]# 递推for i in range(1, time):for j in range(m):temp = [delta[i - 1][k] + s[i][j] + t[i][k][j] for k in range(m)]# i表示时间,从k状态转移到j状态psi[i][j] = np.argmax(temp)  # 返回最大值的下标delta[i][j] = temp[psi[i][j]]  # 最大的概率填入# 终止y_star[time - 1] = np.argmax(delta[time - 1])# 返回for i in range(time - 2, -1, -1):y_star[i] = psi[i + 1][y_star[i + 1]]return y_star, delta, psidef crf_viterbi():# 状态特征s = np.array([[1, 0.5],[0.8, 0.5],[0.8, 0.5]])# 转移特征t = np.array([[[0, 0],[0, 0]],  # 辅助,使得后面序号方便[[0.6, 1],[1, 0]],[[0, 1],[1, 0.2]]])y_star, delta, psi = viterbi(s, t)print("最优路径:", y_star + 1)  # +1表示所有的都+1,序号从1开始print("概率矩阵:\n", delta)psi[1:] += 1  # 序号从1开始,第0行没用print("Psi路径:\n", psi)if __name__ == '__main__':crf_viterbi()

运行结果,与上面一致。

最优路径: [1. 2. 1.]
概率矩阵:[[1.  0.5][2.4 2.5][4.3 3.9]]
Psi路径:[[0 0][1 1][2 1]]Process finished with exit code 0

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

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

相关文章

Spring Cloud构建微服务架构(七)消息总线

先回顾一下,在之前的Spring Cloud Config的介绍中,我们还留了一个悬念:如何实现对配置信息的实时更新。虽然,我们已经能够通过/refresh接口和Git仓库的Web Hook来实现Git仓库中的内容修改触发应用程序的属性更新。但是&#xff0c…

2022中国最有钱大学排名出炉!北大只能排第三

文 | 大勇源 | 抓码计算机考研4月21日,教育部直属高校、工信部直属高校陆续在其信息公开网公布了2022年部门预算,高绩对各高校2022年预算数据进行了整理,从中可以一窥国内重点高校的经费情况。中国有各类型、各层次高校2000余所,就…

图谱实战 | 百度基于异构互联知识图谱的多模内容创作技术

分享嘉宾:卞东海 百度 高级研发工程师编辑整理:蒋郭鑫 河海大学出品平台:DataFunTalk导读:由于大数据时代的发展,知识呈指数级增长,而知识图谱技术又在近年来逐步火热,因此诞生了利用知识图谱技…

Spring Cloud构建微服务架构(四)分布式配置中心

Spring Cloud Config为服务端和客户端提供了分布式系统的外部化配置支持。配置服务器为各应用的所有环境提供了一个中心化的外部配置。它实现了对服务端和客户端对Spring Environment和PropertySource抽象的映射,所以它除了适用于Spring构建的应用程序,也…

华尔街投资人因股价暴跌起诉阿里巴巴,马云为起诉对象?

文 | 曹小灵知乎www.zhihu.com/question/530087383/answer/2458458738前几天发生了一个比较有意思的事情,直接上图:这新闻把我看乐了。这中国科技公司在美国股价下跌的原因,美国人自己不清楚么。2020年就开始闹,2021年落地的《外国…

Spring Cloud源码分析(一)Eureka

看过之前文章的朋友们,相信已经对Eureka的运行机制已经有了一定的了解。为了更深入的理解它的运作和配置,下面我们结合源码来分别看看服务端和客户端的通信行为是如何实现的。另外写这篇文章,还有一个目的,还是希望鼓励大家能够学…

手把手教你写出令人窒息的烂代码

源 | 机器之心在 GitHub 上有一个新项目,它描述了「最佳垃圾代码」的十九条关键准则。从变量命名到注释编写。这些准则将指导你写出最亮眼的烂代码。为了保持与原 GitHub 项目一致的风格,下文没有进行转换。读者们可以以相反的角度来理解所有观点&#x…

LeetCode 85. 最大矩形(DP/单调递增栈,难)

文章目录1. 题目2. 解题2.1 DP2.2 单调递增栈1. 题目 给定一个仅包含 0 和 1 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。 示例: 输入: [["1","0","1","0","0"],["1",&quo…

图谱实战 | 故障知识图谱技术落地探索:装备制造故障知识图谱构建及其应用案例剖析总结...

故障知识图谱是当前面向装备制造领域的落地重要探索领域,如何通过对设备的运行状态、运行日志进行信息抽取、关系建模,建成可供分析应用的知识库,并支撑故障诊断、维修辅助等应用场景,具有重要意义。鉴于当前还未有系统性的开源相…

聊聊Spring Cloud版本的那些事儿

继续昨天说的计划,解惑一下收到比较多的问题。 有朋友问“为什么在很多文章中,大家引用的Spring版本名字都不一样呢?比如:Angel.SR6,Brixton.SR5等等,它们都有什么区别呢?”,今天我…

小样本学习只是一场学术界自嗨吗

文 | ALme知乎这两年看见很多人,包括我实习的mentor在内,都在批评few-shot learning,觉得是学术界在自high,思考良久,感觉有必要给这个领域正个名~(注意,此答案仅关注few-shot image classifica…

Spring Cloud构建微服务架构(六)高可用服务注册中心

近期因工作原因减缓了更新频率,同时为了把Spring Cloud中文社区搭建起来也费了不少时间,几乎每天都在挤牙膏般的凑时间出来做一些有意义的事。未能按原计划更新博文,在此对持续关注我博客的朋友们深表歉意。 之前在写Spring Cloud系列文章的…

技术动态 | 「可解释知识图谱推理」最新方法综述

转载公众号 | 专知近年来,以深度学习模型为基础的人工智能研究不断取得突破性进展,但其大多具有黑盒性,不 利于人类认知推理过程,导致高性能的复杂算法、模型及系统普遍缺乏决策的透明度和可解释性。在国 防、医疗、网络与信息安全…

ACL'22 | 陈丹琦提出CoFi模型剪枝,加速10倍,精度几乎无损

文 | jxyxiangyu我们都知道,为了让以深度神经网络为基础的模型更快地训练,人们提出了单机多卡、多机多卡等分布式训练的方式,那么,在模型预测推理阶段,有什么方法可以加速推理呢?遗憾的是,并行/…

LeetCode 第 19 场双周赛(231 / 1120,前20.6%)

文章目录1. 比赛结果2. 题目LeetCode 5311. 将数字变成 0 的操作次数 easyLeetCode 5312. 大小为 K 且平均值大于等于阈值的子数组数目 mediumLeetCode 5313. 时钟指针的夹角 mediumLeetCode 5314. 跳跃游戏 IV hard1. 比赛结果 做出来了1, 3, 4题,第2题结束后12分…

【Spring Cloud中文社区】正式启动

前段时间,开了个关于Spring Cloud的交流群,短短两周时间就聚集了一批爱好者与实践者,每天在交流群中大家都进行着各种不同深度的探讨,但是这些高质量的聊天记录无法被搜索引擎收纳,导致很多不错的研究内容无法分享给网…

图谱实战 | 无本体约束的开放知识图谱构建:以OpenIE为代表的开放信息抽取项目技术方案解读...

目前,本体一直是知识图谱落地过程中的容易受到抨击的点,很多非专业用户对图谱的需求,其实并不想花费大量的时间去做本体约束,而是想直接拿来就用,开箱即用,以达到搜索与分析等目的。对本体的强专业性门槛&a…

计算机视觉,凉了?

计算机视觉是人工智能的关键领域之一,是一门研究如何使机器“看”的科学。近年来,尽管计算机视觉技术在学术上取得了长足的进步,但由于缺少“现金牛”应用,经常在网络上出现“计算机视觉凉凉了”的言论。其实这种观点是非常片面的…

LeetCode 1346. 检查整数及其两倍数是否存在(哈希)

1. 题目 给你一个整数数组 arr&#xff0c;请你检查是否存在两个整数 N 和 M&#xff0c;满足 N 是 M 的两倍&#xff08;即&#xff0c;N 2 * M&#xff09;。 更正式地&#xff0c;检查是否存在两个下标 i 和 j 满足&#xff1a; i ! j0 < i, j < arr.lengtharr[i]…

微服务架构的基础框架选择:Spring Cloud还是Dubbo?

最近一段时间不论互联网还是传统行业&#xff0c;凡是涉及信息技术范畴的圈子几乎都在讨论微服务架构。近期也看到各大技术社区开始组织一些沙龙和论坛来分享Spring Cloud的相关实施经验&#xff0c;这对于最近正在整理Spring Cloud相关套件内容与实例应用的我而言&#xff0c;…