前言

在《统计学习方法》第二版的第6章,作者将逻辑斯谛回归与最大熵这两个模型放在一起讲,初看令人困惑。但是看到后面才明白,这是作者为了介绍以似然函数为目标函数的最优化问题的解法。

当一个最优化问题以似然函数作为其目标函数的时候,作者提到三种常用的优化方法,改进的迭代尺度法、梯度下降法以及牛顿法或者拟牛顿法。

作为例子,作者演示了如何将 逻辑斯谛回归问题和最大熵模型 转化为以似然函数为目标函数的最优化问题,并利用上面提到的三种优化方法进行求解。

本文将主要聚焦于 逻辑斯谛回归与最大熵模型 转化为 以似然函数为目标函数的最优化问题的推导过程。

1. 逻辑斯谛回归

1.1 逻辑斯谛分布

假设随机变量 XXX 满足
(1) 分布函数为 P(X≤x)=11+e−x−μλP(X\le x)=\frac{1}{1+e^{-\frac{x-\mu}{\lambda}}}P(X≤x)=1+e−λx−μ​1​

(2) 密度函数为 f(x)=e−x−μλλ(1+e−x−μλ)2f(x)=\frac{e^{-\frac{x-\mu}{\lambda}}}{\lambda\left(1+e^{-\frac{x-\mu}{\lambda}}\right)^2}f(x)=λ(1+e−λx−μ​)2e−λx−μ​​

则称随机变量 XXX 服从一个参数为 (μ,λ)(\mu, \lambda)(μ,λ) 的逻辑斯谛分布。

1.2 逻辑斯谛回归模型

设 x∈Rnx\in \mathbb{R}^nx∈Rn 为输入,y∈{0,1}y\in\{0, 1\}y∈{0,1} 为输出,现在若分类模型 P(Y∣X)P(Y|X)P(Y∣X) 具有如下形式:
P(Y=1∣X=x)=ew⋅x+b1+ew⋅x+bP(Y=1|X=x)=\frac{e^{w\cdot x+b}}{1+e^{w\cdot x+b}}P(Y=1∣X=x)=1+ew⋅x+bew⋅x+b​

P(Y=0∣X=x)=11+ew⋅x+bP(Y=0|X=x)=\frac{1}{1+e^{w\cdot x+b}}P(Y=0∣X=x)=1+ew⋅x+b1​

则称 P(Y∣X)P(Y|X)P(Y∣X) 为逻辑斯谛回归模型。这里,www 为权值,bbb 为偏置。

从形式上可以看出,当令μ=0,λ=1\mu=0, \lambda=1μ=0,λ=1时,逻辑斯谛分布就是逻辑斯谛回归模型。

我们当一件事情的发生概率为 ppp,则这件事的几率定义为 p1−p\frac{p}{1-p}1−pp​。可以看到,Y=1Y=1Y=1 的对数几率为
logP(Y=1∣X=x)1−P(Y=1∣X=x)=w⋅x+blog\frac{P(Y=1|X=x)}{1-P(Y=1|X=x)}=w\cdot x+blog1−P(Y=1∣X=x)P(Y=1∣X=x)​=w⋅x+b

也就是说,输出 Y=1Y=1Y=1 的对数几率为输入 xxx 的线性函数。

1.3 逻辑斯谛回归的似然函数

已知数据 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​)},其中,yi∈{0,1}y_i\in\{0, 1\}yi​∈{0,1}。

记 P(Y=1∣X=x)=p(x)P(Y=1|X=x)=p(x)P(Y=1∣X=x)=p(x),则 P(Y=0∣X=x)=1−p(x)P(Y=0|X=x)=1-p(x)P(Y=0∣X=x)=1−p(x)。因此,似然函数可以写为
L(w,b)=log(Πi=1Np(xi)yi(1−p(xi))1−yi)=∑i=1N(yilogp(xi)+(1−yi)log(1−p(xi)))=∑i=1N(yi(w⋅xi+b)−log(1+ew⋅xi+b))\begin{array}{lll} L(w, b)&=&log\left(\Pi_{i=1}^Np(x_i)^{y_i}(1-p(x_i))^{1-y_i} \right)\\ &=& \sum_{i=1}^N\left(y_ilogp(x_i)+(1-y_i)log(1-p(x_i)) \right)\\ &=&\sum_{i=1}^N\left(y_i(w\cdot x_i+b)-log(1+e^{w\cdot x_i+b})\right) \end{array} L(w,b)​===​log(Πi=1N​p(xi​)yi​(1−p(xi​))1−yi​)∑i=1N​(yi​logp(xi​)+(1−yi​)log(1−p(xi​)))∑i=1N​(yi​(w⋅xi​+b)−log(1+ew⋅xi​+b))​

