统计学习方法的总结_东明山庄的博客-程序员秘密

技术标签: 机器学习理论与实践  统计学习方法  

第二章感知机

2.3.1 感知机学习算法的原始形式

  • 感知机的学习算法是错误的分类样本锁驱动的,采用随机梯度下降法。
  • 当没有错误分类时,学习停止。因此可知对于线性可分数据集,感知机的收敛解有无数个。

第三章 k近邻法

3.2.3 k值的选择

  • k值减小意味着模型变得复杂,容易过拟合
  • k值增大意味着模型变得简单,例如 k = N k=N k=N时最简单。

3.2.4 分类决策规则

  • 所用的多数表决规则,等价于0-1损失函数时的经验风险最小化。

第四章 朴素贝叶斯法

4.1 朴素贝叶斯的学习与分类

条件概率分布 P ( X ∣ Y ) P(X|Y) P(XY)的参数个数是 K ∏ j = 1 n S j K\prod_{j=1}^nS_j Kj=1nSj,是指数级的。先验概率 P ( Y ) P(Y) P(Y)的参数个数是 K K K

4.1.2 后验概率最大化的含义

容易验证朴素贝叶斯模型里,根据0-1损失函数时的期望风险最小化准则,可以推导出后验概率最大化准则。

  • 损失函数和期望风险函数参考公式1.5-1.9.

4.2 朴素贝叶斯的参数估计

可知朴素贝叶斯的先验概率 p ( y ) p(y) p(y)和似然函数 p ( x ∣ y ) p(x|y) p(xy)(也就是条件概率)是通过极大似然估计来计算得到的,然后通过后验概率最大来获得预测值p(y|x)。

以公式4.8所示的先验概率 P ( Y = c k ) P(Y=c_k) P(Y=ck)的计算来说,用 x x x来指代该变量,然后用符号 p p p来指代观测到的 y = c k y=c_k y=ck的频率即 ∑ i = 1 N I ( y i = c k ) N \frac{\sum_{i=1}^NI(y_i=c_k)}{N} Ni=1NI(yi=ck),则 x x x
的似然函数为 x p N ⋅ ( 1 − x ) ( 1 − p ) N x^{pN}\cdot (1-x)^{(1-p)N} xpN(1x)(1p)N,可以很容易计算该似然函数最大时 x x x取值与 p p p相等。同理可用同样的极大似然估计方法来计算似然函数 p ( x ∣ y ) p(x|y) p(xy)

因此,第12章(p211)对朴素贝叶斯锁总结的学习策略有两个,即极大似然估计和极大后验概率估计。

4.2.3 贝叶斯估计

样本不足时,上述极大似然估计得到的先验概率和条件概率时可能为0,显然是不合适的。

贝叶斯估计的处理办法:如果值有s种,则对每个概率的分子添加 λ \lambda λ值,对分母添加 s λ s\lambda sλ值。当 λ \lambda λ为0时就蜕化成了极大后验概率估计,当 λ \lambda λ为1时又叫做拉普拉斯平滑。

上述处理公式的推到,需要了解共轭先验

第五章 决策树

5.1 决策树模型与学习

  • 决策树路径的特征:互斥并且完备。
  • 每个叶节点上的条件概率偏向于某一类,分类时会将该节点的实例强制分到该类里。与朴素贝叶斯、最大熵模型不同的是,决策树并不能给出每个样本属于某个类的条件概率。
  • 决策树学习算法包含三个过程:特征选择,决策树生成,剪枝。
    • 决策树越深,模型越复杂。决策树生成只考虑局部最优,而剪枝考虑全局最优

5.2 基于信息增益的特征选择

  • 信息增益:特征A对训练数据集D的信息增益 g ( D , A ) g(D,A) g(D,A),定义为集合D的类别信息的经验熵 H ( D ) H(D) H(D)与特征 A A A给定条件下D的经验条件熵 H ( D ∣ A ) H(D|A) H(DA)之差,即 g ( D , A ) = H ( D ) − H ( D ∣ A ) g(D,A)=H(D)-H(D|A) g(D,A)=H(D)H(DA)
    • 之所以叫做经验熵和经验条件熵,是因为二者都是直接从数据集中根据极大似然估计所得到的(p61)。
    • 信息增益 g ( D , A ) g(D,A) g(D,A)实际上是训练数据集中类与特征的互信息。
    • 信息增益可以直观地看成给定特征 A A A之后,类别信息的不确定性的减少量,即特征 A A A的分类能力(公式5.7,5.8)。
  • 信息增益比
    • 信息增益有个缺陷,如果某个特征的取值较多,其信息增益偏向于比较高。因此用该特征的经验熵 H ( A ) H(A) H(A)对其信息增益 g ( D , A ) g(D,A) g(D,A)进行归一化得到信息增益比 g r ( D , A ) g_r(D,A) gr(D,A)用于特征选择 (公式5.10)。

