文章目录

  • 一、理解LR模型
    • 1、 对数几率
    • 2、函数映射
    • 3、概率解释
  • 二、LR模型参数估计
    • 梯度下降求解最优参数
    • 多项逻辑斯谛回归(multi-nominal logistic regression model)
    • softmax
  • 三、最大熵模型
    • 1、最大熵原理
    • 2、最大熵模型的定义
    • 3、最大熵模型的学习
    • 4、LR、softmax和最大熵模型之间的关系
    • 5、最大熵模型和决策树模型的比对分析
  • 四、模型学习的最优化方法
    • 1、改进的迭代尺度法(IIS)
    • 2、拟牛顿法

回归模型重要的基础或者方法就是回归分析,回归分析是研究一个变量(被解释变量)关于另一个(些)变量(解释变量)的具体依赖关系的计算方法和理论,是建模和分析数据的重要工具。—这段来自百度百科。

回归分为线性回归和非线性回归。

  • 线性回归,因变量和自变量满足关系:y=w⋅x+by = w\cdot x + by=w⋅x+b

  • 非线性回归,因变量和自变量不满足上面的关系,但是又有某种稳定的关系,统称为非线性回归。

线性回归比较直观,研究起来也简单。对于一些特别的非线性回归,可以转化成线性回归来研究。例如前面的感知机模型y=sign(w⋅x+b)y = sign(w\cdot x+ b)y=sign(w⋅x+b)就可以分两步研究,可以有:
z=w⋅x+b(1)z = w\cdot x + b \tag 1z=w⋅x+b(1)
y=sign(z)(2)y = sign(z) \tag 2y=sign(z)(2)

对于式(1),就是熟悉和简单的线性回归问题。对于式(2)很简单,z≥0z\geq 0z≥0为1,z<0z<0z<0为-1。

而今天要学习的LR模型,与感知机模型类似,只是外面套的那层马甲不一样。LR模型y=hθ(x)=sigmoid(w⋅x+b)y = h_{\theta}(x) = sigmoid(w\cdot x + b)y=hθ​(x)=sigmoid(w⋅x+b),hθ(x)h_{\theta}(x)hθ​(x)是模型的抽象函数,θ\thetaθ是模型参数,sigmoid是LR模型具体使用的函数,w,b为模型具体参数。LR为什么要使用sigmoid函数?对为什么使用sigmoid函数做了一定解释。LR也可以成两步来研究,即:
z=w⋅x+bz = w\cdot x + bz=w⋅x+b
y=sigmoid(z)y = sigmoid(z)y=sigmoid(z)
在机器学习中,难点不在模型,而在根据问题来选择模型,这个需要对问题有足够的了解,要根据数据特征进行分析,再来选定合适的模型。当然按Andrew Ng说的做项目就要快速搭建框架,可以先选择一个模型完成一个整体框架,这个思路也非常好。对于模型的选择,后续再仔细研究研究,这是机器学习非常关键的一点。要选择模型,那么首先要了解被选择的模型。

一、理解LR模型

z=w⋅x+bz = w\cdot x + bz=w⋅x+b
y=hθ(x)=sigmoid(z)=11+e−zy = h_{\theta}(x) = sigmoid(z) = \dfrac{1}{1+ e^{-z}}y=hθ​(x)=sigmoid(z)=1+e−z1​

sigmoid几何形状为:

1、 对数几率

一个事件的几率(odds)是指该事件发生的概率与该事件不发生的概率的比值。若事件发生概率为p,则该事件的几率是p1−p\dfrac{p}{1−p}1−pp​,对数几率是logp1−plog\dfrac{p}{1−p}log1−pp​,对logistic回归而言:
logy1−y=log11+e−ze−z1+e−z=logez=z=w⋅x+blog\dfrac{y}{1−y} = log\dfrac{\dfrac{1}{1+ e^{-z}}}{\dfrac{e^{-z}}{1+ e^{-z}}} = log\space e^z = z = w\cdot x + blog1−yy​=log1+e−ze−z​1+e−z1​​=log ez=z=w⋅x+b
输出y的对数几率是由输入x的线性函数表示的模型即为LR模型。

2、函数映射

考虑对输入实例x进行分类的线性表达式w⋅x+bw\cdot x+bw⋅x+b,其值域为实数域,通过LR模型的表达式可以将线性函数w⋅x+bw\cdot x+bw⋅x+b的结果映射到(0,1)区间,取值表示结果为1的概率(在二分类场景中)。线性函数的值越接近于正无穷大,概率值就越近1;反之,其值越接近于负无穷,概率值就越接近于0,这样的模型就是LR模型。LR本质上还是线性回归,只是特征到结果的映射过程中加了一层函数映射,即sigmoid函数,即先把特征线性求和,然后使用sigmoid函数将线性和约束至(0,1)之间,结果值用于二分或回归预测。

3、概率解释

LR模型多用于解决二分类问题,如广告是否被点击(是/否),商品是否被购买(是/否)等互联网领域中常见的应用场景。但在实际场景中,我们又不把它处理成绝对的分类,而是用其预测值作为事件发生的概率。这里从事件,变量以及结果的角度给予解释。

我们所能拿到的训练数据统称为观测样本。样本是如何生成的?一个样本可以理解为发生的一次事件,样本生成的过程即事件发生的过程,对于0/1分类问题来讲,产生的结果有两种可能,符合伯努利试验的概率假设。因此,我们可以说样本的生成过程即为伯努利试验过程,产生的结果(0/1)服从伯努利分布,那么对于第i个样本,概率公式表示如下:
P(y(i)=1∣x(i);θ)=hθ(x(i))P(y^{(i)} = 1|x^{(i)};\space \theta) = h_{\theta}(x^{(i)})P(y(i)=1∣x(i); θ)=hθ​(x(i))
P(y(i)=0∣x(i);θ)=1−hθ(x(i))P(y^{(i)} = 0|x^{(i)};\space \theta) = 1 - h_{\theta}(x^{(i)})P(y(i)=0∣x(i); θ)=1−hθ​(x(i))
将上面两个公式合并在一起,可以得到第i个样本正确预测的概率:
P(y(i)∣x(i);θ)=[hθ(x(i))]y(i)[1−hθ(x(i))](1−y(i))P(y^{(i)}|x^{(i)};\space \theta) = [h_{\theta}(x^{(i)})]^{y^{(i)}}\space[1 - h_{\theta}(x^{(i)})]^{(1- y^{(i)}\space )}P(y(i)∣x(i); θ)=[hθ​(x(i))]y(i) [1−hθ​(x(i))](1−y(i) )
上式是对一个样本进行建模的数据表达。那么对于所有的样本,假设每条样本生成过程独立,在整个样本空间中(N个样本)的概率分布(即似然函数)为:
P(Y∣X;θ)=∏i=1N[hθ(x(i))]y(i)[1−hθ(x(i))](1−y(i))P(Y|X;\space \theta) = \prod_{i=1}^N\space[h_{\theta}(x^{(i)})]^{y^{(i)}}\space[1 - h_{\theta}(x^{(i)})]^{(1- y^{(i)}\space )}P(Y∣X; θ)=i=1∏N​ [hθ​(x(i))]y(i) [1−hθ​(x(i))](1−y(i) )
理解LR模型内容引用自博客。

二、LR模型参数估计

梯度下降求解最优参数

极大似然估计:什么样的参数才能使我们观测到目前这组数据的概率最大。参数在整个样本空间的似然函数可表示为:
L(θ)=∏i=1N[hθ(x(i))]y(i)[1−hθ(x(i))](1−y(i))L(\theta) = \prod_{i=1}^N\space[h_{\theta}(x^{(i)})]^{y^{(i)}}\space[1 - h_{\theta}(x^{(i)})]^{(1- y^{(i)}\space )}L(θ)=i=1∏N​ [hθ​(x(i))]y(i) [1−hθ​(x(i))](1−y(i) )
则有对数似然函数l(θ)l(\theta)l(θ):
l(θ)=∑i=1N[y(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i)))]l(\theta) = \sum_{i=1}^N\space [y^{(i)}log\space h_{\theta}(x^{(i)}) + (1- y^{(i)})log(1 - h_{\theta}(x^{(i)}))]l(θ)=i=1∑N​ [y(i)log hθ​(x(i))+(1−y(i))log(1−hθ​(x(i)))]
函数从抽象到具体:
hθ(x)=sigmoid(z)=11+e−zh_{\theta}(x) = sigmoid(z) = \dfrac{1}{1+ e^{-z}} hθ​(x)=sigmoid(z)=1+e−z1​
z=w⋅x+b(3)z = w\cdot x + b \tag 3z=w⋅x+b(3)
则有:
hθ′(x)=hθ(x)(1−hθ(x))(4){h_{\theta}}\prime(x) = h_{\theta}(x)(1-h_{\theta}(x)) \tag 4hθ​′(x)=hθ​(x)(1−hθ​(x))(4)