这里,最优的 (w∗,b∗)(w^*, b^*)(w∗,b∗) 满足
(w∗,b∗)=arg max⁡w,bL(w,b)(w^*, b^*)=\argmax_{w, b}L(w, b)(w∗,b∗)=w,bargmax​L(w,b)

2. 最大熵模型

2.1 熵、条件熵

熵是用来衡量随机变量不确定性程度的量。

熵的定义。设随机变量 XXX 满足 P(X=xi)=piP(X=x_i)=p_iP(X=xi​)=pi​,则随机变量 XXX 的熵 H(X)H(X)H(X) 为
H(X)=−∑i=1Npi⋅log(pi)H(X)=-\sum_{i=1}^Np_i\cdot log(p_i)H(X)=−i=1∑N​pi​⋅log(pi​)

其中,NNN 为随机变量所有可能取值的个数。

条件熵的定义。设P(X,Y)P(X, Y)P(X,Y) 为随机变量 XXX 和 YYY 的联合概率,P(Y∣X)P(Y|X)P(Y∣X) 为条件概率,则条件概率 P(Y∣X)P(Y|X)P(Y∣X) 的熵 H(Y∣X)H(Y|X)H(Y∣X) 为
H(Y∣X)=∑i=1NP(X=xi)H(Y∣X=xi)=∑i=1NP(X=xi)∑j=1MP(Y=yj∣X=xi)logP(Y=yj∣X=xi)=∑i=1N∑j=1MP(X=xi)P(Y=yi∣X=xi)logP(Y=yj∣X=xi)=∑x,yP(X=x)P(Y=y∣X=x)logP(Y=y∣X=x)\begin{array}{lll} H(Y|X)&=&\sum_{i=1}^NP(X=x_i)H(Y|X=x_i)\\ &=&\sum_{i=1}^NP(X=x_i)\sum_{j=1}^MP(Y=y_j|X=x_i)logP(Y=y_j|X=x_i)\\ &=&\sum_{i=1}^N\sum_{j=1}^MP(X=x_i)P(Y=y_i|X=x_i)logP(Y=y_j|X=x_i)\\ &=&\sum_{x, y}P(X=x)P(Y=y|X=x)logP(Y=y|X=x) \end{array} H(Y∣X)​====​∑i=1N​P(X=xi​)H(Y∣X=xi​)∑i=1N​P(X=xi​)∑j=1M​P(Y=yj​∣X=xi​)logP(Y=yj​∣X=xi​)∑i=1N​∑j=1M​P(X=xi​)P(Y=yi​∣X=xi​)logP(Y=yj​∣X=xi​)∑x,y​P(X=x)P(Y=y∣X=x)logP(Y=y∣X=x)​

其中,NNN 和 MMM 分别为 XXX 和 YYY 所有可能取值的个数。

2.2 最大熵原理及一个例子

对于一个随机变量 XXX,它的取值为 {x1,x2,...,xN}\{x_1, x_2, ..., x_N\}{x1​,x2​,...,xN​},如果不知道其他信息,则我们通过最大熵原理来估计 P(X=xi)=piP(X=x_i)=p_iP(X=xi​)=pi​ 的值,是指
(p1,p2,...,pN)=arg max⁡H(X)(p_1, p_2, ..., p_N)=\argmax H(X)(p1​,p2​,...,pN​)=argmaxH(X)

我们选择使得熵最大的数值作为我们估计的概率。

这样,我们有优化问题
max⁡H(X)=−∑i=1Npilog(pi)s.t.∑i=1Npi=1pi≥0,i=1,2,...,N\begin{array}{cll} &\max& H(X)=-\sum_{i=1}^Np_ilog(p_i)\\ &s.t.& \sum_{i=1}^Np_i=1\\ &&p_i\ge 0, i=1, 2, ..., N \end{array} ​maxs.t.​H(X)=−∑i=1N​pi​log(pi​)∑i=1N​pi​=1pi​≥0,i=1,2,...,N​