5.3 决策树的生成

  • 有两种生成算法分别是ID3和C4.5,区别在于前者采用信息增益,后者采用信息增益比进行特征选择。
  • 几个要点:
    • 每条路径上特征最多只用一次。实际操作中,选择某个特征之后,将该特征从其子路径的特征集里剔除。
    • 有个预设的信息增益阈值,如果所选特征的信息增益小于该阈值,则该路径停止,当前节点作为叶子节点。
    • 路径停止的条件还有一个,即特征集为空的时候。

5.4 决策树的剪枝

  • 减小模型复杂度,而模型复杂度用叶节点的个数来表示。
  • 损失函数(公式5.11)包含两部分,一个是叶节点的类别信息的经验熵的加权求和(权重是该叶节点的样本数),另一个是模型复杂度。前者为0,则说明没有错误分类,其值越大,表示分类误差越大。后者越大,模型复杂度越大。因此剪枝过程对损失函数求极小。
  • 剪枝时可以只计算局部的损失函数变化,因此:1.不用考虑叶节点的顺序;2.可以用动态规划来层层来剪枝。

5.5 CART算法

5.5.1 CART生成

  • 回归树
    • 一个回归树对应着特征空间的一个划分,以及在划分的单元上的一个常数的输出值。
    • 适用于分段常数数据集
    • 损失函数是平方误差和:1)给定某个划分单元,该单元的输出值将设定为均值;2)而最优划分点可以通过依次计算获得。有最小二乘法的影子,因此回归树又叫做最小二乘回归树。
  • 分类树
    • 只是将决策树中的熵替换为基尼系数。
    • 基尼系数、熵之半的曲线接近,可以近似分类误差率(图5.7)

第六章 逻辑斯蒂回归于最大熵模型

最大熵模型的模型表达式,有介绍其推导过程。而逻辑斯蒂回归模型没有推导过程,而直接给出模型表达式。然后根据模型表达式,去优化参数,优化方法可以是梯度下降法和拟牛顿法,对于前者还有个专用的"改进的迭代尺度法IIS"。

逻辑斯蒂回归模型

  • logistic函数也就是经常说的sigmoid函数:
    1 1 + e − x \frac{1}{1+e^{-x}} 1+ex1
    logistic函数在统计学和机器学习领域应用最为广泛或者最为人熟知的肯定是逻辑回归模型了。逻辑回归(Logistic Regression,简称LR)作为一种对数线性模型(log-linear model)被广泛地应用于分类和回归场景中。此外,logistic函数也是神经网络最为常用的激活函数,即sigmoid函数。

6.2 最大熵模型

6.2.1 最大熵原理

最大熵原理认为要选择的概率模型首先必须满足已有的约束条件。而其余不确定的部分应该是等可能的。而等可能不容易操作,但由此而来的熵是一个可优化的数值指标。因此最大熵原理通过熵的最大化来表示等可能性。

6.2.3 最大熵模型的学习

对偶问题,即公式6.19的内层是关于条件概率 p ( y ∣ x ) p(y|x) p(yx)的函数,外层才是关于 w w w的函数。因此p84底部,求解内层时要对 p ( y ∣ x ) p(y|x) p(yx)求导。

求导得0,进而获得了最大熵模型(公式6.22)。

然后带入最大熵模型,求解外层(其表达式是公式6.27)。

6.2.4 极大似然估计

对偶问题(公式6.19)的外层(公式6.27)是关于参数 w w w求解极大值的函数,而对数似然函数最大化(公式6.26)也是关于参数 w w w的求解极大值的函数。可以验证二者的公式,在最大熵模型时,是等价的。

第七章 支持向量机

7.1 线性可分支持向量机与硬间隔最大化

  • 线性可分支持向量机的最优化问题
    m i n w , b 1 2 ∣ ∣ w ∣ ∣ 2 , s . t . y i ( w ⋅ x i + b ) − 1 > = 0 min_{w,b}\frac{1}{2}||w||^2, s.t. y_i(w\cdot x_i+b)-1>=0 minw,b21w2,s.t.yi(wxi+b)1>=0

其直观地推导方法如下:参考图7.3,假设 ( w , b ) (w,b) (w,b)就是要找的超平面的参数,那么对于两侧的支持向量有 y i ( w ⋅ x i + b ) − 1 = 0 y_i(w\cdot x_i+b)-1=0 yi(wxi+b)1=0,易知外侧的样本点 ( x i , y i ) (x_i,y_i) (xi,yi)必有 y i ( w ⋅ x i + b ) − 1 > 0 y_i(w\cdot x_i+b)-1>0 yi(wxi+b)1>0,因此参数满足 y i ( w ⋅ x i + b ) − 1 > = 0 y_i(w\cdot x_i+b)-1>=0 yi(wxi+b)1>=0。根据平行面的距离公式,易知两个超平面的距离是 2 ∣ ∣ w ∣ ∣ \frac{2}{||w||} w2,因此间隔最大化意味着 ∣ ∣ w ∣ ∣ ||w|| w最小化。