把求最大值问题转化为求最小值问题,即把求解似然函数最大值转化为求交叉熵损失函数最小值,则令:
J=−1Nl(θ)=−1N∑i=1N[y(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i)))]J = -\dfrac{1}{N}l(\theta) = -\dfrac{1}{N}\sum_{i=1}^N\space [y^{(i)}log\space h_{\theta}(x^{(i)}) + (1- y^{(i)})log(1 - h_{\theta}(x^{(i)}))]J=−N1​l(θ)=−N1​i=1∑N​ [y(i)log hθ​(x(i))+(1−y(i))log(1−hθ​(x(i)))]
则有:
∂J∂hθ(x(i))=−1N∑i=1N[y(i)hθ(x(i))−1−y(i)1−hθ(x(i))](5)\dfrac{\partial J}{\partial h_{\theta}(x^{(i)})} = -\dfrac{1}{N}\sum_{i=1}^N\space [\dfrac{y^{(i)}}{h_{\theta}(x^{(i)})} - \dfrac{1- y^{(i)}}{1 - h_{\theta}(x^{(i)})}]\tag 5∂hθ​(x(i))∂J​=−N1​i=1∑N​ [hθ​(x(i))y(i)​−1−hθ​(x(i))1−y(i)​](5)
根据式(4)有:
∂hθ(x(i))∂z=hθ(x(i))(1−hθ(x(i)))(6)\dfrac{\partial h_{\theta}(x^{(i)})}{\partial z} = h_{\theta}(x^{(i)})(1-h_{\theta}(x^{(i)}))\tag 6∂z∂hθ​(x(i))​=hθ​(x(i))(1−hθ​(x(i)))(6)
根据式(3)有:
∂z∂w=x(i)(7)\dfrac{\partial z}{\partial w} = x^{(i)} \tag 7∂w∂z​=x(i)(7)
∂z∂b=1(8)\dfrac{\partial z}{\partial b} = 1 \tag 8∂b∂z​=1(8)
则根据上式(5)(6)(7)(8)有:
dw=∂J∂hθ(x(i))∂hθ(x(i))∂z∂z∂w=1N∑i=1N[hθ(x(i))−y(i)]x(i)dw = \dfrac{\partial J}{\partial h_{\theta}(x^{(i)})} \dfrac{\partial h_{\theta}(x^{(i)})}{\partial z}\dfrac{\partial z}{\partial w} = \dfrac{1}{N}\sum_{i=1}^N\space[h_{\theta}(x^{(i)}) - y^{(i)}]x^{(i)}dw=∂hθ​(x(i))∂J​∂z∂hθ​(x(i))​∂w∂z​=N1​i=1∑N​ [hθ​(x(i))−y(i)]x(i)
db=∂J∂hθ(x(i))∂hθ(x(i))∂z∂z∂b=1N∑i=1N[hθ(x(i))−y(i)]db = \dfrac{\partial J}{\partial h_{\theta}(x^{(i)})} \dfrac{\partial h_{\theta}(x^{(i)})}{\partial z}\dfrac{\partial z}{\partial b} = \dfrac{1}{N}\sum_{i=1}^N\space[h_{\theta}(x^{(i)}) - y^{(i)}]db=∂hθ​(x(i))∂J​∂z∂hθ​(x(i))​∂b∂z​=N1​i=1∑N​ [hθ​(x(i))−y(i)]
使用梯度下降的方法,对参数进行更新:
w=w−α×dww = w - \alpha\times dww=w−α×dw
b=b−α×dbb = b - \alpha\times dbb=b−α×db

  • α\alphaα为学习率

多项逻辑斯谛回归(multi-nominal logistic regression model)

推广到多分类,假设离散型随机变量Y的取值集合是{1,2,…,K},那么多项LR模型是:
P(Y=k∣x)=ewkx1+∑k=1K−1ewkx,k=1,2,…,K−1P(Y = k|x) = \dfrac{e^{w_k\space x}}{1 + \sum_{k=1}^{K-1}e^{w_k\space x}},k=1,2,…,K-1P(Y=k∣x)=1+∑k=1K−1​ewk​ xewk​ x​,k=1,2,…,K−1
P(Y=K∣x)=11+∑k=1K−1ewkx,k=1,2,…,K−1P(Y = K|x) = \dfrac{1}{1 + \sum_{k=1}^{K-1}e^{w_k\space x}},k=1,2,…,K-1P(Y=K∣x)=1+∑k=1K−1​ewk​ x1​,k=1,2,…,K−1

softmax

P(Y=k∣x)=ezk∑k=1Kezk,k=1,2,…,KP(Y = k|x) = \dfrac{e^{z_k}}{\sum_{k=1}^K e^{z_k}},k = 1,2,…,KP(Y=k∣x)=∑k=1K​ezk​ezk​​,k=1,2,…,K

三、最大熵模型

最大熵模型是指:在所有满足约束条件的概率模型集合中,熵最大的模型是最好的;可以证明,在没有其它约束条件时,均匀分布模型是最大熵模型。

例如:P(A)+P(B)=1,按照最大熵模型得到P(A)=P(B)=0.5,也就是均匀分布。

可以从物理学的角度来理解该模型:根据热力学第二定理,如果没有外力干扰,系统的熵值是趋于不断增加的。由此,在没有其它额外参考信息的情况下,选择熵值最大的模型是最可靠的,因为没有外在动力时,宇宙本来就是趋于无序的。

1、最大熵原理

最大熵原理是概率模型学习的一个准则。最大熵原理认为,学习概率模型时,在所有可能的概率模型(分布)中,熵最大的模型就是最好的模型。通常用约束条件来确定概率模型的集合,所以,最大熵原理也可以表述为在满足约束条件的模型集合中选取熵最大的模型。

2、最大熵模型的定义

假设分类模型是一个条件概率分布P(Y∣X)P(Y|X)P(Y∣X),X表示输入,Y表示输出,这个模型表示的是对于给定的输入X,以条件概率P(Y∣X)P(Y|X)P(Y∣X)输出Y。