由 ∑i=1Npi=1\sum_{i=1}^Np_i=1∑i=1N​pi​=1 可知,pN=1−∑i=1N−1pip_N=1-\sum_{i=1}^{N-1}p_ipN​=1−∑i=1N−1​pi​,将 pNp_NpN​ 代入 H(X)H(X)H(X),我们有
H(X)=−∑i=1N−1pilog(pi)−(1−∑i=1N−1pi)log(1−∑i=1N−1pi)H(X)=-\sum_{i=1}^{N-1}p_ilog(p_i)-(1-\sum_{i=1}^{N-1}p_i)log(1-\sum_{i=1}^{N-1}p_i)H(X)=−i=1∑N−1​pi​log(pi​)−(1−i=1∑N−1​pi​)log(1−i=1∑N−1​pi​)

为了求最大值,我们对 pi,i=1,2,...,N−1p_i, i=1, 2, ..., N-1pi​,i=1,2,...,N−1 分别求导,有
∂H(X)∂pi=log(1−∑i=1N−1pi)−log(pi)\frac{\partial H(X)}{\partial p_i}=log(1-\sum_{i=1}^{N-1}p_i)-log(p_i) ∂pi​∂H(X)​=log(1−i=1∑N−1​pi​)−log(pi​)

令 ∂H(X)∂pi=0\frac{\partial H(X)}{\partial p_i}=0∂pi​∂H(X)​=0,得 pi=1−∑i=1N−1pip_i=1-\sum_{i=1}^{N-1}p_ipi​=1−∑i=1N−1​pi​,考虑到 1−∑i=1N−1pi=pN1-\sum_{i=1}^{N-1}p_i=p_N1−∑i=1N−1​pi​=pN​,因此,对于任意的 i=1,2,...,N−1i=1, 2, ..., N-1i=1,2,...,N−1,我们恒有
pi=pNp_i=p_Npi​=pN​

由于 ∑i=1Npi=1\sum_{i=1}^{N}p_i=1∑i=1N​pi​=1, 因此,对于任何 i=1,2,...,Ni=1, 2, ..., Ni=1,2,...,N,我们有 pi=1Np_i=\frac{1}{N}pi​=N1​

2.3 最大熵问题

现在,我们有随机变量 XXX 和 YYY,以及由它们生成的数据 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(Y∣X)P(Y|X)P(Y∣X)?

  • 经验分布:根据数据集 TTT,我们可以获得 联合分布 P(X,Y)P(X, Y)P(X,Y) 和边缘分布 P(X)P(X)P(X) 的经验分布,即 P~(X=x,Y=y)=ν(X=x,Y=y)N\widetilde{P}(X=x, Y=y)=\frac{\nu(X=x, Y=y)}{N}P(X=x,Y=y)=Nν(X=x,Y=y)​ P~(X=x)=ν(X=x)N\widetilde{P}(X=x)=\frac{\nu(X=x)}{N}P(X=x)=Nν(X=x)​