因此支持向量机寻找超平面实际上就是寻找两个让支持向量集合里正例和反例分别是为 + 1 / − 1 +1/-1 +1/1的两个平行面,并且要使得这两个平行面的间隔尽可能地大。

  • 凸二次规划问题
    m i n x f ( x ) , s . t . g i ( x ) &lt; = 0 , h j ( x ) = 0 min_x f(x), s.t. g_i(x)&lt;=0,h_j(x)=0 minxf(x),s.t.gi(x)<=0,hj(x)=0
    其中 f ( x ) f(x) f(x) g ( x ) g(x) g(x)是连续可微的二次凸函数, h ( x ) h(x) h(x)是仿射函数。

易知线性可分支持向量机的最优化问题,本质上是凸二次优化问题。

7.1.4 学习的对偶算法

这一节很好地诠释了拉格朗日对偶性(附录 C)便于求解的作用:

  • 原始问题(公式7.13和7.14)引入拉格朗日算子(本质上是新的变量)去掉了约束条件,同时转化成了极大极小问题。该极大极小问题的内层的梯度为0的性质可以用来获得新的约束条件(公式7.20, 只含有拉格朗日算子,去掉了最初的参数 w w w b b b),将极大极小问题转换成一个有约束的极大问题(公式7.21),后者又叫做原始问题的对偶问题:
    m i n α 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 N α i min_\alpha \frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i\alpha_jy_iy_j(x_i\cdot x_j)-\sum_{i=1}^{N}\alpha_i minα21i=1Nj=1Nαiαjyiyj(xixj)i=1Nαi
    s . t . ∑ i = 1 N α i y i = 0 , α i ≥ 0 , i = 1 , 2 , ⋯ &ThinSpace; , N s.t. \sum_{i=1}^{N}\alpha_iy_i=0, \alpha_i\ge 0, i=1,2, \cdots, N s.t.i=1Nαiyi=0,αi0,i=1,2,,N

  • 拉格朗日对偶算法求解SVM的意义

    • 降低求解复杂度:原问题的优化是一个二次规划问题,求解较麻烦,用拉格朗日乘子法转换后可以用smo等算法更简单地优化。
    • 方便引入核函数:由于转换后的假设函数主要由内积运算构成,可以使用核函数简化特征映射到高维空间后的内积运算,高效地求解非线性问题。

7.2 线性支持向量机与软间隔最大化

注:p109 w w w的解唯一,但 b b b的解不唯一存在一个区间。

近似线性可分时,给每个样本 ( x i , y i ) (x_i,y_i) (xi,yi)引进一个松弛变量 ξ i ≥ 0 \xi_i\ge 0 ξi0,是的实际的函数间隔可以小于1甚至为负;并将松弛变量作为代价引入到原目标函数以对松弛变量进行限制,变成如下的原始问题:
m i n w , b , ξ 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 N ξ i min_{w,b,\xi}\frac{1}{2}||w||^2+C\sum_{i=1}^{N}\xi_i minw,b,ξ21w2+Ci=1Nξi
s . t . y i ( w ⋅ x i + b ) ≥ 1 − ξ i , ξ i ≥ 0 s.t. y_i(w\cdot x_i+b)\ge 1-\xi_i, \xi_i\ge 0 s.t.yi(wxi+b)1ξi,ξi0

其对偶问题是:
m i n α 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 N α i min_\alpha \frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i\alpha_jy_iy_j(x_i\cdot x_j)-\sum_{i=1}^{N}\alpha_i minα21i=1Nj=1Nαiαjyiyj(xixj)i=1Nαi
s . t . ∑ i = 1 N α i y i = 0 , 0 ≤ α i ≤ C , i = 1 , 2 , ⋯ &ThinSpace; , N s.t. \sum_{i=1}^{N}\alpha_iy_i=0, 0\le\alpha_i\le C, i=1,2, \cdots, N s.t.i=1Nαiyi=0,0αiC,i=1,2,,N

7.2.3 支持向量

结合图7.5分析变量与空间位置关系:

  • 超平面 w ⋅ x + b = 0 w\cdot x +b =0 wx+b=0 w = ∑ i = 1 N α i y i x i w=\sum_{i=1}^{N}\alpha_iy_ix_i w=i=1Nαiyixi带入进去,变成了 ∑ i = 1 N α i y i ( x ⋅ x i ) + b = 0 \sum_{i=1}^{N}\alpha_iy_i(x\cdot x_i)+b=0 i=1Nαiyi(xxi)+b=0,因此只有 α i &gt; 0 \alpha_i&gt;0 αi>0的样本点为支持向量。
  • 判别函数是 f ( x ) = s i g n ( ∑ i = 1 N α i y i ( x ⋅ x i ) + b ) f(x)=sign(\sum_{i=1}^{N}\alpha_iy_i(x\cdot x_i)+b) f(x)=sign(i=1Nαiyi(xxi)+b)
  • 由原始问题关于 ξ \xi ξ的含义,可知 ξ = 0 \xi=0 ξ=0的样本点在间隔边界上或外面, 0 &lt; ξ &lt; 1 0&lt;\xi&lt;1 0<ξ<1的说明 y i ( w ⋅ x i + b ) = 1 − ξ y_i(w\cdot x_i+b)=1-\xi yi(wxi+b)=1ξ所以在间隔边界和超平面之间, ξ i &gt; 1 \xi_i&gt;1 ξi>1说明 y i ( w ⋅ x i + b ) = 1 − ξ &lt; 0 y_i(w\cdot x_i+b)=1-\xi&lt;0 yi(wxi+b)=1ξ<0位于超平面误分的一侧。