给定一个训练数据集:
T={(x1,y1),(x2,y2),…,(xN,yN)}T = \{(x_1,y_1),(x_2,y_2),…,(x_N,y_N)\}T={(x1​,y1​),(x2​,y2​),…,(xN​,yN​)}
学习的目标是用最大熵原理选择最好的分类模型。首先考虑模型应满足的条件,给定训练数据集,可以确定联合分布P(X,Y)P(X,Y)P(X,Y)的经验分布和边缘分布P(X)P(X)P(X)的经验分布,分别以P~(X,Y)\tilde{P}(X,Y)P~(X,Y)和P~(X)\tilde{P}(X)P~(X)表示。有:
P~(X=x,Y=y)=v(X=x,Y=y)N\tilde{P}(X=x,Y=y) = \dfrac{v(X=x,Y=y)}{N}P~(X=x,Y=y)=Nv(X=x,Y=y)​
P~(X=x)=v(X=x)N\tilde{P}(X=x) = \dfrac{v(X=x)}{N}P~(X=x)=Nv(X=x)​

  • v(X=x,Y=y)v(X=x,Y=y)v(X=x,Y=y)表示训练数据中样本(x,y)(x,y)(x,y)出现的频数,v(X=x)v(X=x)v(X=x)表述训练数据中输入xx\spacex 出现的频数,N表示训练样本容量。
    用特征函数f(x,y)f(x,y)f(x,y)描述输入xx\spacex 和输出y输出y\space输出y 之间的某一个事实。其定义是:
    f(x,y)={1,x与y满足某一事实0,othervaluesf(x,y)=\begin{cases} 1, & x与y满足某一事实\\ 0, & other\ values \end{cases}f(x,y)={1,0,​x与y满足某一事实other values​
    特征函数f(x,y)f(x,y)f(x,y)关于经验分布P~(X,Y)\tilde{P}(X,Y)P~(X,Y)的期望值,用EP~(f)E_{\tilde{P}}(f)EP~​(f)表示。
    EP~(f)=∑x,yP~(x,y)f(x,y)=∑x,yP~(x)P~(y∣x)f(x,y)E_{\tilde{P}}(f) = \sum_{x,y}\tilde{P}(x,y)f(x,y) = \sum_{x,y}\tilde{P}(x)\tilde{P}(y|x)f(x,y)EP~​(f)=x,y∑​P~(x,y)f(x,y)=x,y∑​P~(x)P~(y∣x)f(x,y)
    特征函数f(x,y)f(x,y)f(x,y)关于模型P(Y∣X)P(Y|X)P(Y∣X)与经验分布P~(X)\tilde{P}(X)P~(X)的期望值,用EP(f)E_{P}(f)EP​(f)表示。
    EP(f)=∑x,yP~(x)P(y∣x)f(x,y)E_{P}(f) = \sum_{x,y}\tilde{P}(x)P(y|x)f(x,y)EP​(f)=x,y∑​P~(x)P(y∣x)f(x,y)
    特征函数可以理解为模型的某个特征的描述,这个特征可以与数据集x的某一个特征(维度)对应,也可以不是指数据集x的特征。但此时特征函数里面的x与概率里面的x是必须对应的,都为特征或者都为实例或者其他某个规律的描述。

如果模型能够获取训练数据中的信息,则经验条件概率P~(y∣x)\tilde{P}(y|x)P~(y∣x)与条件概率P(y∣x)P(y|x)P(y∣x)近似相等。那么就可以假设这两个期望值相等,即:
EP~(f)=EP(f)(9)E_{\tilde{P}}(f) = E_{P}(f)\tag 9EP~​(f)=EP​(f)(9)
故有
∑x,yP~(x,y)f(x,y)=∑x,yP~(x)P(y∣x)f(x,y)\sum_{x,y}\tilde{P}(x,y)f(x,y) = \sum_{x,y}\tilde{P}(x)P(y|x)f(x,y)x,y∑​P~(x,y)f(x,y)=x,y∑​P~(x)P(y∣x)f(x,y)
将式(9)作为模型学习的约束,假如有n个特征函数fi(x,y),i=1,2,…,nf_i(x,y),i=1,2,…,nfi​(x,y),i=1,2,…,n,那么就有n个约束条件。
C≡{P∈P∣EP(fi)=EP~(fi),i=1,2,…,n}{C} \equiv \{P\in { P}|E_{P}(f_i) = E_{\tilde{P}}(f_i) ,i=1,2,…,n \}C≡{P∈P∣EP​(fi​)=EP~​(fi​),i=1,2,…,n}
定义在条件概率分布P(Y∣X)P(Y | X)P(Y∣X)上的条件熵为:
H(P)=−∑x,yP~(x)P(y∣x)logP(y∣x)H(P)=−\sum_{x,y}\tilde{P}(x) P(y | x)logP(y | x)H(P)=−x,y∑​P~(x)P(y∣x)logP(y∣x)
则模型集合C{\bf C}C中条件熵H(P)H(P)H(P)最大的模型称为最大熵模型。式中的对数为自然对数。

3、最大熵模型的学习

(1)定义问题

最大熵模型的学习等价于以下约束最优化问题:
maxP∈CH(P)=−∑x,yP~(x)P(y∣x)logP(y∣x)max_{P\in{C}}\space\space H(P)=−\sum_{x,y}\tilde{P}(x) P(y | x)logP(y | x)maxP∈C​  H(P)=−x,y∑​P~(x)P(y∣x)logP(y∣x)
s.t.EP(fi)=EP~(fi),i=1,2,...,ns.t.\space\space E_P(f_i)=E_{\tilde{P}}(f_i), i=1,2,...,ns.t.  EP​(fi​)=EP~​(fi​),i=1,2,...,n
∑yP(y∣x)=1\sum_yP(y | x)=1y∑​P(y∣x)=1

按照最优化问题的习惯,将求最大值问题改写为等价的求最小值问题:
minP∈C−H(P)=∑x,yP~(x)P(y∣x)logP(y∣x)(10)min_{P\in{ C}}\space\space -H(P)=\sum_{x,y}\tilde{P}(x) P(y | x)logP(y | x)\tag {10}minP∈C​  −H(P)=x,y∑​P~(x)P(y∣x)logP(y∣x)(10)
s.t.EP~(fi)−EP(fi)=0,i=1,2,...,n(11)s.t.\space\space E_{\tilde{P}}(f_i) - E_P(f_i)=0, i=1,2,...,n \tag {11}s.t.  EP~​(fi​)−EP​(fi​)=0,i=1,2,...,n(11)
∑yP(y∣x)=1(12)\sum_yP(y | x)=1 \tag {12}y∑​P(y∣x)=1(12)
求解约束最优化问题(10)-(12),定义拉格朗日函数L(P,w)L(P,w)L(P,w):
L(w,p)≡−H(P)+w0(1−∑yP(y∣x))+∑i=1nwi(EP~(fi)−EP(fi))=∑x,yP~(x)P(y∣x)logP(y∣x)+w0(1−∑yP(y∣x))+∑i=1nwi(∑x,yP~(x,y)fi(x,y)−∑x,yP~(x)P(y∣x)fi(x,y))(13)L(w,p) \equiv -H(P) + w_0(1-\sum_yP(y | x)) + \sum_{i=1}^nw_i(E_{\tilde{P}}(f_i) - E_P(f_i))\\ =\sum_{x,y}\tilde{P}(x) P(y | x)logP(y | x) + w_0(1-\sum_yP(y | x)) + \sum_{i=1}^nw_i(\sum_{x,y}\tilde{P}(x,y)f_i(x,y) - \sum_{x,y}\tilde{P}(x)P(y|x)f_i(x,y) )\tag {13}L(w,p)≡−H(P)+w0​(1−y∑​P(y∣x))+i=1∑n​wi​(EP~​(fi​)−EP​(fi​))=x,y∑​P~(x)P(y∣x)logP(y∣x)+w0​(1−y∑​P(y∣x))+i=1∑n​wi​(x,y∑​P~(x,y)fi​(x,y)−x,y∑​P~(x)P(y∣x)fi​(x,y))(13)

最优化的原始问题即含有参数www的部分最大时整体最小时−H(p)-H(p)−H(p)取得最小值为:
minP∈CmaxwL(P,w)(14)min_{P\in{\ C}}\space max_w\space L(P,w)\tag {14}minP∈ C​ maxw​ L(P,w)(14)
我们将最小最大化问题转化成它的对偶问题,即最大最小化问题,要进行这种转化需要满足H(P)H(P)H(P)为凸函数,以及1−∑yP(y∣x)1-\sum_yP(y | x)1−∑y​P(y∣x)和∑i=1nwi(EP~(fi)−EP(fi))\sum_{i=1}^nw_i(E_{\tilde{P}}(f_i) - E_P(f_i))∑i=1n​wi​(EP~​(fi​)−EP​(fi​))为仿射函数:
maxwminP∈CL(P,w)(15)max_w\space min_{P\in{\bf C}}\space L(P,w) \tag {15}maxw​ minP∈C​ L(P,w)(15)
(2)求解对偶问题内部的极小化问题

首先求解对偶问题(15)内部的极小化问题minP∈CL(P,w)min_{P\in {C}}\space\space L(P,w)minP∈C​  L(P,w),得到的函数是ww\spacew 的函数,将其记作:

ψ(w)=minP∈CL(P,w)=L(Pw,w)(16)\psi(w)= min_{P\in { C}}\space L(P,w) = L(P_w,w) \tag{16}ψ(w)=minP∈C​ L(P,w)=L(Pw​,w)(16)
ψ(w)\psi(w)ψ(w)即为对偶函数,将其解记为:
Pw=argminP∈CL(P,w)=Pw(y∣x)P_w=arg\space min_{P\in{ C}}\space L(P,w)=P_w(y | x)Pw​=arg minP∈C​ L(P,w)=Pw​(y∣x)
具体的是求L(P,w)L(P,w)L(P,w)关于P(y∣x)P(y|x)P(y∣x)的偏导数:
∂L(P,w)∂P(y∣x)=∑x,yP~(x)(logP(y∣x)+1)−∑yw0−∑x,y(P~(x)∑i=1nwifi(x,y))=∑x,yP~(x)(logP(y∣x)+1−w0−∑i=1nwifi(x,y))\dfrac{\partial L(P,w)}{\partial P(y|x)} = \sum_{x,y}\tilde{P}(x)(logP(y|x)+1)−\sum_yw_0−\sum_{x,y}(\tilde{P}(x)\sum_{i=1}^nw_if_i(x,y))\\ = \sum_{x,y}\tilde{P}(x)(logP(y|x)+1−w_0−\sum_{i=1}^nw_if_i(x,y))∂P(y∣x)∂L(P,w)​=x,y∑​P~(x)(logP(y∣x)+1)−y∑​w0​−x,y∑​(P~(x)i=1∑n​wi​fi​(x,y))=x,y∑​P~(x)(logP(y∣x)+1−w0​−i=1∑n​wi​fi​(x,y))

因为∑xP~(x)=1\sum_x \tilde{P}(x) = 1∑x​P~(x)=1,所以∑yw0=∑xP~(x)∑yw0=∑x,yP~(x)w0\sum_yw_0 = \sum_x \tilde{P}(x)\sum_yw_0 = \sum_{x,y} \tilde{P}(x) w_0∑y​w0​=∑x​P~(x)∑y​w0​=∑x,y​P~(x)w0​
令偏导数为0,在P~(x)>0\tilde{P}(x)>0P~(x)>0的情况下,可以解出P(y∣x)P(y|x)P(y∣x)关于ww\spacew 的表达式如下:
P(y∣x)=exp(∑i=1nwifi(x,y)+w0−1)=exp(∑i=1nwifi(x,y))exp(1−w0)P(y|x) = exp{(\sum_{i=1}^n w_i\space f_i\space(x,y) + w_0 -1)}= \dfrac{exp({\sum_{i=1}^n w_i\space f_i\space(x,y)})}{exp({1- w_0})}P(y∣x)=exp(i=1∑n​wi​ fi​ (x,y)+w0​−1)=exp(1−w0​)exp(∑i=1n​wi​ fi​ (x,y))​
由于∑yP(y∣x)=1\sum_y P(y|x) = 1∑y​P(y∣x)=1,得:
Pw(y∣x)=1Zw(x)exp(∑i=1nwifi(x,y))(17)P_w(y|x) = \dfrac{1}{Z_w(x)}exp({\sum_{i=1}^n w_i\space f_i(x,y)})\tag{17}Pw​(y∣x)=Zw​(x)1​exp(i=1∑n​wi​ fi​(x,y))(17)
因为∑yP(y∣x)=1\sum_y P(y|x) = 1∑y​P(y∣x)=1可以消除w0w_0w0​,即得到如下的规范化因子。
其中:
Zw(x)=exp(1−w0)=∑yexp(∑i=1nwifi(x,y))(18)Z_w(x) = exp({1-w_0})=\sum_y exp({\sum_{i=1}^n w_i\space f_i(x,y)})\tag{18}Zw​(x)=exp(1−w0​)=y∑​exp(i=1∑n​wi​ fi​(x,y))(18)
Zw(x)Z_w(x)Zw​(x)称为规范化因子,fi(x,y)f_i(x,y)fi​(x,y)是特征函数,wiw_iwi​是特征的权重。
由式(17)(18)表示的模型Pw=Pw(y∣x)P_w = P_w(y|x)Pw​=Pw​(y∣x)就是最大熵模型。这里,ww\spacew 是最大熵模型中的参数向量。此时条件概率模型与softmax非常类似。

(3)求解对偶问题的外部极大化问题

之后求解对偶问题外部的极大化问题maxwψ(w)max_w\space \psi(w)maxw​ ψ(w)。将其解记作w∗w^{*}w∗,即:
w∗=argmaxwψ(w)=argmaxwL(Pw(y∣x),w)w^{*} = arg\space max_w\space \psi(w) = arg\space max_w\space L(P_w(y|x),w) w∗=arg maxw​ ψ(w)=arg maxw​ L(Pw​(y∣x),w)

因为前面在求Pw(y∣x)P_w(y|x)Pw​(y∣x),消除其中含有的w0w_0w0​参数已经使用过1−∑yP(y∣x)=01-\sum_yP(y | x) = 01−∑y​P(y∣x)=0条件,所以肯定有1−∑yPw(y∣x)=01-\sum_yP_w(y | x) = 01−∑y​Pw​(y∣x)=0,由式(13)有:
L(Pw(y∣x),w)=∑x,yP~(x)Pw(y∣x)lnPw(y∣x)+∑i=1nwi(∑x,yP~(x,y)fi(x,y)−∑x,yP~(x)Pw(y∣x)fi(x,y))=∑x,yP~(x)Pw(y∣x)(lnPw(y∣x)−∑i=1nwifi(x,y))+∑x,yP~(x,y)∑i=1nwifi(x,y)L(P_w(y|x),w) = \sum_{x,y}\tilde{P}(x) P_w(y|x)lnP_w(y|x) + \sum_{i=1}^nw_i(\sum_{x,y}\tilde{P}(x,y)f_i(x,y) - \sum_{x,y}\tilde{P}(x)P_w(y|x)f_i(x,y) )\\ =\sum_{x,y}\tilde{P}(x) P_w(y|x)(lnP_w(y|x) - \sum_{i=1}^nw_i\space f_i(x,y)) + \sum_{x,y}\tilde{P}(x,y)\sum_{i=1}^nw_i\space f_i(x,y)L(Pw​(y∣x),w)=x,y∑​P~(x)Pw​(y∣x)lnPw​(y∣x)+i=1∑n​wi​(x,y∑​P~(x,y)fi​(x,y)−x,y∑​P~(x)Pw​(y∣x)fi​(x,y))=x,y∑​P~(x)Pw​(y∣x)(lnPw​(y∣x)−i=1∑n​wi​ fi​(x,y))+x,y∑​P~(x,y)i=1∑n​wi​ fi​(x,y)
又因为lnPw(y∣x)=∑i=1nwifi(x,y)−lnZw(x)lnP_w(y|x) = \sum_{i=1}^n w_i\space f_i(x,y) - lnZ_w(x)lnPw​(y∣x)=∑i=1n​wi​ fi​(x,y)−lnZw​(x)和∑yPw(y∣x)=1\sum_yP_w(y|x) = 1∑y​Pw​(y∣x)=1,所以有:
L(Pw(y∣x),w)=∑x,yP~(x)Pw(y∣x)(−lnZw(x))+∑x,yP~(x,y)∑i=1nwifi(x,y)=∑xP~(x)(−lnZw(x))∑yPw(y∣x)+∑x,yP~(x,y)∑i=1nwifi(x,y)=∑x,yP~(x,y)∑i=1nwifi(x,y)−∑xP~(x)lnZw(x)(19)L(P_w(y|x),w) = \sum_{x,y}\tilde{P}(x) P_w(y|x)(-lnZ_w(x)) + \sum_{x,y}\tilde{P}(x,y)\sum_{i=1}^nw_i\space f_i(x,y)\\ =\sum_x\tilde{P}(x)(-lnZ_w(x))\sum_y P_w(y|x) + \sum_{x,y}\tilde{P}(x,y)\sum_{i=1}^nw_i\space f_i(x,y)\\ = \sum_{x,y}\tilde{P}(x,y)\sum_{i=1}^nw_i\space f_i(x,y) - \sum_x\tilde{P}(x)lnZ_w(x) \tag{19}L(Pw​(y∣x),w)=x,y∑​P~(x)Pw​(y∣x)(−lnZw​(x))+x,y∑​P~(x,y)i=1∑n​wi​ fi​(x,y)=x∑​P~(x)(−lnZw​(x))y∑​Pw​(y∣x)+x,y∑​P~(x,y)i=1∑n​wi​ fi​(x,y)=x,y∑​P~(x,y)i=1∑n​wi​ fi​(x,y)−x∑​P~(x)lnZw​(x)(19)
得到了需要极大化的式子:
maxw∑x,yP~(x,y)∑i=1nwifi(x,y)−∑xP~(x)lnZw(x)(20)max_{w}\space \sum_{x,y}\tilde{P}(x,y)\sum_{i=1}^nw_i\space f_i(x,y) - \sum_x\tilde{P}(x)lnZ_w(x)\tag{20}maxw​ x,y∑​P~(x,y)i=1∑n​wi​ fi​(x,y)−x∑​P~(x)lnZw​(x)(20)

(4)最大似然估计

训练数据得经验概率分布P~(X,Y)\tilde{P}(X, Y)P~(X,Y),条件概率分布P(Y∣X)P(Y|X)P(Y∣X)的对数似然函数可以表示为:
LP~(Pw)=ln∏x,yP(y∣x)P~(x,y)=∑x,yP~(x,y)lnP(y∣x)L_{\tilde{P}}(P_w) = ln\prod_{x,y}P(y|x)^{\tilde{P}(x,y)} = \sum_{x,y}\tilde{P}(x,y)lnP(y|x)LP~​(Pw​)=lnx,y∏​P(y∣x)P~(x,y)=x,y∑​P~(x,y)lnP(y∣x)
将式(17)Pw(y∣x)P_w(y|x)Pw​(y∣x)代入有:
∑x,yP~(x,y)lnP(y∣x)=∑x,yP~(x,y)∑i=1nwifi(x,y)−∑x,yP~(x,y)lnZw(x)=∑x,yP~(x,y)∑i=1nwifi(x,y)−∑xP~(x)lnZw(x)(21)\sum_{x,y}\tilde{P}(x,y)lnP(y|x) = \sum_{x,y}\tilde{P}(x,y)\sum_{i=1}^nw_i\space f_i\space (x,y) - \sum_{x,y}\tilde{P}(x,y)lnZ_w(x)\\ = \sum_{x,y}\tilde{P}(x,y)\sum_{i=1}^nw_i\space f_i\space (x,y) - \sum_{x}\tilde{P}(x)lnZ_w(x)\tag{21}x,y∑​P~(x,y)lnP(y∣x)=x,y∑​P~(x,y)i=1∑n​wi​ fi​ (x,y)−x,y∑​P~(x,y)lnZw​(x)=x,y∑​P~(x,y)i=1∑n​wi​ fi​ (x,y)−x∑​P~(x)lnZw​(x)(21)

(5)结论

显而易见LP~(Pw)=ψ(w)L_{\tilde{P}}(P_w)=\psi(w)LP~​(Pw​)=ψ(w),拉格朗日对偶问题外部的极大化得到的结果与极大似然得到的结果是一样的。这样,最大熵模型的学习问题转换为具体求解对数似然函数极大化或对偶函数极大化的问题。
Pw(y∣x)=1Zw(x)exp(∑i=1nwifi(x,y))P_w(y|x) = \dfrac{1}{Z_w(x)}exp({\sum_{i=1}^n w_i\space f_i(x,y)})Pw​(y∣x)=Zw​(x)1​exp(i=1∑n​wi​ fi​(x,y))
Zw(x)=∑yexp(∑i=1nwifi(x,y))Z_w(x) = \sum_y exp({\sum_{i=1}^n w_i\space f_i(x,y)})Zw​(x)=y∑​exp(i=1∑n​wi​ fi​(x,y))

上式并没有一个显式的解析解,因此需要借助于数值的方法。由于是一个光滑的凸函数,所以可以求解的方法很多。可以使用的方法有:

  • 通用迭代尺度法(GIS: Generalized Iterative Scaling)。
  • 改进的迭代尺度法(IIS: Improved Iterative Scaling)。
  • 梯度下降算法
  • 拟牛顿法(牛顿法)

其中,前两个方法是专门为最大熵模型而设计的,后两种方法为通用的算法。

4、LR、softmax和最大熵模型之间的关系

  • Logistic回归是统计学习中的经典分类方法,可以用于二类分类也可以用于多类分类。
  • 最大熵模型由最大熵原理推导出来,最大熵原理是概率模型学习或估计的一个准则,最大熵原理认为在所有可能的概率模型的集合中,熵最大的模型是最好的模型,最大熵模型也可以用于二类分类和多类分类。
  • Logistic回归模型与最大熵模型都属于对数线性模型
  • 逻辑回归跟最大熵模型没有本质区别。逻辑回归是最大熵对应类别为二类时的特殊情况
  • 指数簇分布的最大熵等价于其指数形式的最大似然。
  • 二项式分布的最大熵解等价于二项式指数形式(sigmoid)的最大似然;
  • 多项式分布的最大熵等价于多项式分布指数形式(softmax)的最大似然。

5、最大熵模型和决策树模型的比对分析

粗看起来,上述模型似乎与在决策树中选用信息增益最大的特征参量有点儿矛盾。因为信息增益最大,即意味着要得到熵最小的模型。

两个模型中关于熵的定义完全一样,均用来表征模型的有序程度。熵值越大,越是无序。但两个模型其实并不矛盾,理由如下:

  • 二者应用的前提不同。对于最大熵模型而言,在所有满足约束条件的模型中,如果没有其他的参考信息,则选用熵最大的模型;而决策树模型中,由于提供了特征参量这样的额外参考信息,因此不能直接应用最大熵原理。

  • 决策树并没有使用最小熵模型。我们都知道,完全生长决策树的熵是最小的,然而却常常不是最好的模型(容易“过拟合”),经过剪枝后的决策树反而能够反映真实数据分布。如果说树的分裂意味着熵的减小,则剪枝意味着熵的增加;这样看来,我们选择的其实是应用了所有已知信息之后熵较大的模型。

  • 决策树的思路是尽可能去拟合数据,然后加剪枝减少过拟合。

  • 最大熵模型是先给你均匀分布,然后挖掘数据集里面隐含的约束条件来重新构造分布,使用的约束条件少就会欠拟合。决策树里面首先会选择信息增益最大的轴和切分点来切分,如果在最大熵模型里面也加上这个约束,然后依次对应起来。如果模型其中之一预测的精度比较高,那么最终两个模型的预测结果会非常接近。

最大熵原理:承认已知事物(知识);对未知事物不做任何假设,没有任何偏见。

两个角度认识未知事物:

  • 最大熵模型:对不确定度的无偏分配;
  • 最大似然估计:对知识的无偏理解。

参考资料:

  • 统计学习方法–李航
  • 最大熵模型 推导
  • 最大熵模型(Maximum Entropy)
  • 逻辑斯谛回归&最大熵模型

四、模型学习的最优化方法

1、改进的迭代尺度法(IIS)

改进的迭代尺度法(improved iterative scaling,IIS)是一种最大熵模型学习的最优化算法。

已知最大熵模型为:
Pw(y∣x)=1Zw(x)exp(∑i=1nwifi(x,y))(22)P_w(y|x) = \dfrac{1}{Z_w(x)}exp({\sum_{i=1}^n w_i\space f_i(x,y)})\tag{22}Pw​(y∣x)=Zw​(x)1​exp(i=1∑n​wi​ fi​(x,y))(22)
Zw(x)=∑yexp(∑i=1nwifi(x,y))(23)Z_w(x) = \sum_y exp({\sum_{i=1}^n w_i\space f_i(x,y)})\tag{23}Zw​(x)=y∑​exp(i=1∑n​wi​ fi​(x,y))(23)
f(x,y)={1,x与y满足某一事实0,othervaluesf(x,y)=\begin{cases} 1, & x与y满足某一事实\\ 0, & other\ values \end{cases}f(x,y)={1,0,​x与y满足某一事实other values​

根据式(21)对数似然函数为:
LP~(w)=∑x,yP~(x,y)∑i=1nwifi(x,y)−∑xP~(x)lnZw(x)(24)L_{\tilde{P}}(w) = \sum_{x,y}\tilde{P}(x,y)\sum_{i=1}^nw_i\space f_i\space (x,y) - \sum_{x}\tilde{P}(x)lnZ_w(x)\tag{24}LP~​(w)=x,y∑​P~(x,y)i=1∑n​wi​ fi​ (x,y)−x∑​P~(x)lnZw​(x)(24)
这里我们可以看到LP~(w)≤0L_{\tilde{P}}(w)\leq 0LP~​(w)≤0,所以LP~(w)=0L_{\tilde{P}}(w) = 0LP~​(w)=0是最优的。

给定特征集{f1,f2,…,fn}\{ f_1,f_2,…,f_n\}{f1​,f2​,…,fn​},最大熵模型式(22)和经验分布P~(x,y)\tilde{P}(x,y)P~(x,y),要求:
W∗≡argmaxwLP~(w)W^* \equiv arg\space max_w\space L_{\tilde{P}}(w)W∗≡arg maxw​ LP~​(w)
将式(23)代入式(24)得:
LP~(w)=∑x,yP~(x,y)∑i=1nwifi(x,y)−∑xP~(x)∑yexp(∑i=1nwifi(x,y))L_{\tilde{P}}(w) = \sum_{x,y}\tilde{P}(x,y)\sum_{i=1}^nw_i\space f_i\space (x,y) - \sum_{x}\tilde{P}(x)\sum_y exp({\sum_{i=1}^n w_i\space f_i(x,y)})LP~​(w)=x,y∑​P~(x,y)i=1∑n​wi​ fi​ (x,y)−x∑​P~(x)y∑​exp(i=1∑n​wi​ fi​(x,y))
对wiw_iwi​求偏导得:
∂LP~(w)∂wi=∑x,yP~(x,y)fi(x,y)−∑xP~(x)Pw(y∣x)fi(x,y)\dfrac{\partial L_{\tilde{P}}(w)}{\partial w_i} = \sum_{x,y}\tilde{P}(x,y)f_i\space (x,y) - \sum_{x}\tilde{P}(x)P_w(y|x)f_i\space (x,y)∂wi​∂LP~​(w)​=x,y∑​P~(x,y)fi​ (x,y)−x∑​P~(x)Pw​(y∣x)fi​ (x,y)
令导数等于0得:
∑x,yP~(x,y)fi(x,y)=∑xP~(x)Pw(y∣x)fi(x,y)\sum_{x,y}\tilde{P}(x,y)f_i\space (x,y) = \sum_{x}\tilde{P}(x)P_w(y|x)f_i\space (x,y)x,y∑​P~(x,y)fi​ (x,y)=x∑​P~(x)Pw​(y∣x)fi​ (x,y)
如果模型能够获取训练数据中的信息,上式是一个必然成立的条件,也就是式(9)假设的两个期望相等EP~(f)=EP(f)E_{\tilde{P}}(f) = E_{P}(f)EP~​(f)=EP​(f)。

改进的迭代尺度法(IIS)思路

假设最大熵模型当前的参数向量是w=(w1,w2,…,Wn)Tw = (w_1,w_2,…,W_n)^Tw=(w1​,w2​,…,Wn​)T,我们希望找到一个新的参数向量w+δ=(w1+δ1,w2+δ2,…,wn+δn)Tw +\delta = (w_1 +\delta_1,w_2 +\delta_2,…,w_n +\delta_n)^Tw+δ=(w1​+δ1​,w2​+δ2​,…,wn​+δn​)T,使得模型的对数似然函数值增大。如果能有一种向量的更新方法τ:w→w+δ\space \tau:w\rightarrow w + \delta τ:w→w+δ,那么就可以重复使用这一方法直接找到对数似然函数的最大值。

根据式(24)得:
LP~(w+δ)−LP~(w)=∑x,yP~(x,y)∑i=1n(wi+δi−wi)fi(x,y)−∑xP~(x)lnZw+δ(x)+∑xP~(x)lnZw(x)=∑x,yP~(x,y)∑i=1nδifi(x,y)−∑xP~(x)lnZw+δ(x)zw(x)L_{\tilde{P}}(w + \delta) - L_{\tilde{P}}(w) = \sum_{x,y}\tilde{P}(x,y)\sum_{i=1}^n(w_i + \delta_i - w_i)f_i\space (x,y) - \sum_{x}\tilde{P}(x)lnZ_{w+\delta}(x) + \sum_{x}\tilde{P}(x)lnZ_{w}(x) = \sum_{x,y}\tilde{P}(x,y)\sum_{i=1}^n \delta_i f_i\space (x,y) - \sum_{x}\tilde{P}(x)ln\dfrac{Z_{w+\delta}(x)}{z_w(x)}LP~​(w+δ)−LP~​(w)=x,y∑​P~(x,y)i=1∑n​(wi​+δi​−wi​)fi​ (x,y)−x∑​P~(x)lnZw+δ​(x)+x∑​P~(x)lnZw​(x)=x,y∑​P~(x,y)i=1∑n​δi​fi​ (x,y)−x∑​P~(x)lnzw​(x)Zw+δ​(x)​
利用不等式:−logα≥1−α,(α>0)-log\alpha \geq 1-\alpha,(\alpha>0)−logα≥1−α,(α>0)
LP~(w+δ)−LP~(w)≥∑x,yP~(x,y)∑i=1nδifi(x,y)+∑xP~(x)−∑xP~(x)Zw+δ(x)zw(x)L_{\tilde{P}}(w + \delta) - L_{\tilde{P}}(w) \geq \sum_{x,y}\tilde{P}(x,y)\sum_{i=1}^n \delta_i f_i\space (x,y) + \sum_{x}\tilde{P}(x) - \sum_{x}\tilde{P}(x)\dfrac{Z_{w+\delta}(x)}{z_w(x)}LP~​(w+δ)−LP~​(w)≥x,y∑​P~(x,y)i=1∑n​δi​fi​ (x,y)+x∑​P~(x)−x∑​P~(x)zw​(x)Zw+δ​(x)​
因为∑xP~(x)=1\sum_{x}\tilde{P}(x) = 1∑x​P~(x)=1,则有:
LP~(w+δ)−LP~(w)≥∑x,yP~(x,y)∑i=1nδifi(x,y)+1−∑xP~(x)Zw+δ(x)zw(x)L_{\tilde{P}}(w + \delta) - L_{\tilde{P}}(w) \geq \sum_{x,y}\tilde{P}(x,y)\sum_{i=1}^n \delta_i f_i\space (x,y) + 1 - \sum_{x}\tilde{P}(x)\dfrac{Z_{w+\delta}(x)}{z_w(x)}LP~​(w+δ)−LP~​(w)≥x,y∑​P~(x,y)i=1∑n​δi​fi​ (x,y)+1−x∑​P~(x)zw​(x)Zw+δ​(x)​
又因为:
Zw+δ(x)Zw(x)=1Zw(x)∑yexp(∑i=1n(wi+δi)fi(x,y))=∑y1Zw(x)exp(∑i=1nwifi(x,y))exp(∑i=1nδifi(x,y))=∑yPw(y∣x)exp(∑i=1nδifi(x,y))\dfrac{Z_{w+\delta}(x)}{Z_{w}(x)} = \dfrac{1}{Z_{w}(x)}\sum_y exp(\sum_{i=1}^n(w_i + \delta_i)f_i(x,y)) \\ = \sum_y\dfrac{1}{Z_{w}(x)}exp(\sum_{i=1}^n w_i f_i(x,y))exp(\sum_{i=1}^n \delta_i f_i(x,y))\\ =\sum_y P_w(y|x)exp(\sum_{i=1}^n \delta_i f_i(x,y))Zw​(x)Zw+δ​(x)​=Zw​(x)1​y∑​exp(i=1∑n​(wi​+δi​)fi​(x,y))=y∑​Zw​(x)1​exp(i=1∑n​wi​fi​(x,y))exp(i=1∑n​δi​fi​(x,y))=y∑​Pw​(y∣x)exp(i=1∑n​δi​fi​(x,y))
LP~(w+δ)−LP~(w)≥∑x,yP~(x,y)∑i=1nδifi(x,y)+1−∑xP~(x)∑yPw(y∣x)exp(∑i=1nδifi(x,y))L_{\tilde{P}}(w + \delta) - L_{\tilde{P}}(w) \geq \sum_{x,y}\tilde{P}(x,y)\sum_{i=1}^n \delta_i f_i\space (x,y) + 1 - \sum_{x}\tilde{P}(x)\sum_y P_w(y|x)exp(\sum_{i=1}^n \delta_i f_i(x,y))LP~​(w+δ)−LP~​(w)≥x,y∑​P~(x,y)i=1∑n​δi​fi​ (x,y)+1−x∑​P~(x)y∑​Pw​(y∣x)exp(i=1∑n​δi​fi​(x,y))
将右端记为:
A(δ∣w)=∑x,yP~(x,y)∑i=1nδifi(x,y)+1−∑xP~(x)∑yPw(y∣x)exp(∑i=1nδifi(x,y))(25)A(\delta|w) = \sum_{x,y}\tilde{P}(x,y)\sum_{i=1}^n \delta_i f_i\space (x,y) + 1 - \sum_{x}\tilde{P}(x)\sum_y P_w(y|x)exp(\sum_{i=1}^n \delta_i f_i(x,y))\tag {25}A(δ∣w)=x,y∑​P~(x,y)i=1∑n​δi​fi​ (x,y)+1−x∑​P~(x)y∑​Pw​(y∣x)exp(i=1∑n​δi​fi​(x,y))(25)
LP~(w+δ)−LP~(w)≥A(δ∣w)L_{\tilde{P}}(w + \delta) - L_{\tilde{P}}(w) \geq A(\delta|w)LP~​(w+δ)−LP~​(w)≥A(δ∣w)
如果能找到适当的δ\space \delta δ使下界A(δ∣w)A(\delta|w)A(δ∣w)提高,那么似然函数也会提高,但是A(δ∣w)A(\delta|w)A(δ∣w)是一个n维向量,不易于同时优化。IIS试图一次优化其中一个δi\delta_iδi​,而固定其他δj\delta_jδj​不变。为达到这一目的,并进一步降低下界,IIS引进新的量:
f#(x,y)=∑ifi(x,y)f^\#(x,y) = \sum_i f_i(x,y)f#(x,y)=i∑​fi​(x,y)
因为fi(x,y)f_i(x,y)fi​(x,y)是一个二值函数,f#(x,y)f^\#(x,y)f#(x,y)表示特征(x,y)出现的次数。这样可以重写式(25):
A(δ∣w)=∑x,yP~(x,y)∑i=1nδifi(x,y)+1−∑xP~(x)∑yPw(y∣x)exp(f#(x,y)∑i=1nδifi(x,y)f#(x,y))(26)A(\delta|w) = \sum_{x,y}\tilde{P}(x,y)\sum_{i=1}^n \delta_i f_i\space (x,y) + 1 - \sum_{x}\tilde{P}(x)\sum_y P_w(y|x)exp(\space f^\#(x,y)\sum_{i=1}^n\dfrac{\delta_if_i(x,y)}{f^\#(x,y)})\tag{26}A(δ∣w)=x,y∑​P~(x,y)i=1∑n​δi​fi​ (x,y)+1−x∑​P~(x)y∑​Pw​(y∣x)exp( f#(x,y)i=1∑n​f#(x,y)δi​fi​(x,y)​)(26)
利用指数函数的凸函数性质,且fi(x,y)f#(x,y)≥0\dfrac{f_i(x,y)}{f^\#(x,y)}\geq 0f#(x,y)fi​(x,y)​≥0,使用Jensen不等式:
exp(∑xp(x)q(x))≤∑p(x)exp(q(x))exp(\sum_xp(x)q(x)) \leq \sum p(x)exp (q(x)) exp(x∑​p(x)q(x))≤∑p(x)exp(q(x))
p(x)=fi(x,y)f#(x,y)p(x) = \dfrac{f_i(x,y)}{f^\#(x,y)}p(x)=f#(x,y)fi​(x,y)​,q(x)=δif#(x,y)q(x) = \delta_i f^\#(x,y)q(x)=δi​f#(x,y)则有:
−exp(∑i=1nfi(x,y)f#(x,y)δif#(x,y))≥−∑i=1nfi(x,y)f#(x,y)exp(δif#(x,y))- exp(\sum_{i=1}^n\dfrac{f_i(x,y)}{f^\#(x,y)}\delta_if^\#(x,y)) \geq -\sum_{i=1}^n\dfrac{f_i(x,y)}{f^\#(x,y)}exp(\delta_i f^\#(x,y))−exp(i=1∑n​f#(x,y)fi​(x,y)​δi​f#(x,y))≥−i=1∑n​f#(x,y)fi​(x,y)​exp(δi​f#(x,y))
所以:
A(δ∣w)≥∑x,yP~(x,y)∑i=1nδifi(x,y)+1−∑xP~(x)∑yPw(y∣x)∑i=1n(fi(x,y)f#(x,y))exp(δif#(x,y))A(\delta|w) \geq \sum_{x,y}\tilde{P}(x,y)\sum_{i=1}^n \delta_i f_i\space (x,y) + 1 - \sum_{x}\tilde{P}(x)\sum_y P_w(y|x)\sum_{i=1}^n(\dfrac{f_i(x,y)}{f^\#(x,y)})exp({\delta_i f^\#(x,y)})A(δ∣w)≥x,y∑​P~(x,y)i=1∑n​δi​fi​ (x,y)+1−x∑​P~(x)y∑​Pw​(y∣x)i=1∑n​(f#(x,y)fi​(x,y)​)exp(δi​f#(x,y))
不等式右边记为:
B(δ∣w)=∑x,yP~(x,y)∑i=1nδifi(x,y)+1−∑xP~(x)∑yPw(y∣x)∑i=1n(fi(x,y)f#(x,y))exp(δif#(x,y))B(\delta|w) = \sum_{x,y}\tilde{P}(x,y)\sum_{i=1}^n \delta_i f_i\space (x,y) + 1 - \sum_{x}\tilde{P}(x)\sum_y P_w(y|x)\sum_{i=1}^n(\dfrac{f_i(x,y)}{f^\#(x,y)})exp({\delta_i f^\#(x,y)})B(δ∣w)=x,y∑​P~(x,y)i=1∑n​δi​fi​ (x,y)+1−x∑​P~(x)y∑​Pw​(y∣x)i=1∑n​(f#(x,y)fi​(x,y)​)exp(δi​f#(x,y))
所以:
LP~(w+δ)−LP~(w)≥B(δ∣w)L_{\tilde{P}}(w + \delta) - L_{\tilde{P}}(w) \geq B(\delta|w)LP~​(w+δ)−LP~​(w)≥B(δ∣w)
对于新的下界B(δ∣w)B(\delta|w)B(δ∣w),对δi\delta_iδi​求偏导得:
∂B(δ∣w)∂δi=∑x,yP~(x,y)fi(x,y)−∑xP~(x)∑yPw(y∣x)fi(x,y)exp(δif#(x,y))\dfrac{\partial B(\delta|w)}{\partial \delta_i} = \sum_{x,y}\tilde{P}(x,y)f_i\space (x,y) - \sum_{x}\tilde{P}(x)\sum_y P_w(y|x)f_i\space (x,y)exp(\delta_i f^\#(x,y))∂δi​∂B(δ∣w)​=x,y∑​P~(x,y)fi​ (x,y)−x∑​P~(x)y∑​Pw​(y∣x)fi​ (x,y)exp(δi​f#(x,y))
令导数为0得:
∑xP~(x)∑yPw(y∣x)fi(x,y)exp(δif#(x,y))=∑x,yP~(x,y)fi(x,y)\sum_{x}\tilde{P}(x)\sum_y P_w(y|x)f_i\space (x,y)exp(\delta_i f^\#(x,y)) = \sum_{x,y}\tilde{P}(x,y)f_i\space (x,y) x∑​P~(x)y∑​Pw​(y∣x)fi​ (x,y)exp(δi​f#(x,y))=x,y∑​P~(x,y)fi​ (x,y)
∑xP~(x)∑yPw(y∣x)fi(x,y)exp(δif#(x,y))=EP~(fi)(27)\sum_{x}\tilde{P}(x)\sum_y P_w(y|x)f_i\space (x,y)exp(\delta_i f^{\#}(x,y)) = E_{\tilde{P}}(f_i) \tag{27}x∑​P~(x)y∑​Pw​(y∣x)fi​ (x,y)exp(δi​f#(x,y))=EP~​(fi​)(27)
依次对δi\delta_iδi​求解方程(27)从而求出δ\deltaδ

改进的迭代尺度算法IIS

输入:特征函数f1,f2,…,fnf_1,f_2,…,f_nf1​,f2​,…,fn​,经验分布P~(X,Y)\tilde{P}(X,Y)P~(X,Y),模型Pw(y∣x)P_w(y|x)Pw​(y∣x)

输出:最优参数值wi∗w_i^{*}wi∗​,最优模型Pw∗P_{w^{*}}Pw∗​

(1)对所有i∈{1,2,…,n}i\in \{1,2,…,n\}i∈{1,2,…,n},取初值wi=0w_i = 0wi​=0

(2)对每一i∈{1,2,…,n}i\in \{1,2,…,n\}i∈{1,2,…,n}:

(a) 令δi\delta_iδi​是方程
∑xP~(x)∑yPw(y∣x)fi(x,y)exp(δif#(x,y))=EP~(fi)\sum_{x}\tilde{P}(x)\sum_y P_w(y|x)f_i\space (x,y)exp(\delta_i f^{\#}(x,y)) = E_{\tilde{P}}(f_i)x∑​P~(x)y∑​Pw​(y∣x)fi​ (x,y)exp(δi​f#(x,y))=EP~​(fi​)
的解,这里,
f#(x,y)=∑i=1nfi(x,y)f^\#(x,y) = \sum_{i=1}^n f_i(x,y)f#(x,y)=i=1∑n​fi​(x,y)
(b) 更新wiw_iwi​值:wi←wi+δiw_i \leftarrow w_i + \delta_iwi​←wi​+δi​

(3)如果不是所有的wiw_iwi​都收敛,重复步骤(2)。

这一算法关键一步是(a),即求解方程(27)中的δi\delta_iδi​。如果f#(x,y)f^\#(x,y)f#(x,y)是常数,即对任何x,yx,yx,y,有f#(x,y)=Mf^\#(x,y)=Mf#(x,y)=M,那么δi\delta_iδi​可以显示地表示成
δi=1MlnEP~(fi)EP(fi)(28)\delta_i = \dfrac{1}{M}ln\dfrac{E_{\tilde{P}}(f_i)}{E_P(f_i)}\tag{28}δi​=M1​lnEP​(fi​)EP~​(fi​)​(28)
如果f#(x,y)f^\#(x,y)f#(x,y)不是常数,那么必须通过数值计算求δi\delta_iδi​。简单有效的方法是牛顿法。以g(δi)=0g(\delta_i) = 0g(δi​)=0表示方程(27),牛顿法通过迭代求得δi∗\delta_i^{*}δi∗​,使得δi∗=0\delta_i^{*}=0δi∗​=0,迭代的公式是
δi(k+1)=δi(k)−g(δi(k))g′(δi(k))(29)\delta_i^{(k+1)} = \delta_i^{(k)} - \dfrac{g(\delta_i^{(k)})}{g\prime(\delta_i^{(k)})}\tag{29}δi(k+1)​=δi(k)​−g′(δi(k)​)g(δi(k)​)​(29)
只要适当选取初始值δi(0)\delta_i^{(0)}δi(0)​,由于δi\delta_iδi​的方程(27)有单根,因此牛顿法恒收敛,而且收敛速度很快。

2、拟牛顿法

这一部分有些难度,公式能看懂,要是应用代码实现感觉还是有困难,后面再完善和补充吧!发明这算法的人牛逼。

参考资料:

  • 统计学习方法—李航
  • 改进的迭代尺度算法(IIS)总结

∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗****************************************∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗

未完待续!代码实例

06_LR和最大熵模型_统计学习方法相关推荐

  1. 10_隐马尔科夫模型HMM1_统计学习方法

    文章目录 一.几个基本概念 1.隐马尔可夫模型 2.马尔科夫链 3.随机过程 4.马尔科夫性质 二.隐马尔科夫模型 1.隐马尔科夫模型的引入 2.隐马尔科夫模型定义 3.隐马尔科夫模型的两个假设 4. ...

  2. 10_隐马尔科夫模型HMM2_统计学习方法

    文章目录 四.学习算法 1.监督学习方法 2.非监督学习方法(Baum-Welch算法) 五.预测算法 1.近似算法 2.维特比算法 (1)最优路径特性 (2)两个变量 (3)维特比算法流程 隐马尔科 ...

  3. 最大熵(一)| 最大熵原理+模型 | 《统计学习方法》学习笔记(二十三)

    最大熵模型(maximum entropy model )由最大熵原理推导出来. 1. 最大熵原理 最大熵原理是概率模型学习的一个准则.最大熵原理认为,学习概率模型时,在所有可能的概率模型(分布)中, ...

  4. python朴素贝叶斯分布对数据的要求_统计学习方法与Python实现(三)——朴素贝叶斯法...

    统计学习方法与Python实现(三)--朴素贝叶斯法 1.定义 朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法. 对于给定的训练数据集,首先基于特征条件独立假设学习输入输出的联合概率分布.然 ...

  5. 02_感知机_统计学习方法

    去年花了4个月把吴恩达的深度学习课程学完,在深度学习方面略有了解,但对机器学习方面了解的不多,没有系统性的学习过,朋友推荐了两本书,李航的统计学习方法和周志华的西瓜书,两本超级经典介绍机器学习的教材, ...

  6. hmm 求隐藏序列_统计学习方法--HMM回顾

    HMM可以看做是由隐马尔可夫链随机生成观测序列的过程,属于生成模型. 首先文章先讲述了HMM的基本概念,接着按照概率问题,学习问题和解码问题(也称为预测问题)讲解相关算法. 1 HMM的基本概念 HM ...

  7. 机器学习(李航统计学习方法)

    目录 绪论-资料介绍 绪论-频率派vs贝叶斯派 频率派的观点 贝叶斯派的观点 监督学习与无监督学习 单变量线性回归 模型表示 代价函数 梯度下降 多变量线性回归 多维特征 多变量梯度下降 梯度下降法实 ...

  8. 《统计学习方法》(李航)读书笔记(转)

    <统计学习方法>(李航)读书笔记(转) http://www.cnblogs.com/limitlessun/p/8611103.html#_label4 阅读目录 知识点 感知机 k近邻 ...

  9. 《统计学习方法》(李航)读书笔记(完结)超级火爆的总结

    阅读目录 知识点 感知机 k近邻法 朴素贝叶斯 决策树 logistic回归和最大熵模型 支持向量机 提升方法 EM算法 隐马尔可夫模型(HMM) 统计学习方法总结 神经网络 K-Means Bagg ...

最新文章

  1. Redis 高可用特性之 “持久化” 详解
  2. 环形均分纸牌问题(中位数)
  3. React之事件绑定
  4. linux系统生成的新文件是什么编码的,Linux系统的默认编码怎样设置?
  5. python文件打开的合法方式-用python与文件进行交互的方法
  6. 面试准备每日五题:C++(三)——全局局部变量、内存分配、strcpysprintfmemcpy、函数指针、引用
  7. 解决区块链“去匿名化”的四大方法论!| 原力计划
  8. nhibernate配置教程
  9. MySQL 和 MySQL Workbench图形化安装教程
  10. scala 主构造函数_Scala主构造器和辅助构造器
  11. 凯撒密码c语言实现代码,小写字母后移三位,大写字母前移二位,如abCD转换为DEab,其他字符默认不转换
  12. Unity开发备忘录000020:Unity2019如何切换成中文界面
  13. f(!gotop.length) return false;
  14. EfficientDet实验笔记
  15. 技术支持快递第6 期
  16. 加油站问题的题解与分析——循环队列+合并
  17. Java中正负数二进制表示
  18. Stegano之binwalk、C32Asm
  19. python-opencv基础
  20. 编译php8,Centos编译体验PHP8 Alpha 2

热门文章

  1. (47)LINUX应用编程和网络编程之二Linux文件属性
  2. Qt中图像的显示与基本操作
  3. Java Web项目 配置 ueditor心得
  4. 【python】人机大战
  5. 软件测试(功能、接口、性能、自动化)详解
  6. oracle19c配置scott创建,oracle 19c创建sample schema-HR,OE,SH等等
  7. python交通调查数据处理_python 小型交通调查后的数据处理(数车)
  8. jsp mysql电子档案管理系统_学生档案管理系统的设计与实现(JSP,MySQL)(含录像)
  9. 专为前端开发者准备的15款优秀的Sublime Text插件
  10. 手摸手,一起整理前端小小小知识