其中,ν(X=x,Y=y)\nu(X=x, Y=y)ν(X=x,Y=y) 为样本 (x,y)(x, y)(x,y) 在数据集 TTT 中的个数,当 (x,y)∉T(x, y)\notin T(x,y)∈/​T时,ν(X=x,Y=y)=0\nu(X=x, Y=y)=0ν(X=x,Y=y)=0。

  • 特征函数 f(x,y)f(x, y)f(x,y):这里可以理解为关于随机变量 XXX 和 YYY 的约束条件,形式化为一个二值函数,具体为
    f(x,y)={1,x与y满足某一约束0,x与y不满足该约束f(x, y)=\left\{ \begin{array}{lll} 1, && x与y满足某一约束\\ 0, && x与y不满足该约束 \end{array}\right. f(x,y)={1,0,​​x与y满足某一约束x与y不满足该约束​

这样约束可以为 (x,y)∈T(x, y)\in T(x,y)∈T,或者 (x,y)=(xi,yi)(x, y)=(x_i, y_i)(x,y)=(xi​,yi​)等等。

  • 特征函数 f(x,y)f(x, y)f(x,y) 关于分布的两个经验期望值:
    EP~(f)=∑x,yP~(x,y)f(x,y)E_{\widetilde{P}}(f)=\sum_{x, y}\widetilde{P}(x, y)f(x, y)EP​(f)=x,y∑​P(x,y)f(x,y)

EP(f)=∑x,yP~(x)P(y∣x)f(x,y)E_{P}(f)=\sum_{x, y}\widetilde{P}(x)P(y|x)f(x, y)EP​(f)=x,y∑​P(x)P(y∣x)f(x,y)

我们期望这两个经验期望值相等,在某种意义上,这意味着 P~(x)P(y∣x)=P~(x,y)\widetilde{P}(x)P(y|x)=\widetilde{P}(x, y)P(x)P(y∣x)=P(x,y)

这样,P(y∣x)P(y|x)P(y∣x) 就可以被定义出来。当然,实际上式并不成立。

我们可以给出很多的特征函数 fi(x,y),i=1,2,...,nf_i(x, y), i=1, 2, ..., nfi​(x,y),i=1,2,...,n,它们构成的约束条件为
EP~(fi)=EP(fi),i=1,2,...,nE_{\widetilde{P}}(f_i)=E_{P}(f_i), i=1, 2, ..., nEP​(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}\widetilde{P}(x)P(y|x)logP(y|x)H(P)=−x,y∑​P(x)P(y∣x)logP(y∣x)

下面,我们将给出最大熵问题。
max⁡H(P)=−∑x,yP~(x)P(y∣x)logP(y∣x)s.t.EP~(fi)=EP(fi),i=1,2,...,n∑yP(y∣x)=1\begin{array}{lll} &\max& H(P)=-\sum_{x,y}\widetilde{P}(x)P(y|x)logP(y|x)\\ &s.t.& E_{\widetilde{P}}(f_i)=E_{P}(f_i), i=1, 2, ..., n\\ && \sum_{y}P(y|x)=1 \end{array} ​maxs.t.​H(P)=−∑x,y​P(x)P(y∣x)logP(y∣x)EP​(fi​)=EP​(fi​),i=1,2,...,n∑y​P(y∣x)=1​

通过拉格朗日方法,我们可以将有约束的原始问题转为为无约束的对偶问题。根据库恩塔克定理,只要 H(P)H(P)H(P) 是凹函数,原始问题与对偶问题等价。而要判断 H(P)H(P)H(P) 是凹函数,我们需要判断 H(P)H(P)H(P) 的Hessian矩阵是否为负定的。

我们假设 XXX 的取值为{x1,x2,...,xN}\{x_1, x_2, ..., x_N\}{x1​,x2​,...,xN​},YYY 的取值为 {y1,y2,...,yM}\{y_1, y_2, ..., y_M\}{y1​,y2​,...,yM​}。进一步,我们记 P(Y=yj∣X=xi)=pjiP(Y=y_j|X=x_i)=p_{ji}P(Y=yj​∣X=xi​)=pji​。因此,H(P)H(P)H(P) 作为 (p11,p21,...,pM−1,1,p12,p22,...,pM−1,2,...,p1N,p2N,...,pM−1,N)(p_{11}, p_{21}, ..., p_{M-1,1}, p_{12}, p_{22}, ..., p_{M-1,2}, ..., p_{1N}, p_{2N}, ..., p_{M-1,N})(p11​,p21​,...,pM−1,1​,p12​,p22​,...,pM−1,2​,...,p1N​,p2N​,...,pM−1,N​) 的函数,可以重写为
H(P)=−∑i=1N∑j=1MP~(xi)pjilog(pji)=−∑i=1NP~(xi)∑j=1Mpjilog(pji)=−∑i=1NP~(xi)(∑jM−1pjilog(pji)+(1−∑jM−1pji)log(1−∑jM−1pji))\begin{array}{lll} H(P)&=&-\sum_{i=1}^N\sum_{j=1}^M\widetilde{P}(x_i)p_{ji}log(p_{ji})\\ &=&-\sum_{i=1}^N\widetilde{P}(x_i)\sum_{j=1}^Mp_{ji}log(p_{ji})\\ &=&-\sum_{i=1}^N\widetilde{P}(x_i)\left(\sum_j^{M-1}p_{ji}log(p_{ji})+(1-\sum_j^{M-1}p_{ji})log(1-\sum_j^{M-1}p_{ji})\right) \end{array}H(P)​===​−∑i=1N​∑j=1M​P(xi​)pji​log(pji​)−∑i=1N​P(xi​)∑j=1M​pji​log(pji​)−∑i=1N​P(xi​)(∑jM−1​pji​log(pji​)+(1−∑jM−1​pji​)log(1−∑jM−1​pji​))​

第三个等式成立是因为 ∑j=1Mpji=1\sum_{j=1}^Mp_{ji}=1∑j=1M​pji​=1。

可以直接求导,得到
∂2H(P)∂pji∂plk={−1pji−1pMiif(i,j)=(k,l)−1pMiif(i,j)≠(k,l)\frac{\partial^2H(P)}{\partial p_{ji}\partial p_{lk}}=\left\{ \begin{array}{lll} -\frac{1}{p_{ji}}-\frac{1}{p_{Mi}} &if & (i, j) =(k,l)\\ -\frac{1}{p_{Mi}} &if& (i, j) \not=(k,l) \end{array}\right. ∂pji​∂plk​∂2H(P)​={−pji​1​−pMi​1​−pMi​1​​ifif​(i,j)=(k,l)(i,j)​=(k,l)​

可以证明H(P)H(P)H(P)的Hessian矩阵是负定的,从而也就说明了原始问题与对偶问题的等价性。

为了写着方便,我们将原始问题重新写成

min⁡−H(P)=∑i=1N∑j=1MP~(xi)pjilog(pji)s.t.EP~(fi)=EP(fi),i=1,2,...,n∑j=1Mpji=1\begin{array}{lll} &\min& -H(P)=\sum_{i=1}^{N}\sum_{j=1}^M\widetilde{P}(x_i)p_{ji}log(p_{ji})\\ &s.t.& E_{\widetilde{P}}(f_i)=E_{P}(f_i), i=1, 2, ..., n\\ && \sum_{j=1}^Mp_{ji}=1 \end{array} ​mins.t.​−H(P)=∑i=1N​∑j=1M​P(xi​)pji​log(pji​)EP​(fi​)=EP​(fi​),i=1,2,...,n∑j=1M​pji​=1​

根据拉格朗日方法,我们写出拉格朗日函数
L(pji,w)=−H(P)+w0(1−∑j=1Mpji)+∑k=1nwk(EP~(fk)−EP(fk))=∑i=1N∑j=1MP~(xi)pjilog(pji)+w0(1−∑j=1Mpji)+∑k=1nwk(∑i,jfk(xi,yj)(P~(xi,yj)−P~(xi)pji))\begin{array}{lll} L(p_{ji}, w)&=&-H(P)+w_0(1-\sum_{j=1}^Mp_{ji})+\sum_{k=1}^nw_k\left(E_{\widetilde{P}}(f_k)-E_{P}(f_k)\right)\\ &=&\sum_{i=1}^{N}\sum_{j=1}^M\widetilde{P}(x_i)p_{ji}log(p_{ji})+w_0(1-\sum_{j=1}^Mp_{ji})+\sum_{k=1}^nw_k\left(\sum_{i,j}f_k(x_i, y_j)(\widetilde{P}(x_i, y_j)-\widetilde{P}(x_i)p_{ji})\right) \end{array} L(pji​,w)​==​−H(P)+w0​(1−∑j=1M​pji​)+∑k=1n​wk​(EP​(fk​)−EP​(fk​))∑i=1N​∑j=1M​P(xi​)pji​log(pji​)+w0​(1−∑j=1M​pji​)+∑k=1n​wk​(∑i,j​fk​(xi​,yj​)(P(xi​,yj​)−P(xi​)pji​))​

则原问题为 min⁡P∈Pmax⁡wL(pji,w)\min_{P\in\mathcal{P}}\max_{w}L(p_{ji}, w)P∈Pmin​wmax​L(pji​,w)
而对偶问题为 max⁡wmin⁡P∈PL(pji,w)\max_{w}\min_{P\in\mathcal{P}}L(p_{ji}, w)wmax​P∈Pmin​L(pji​,w)

我们可以先对对偶问题进行求解。给定 www,计算 min⁡P∈PL(pji,w)\min_{P\in\mathcal{P}}L(p_{ji}, w)minP∈P​L(pji​,w)。我们对 L(pji,w)L(p_{ji}, w)L(pji​,w) 关于 pjip_{ji}pji​ 求导,有
∂L(pji,w)∂pji=P~(xi)(1+log(pji))−w0−P~(xi)∑k=1nwkfk(xi,yj)\begin{array}{lll} \frac{\partial L(p_{ji}, w)}{\partial p_{ji}}&=&\widetilde{P}(x_i)(1+log(p_{ji}))-w_0-\widetilde{P}(x_i)\sum_{k=1}^nw_kf_k(x_i, y_j) \end{array} ∂pji​∂L(pji​,w)​​=​P(xi​)(1+log(pji​))−w0​−P(xi​)∑k=1n​wk​fk​(xi​,yj​)​

令 ∂L(pji,w)∂pji=0\frac{\partial L(p_{ji}, w)}{\partial p_{ji}}=0∂pji​∂L(pji​,w)​=0,有
pji=e∑k=1nwkfk(xi,yj)e1−w0P~(xi)p_{ji}=\frac{e^{\sum_{k=1}^nw_kf_k(x_i, y_j)}}{e^{1-\frac{w_0}{\widetilde{P}(x_i)}}}pji​=e1−P(xi​)w0​​e∑k=1n​wk​fk​(xi​,yj​)​

由于 ∑j=1Mpji=1\sum_{j=1}^Mp_{ji}=1∑j=1M​pji​=1,所以 e1−w0P~(xi)=∑j=1Me∑k=1nwkfk(xi,yj)e^{1-\frac{w_0}{\widetilde{P}(x_i)}}=\sum_{j=1}^Me^{\sum_{k=1}^nw_kf_k(x_i, y_j)}e1−P(xi​)w0​​=j=1∑M​e∑k=1n​wk​fk​(xi​,yj​)

因此,我们有
pji(w)=e∑k=1nwkfk(xi,yj)∑j=1Me∑k=1nwkfk(xi,yj)p_{ji}(w)=\frac{e^{\sum_{k=1}^nw_kf_k(x_i, y_j)}}{\sum_{j=1}^Me^{\sum_{k=1}^nw_kf_k(x_i, y_j)}}pji​(w)=∑j=1M​e∑k=1n​wk​fk​(xi​,yj​)e∑k=1n​wk​fk​(xi​,yj​)​

之后,我们将 pji(w)p_{ji}(w)pji​(w) 代入对偶问题,继续关于 www 做优化,即,
max⁡wL(pji(w),w)\max_{w}L(p_{ji}(w), w)wmax​L(pji​(w),w)

只要将 www 求出来,对偶问题便得到解决,等价于原始问题解决,也就意味着最大熵模型已经学习完毕。

2.4 对偶函数的极大化与最大熵模型的似然估计

我们将 pjip_{ji}pji​ 重写为 pji(w)=e∑k=1nwkfk(xi,yj)Zw(xi)p_{ji}(w)=\frac{e^{\sum_{k=1}^nw_kf_k(x_i, y_j)}}{Z_w(x_i)}pji​(w)=Zw​(xi​)e∑k=1n​wk​fk​(xi​,yj​)​

其中,Zw(xi)=∑j=1Me∑k=1nwkfk(xi,yj)Z_w(x_i)=\sum_{j=1}^Me^{\sum_{k=1}^nw_kf_k(x_i, y_j)}Zw​(xi​)=∑j=1M​e∑k=1n​wk​fk​(xi​,yj​)。

这样,对偶函数为
L(pji(w),w)=∑i,jP~(xi)pji(w)log(pji(w))+∑k=1nwk∑i,j(fk(xi,yj)(P~(xi,yj)−P~(xi)pji(w)))=∑i,jP~(xi,yj)∑k=1nwkfk(xi,yj)+∑i,jP~(xi)pji(w)(log(pji(w))−∑k=1nwkfk(xi,yj))=∑i,jP~(xi,yj)∑k=1nwkfk(xi,yj)−∑i,jP~(xi)pji(w)logZw(xi)=∑i,jP~(xi,yj)∑k=1nwkfk(xi,yj)−∑iP~(xi)logZw(xi)\begin{array}{lll} L(p_{ji}(w), w)&=&\sum_{i,j}\widetilde{P}(x_i)p_{ji}(w)log(p_{ji}(w))+\sum_{k=1}^nw_k\sum_{i,j}\left(f_k(x_i, y_j)(\widetilde{P}(x_i, y_j)-\widetilde{P}(x_i)p_{ji}(w))\right)\\ &=&\sum_{i, j}\widetilde{P}(x_i, y_j)\sum_{k=1}^nw_kf_k(x_i, y_j)+\sum_{i, j}\widetilde{P}(x_i)p_{ji}(w)\left(log(p_{ji}(w))-\sum_{k=1}^nw_kf_k(x_i, y_j)\right)\\ &=&\sum_{i, j}\widetilde{P}(x_i, y_j)\sum_{k=1}^nw_kf_k(x_i, y_j)-\sum_{i, j}\widetilde{P}(x_i)p_{ji}(w)logZ_w(x_i)\\ &=&\sum_{i, j}\widetilde{P}(x_i, y_j)\sum_{k=1}^nw_kf_k(x_i, y_j)-\sum_{i}\widetilde{P}(x_i)logZ_w(x_i) \end{array} L(pji​(w),w)​====​∑i,j​P(xi​)pji​(w)log(pji​(w))+∑k=1n​wk​∑i,j​(fk​(xi​,yj​)(P(xi​,yj​)−P(xi​)pji​(w)))∑i,j​P(xi​,yj​)∑k=1n​wk​fk​(xi​,yj​)+∑i,j​P(xi​)pji​(w)(log(pji​(w))−∑k=1n​wk​fk​(xi​,yj​))∑i,j​P(xi​,yj​)∑k=1n​wk​fk​(xi​,yj​)−∑i,j​P(xi​)pji​(w)logZw​(xi​)∑i,j​P(xi​,yj​)∑k=1n​wk​fk​(xi​,yj​)−∑i​P(xi​)logZw​(xi​)​

与此同时,对于最大熵模型 P(Y=yj∣X=xi)=pjiP(Y=y_j|X=x_i)=p_{ji}P(Y=yj​∣X=xi​)=pji​,我们可以写出似然函数
L(pji)=logΠi,jpji∣T∣⋅P~(X=xi,Y=yi)=∣T∣⋅∑i,jP~(xi,yj)log(pji(w))=∣T∣⋅(∑i,jP~(xi,yj)∑k=1nwkfk(xi,yj)−∑iP~(xi)logZw(xi))\begin{array}{lll} L(p_{ji})&=&log\Pi_{i, j}p_{ji}^{|T|\cdot\widetilde{P}(X=x_i, Y=y_i)}\\ &=&|T|\cdot\sum_{i, j}\widetilde{P}(x_i, y_j)log(p_{ji}(w))\\ &=&|T|\cdot\left(\sum_{i, j}\widetilde{P}(x_i, y_j)\sum_{k=1}^nw_kf_k(x_i, y_j)-\sum_{i}\widetilde{P}(x_i)logZ_w(x_i)\right) \end{array} L(pji​)​===​logΠi,j​pji∣T∣⋅P(X=xi​,Y=yi​)​∣T∣⋅∑i,j​P(xi​,yj​)log(pji​(w))∣T∣⋅(∑i,j​P(xi​,yj​)∑k=1n​wk​fk​(xi​,yj​)−∑i​P(xi​)logZw​(xi​))​

观察 L(pji)L(p_{ji})L(pji​) 和 L(pji(w),w)L(p_{ji}(w), w)L(pji​(w),w),发现它们只有常数因子不同,因此,对于它们的优化而言是等价的。因此,最大熵模型的极大似然估计与对偶问题的最优化是等价的。

实际上,观察 L(pji)L(p_{ji})L(pji​) 的形式,与逻辑斯谛回归的似然函数是非常类似的。对于这种类似的目标函数,作者提出可以用 迭代尺度法、梯度下降法和牛顿法或者拟牛顿法予以解决。

后面如果允许,将依次介绍这三种方法,以及他们在这两个模型上应用。

《统计学习方法》—— 逻辑斯谛回归 与 最大熵模型 的介绍以及详细推导相关推荐

  1. 复习06统计学习方法(Logistic回归与最大熵模型)---图片版

  2. 机器学习理论《统计学习方法》学习笔记:第六章 逻辑斯谛回归与最大熵模型

    机器学习理论<统计学习方法>学习笔记:第六章 逻辑斯谛回归与最大熵模型 6 逻辑斯谛回归与最大熵模型 6.1 逻辑斯谛回归模型 6.1.1 逻辑斯谛分布 6.1.2 二项逻辑斯蒂回归模型 ...

  3. 最大熵阈值python_李航统计学习方法(六)----逻辑斯谛回归与最大熵模型

    本文希望通过<统计学习方法>第六章的学习,由表及里地系统学习最大熵模型.文中使用Python实现了逻辑斯谛回归模型的3种梯度下降最优化算法,并制作了可视化动画.针对最大熵,提供一份简明的G ...

  4. logit模型应用实例_第六章 逻辑斯谛回归与最大熵模型(第1节 逻辑斯谛回归模型)...

    逻辑斯谛回归(logistic regression)是经典的分类方法. 最大熵是概率模型学习的一个准则,将其推广到分类问题得到最大熵模型(maximum entropy model). 逻辑斯谛回归 ...

  5. python 高斯烟羽模型_GPR(高斯过程回归)详细推导

    GPR(高斯过程回归)详细推导 一.综述 GPR来源于线性模型,有两种方式可以推导出GPR,一种是weight space view,另外一种是function space view.两者考察方式假设 ...

  6. 李航-统计学习方法-笔记-1:概论

    写在前面 本系列笔记主要记录<统计学习方法>中7种常用的机器学习分类算法,包括感知机,KNN,朴素贝叶斯,决策树,逻辑斯谛回归与最大熵模型,SVM,boosting. 课本还涉及到3种算法 ...

  7. 机器学习初学者手抄本:数学基础、机器学习经典算法、统计学习方法等

    机器学习怎么学?当然是系统地学习了.没有时间这么办呢?利用碎片时间学习!很多人一天要花 2 个小时通勤,通勤路上有很多时间看手机.于是我把一些机器学习的基础知识做成了在线的机器学习手册,只需打开微信收 ...

  8. 复现经典:《统计学习方法》第12章 监督学习方法总结

    第 12 章 监督学习方法总结 本文是李航老师的<统计学习方法>一书的代码复现.作者:黄海广 备注:代码都可以在github中下载.我将陆续将代码发布在公众号"机器学习初学者&q ...

  9. 数学基础、机器学习经典算法、统计学习方法,这份机器学习在线手册来帮你...

    机器学习怎么学?当然是系统地学习了.没有时间这么办呢?利用碎片时间学习!很多人一天要花 2 个小时通勤,通勤路上有很多时间看手机.于是我把一些机器学习的基础知识做成了在线的机器学习手册,只需打开微信收 ...

最新文章

  1. Keepalived中Master和Backup角色选举策略
  2. ubuntu mysql 驱动_怎么在Ubuntu下为MySQL添加ODBC驱动?
  3. poj2826 An Easy Problem?!(计算几何)
  4. c语言重新进入for循环,大佬们帮帮忙 帮我改改 怎样能在输入Y后 再次进行for循环...
  5. AngularJS(1)——入门学习
  6. 【转】Windows版本,OS内核版本,Windows SDK之间的关系
  7. ubuntu搭建nodejs生产环境——快速部署手册
  8. [6] ADB 文件管理
  9. 深度学习三十年创新路
  10. 华为网络技术大赛笔记——数据库基础原理
  11. vs2005 无法启动调试 绑定句柄无效的解决
  12. cad2012打开后闪退_【电脑安装好cad一打开闪退】cad安装完打开闪退_cad2012打开闪退...
  13. 2021 年 VS Code 主题推荐
  14. linux打开db文件,我如何打开. db 文件?
  15. Linux systemd启动流程
  16. 云班课python答案_云班课 答案 脚本
  17. 嵌入式未来趋势是什么?
  18. GDAL C++ API 学习之路 (1)Driver篇 代码示例 翻译 自学
  19. 【嵌入式】网络编程_pthread_fork
  20. Windows下VMware准备IOS开发环境

热门文章

  1. javascript 保存原函数_前端工程师必须掌握的几个JavaScript设计模式及场景应用
  2. python argparse 简明教程
  3. Java使用代理服务器
  4. Uncaught Error: Bootstrap tooltips require Tether (http://github.hubspot.com/tether/)
  5. 敏捷开发团队管理系列之五:大型研发团队的切分(刚参加3.17 MDP团队管理场次的读者请看)...
  6. (IStool)判断系统位数并打包不同的文件
  7. duliu——思维+线段树
  8. React子组件怎么改变父组件的state
  9. 【学习随笔】iquery初涉
  10. 观察者(Observer)模式