合页损失函数

上面7.2节的原始问题,等价于最优化问题:
min ⁡ w , b , ξ ∑ i = 1 N [ 1 − y i ( w ⋅ x i + b ) ] + + λ ∣ ∣ w ∣ ∣ 2 \min_{w,b,\xi}\sum_{i=1}^{N}[1-y_i(w\cdot x_i+b)]_{+}+\lambda ||w||^2 w,b,ξmini=1N[1yi(wxi+b)]++λw2

其中前项是合页损失函数。

根据图7.6将合页损失函数与0-1损失和感知机的损失函数作对比,说明合页损失函数不仅要分类正确而且确信度足够高时损失才是0,即对学习有更高要求。

7.3 非线性支持向量机与核函数

  • 在学习中只定义核函数 K ( x , y ) K(x,y) K(x,y),而不显示地定义从输入空间到特征空间的映射函数 ϕ ( x ) \phi(x) ϕ(x),二者关系: K ( x , y ) = ( ϕ ( x ) ⋅ ϕ ( y ) ) K(x,y)=(\phi(x)\cdot\phi(y)) K(x,y)=(ϕ(x)ϕ(y))
  • 对偶问题的目标函数的内积 ( x i ⋅ x j ) (x_i\cdot x_j) (xixj)可以用核函数 K ( x i , x j ) K(x_i,x_j) K(xi,xj)来代替。

7.4 序列最小最优化算法SMO

  • SMO是一种启发式算法,其基本思路:
    • 如果所有变量 α \alpha α都满足KKT条件,由于KKT条件是最优解的充分必要条件,则说明已经找到最优解。
    • 不然以一定规则选择其中两个变量,固定其它变量,将问题转化成一个二元二次规划的子问题,对该子问题的优化会使得原目标函数值更小,而且该问题有解析解。
    • 该两个变量的选取规则:一个是违反KKT条件(公式7.111-7.113)最严重的哪一个,另一个由约束条件自动确定。

第八章 提升方法

8.1.1 提升方法的基本思路

AdaBoost如何实施提升方法的两个步骤:

  • 每一轮如何改变训练数据的权值或概率分布
    提高哪些被前一轮弱分类器错误分类样本的权值,而降低那些被正确分类样本的权值。这样一来,那些没有得到正确分类的数据,由于其权值的加大而受到后一轮的弱分类器的更大关注。
  • 如何将弱分类器组合成一个强分类器
    加权线性组合的方式。具体的,分类误差率小的弱分类器的权值较大,而分类误差率大的弱分类器的权值较小。

8.1.2 AdaBoost算法

本节讲述了算法及其说明:

  • 最终分类器是基本分类器 G m ( x ) G_m(x) Gm(x)的加权求和,其中第m个基本分类器 G m ( x ) G_m(x) Gm(x)的系数是 α m = 1 − e m e m \alpha_m = \frac{1-e_m}{e_m} αm=em1em,其中 e m e_m em是第 m m m次迭代时 G m ( x ) G_m(x) Gm(x)分类错误的样本的权值之和。
  • 权值更新是对上次迭代的权值加一个系数然后归一化,分类正确的样本的权重所加的系数是 e − α m e^{-\alpha_m} eαm被缩小,分类错误的样本的权重所加系数是 e α m e^{\alpha_m} eαm被放大。

8.2 AdaBoost算法的分类误差分析

  • AdaBoost算法的最终分类器的训练误差是有上界的,该上界是各个分类器的权值分布的规范化因子(公式8.5)之积。
  • AdaBoost的训练误差是以指数速率下降的。

8.3 AdaBoost算法的解释

  • 加法模型

f ( x ) = ∑ m = 1 M β m b ( x ; γ m ) f(x)=\sum_{m=1}^{M}\beta_mb(x;\gamma_m) f(x)=m=1Mβmb(x;γm),其中 b e t a m b ( x ; γ m ) beta_mb(x;\gamma_m) betamb(x;γm)为基函数, γ m \gamma_m γm为基函数的参数, β m \beta_m βm为基函数的系数。

  • 损失函数为指数函数
    L ( y , f ( x ) ) = e x p ( − y f ( x ) ) L(y,f(x))=exp(-yf(x)) L(y,f(x))=exp(yf(x))
  • 学习算法为前向分布算法

