【概率图模型】从贝叶斯网络到条件随机场

贝叶斯网络

定义:
  贝叶斯网络是一个有向无环图 ( D i r e c t e d A c y c l i c G r a p h , D A G ) (Directed Acyclic Graph,DAG) DirectedAcyclicGraphDAG模型,有代表变量节点及连接这些节点的有向边构成。节点代表随机变量,节点间的有向边代表了节点间的相互关系(有父节点指向其子节点),用条件概率表达变量间的依赖关系,没有父节点的用先验概率进行信息表达。
在这里插入图片描述
  令 G G G为定义在 { X 1 , X 2 , . . . , X n } \{X_1,X_2,...,X_n\} {X1,X2,...,Xn}上的一个贝叶斯网络,其联合概率分布可以表示为各个节点的条件概率的乘积:
P ( X ) = ∏ i = 1 n p i ( X i ∣ P a r G ( X i ) ) P(X) = \prod \limits_{i=1}^{n}p_i(X_i|Par_G(X_i)) P(X)=i=1npi(XiParG(Xi))
  其中, P a r G ( X i ) Par_G(X_i) ParG(Xi)为节点 X i X_i Xi的父节点, p i ( X i ∣ P a r G ( X i ) p_i(X_i|Par_G(X_i) pi(XiParG(Xi)为节点条件概率。

结论:
  贝叶斯网络的联合概率分布可以表示为:局部 条件概率 连乘积的形式,(对比马尔可夫模型和因子模型,贝叶斯网络条件概率的值因为是概率,而不是势函数的大小值,所以不用归一化)。
在这里插入图片描述
  如上图,D代表试卷难度,I代表智商,G代表考试成绩,S代表高考成绩,L代表是否给该生推荐信。
所以上面这个例子的联合概率分布就可以表示为:
P ( X ) = P ( D , I , G , S , L ) = P ( D ) ⋅ P ( I ) ⋅ P ( G ∣ I , D ) ⋅ P ( S ∣ I ) ⋅ P ( L ∣ G ) P(X)=P(D,I,G,S,L) = P(D)·P(I)·P(G|I,D)·P(S|I)·P(L|G) P(X)=P(D,I,G,S,L)=P(D)P(I)P(GI,D)P(SI)P(LG)
所以联合概率分布的其中的一项概率可以计算表示为:
P ( d 1 , i 0 , g 1 , s 1 , l 1 ) = P ( d 1 ) P ( i 0 ) P ( g 1 ∣ I 0 , d 1 ) P ( s 1 ∣ i 0 ) P ( l 0 ∣ g 1 ) = 0.4 × 0.7 × 0.05 × 0.1 = 0.00007 P(d^1,i^0,g^1,s^1,l^1)=P(d^1)P(i^0)P(g^1|I^0,d^1)P(s^1|i^0)P(l^0|g^1)=0.4×0.7×0.05×0.1=0.00007 P(d1,i0,g1,s1,l1)=P(d1)P(i0)P(g1I0,d1)P(s1i0)P(l0g1)=0.4×0.7×0.05×0.1=0.00007
而所有的联合概率分布的项目和为1,就是概率和为1。

马尔可夫随机场:

定义:
  马尔可夫随机场(Markov Random Fields,MRF)的联合概率分布可以表示为以下分解形式
P ( x 1 , x 2 , . . . , x n ) = 1 Z Φ ∏ i = 1 k ϕ i ( D i ) P(x_1,x_2,...,x_n)=\frac{1}{Z_\Phi}\prod \limits_{i=1}^{k}\phi_i(D_i) P(x1,x2,...,xn)=ZΦ1i=1kϕi(Di)
  其中, Z Φ Z_\Phi ZΦ为联合概率分布的归一化因子,通常称之为配分函数(partition function), D i D_i Di是随机变量的集合,因子 ϕ i ( D i ) \phi_i(D_i) ϕi(Di)是从随机变量集合到实数域的一个映射,称之为势函数或者因子
Φ = ( ϕ 1 ( D 1 ) , ϕ 2 ( D 2 ) , . . . ϕ k ( D k ) ) \Phi = (\phi_1(D_1),\phi_2(D_2),...\phi_k(D_k)) Φ=(ϕ1(D1),ϕ2(D2),...ϕk(Dk))
Z Φ = ∑ ∏ i = 1 k ϕ i ( D i ) Z_\Phi=\sum \limits_{} ^{}\prod \limits_{i=1}^{k}\phi_i(D_i) ZΦ=i=1kϕi(Di)
  联合概率分布可以表示为:局部势函数的连乘积的形式,并归一,局部势函数可以分为:点势函数与边势函数
在这里插入图片描述
所以
P ( X ) = P ( A , B , C , D ) = 1 Z Φ ∏ i = 1 k ϕ i ( D i ) = 1 Z Φ ϕ 1 ( A , B ) ϕ 1 ( B , C ) ϕ 1 ( C , D ) ϕ 1 ( D , A ) P(X)=P(A,B,C,D) =\frac{1}{Z_\Phi}\prod \limits_{i=1}^{k}\phi_i(D_i)=\frac{1}{Z_\Phi}\phi_1(A,B)\phi_1(B,C)\phi_1(C,D)\phi_1(D,A) P(X)=P(A,B,C,D)=ZΦ1i=1kϕi(Di)=ZΦ1ϕ1(A,B)ϕ1(B,C)ϕ1(C,D)ϕ1(D,A)
  其中 ϕ 1 ( A , B ) \phi_1(A,B) ϕ1(A,B)表示A,B的边对应的 边势函数,所以 ϕ 1 ( A , B ) \phi_1(A,B) ϕ1(A,B) ϕ 2 ( B , C ) \phi_2(B,C) ϕ2(B,C) ϕ 3 ( C , D ) \phi_3(C,D) ϕ3(C,D) ϕ 4 ( D , A ) \phi_4(D,A) ϕ4(D,A)具体可以表示为下面的形式,其中分别是:边左取值 、边右取值、 势函数值:

[ a 0 b 0 30 a 0 b 1 5 a 1 b 0 1 a 1 b 1 10 ] [ b 0 c 0 30 b 0 c 1 5 b 1 c 0 1 b 1 c 1 10 ] [ c 0 d 0 30 c 0 d 1 5 c 1 d 0 1 c 1 d 1 10 ] [ d 0 a 0 30 d 0 a 1 5 d 1 a 0 1 d 1 a 1 10 ] \left[ \begin{array}{ccc} a^0 & b^0 & 30\\ a^0 & b^1 & 5\\ a^1 & b^0 & 1\\ a^1 & b^1 & 10\\ \end{array} \right]\left[ \begin{array}{ccc} b^0 & c^0 & 30\\ b^0 & c^1 & 5\\ b^1 & c^0 & 1\\ b^1 & c^1 & 10\\ \end{array} \right]\left[ \begin{array}{ccc} c^0 & d^0 & 30\\ c^0 & d^1 & 5\\ c^1 & d^0 & 1\\ c^1 & d^1 & 10\\ \end{array} \right]\left[ \begin{array}{ccc} d^0 & a^0 & 30\\ d^0 & a^1 & 5\\ d^1 & a^0 & 1\\ d^1 & a^1 & 10\\ \end{array} \right] a0a0a1a1b0b1b0b1305110 b0b0b1b1c0c1c0c1305110 c0c0c1c1d0d1d0d1305110 d0d0d1d1a0a1a0a1305110

所以变量的取值、因子乘积、归一化概率就可以表示为:

[ 变 量 取 值 因子乘积 归一化概率 a 0 b 0 c 0 d 0 300000 0.04 a 0 b 0 c 0 d 1 300000 0.04 a 0 b 0 c 1 d 0 300000 0.04 a 0 b 0 c 1 d 1 30 0.0000041 a 0 b 1 c 0 d 0 500 0.000069 a 0 b 1 c 0 d 1 500 0.000069 a 0 b 1 c 1 d 0 5000000 0.69 a 0 b 1 c 1 d 1 500 0.000069 a 1 b 0 c 0 d 0 100 0.000014 a 1 b 0 c 0 d 1 1000000 0.14 a 1 b 0 c 1 d 0 100 0.000014 a 1 b 0 c 1 d 1 100 0.000014 a 1 b 1 c 0 d 0 10 0.0000014 a 1 b 1 c 0 d 1 100000 0.014 a 1 b 1 c 1 d 0 100000 0.014 a 1 b 1 c 1 d 1 100000 0.014 ] \left[ \begin{array}{ccc} 变 & 量 &取&值& 因子乘积&归一化概率\\ a^0 & b^0 &c^0&d^0& 300000&0.04\\ a^0 & b^0 &c^0&d^1& 300000&0.04\\ a^0 & b^0 &c^1&d^0& 300000&0.04\\ a^0 & b^0 &c^1&d^1& 30&0.0000041\\ a^0 & b^1 &c^0&d^0& 500&0.000069\\ a^0 & b^1 &c^0&d^1& 500&0.000069\\ a^0 & b^1 &c^1&d^0& 5000000&0.69\\ a^0 & b^1 &c^1&d^1& 500&0.000069\\ a^1 & b^0 &c^0&d^0& 100&0.000014\\ a^1 & b^0 &c^0&d^1& 1000000&0.14\\ a^1 & b^0 &c^1&d^0& 100&0.000014\\ a^1 & b^0 &c^1&d^1& 100&0.000014\\ a^1 & b^1 &c^0&d^0& 10&0.0000014\\ a^1 & b^1 &c^0&d^1& 100000&0.014\\ a^1 & b^1 &c^1&d^0& 100000&0.014\\ a^1 & b^1 &c^1&d^1& 100000&0.014\\ \end{array} \right] a0a0a0a0a0a0a0a0a1a1a1a1a1a1a1a1b0b0b0b0b1b1b1b1b0b0b0b0b1b1b1b1c0c0c1c1c0c0c1c1c0c0c1c1c0c0c1c1d0d1d0d1d0d1d0d1d0d1d0d1d0d1d0d1因子乘积300000300000300000305005005000000500100100000010010010100000100000100000归一化概率0.040.040.040.00000410.0000690.0000690.690.0000690.0000140.140.0000140.0000140.00000140.0140.0140.014

因子乘积的和便是 Z Φ Z_\Phi ZΦ,上面的每一行,都是概率分布函数的其中一项。
其中这个图只定义了A,B,C,D之间边的关系,没有定义节点变化的关系,所以可以在原有的式子基础上加上点对应的势函数,称之为 点势函数,加上点势函数后,这样联合概率分布就可以表示为:
p ( X ) = 1 Z Φ ∏ p ϕ p ( x p ) ∏ p , q ϕ p q ( x p , x q ) p(X)=\frac{1}{Z_\Phi}\prod \limits_{p}^{}\phi_p(x_p)\prod \limits_{p,q}^{}\phi_{pq}(x_p,x_q) p(X)=ZΦ1pϕp(xp)p,qϕpq(xp,xq)
  可以理解为A点取1,B点取1这个有一个概率,而A点取1或者0也有概率。
  势函数也称为因子,表示为多个点的取值限制的函数映射,如点A有两个取值0,1,他的势函数的取值可以是5,10,如点A,B的边,其中B的取值也是0,1,则边的势函数就有四个取值
每个取值对应势函数的一个数值,虽然这些数值不是概率,而且加在一起不是1,但是取值的大小可以代表一种概率发生的大小。

因子图:

定义:
  将一个具有多变量的全局函数因子分解,得到几个局部函数的乘积,以此为基础得到的一个双向图叫做因子图。
  所谓factor graph(因子图),就是对函数因子分解的表示图,一种是变量节点,代表全局多元函数中的变量,一种是因子节点,代表因式分解中的局部函数。我们知道,一个全局函数能够分解为多个局部函数的积,因式分解就行了,这些局部函数和对应的变量就能体现在因子图上。在概率论及其应用中, 因子图是一个在贝叶斯推理中得到广泛应用的模型。
  因子图是概率图的一种,概率图有很多种,最常见的就是贝叶斯网络和马尔可夫随机场,在概率图中,求某个变量的边缘分布是常见的问题,这问题有很多求解方法,其中之一就是可以把贝叶斯网络和马尔可夫随机场转换成因子图,然后用sum-product算法求解。基于因子图可以用sum-product算法可以高效的求各个变量的边缘分布。

根据贝叶斯上面的例子,可以转换成因子图的形式,如下:
在这里插入图片描述
其中 I 、 D 、 G 、 S 、 L I、D、G、S、L IDGSL分别表示的是变量节点,而 f I f_I fI f D f_D fD f G f_G fG f S f_S fS f L f_L fL分别表示因子节点,也就是局部函数, 则
所以:
p ( I , D , G , S , L ) = f I ( I ) f D ( D ) f G ( G , I , D ) f S ( L , G ) f L ( S , I ) p(I,D,G,S,L) = f_I(I)f_D(D)f_G(G,I,D)f_S(L,G)f_L(S,I) p(I,D,G,S,L)=fI(I)fD(D)fG(G,I,D)fS(L,G)fL(S,I)
  其中上面是贝叶斯网络转化过来的,所以不用归一化,函数值本身就是代表的概率,
所以因子图的联合概率通用表示为:
p ( X ) = 1 Z ∏ p ϕ p ( X p ) p(X)=\frac{1}{Z}\prod \limits_{p}^{}\phi_p(X_p) p(X)=Z1pϕp(Xp)

理解:联合概率分布可以表示为:局部势函数的连乘积的形式,并归一。

马尔可夫性质

定义:
  马尔可夫性质(英语:Markov property)是概率论中的一个概念,当一个随机过程在给定现在状态及所有过去状态情况下,其未来状态的条件概率分布仅依赖于当前状态;换句话说,在给定现在状态时,它与过去状态(即该过程的历史路径)是条件独立的,那么此随机过程即具有马尔可夫性质。

  • 具有马尔可夫性质随机过程 称之为 马尔可夫过程
  • 时间和状态都是离散马尔可夫过程 称之为 马尔可夫链

马尔可夫链:

定义:
  马尔可夫链又称离散时间马尔可夫链(discrete-time Markov chain,DTMC),为状态空间中经过从一个状态到另一个状态的转换的随机过程。该过程要求具备“无记忆”的性质:下一状态的概率分布只能由当前状态决定,在时间序列中它前面的事件均与之无关,这种特定类型的“无记忆性”称作马尔可夫性质。
在这里插入图片描述
  在这个马尔可夫链中,四个圈表示四个状态,每条边表示一个可能的状态转换,边上的权值是转移概率。
  下一刻状态如果只由当前状态决定,就叫一阶马尔可夫链,如果由当前和前一刻,那就叫二阶,同理。所以有m阶马尔可夫链。

隐马尔可夫模型:

定义:
  隐马尔可夫模型(Hidden Markov Model,HMM)是用来描述一个含有隐含未知参数的马尔可夫过程,是马尔可夫链的一种,HMM是关于时序的概率模型,是基于联合概率建模的生成式模型,描述一个隐藏的含有未知参数的马尔可夫链随机生成不可观测的状态随机序列,然后基于此再生成可观测随机序列的过程。不可观测的状态随机序列被称为状态序列(State Sequence),可观测随机序列被称为观测序列(Observation Sequence)。隐马尔可夫模型要求状态序列是离散的,观测序列可以是离散的,也可以是非离散的。
  在正常的马尔可夫模型中,状态对于观测者来说是可见的,这样状态的转移概率便是全部参数,而在隐马尔可夫模型中,状态并不是直接可见的,但是受状态影响的某些变量则是可见的,每一个状态在可见变量上都有一个概率分布,因此输出的可见状态序列能够透露出状态序列的信息。
  在这里插入图片描述
  隐含马尔可夫链是马尔可夫链的一个扩展:任一时刻 t t t 的状态 S t S_t St是不可见的。所以观察者没法通过观察到一个状态序列 S 1 , S 2 , S 3 , … , S T S_1,S_2,S_3,…,S_T S1,S2,S3,,ST来推测转移概率等参数。但是隐含马尔可夫模型在每个时刻 t t t 会输出一个 O t O_t Ot,而且 O t O_t Ot S t S_t St相关且仅和 S t S_t St相关。这称为 独立输出假设。隐含马尔可夫模型的结构如上图,其中隐含的状态 S 1 , S 2 , S 3 , … S_1,S_2,S_3,… S1,S2,S3,是一个典型的马尔可夫链。鲍姆把这种模型称为“隐含”马尔可夫模型。
  
在这里插入图片描述
其联合概率分布可以表示为:
p ( y , x ) = ∏ t = 1 T p ( y t ∣ y t − 1 ) p ( x t ∣ y t ) p(y,x) = \prod \limits_{t=1}^Tp(y_t|y_{t-1})p(x_t|y_t) p(y,x)=t=1Tp(ytyt1)p(xtyt)

与马尔可夫随机场的区别:
  马尔科夫随机场是指在一堆数据点(比如图像矩阵网点)中,每个点的取值只与其邻域(记得叫clique)有关系,而于更远的点无关,这种概率模型和马尔科夫链很像,是对复杂现象的简化,其实质是某种图模型,两个点距离越近,关系越密切。
  隐马尔科夫模型是指模型的真实参数是个马尔科夫链,但是这个链是隐藏在表现型下面不可见的,链中元素一旦确定,会显示出表现型这么一种模型,模型通过表现型估计隐藏参数

条件随机场:

定义:
  条件随机场(Conditional Random Fields)为给定一组输入随机变量条件下另外一组输出随机变量的条件概率分布模型,是基于条件概率建模的判别式模型。
  一般来说,我们常用的条件随机场为下面的线性链条件随机场,其条件概率可以表示为:
p ( y ∣ x ; θ ) = 1 Z ( x ; θ ) e ( ∑ t = 1 T θ 1 T f 1 ( x , y t ) + ∑ t = 1 T − 1 θ 2 T f 2 ( x , y t , y t + 1 ) ) p(y|x; \theta)=\frac{1}{Z(x;\theta)}e^{(\sum\limits_{t=1}^{T}\theta_1^Tf_1(x,y_t)+\sum\limits_{t=1}^{T-1}\theta_2^Tf_2(x,y_t,y_{t+1}))} p(yx;θ)=Z(x;θ)1e(t=1Tθ1Tf1(x,yt)+t=1T1θ2Tf2(x,yt,yt+1))
其中 f 1 ( x , y t ) f_1(x,y_t) f1(x,yt) 为状态特征,一般和位置 t t t 相关, f 2 ( x , y t , y t + 1 ) f_2(x,y_t,y_{t+1}) f2(x,yt,yt+1) 为转移特征,一般可以简化为 f 2 ( y t , y t + 1 ) f_2(y_t,y_{t+1}) f2(yt,yt+1) 并使用状态转移矩阵来表示。
在这里插入图片描述

其中, X X X 为已知输入随机变量, Y Y Y 为输出随机变量
  总把 H M M HMM HMM C R F CRF CRF 进行比较,主要是因为 C R F CRF CRF H M M HMM HMM 都利用了图的知识,但是 C R F CRF CRF 利用的是马尔科夫随机场(无向图),而 H M M HMM HMM 的基础是贝叶斯网络(有向图)。而且 C R F CRF CRF 也有:概率计算问题、学习问题和预测问题。大致计算方法和 H M M HMM HMM 类似,只不过不需要 E M EM EM 算法进行学习问题。

条件随机场的训练

在计算 c r f crf crf l o s s loss loss 的时候,需要计算最终的 l o s s loss loss 才能对整个模型和 c r f crf crf 层的参数进行反向传播,优化参数,其中 c r f crf crf 层有三个参数需要定义

self.start_transition = torch.nn.Parameter(torch.empty(num_tags))
self.end_transition = torch.nn.Parameter(torch.empty(num_tags))
self.transitions = torch.nn.Parameter(torch.empty(num_tags, num_tags))   # num_tags: 是指标签数,即B、I、O、E、S、X的数量

首先如果计算损失,那就先算正确路径的分数,正确标签路径的分数包含正确路径的转移分数和正确路径发射分数,发射分数就是模型最后的logits输出
s c o r e ( X , y ) = ∑ i = 0 n + 1 T y i , y i + 1 + ∑ i = 1 n L o g i t s i , y i score(X, y) = \sum_{i=0}^{n+1}T_{y_i, y_{i+1}} + \sum_{i=1}^{n}Logits_{i,y_i} score(X,y)=i=0n+1Tyi,yi+1+i=1nLogitsi,yi
其中 n n n 为句子长度, X X X 为输入的句子, y y y 为真实的标签序列的index,如:[2, 1, 4, 3, 5], T y i , y i + 1 T_{y_i, y_{i+1}} Tyi,yi+1指的是句子的第 i i i 个词的真实标签 y i y_i yi和句子的第 i + 1 i+1 i+1 个词的真实标签 y i + 1 y_{i+1} yi+1 之间的转换分数, L o g i t s i , y i Logits_{i,y_i} Logitsi,yi 指的是句子的第 i i i 个词其真实的 y y y 标签的发射分数,由于转换矩阵不包含开始转换到第一个词和最后一个词到最后结束的转换分数,所以 i i i 的取值是 0 0 0 n + 1 n+1 n+1

上面只是计算了真实的标签序列的发射分数和转移分数,我们还需要计算所有可能组合路径的分数,就可以计算真实序列的条件概率了,也就是说,分子是真实路径的分数,而分母是所有路径的分数,这样的比值,我们想这个比值越大越好,这个就跟分类任务的时候,最后的预测结果一样,我们想让某个分类的值比其他的都大,这不就是多分类么?多条路径只有一个是正确的,所以概率为1,所以引入了 s o f t m a x softmax softmax,来计算这个最终的条件概率:
P ( y ∣ X ) = e s ( X , y ) ∑ y ∈ Y e s ( X , y ) P(y|X) = \frac{e^{s(X, y)}}{\sum_{y \in Y}e^{s(X, y)}} P(yX)=yYes(X,y)es(X,y)

这个比值越大,我们的预测越准确,也就是真实路径的的得分就越高,所以这个工时也就可以当作我们的 l o s s loss loss,但是 l o s s loss loss 是越小越好,但是这个值是越大越好
,所以在这个前面加个符号就行,由于这个结果是趋近于 1 1 1 的,我们的loss最好是趋近于 0 0 0 ,所以在前面加个 l o g log log,取对数似然函数,即:
l o s s = − l o g ( e s ( X , y ) ∑ y ∈ Y e s ( X , y ) ) = − ( l o g ( e s ( X , y ) ) − l o g ( ∑ y ∈ Y e s ( X , y ) ) ) loss = - log(\frac{e^{s(X, y)}}{\sum_{y \in Y}e^{s(X, y)}}) = - (log(e^{s(X, y)}) - log(\sum_{y \in Y}e^{s(X, y)})) loss=log(yYes(X,y)es(X,y))=(log(es(X,y))log(yYes(X,y)))
所以
l o s s = − ( e s ( X , y ) − l o g ( ∑ y ∈ Y e s ( X , y ) ) ) loss = - (e^{s(X, y)} - log(\sum_{y \in Y}e^{s(X, y)})) loss=(es(X,y)log(yYes(X,y)))
其中 Y Y Y 指的是所有路径的集合

另外,我们看下下面这个公式

− l o g ( e s ( X , y ) ∑ y ∈ Y e s ( X , y ) ) -log(\frac{e^{s(X, y)}}{\sum_{y \in Y}e^{s(X, y)}}) log(yYes(X,y)es(X,y))
这个是什么?负对数似然函数,ok,我们再继续看,是不是可以把这个公式写成:
− 1 ∗ l o g ( e s ( X , y ) ∑ y ∈ Y e s ( X , y ) ) -1*log(\frac{e^{s(X, y)}}{\sum_{y \in Y}e^{s(X, y)}}) 1log(yYes(X,y)es(X,y))
我们再看下交叉熵的公式:
H ( p , q ) = − ∑ i = 1 n p ( x i ) l o g q ( x i ) H(p,q)=-\sum_{i=1}^{n}p(x_i)logq(x_i) H(p,q)=i=1np(xi)logq(xi)
看出来了吗? 1 1 1 就是正确路径的概率 p p p ,在多分类的时候, l a b e l label label o n e _ h o t one\_hot one_hot的形式,衡量两个分布的时候,只需要计算那个 p p p 1 1 1的路径,后面的 q q q 就是 l o g i t s logits logits 每个路径的概率啊,这个不就是多分类的交叉熵损失 − p ∗ l o g ( q ) -p*log(q) plog(q)吗? 1 1 1 代表正确标签的 l a b e l label label,后面则是模型的输出参数,所以得出结论:负对数似然函数交叉熵损失在计算 l o s s loss loss的时候是等价的。
另外, 交叉熵 = 相对熵 − 信息熵 交叉熵=相对熵-信息熵 交叉熵=相对熵信息熵,在信息熵为 0 0 0 的时候,交叉熵等于相对熵, o n e _ h o t one\_hot one_hot分布的信息熵就为 0 0 0,所以在多分类的时候,交叉熵是相对熵的一个特例。
信息熵:描述单一概率分布本身的不确定性;
交叉熵:用于衡量模型预测分布与真实分布间的差距,并作为优化目标减少这种差距;
相对熵:量化两个概率分布之间的差异,常用于比较模型预测分布与真实分布的距离,或者是衡量模型复杂度、编码效率等方面。

延伸:生成模型与判别模型的区别

生成模型:对联合概率建模
判别模型:对条件概率建模
这时候有一个问题,既然是要预测结果,肯定是有一部分知道,另外一部分需要预测,这也就是说,我们求的是条件概率才对呀?没错,其实生成模型建模的是联合概率分布,但是最终求的结果还是个条件概率的结果。
假设有如下若干样本 ( x , y ) (x,y) x,y:
( x , y ) ∈ { ( 2 , − 1 ) , ( 2 , − 1 ) , ( 3 , − 1 ) , ( 3 , 1 ) , ( 3 , 1 ) } (x,y) \in \{(2,-1),(2,-1),(3,-1),(3,1),(3,1)\} (x,y){(2,1),(2,1),(3,1),(3,1),(3,1)}
求:当 x = 3 x=3 x=3 时, y = ? y=? y=
解:

  1. 生成模型的方式进行解题,此时应该对 p ( x , y ) p(x, y) p(x,y)进行建模,则:
p ( x , y ) p(x,y) p(x,y) y = − 1 y=-1 y=1 y = 1 y=1 y=1
x = 2 x=2 x=2 2 / 5 2/5 2/5 0 0 0
x = 3 x=3 x=3 1 / 5 1/5 1/5 2 / 5 2/5 2/5

所以:当 x = 3 x=3 x=3时, p ( y = − 1 ) p(y=-1) p(y=1) p ( y = 1 ) p(y=1) p(y=1)的概率分别为:

p ( y = − 1 ∣ x = 3 ) = p ( x = 3 , y = − 1 ) p ( x = 3 ) = 1 5 3 5 = 1 3 p(y=-1|x=3)= \frac{p(x=3,y=-1)}{p(x=3)}=\frac{\frac{1}{5}}{\frac{3}{5}}=\frac{1}{3} p(y=1∣x=3)=p(x=3)p(x=3,y=1)=5351=31

p ( y = 1 ∣ x = 3 ) = p ( x = 3 , y = 1 ) p ( x = 3 ) = 2 5 3 5 = 2 3 p(y=1|x=3) = \frac{p(x=3,y=1)}{p(x=3)}=\frac{\frac{2}{5}}{\frac{3}{5}}=\frac{2}{3} p(y=1∣x=3)=p(x=3)p(x=3,y=1)=5352=32

由此可以看出,虽然生成模型是对联合概率进行建模,但是最终还是要算出条件概率来得出结果的,所以说通过学习先验分布来推导后验分布而进行分类,这个条件概率是根据 ( x , y ) (x,y) x,y联合概率与 x x x 的边缘概率计算出来的,有了联合概率分布,边缘概率也可以算得出来了,所以,最终是可以算出条件概率这个结果的,如果有几分类,就会有几个后验概率分布,这几个后验概率分布都是条件概率分布了,所以就有几个模型。
2. 判别式模型的方式进行解题,此时应该对 p ( y ∣ x ) p(y|x) p(yx) 进行建模,则:

p ( y ∣ x ) p(y\mid x) p(yx) y = − 1 y=-1 y=1 y = 1 y=1 y=1
x = 2 x=2 x=2 1 1 1 0 0 0
x = 3 x=3 x=3 1 / 3 1/3 1/3 2 / 3 2/3 2/3

我们可以看出,判别是模型是直接对p(y|x)进行建模的,也就是,直接学习后验概率分布,对后验概率进行建模,所以这样的话,只需要一个模型就可以了,输入时一系列的已知参数,输出的结果就是我们要的条件概率

总结:

  • 马尔可夫随机场
    满足马尔可夫性质的随机场,马尔可夫性质就是当前状态已知的情况下,过去和未来是相互独立的(马尔可夫链)
  • 隐马尔可夫模型
    包含隐含参数的马尔可夫链,也就是多了个隐层,可观测的叫做可观测序列,不可观测的叫做状态序列,而观测序列的值只依赖于状态序列,这个是独立输出假设
  • 条件随机场
    条件随机场和隐马尔可夫模型的区别是,条件随机场是判别式模型,而隐马尔可夫模型还是要构建联合概率分布,所以是生成式模型,而且条件随机场的条件是所有的观测序列联合在一起,这个比马尔可夫模型看得更远,隐马尔可夫模型是有向图模型,条件随机场是无向图模型。
    另外,如何理解条件随机场里的特征函数,我们可以将特征函数与神经网络联合起来,神经网络的输入是一个一个的特征值,可以是0或者1,也可以是一个数值,而条件随机场里要构建的样本特征就是0或者1,所以对于条件随机场的某一个位置而言,根据不同的特征函数,就会生成一系列的0和1,然后对这些0和1进行加权求和,最后就形成了一个分数。
  • LSTM+条件随机场
    就是把最后的输出的softmax层换成了条件随机场的输出层,相当于LSTM作为了条件随机场的条件层,优点是LSTM可以看的更长更远,原因是LSTM无法直接考虑label直接的关系,而条件随机场通过特征函数(状态特征函数,转移特征函数)可以直接限制label直接的关系。
    实现的方式就是,LSTM输出的结果为作为发射概率,训练的过程中再训练一个N*N(N为label的数量)转移概率矩阵,这样有了转移概率矩阵和发射概率矩阵,通过维特比算法求出所有路径的分数和,拿当前路径的分数比上所有路径的分数和,就可以该路径的条件概率 p ( y ∣ x ) p(y|x) p(yx),其中y为特定的标注序列,x为输入,所以损失函数
    l o s s = − l o g ( p ( y ∣ x ) ) loss = -log(p(y|x)) loss=log(p(yx))
    有了损失函数,就可以反向传播优化模型了。
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
全概率分布可以回答相关领域的任何问题,但随着变量数目的增 加,全概率分布的联合取值空间却可能变得很大。另外,对所有的原 子事实给出概率,对用户来说也非常困难。 若使用Bayes 规则,就可以利用变量之间的条件独立关系简化计 算过程,大大降低所需要声明的条件概率的数目。我们可以用一个叫 作Bayesian 网的数据结构来表示变量之间的依赖关系,并为全概率分 布给出一个简明的表示。 定义(Bayesian 网):Bayesian 网T 是一个三元组(N,A,P),其 中 1. N 是节点集合 2. A 是有向弧集合,与N 组成有限非循环图G =(N,A) 3. P {p(V | ) :V N} v    ,其中 v  代表节点V 的父亲节点集合 Bayesian 网是一个有向非循环图: (1) 网中节点与知识领域的随机变量一一对应(下文中不区分节 点与变量); (2)网中的有向弧表示变量间的因果关系,从节点X 到节点Y 有 向弧的直观含义是X 对Y 有直接的因果影响;影响的强度或者说不确 定性由条件概率表示; (3)每个节点有一个条件概率表,定量描述其所有父亲节点对于 该节点的作用效果。 -2- (4)由领域专家给定网络结构和条件概率表。 )由领域专家给定网络结构和条件概率表。 )由领域专家给定网络结构和条件概率表。 )由领域专家给定网络结构和条件概率表。 )由领域专家给定网络结构和条件概率表。 )由领域专家给定网络结构和条件概率表。 )由领域专家给定网络结构和条件概率表。 )由领域专家给定网络结构和条件概率表。 )由领域专家给定网络结构和条件概率表。 对领域专家来说,决定在特中存哪些条件独立联系通常是 对领域专家来说,决定在特中存哪些条件独立联系通常是 对领域专家来说,决定在特中存哪些条件独立联系通常是 对领域专家来说,决定在特中存哪些条件独立联系通常是 对领域专家来说,决定在特中存哪些条件独立联系通常是 对领域专家来说,决定在特中存哪些条件独立联系通常是 对领域专家来说,决定在特中存哪些条件独立联系通常是 对领域专家来说,决定在特中存哪些条件独立联系通常是 对领域专家来说,决定在特中存哪些条件独立联系通常是 对领域专家来说,决定在特中存哪些条件独立联系通常是 对领域专家来说,决定在特中存哪些条件独立联系通常是 对领域专家来说,决定在特中存哪些条件独立联系通常是 对领域专家来说,决定在特中存哪些条件独立联系通常是 对领域专家来说,决定在特中存哪些条件独立联系通常是 较容易的 较容易的 较容易的 (给定网络结构相对容易 给定网络结构相对容易 给定网络结构相对容易 给定网络结构相对容易 给定网络结构相对容易 )─ 事实上,要远比际声明出这 事实上,要远比际声明出这 事实上,要远比际声明出这 事实上,要远比际声明出这 事实上,要远比际声明出这 事实上,要远比际声明出这 事实上,要远比际声明出这 事实上,要远比际声明出这 事实上,要远比际声明出这 些概率本身容易得多 些概率本身容易得多 些概率本身容易得多 些概率本身容易得多 些概率本身容易得多 (给定准确的条件概率相对 给定准确的条件概率相对 给定准确的条件概率相对 给定准确的条件概率相对 给定准确的条件概率相对 给定准确的条件概率相对 困难) 。一旦 。一旦 。一旦 BayesianBayesianBayesianBayesianBayesian Bayesian网的拓扑结构给定, 则只需对那些直接相互依赖节点出条件概率网的拓扑结构给定, 则只需对那些直接相互依赖节点出条件概率网的拓扑结构给定, 则只需对那些直接相互依赖节点出条件概率网的拓扑结构给定, 则只需对那些直接相互依赖节点出条件概率网的拓扑结构给定, 则只需对那些直接相互依赖节点出条件概率网的拓扑结构给定, 则只需对那些直接相互依赖节点出条件概率网的拓扑结构给定, 则只需对那些直接相互依赖节点出条件概率网的拓扑结构给定, 则只需对那些直接相互依赖节点出条件概率网的拓扑结构给定, 则只需对那些直接相互依赖节点出条件概率网的拓扑结构给定, 则只需对那些直接相互依赖节点出条件概率网的拓扑结构给定, 则只需对那些直接相互依赖节点出条件概率网
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值