因为学习的是加法模型(公式8.13),如果能够从前向后,每一步只学习一个基函数及其系数,逐步逼近优化目标函数式,那么可以简化优化的复杂度。

8.4 提升树

  • 本节的提升树是以回归树为基本分类器,与CART的回归树本质上没区别。。
  • AdaBoost的损失函数是指数函数,而提升树考虑了其它类型的损失函数。不同的损失函数,在每次找弱分类器所用的数据(包括权重)的产生方法不同
    • 当损失函数是平方损失时,弱分类器的数据是上一轮所得到的模型与所用数据的差即残差。
    • 对于更一般的损失函数,弱分类器的数据是损失函数的负梯度。损失函数时平方损失时的负梯度,就是残差。

EM算法及其推广

  • EM算法主要应用于含有隐变量的概率模型的学习,如高斯混合模型和隐马尔可夫模型。

    • 与隐变量对应的是观测变量,与变量对应的是参数。观测变量的数据又叫不完全数据,观测变量的数据与隐变量连在一起称为完全数据。要知道参数、隐变量和观测变量的区别。
  • 理论分析里E步和M步的工作: EM算法的目标函数是观测数据 Y Y Y关于参数 θ \theta θ的对数自然函数,即 L ( θ ) = log ⁡ P ( Y ∣ θ ) = log ⁡ ( ∑ Z P ( Y ∣ Z , θ ) P ( Z ∣ θ ) ) L(\theta)=\log P(Y|\theta)=\log \left(\sum_Z P(Y|Z,\theta)P(Z|\theta)\right) L(θ)=logP(Yθ)=log(ZP(YZ,θ)P(Zθ))

    • E步:

    计算完全数据的对数似然函数 log ⁡ P ( Y , Z ∣ θ ) \log P(Y,Z|\theta) logP(Y,Zθ)关于在给定观测数据 Y Y Y和当前参数 θ ( i ) \theta^{(i)} θ(i)下对隐变量 Z Z Z的条件概率分布 P ( Z ∣ Y , θ ( i ) ) P(Z|Y,\theta^{(i)}) P(ZY,θ(i))的期望,即EM算法里的Q函数:
    Q ( θ , θ ( i ) ) = ∑ Z log ⁡ P ( Y , Z ∣ θ ) P ( Z ∣ Y , θ ( i ) ) Q(\theta,\theta^{(i)})=\sum_{Z}\log P(Y,Z|\theta)P(Z|Y,\theta^{(i)}) Q(θ,θ(i))=ZlogP(Y,Zθ)P(ZY,θ(i))

    • M步:

    θ \theta θ使得最大化Q函数

  • 编程实践里E步和M步的工作

    • E步:在当前模型参数之下结合观测变量集,计算观测变量每个取值分别来自于每个隐变量取值的概率

    GMM模型里是是[0,1]区间的变量(p164 γ j k ^ \hat{\gamma_{jk}} γjk^);而K均值里是0-1变量;而例9.1里隐变量是观测变量来自于硬币B或C的概率。

    • M步:计算模型参数

    GMM模型里计算模型参数见公式9.30-9.32,其模型参数分两部分,即 K K K个高斯模型的参数 ( μ k , σ k 2 ) (\mu_k,\sigma_k^2) (μk,σk2)及其权重 α k \alpha_k αk;而K均值里,参数是各个聚类中心,注意其没有权重的概念;而例9.1里参数是( π , p , q \pi,p,q π,p,q)

第10章 隐马尔科夫链

10.1 隐马尔可夫模型的基本概念

10.1.1 隐马模型的定义

  • 状态序列和观测序列等长,元素一一对应
  • 隐马模型 λ \lambda λ的三元组表示法 λ = ( A , B , π ) \lambda=(A,B,\pi) λ=(A,B,π)

其中初始状态概率向量 π \pi π和状态转移矩阵 A A A确定了隐藏的马尔科夫链(即不可观测到的状态序列 I I I),而观测概率矩阵 B B B确定了如何从状态生成观测,与状态序列 I I I综合确定了如何产生观测序列 O O O

用于标注问题时,状态对应着要求给出的标记,观测序列对应要被标注的数据。

  • 隐马模型的两个基本假设
    • 齐次性假设
    • 观测独立性假设
      t

10.1.3 隐马模型的三个基本问题

可以用词性标注问题来理解这三类问题。

  • 概率计算问题

给定 λ \lambda λ O O O,计算 P ( O ∣ λ ) P(O|\lambda) P(Oλ);词性标注场景里,给定模型参数,计算词序列概率。

  • 学习问题

    • I I I,监督学习:已知 O O O I I I,推断 λ \lambda λ,使得 P ( O ∣ λ ) P(O|\lambda) P(Oλ)最大

    • I I I,属于无监督学习:已知 O O O,推断 λ \lambda λ,使得 P ( O ∣ λ ) P(O|\lambda) P(Oλ)最大;词性标注场景里,给定词序列,去学习模型参数。

  • 预测问题

已知 λ \lambda λ O O O,给出 I = a r g m a x P ( I ∣ O ) I = argmax P(I|O) I=argmaxP(IO);词性标注场景里,给定模型和分好的词,来标注词性。

10.2 概率计算算法

10.2.1 直接计算法

P ( O ∣ λ ) = ∑ I P ( O ∣ I , λ ) P ( I ∣ λ ) = ∑ i π i 1 b i 1 ( o 1 ) a i 1 i 2 b i 2 ( o 2 ) ⋯ a i T − 1 i T b i T ( o T ) P(O|\lambda)=\sum_{I}P(O|I,\lambda)P(I|\lambda)=\sum_{i}\pi_{i_1}b_{i_1}(o_1)a_{i_1i_2}b_{i_2}(o_2)\cdots a_{i_{T-1}i_T}b_{i_T}(o_T) P(Oλ)=IP(OI,λ)P(Iλ)=iπi1bi1(o1)ai1i2bi2(o2)aiT1iTbiT(oT)
计算量很大,是O(TN^T)阶的。

10.2.2-10.2.3 前向算法和后向算法

  • 前向算法和后向算法都属于动态规划
  • 两个概念是理解算法的钥匙
    • 前向概率:给定隐马模型 λ \lambda λ,定义到时刻 t t t部分观测序列为 o 1 , o 2 , ⋯ &ThinSpace; , o t o_1,o_2,\cdots,o_t o1,o2,,ot且状态为 q i q_i qi的概率为前向概率,记作 α t ( i ) = P ( o 1 , o 2 , ⋯ &ThinSpace; , o t , i t = q i ∣ λ ) \alpha_t(i)=P(o_1,o_2,\cdots,o_t,i_t=q_i|\lambda) αt(i)=P(o1,o2,,ot,it=qiλ)
      递推公式有, α 1 ( i ) = π i b i ( o 1 ) \alpha_1(i)=\pi_ib_i(o_1) α1(i)=πibi(o1),而对于 t = 1 , 2 , ⋯ &ThinSpace; , T − 1 t=1,2,\cdots,T-1 t=1,2,,T1
      α t + 1 ( i ) = ( ∑ j = 1 N α t ( j ) a j i ) b i ( o t + 1 ) \alpha_{t+1}(i)=\left(\sum_{j=1}^{N}\alpha_t(j)a_{ji}\right)b_i(o_{t+1}) αt+1(i)=(j=1Nαt(j)aji)bi(ot+1)
      终止时有
      P ( O ∣ λ ) = ∑ i = 1 N α T ( i ) P(O|\lambda)=\sum_{i=1}^{N}\alpha_T(i) P(Oλ)=i=1NαT(i)
    • 后向概率:给定隐马模型 λ \lambda λ,定义到时刻 t t t状态为 q i q_i qi的条件下,从 t + 1 t+1 t+1 T T T的部分观测序列为 o t + 1 , o t + 2 , ⋯ &ThinSpace; , o T o_{t+1},o_{t+2},\cdots,o_T ot+1,ot+2,,oT的概率为后向概率,记作 β t ( i ) = P ( o t + 1 , o t + 2 , ⋯ &ThinSpace; , o T ∣ i t = q i , λ ) \beta_t(i)=P(o_{t+1},o_{t+2},\cdots,o_T|i_t=q_i,\lambda) βt(i)=P(ot+1,ot+2,,oTit=qi,λ)
      递推公式有, β T ( i ) = 1 \beta_T(i)=1 βT(i)=1,而对于 t = T − 1 , T − 2 , ⋯ &ThinSpace; , 1 t=T-1,T-2,\cdots,1 t=T1,T2,,1
      β t ( i ) = ∑ j = 1 N a i j b j ( o t + 1 ) β t + 1 ( j ) \beta_t(i)=\sum_{j=1}^{N}a_{ij}b_j(o_{t+1})\beta_{t+1}(j) βt(i)=j=1Naijbj(ot+1)βt+1(j)
      终止时有 P ( O ∣ λ ) = ∑ i = 1 N π i b i ( o 1 ) β 1 ( i ) P(O|\lambda)=\sum_{i=1}^{N}\pi_ib_i(o_1)\beta_1(i) P(Oλ)=i=1Nπibi(o1)β1(i)

10.3 学习算法

10.3.1 监督学习方法

用极大似然估计法,可以通过直接统计得到 λ \lambda λ各参数。

10.3.2 Baum-Welch算法

属于无监督学习,期望最大化方法:把观测序列看做观测数据,将状态序列看做隐数据,那么隐马模型是一个含有隐变量的概率模型 P ( O ∣ λ ) = ∑ I P ( O ∣ I , λ ) P ( I ∣ λ ) P(O|\lambda)=\sum_IP(O|I,\lambda)P(I|\lambda) P(Oλ)=IP(OI,λ)P(Iλ)

  • EM算法的E步的Q函数是 Q ( λ , λ ^ ) = ∑ I log ⁡ P ( O , I ∣ λ ) P ( O , I ∣ λ ^ ) Q(\lambda,\hat{\lambda})=\sum_I\log P(O,I|\lambda)P(O,I|\hat{\lambda}) Q(λ,λ^)=IlogP(O,Iλ)P(O,Iλ^),其中之所以可以采用 P ( O , I ∣ λ ^ ) P(O,I|\hat{\lambda}) P(O,Iλ^)而非EM常用的 P ( I ∣ O , λ ^ ) P(I|O,\hat{\lambda}) P(IO,λ^)是因为二者有常数比例的关系: P ( λ ^ ) = P ( O , I ∣ λ ^ ) P ( I ∣ O , λ ^ ) P(\hat{\lambda})=\frac{P(O,I|\hat{\lambda})}{P(I|O,\hat{\lambda})} P(λ^)=P(IO,λ^)P(O,Iλ^)
  • Baum-Welch算法的E步只列出了Q函数,并没有显式地计算期望;然后直接在M步,利用概率的性质,通过拉格朗日算子法来计算参数。

10.4 预测算法

10.4.2 维特比算法

  • 维特比算法,和前向算法和后向算法一样,都属于动态规划

第11章 条件随机场

11.1 概率无向图模型

三个概念:

  • 成对、局部、全局马尔科夫性,三者定义是等价的
  • 概率无向图模型基于马尔科夫性的定义:联合概率分布 P ( Y ) P(Y) P(Y)满足上述马尔科夫性。
  • 概率无向图的最大团 C C C的概念,即基于最大团的因式分解

概率无向图模型的联合概率分布 P ( Y ) P(Y) P(Y)可以表示为如下形式:
P ( Y ) = 1 Z ∏ C Ψ C ( Y C ) P(Y)=\frac{1}{Z}\prod_C\Psi_C(Y_C) P(Y)=Z1CΨC(YC)
其中 Z = ∑ Y ∏ C Ψ C ( Y C ) Z=\sum_Y\prod_C\Psi_C(Y_C) Z=YCΨC(YC),而 Ψ C ( Y C ) \Psi_C(Y_C) ΨC(YC)称为势函数,通常定义为指数函数 Ψ C ( Y C ) = e x p ( − E ( Y C ) ) \Psi_C(Y_C)=exp\left(-E(Y_C)\right) ΨC(YC)=exp(E(YC))

11.2 条件随机场的定义与形式

  • 线性链条件随机场的参数化形式
    P ( y ∣ x ) = 1 Z ( x ) e x p ( ∑ i , k λ k t k ( y i − 1 , y i , x , i ) + ∑ i , l μ l s l ( y i , x , i ) ) P(y|x)=\frac{1}{Z(x)}exp\left(\sum_{i,k}\lambda_kt_k(y_{i-1},y_i,x,i)+\sum_{i,l}\mu_ls_l(y_i,x,i)\right) P(yx)=Z(x)1expi,kλktk(yi1,yi,x,i)+i,lμlsl(yi,x,i)
    其中 Z ( x ) = ∑ y e x p ( ∑ i , k λ k t k ( y i − 1 , y i , x , i ) + ∑ i , l μ l s l ( y i , x , i ) ) Z(x)=\sum_{y}exp\left(\sum_{i,k}\lambda_kt_k(y_{i-1},y_i,x,i)+\sum_{i,l}\mu_ls_l(y_i,x,i)\right) Z(x)=yexp(i,kλktk(yi1,yi,x,i)+i,lμlsl(yi,x,i)),其中 t k ( y i − 1 , y i , x , i ) t_k(y_{i-1},y_i,x,i) tk(yi1,yi,x,i)是转移函数, s l ( y i , x , i ) s_l(y_i,x,i) sl(yi,x,i)是状态函数。

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

前向后向算法

11.4 条件随机场的学习算法

学习方法是极大似然估计或者正则化的极大似然估计,优化算法是牛顿、拟牛顿法

11.5 条件随机场的预测算法

维特比算法

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u012176591/article/details/100596496

智能推荐

各式各样的编程风格 ~~~_Wyn_的博客-程序员秘密

      今天我们来看一看各式各样的编程风格~这些编程风格当然也都是小编在网上看到的,整理一下而已~~(一)首先是华为腾讯的编程风格一:华为公司程序设计风格1. 排版1.1 程序块要采用缩进风格编写, 缩进的空格数为4个。说明: 对于由开发工具自动生成的代码可以有不一致。1.2 相对独立的程序块之间、变量说明之后必须加空行。;1.3 循环、判断等语句中若有较长的表达式或语句, ...

nexus上传了jar包.通过maven引用当前jar,不能取得jar的依赖_a52071453的博客-程序员秘密

上传jar包到nexus私服发表于10个月前(2014-08-01 14:07)   阅读(3889) | 评论(2) 15人收藏此文章, 我要收藏赞0大约十一点零八发,秒杀云主机赢P8手机摘要 通过网页和maven两种方式,上传本地的jar到nexus私服,以及引用jar时,自动引用依赖maven nexus目录[-]1通过网...

IO流的分类与使用_Dominery的博客-程序员秘密

流的分类与使用分类标准分类内容数据单位字节流(8 bit)、字符流(16 bit)数据流向输入流、输出流流的角色节点流、处理流字符流,即流的数据单位是char类型,java中char类型一般为2个字节。流的体系结构抽象基类节点流(文件流)缓冲流InputStreamFileInputStreamBufferedInputStreamOutputStreamFileOutputStreamBufferedOutputSt

2018_CBAM__Convolutional Block Attention Module_YouLan999的博客-程序员秘密

标题Abstract:我们提出了卷积块注意模块,一个简单而有效的前馈卷积神经网络的注意力模型。给定一个中间特征映射,我们的模块沿着两个独立的维度(通道和空间)顺序推断注意映射,然后将注意映射乘以输入特征映射以进行自适应特征细化。因为CBAM是轻量级的通用模块,它可以无缝的集成到任何CNN架构中,开销可以忽略不计,并且可以与基础CNN一起进行端到端的训练。我们通过在ImageNet-1K数据集,MSCOCO检测数据集和VOC 2007检测数据集上的大量实验来验证我们的CBAM。我们的实验表明,各种模型在分

ios 获取相机权限 判断相机状态_会飞的程序员zjm的博客-程序员秘密

+(BOOL)checkCameraIsUse{            NSString  *type =AVMediaTypeVideo;    AVAuthorizationStatus authStatus = [AVCaptureDeviceauthorizationStatusForMediaType:type];           if ( authS

服务器2003系统时间快,windows2003系统中快速释放系统内存的快捷方法_树下青衣的博客-程序员秘密

电脑的内存是有限的,这些网友们都知道,所以在买电脑时总是会想要购买好一点的,但是电脑使用时间越久,系统内存会越少,那么要怎么才能使得在win2003系统中的内存多空些出来呢?现在小编就教大家怎么实现释放系统内存的办法吧!windows 2003已经自带了一个名为Empty.exe的小程序,它可以用来释放某些应用程序在占用大量内存时不能及时释放的那部分资源,与那些第三方软件内存管理软件不同的是,Em...

随便推点

C# WinForm程序 实现 窗口菜单功能-打开的子窗口在此菜单中列表显示,方便切换_vs怎么让c#窗体里的菜单可见_anyqu的博客-程序员秘密

原以为需要很复杂的Coding ,其实在VS2013,只需要进行如下设置即可实现。.NET 2003    父窗口中添加主菜单MainMenu,在子菜单( MenuItem )中,设置属性 MdiList 为true,可以在打开每一个子窗体时,将子窗体名称显示到此菜单中。.NET 2005/2008    父窗口中添加主菜单MenuStrip,设置主菜单的 MidiWindowListItem属性...

(转)设计模式六大原则(1):单一职责原则_小洲实验室的博客-程序员秘密

定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。解决方案:遵循单一职责原则。分别建立两个类T1、T2,使T1完成职责P1功能,T2完成职责P2功能。这样,当修改类T1时,不会使职责P2发生故障风险;同理,当修改T

c#func和action_c# func和action_Zzy_Genesis的博客-程序员秘密

以前我都是通过定义一个delegate来写委托的,但是最近看一些外国人写的源码都是用action和func方式来写,当时感觉对这很陌生所以看起源码也觉得陌生,所以我就花费时间来学习下这两种方式,然后发现确实代码简洁了不少。这两种方式我们也可以去实践的过程去慢慢运用。先说一下委托:模拟一下场景:小明最近学习情绪高涨,以前买的书已经满足不了欲望,打算去买本(一个程序员的自我修养)。可是呢以前总...

判断Int类型数据是否溢出_c语言用判断int数据_六炅的博客-程序员秘密

今天在leetcode上做题时,又遇到了与数据溢出相关的内容,在此记录下吧。 在头文件“limits.h”中有各种基本数据类型的最大最小值。/* Minimum and maximum values a `signed int' can hold. */# define INT_MIN (-INT_MAX - 1)# define INT_MAX 2147483647/* Max

Java 对象的创建过程简单介绍_aihua6622的博客-程序员秘密

当虚拟遇到一个new指令时:首先去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并检查这个符号引用所代表的类是否已经加载和初始化,如果没有,需要先执行类的加载过程。加载完成后,为对象分配内存,分配完成后初始化为0值,执行new指令后会紧着执行&lt;init&gt;方法,把对象按着程序员的意愿初始化。 new指令-------&gt;...

员工打卡系统_weixin_30299709的博客-程序员秘密

员工打卡系统 语言:C# 1. 分析: 图1(主页面) 根据图1可得信息 1....

推荐文章

热门文章

相关标签