Logistic回归与最大熵模型 理论推导

1,971 阅读4分钟

logistics与最大熵思维导图.png

1. logistics 回归模型

logistics模型

1.1 logistics模型构建

对于数据集T=\{(x_1,y_1),...,(x_N,y_N)\}有 Logistics模型的基本思想也是线性回归,其公式为:

\begin{align}
h_w(x_i) =\frac{e^{w·x_i}} {1+e^{w·x_i}} \tag{1.1}
\end{align}

公式(1.1)被称为sigmoid函数,一般来说,若h_w(x_i)>0.5则分类判定为1,否则为0。

1.2 估计参数\theta

P(Y=1|x)=\pi(x),P(Y=0|x)=1-\pi(x),则似然函数为:

\begin{align}
L(w) =&\prod_{i=1}^{N}[\pi(x_i)]^{y_i}[1-\pi(x_i)]^{1-y_i} \tag{1.2} \\
log L(w) =&\sum_{i=1}^{N}[y_i({w}·x_i) - log(1+exp({w}·x_i))] \tag{1.3}
\end{align}

目标是找到w使得L(w)达到最大值,一般使用梯度上升

2. 最大熵模型

2.1 最大熵原理

首先要明确两个问题:

  • 熵最大有什么意义吗? 我们之前提过信息熵表示不确定程度,所以熵最大,也就是系统的不确定程度最大,系统中没有任何个人的主观假设。
  • 最大熵是什么? 当你要猜一个概率分布时,如果你对这个分布一无所知,那就猜熵最大的均匀分布,如果你对这个分布知道一些情况,那么,就猜满足这些情况的熵最大的分布。

下面两个网址是描述的比较清楚的:

2.2 最大熵模型

看完《机器学习面试之最大熵模型》之后,我的理解:

假设有一个样本空间为N的数据集,共有m个特征,为\boldsymbol{x}=[x_1, x_2, ..., x_m],类标签为\boldsymbol{y}=[y_1, y_2,..,y_k],我们的目标是求P(y|x),那么,根据样本空间中的N条数据,可以计算出\widetilde{P}(x)\widetilde{P}(x,y)(因为是根据已知数据求出来的,并不能代表真实世界中的分布,所以上面加了波浪线),然后,定义了一个函数:

特征f是指x与y之间存在的某种特定的关系

“如果x,y满足某种条件”,这句话一开始让我摸不着头脑,后来才明白,可以把它看成,x,y这种组合若出现在样本空间中,则为1,否则为0。它们的个数为n个。

小资的AI课堂-最大熵模型

这样的话,就可以算f(x,y)的期望了:

  • 特征函数f(x,y)关于\widetilde{P}(x,y)的期望值为:
E_{\widetilde{P}}(f)=\sum_{x,y} \widetilde{P}(x,y)f(x,y) \tag{2.1}

由于我们的目标是求P(y|x),那么,借助贝叶斯公式,我们可以得出第二个期望的计算公式:

E_{P}(f)=\sum_{x,y} \widetilde{P}(x)P(y|x)f(x,y) \tag{2.2}

如果,这俩公式能相等的话,就十分完美了(注意,这里要把\sum_{x,y} \widetilde{P}(x,y)f(x,y)看成是\sum_{x,y} \widetilde{P}(x)P(y|x)f(x,y)的约束条件),于是有:

\sum_{x,y} \widetilde{P}(x,y)f(x,y)=\sum_{x,y} \widetilde{P}(x)P(y|x)f(x,y) \tag{2.3}

根据f(x,y)的定义可知,有多少种特征和类标签前的组合,就有多少个约束条件:f(x,y)。那么,把样本空间中的所有约束条件都算上,

又因为,条件熵为:(为什么请看这里:《决策树【python实现】》— 条件熵

H(P) = -\sum_{x,y} \widetilde{P}(x)P(y|x)logP(y|x) \tag{2.4}

那么,也就是说,我们要在这个空间中找一个“没有任何主观假设的模型”,即条件概率的最大熵。

2.3 最大熵模型的目标函数

找出了约束最优化问题, 下面来求解一下。

1. 把求max的问题转化成求min的问题。要求
\underset{p \in C}{max}\ H(P) = -\sum_{x,y} \widetilde{P}(x)P(y|x)logP(y|x)

等价于求

\underset{p \in C}{min}\ -H(P) = \sum_{x,y} \widetilde{P}(x)P(y|x)logP(y|x)\tag{2.5}

引入拉格朗日算子w_1,w_2,...,w_n,可得到方程:

\begin{align}
L(P, w) &= -H(P) + w_0(1-\sum_{y}P(y|x)) + \sum_{i=1}^{n}[w_i (E_P(f_i(x,y))-E_{ \widetilde{P}}(f_i(x,y)))] \tag{2.6}\\
&= \sum_{x,y} \widetilde{P}(x)P(y|x)logP(y|x) + w_0[1-\sum_{y}P(y|x)] + \sum_{i=1}^{n} \{ w_i [\sum_{x,y }P(x,y)f_i(x,y) - \sum_{x,y }\widetilde{P}(x)P(y|x)f_i(x,y)] \}\tag{2.7}
\end{align}
2. 由最优化问题可知,我们的目标是求:
\begin{align}
\underset{p \in C}{min}\ \underset{w}{max}\ L(P,w)\tag{2.8-1}
\end{align}
对偶问题
\begin{align}
\underset{w}{max}\ \underset{p \in C}{min}\ L(P,w)\tag{2.8-2}
\end{align}

基本思想是:先把\underset{p \in C}{min}\ L(P,w)的解用w表示出来,然后再求w的解即可。

a.先求\underset{p \in C}{min}\ L(P,w)

L(P,w)满足约束条件时,令

\psi(w) = \underset{p \in C}{min}\ L(P,w) = L(P_w,w) \tag{2.9}

\psi(w)的解为P_w(y|x),求L(P,w)P(y|x)的偏导数,并令其为0:

\begin{align}
\frac{\partial {L(P, w)}}{\partial{p(y|x)}} &= \sum_{x,y} \{ \widetilde{P}(x)logP(y|x) + \widetilde{P}(x)\} - \sum_{y}w_0 + \sum_{i=1}^{n} \{ w_i [0 - \sum_{x,y }\widetilde{P}(x)f_i(x,y) ] \} \\
&= \sum_{x,y}\widetilde{P}(x) ( logP(y|x) + 1) - \sum_{x,y}\widetilde{P}(x)w_0 - \sum_{i=1}^{n} \{ w_i \sum_{x,y }\widetilde{P}(x)f_i(x,y) \} \\
&= \sum_{x,y}\widetilde{P}(x) ( logP(y|x) + 1) - \sum_{x,y}\widetilde{P}(x)w_0 - \sum_{i=1}^{n} \{ w_i \sum_{x,y }\widetilde{P}(x)f_i(x,y) \} \\
&= \sum_{x,y}\widetilde{P}(x) \{( logP(y|x) + 1) - w_0 - \sum_{i=1}^{n} w_i f_i(x,y) \}\tag{2.10}
\end{align}

令式(2.10)为0,则有:

\begin{align}
0 =& \sum_{x,y}\widetilde{P}(x) \{( logP(y|x) + 1) - w_0 - \sum_{i=1}^{n} w_i f_i(x,y)\} \\
p(y|x) =& exp ( w_0 + \sum_{i=1}^{n} w_i f_i(x,y)-1 ) \\
p(y|x) =& \frac{exp (\sum_{i=1}^{n} w_i f_i(x,y))} {exp ( w_0 -1) }\tag{2.11}
\end{align}

又因\sum_{y}p(y|x)=1,代入公式(2.11),则有:

\begin{align}
1 =& \sum_{y} \frac{exp (\sum_{i=1}^{n} w_i f_i(x,y))} {exp ( w_0 -1) } \\
exp ( w_0 -1) =& \sum_{y} exp (\sum_{i=1}^{n} w_i f_i(x,y))\tag{2.12}
\end{align}

令(2.12)为Z_w(x),代入(2.11),结果记为p_w(y|x),则有

\begin{align}
p_w(y|x) =& \frac{exp (\sum_{i=1}^{n} w_i f_i(x,y))} {\sum_{y} exp (\sum_{i=1}^{n} w_i f_i(x,y))}\tag{2.13}
\end{align}

因此,优化目标\psi(x)的解为公式(2.13),其中Z_w(x)被称为规范化因子

b. 再使(2.13)极大化,求w

即求

\begin{align}
\underset{w}{max}\ \psi(w) \tag{2.14}
\end{align}

在公式(2.6)中,因为p_w(y|x)是在\sum_y p(y|x)=1的条件下得出,故而有:

\begin{align}
L(P_w, w) &= -H(P_w) + \sum_{i=1}^{n} [w_i (E_{\widetilde{P}} (f_i(x,y)) - E_{P_w}(f_i(x,y)))] \\
&=\sum_{x,y} \widetilde{P}(x) P_w(y|x) log P_w(y|x) +  \sum_{i=1}^{n} w_i (E_\widetilde{P} (f_i(x,y)) - \sum_{x,y}\widetilde{P}(x)·P_w(y|x)·f_i(x,y)) \\
&= \sum_{i=1}^{n}w_i ·E_{\widetilde{P}}(f_i(x,y)) + \sum_{x,y} \widetilde{P}(x) P_w(y|x)·(log P_w(y|x) - \sum_{i=1}^{n} w_if_i(x,y)) \tag{2.15}
\end{align}

\begin{align}
P_w(y|x) =& \frac{exp (\sum_{i=1}^{n} w_i f_i(x,y))} {\sum_{y} exp (\sum_{i=1}^{n} w_i f_i(x,y))}\tag{2.13}
\end{align}

代入公式(2.15),得

\begin{align}
L(P_w, w) &= \sum_{i=1}^{n}w_i ·E_{\widetilde{P}}(f_i(x,y)) + \sum_{x,y} \widetilde{P}(x) P_w(y|x)·(\sum_{i=1}^{n} w_i f_i(x,y)-logP_w(x) -  \sum_{i=1}^{n} w_if_i(x,y)) \\
&= \sum_{i=1}^{n}w_i ·E_{\widetilde{P}}(f_i(x,y)) - logZ_w(x) · \sum_{x,y} \widetilde{P}(x) P_w(y|x) \tag{2.16} \\
&=\sum_{i=1}^{n}w_i ·E_{\widetilde{P}}(f_i(x,y)) - logZ_w(x) ·( \sum_{x}\sum_{y} \widetilde{P}(x) P_w(y|x)) \\ 
&=\sum_{i=1}^{n}w_i ·E_{\widetilde{P}}(f_i(x,y)) - logZ_w(x) ·( \sum_{x}\widetilde{P}(x))\\
&=\sum_{i=1}^{n}w_i ·\sum_{x,y} \widetilde{P}(x,y)f_i(x,y) - logZ_w(x) ·( \sum_{x}\widetilde{P}(x))\tag{2.17}
\end{align}

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

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

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


#3. 灵魂两问

3.1 为什么对偶函数的极大化 = 最大熵模型的似然估计

3.1.1 对偶函数极大化

如果不好理解,可以将\psi(w)看成是关于w的函数。

3.1.1 最大熵模型的似然估计
\begin{align}
L_{\widetilde{P}}(P_w) &= \sum_{x,y} \widetilde{P}(x,y)logP(y|x) \\
&=\sum_{x,y} \widetilde{P}(x,y)·(\sum_{i=1}^{n}w_i f_i(x,y)-logZ_w(x)) \\
&= \sum_{x,y} \widetilde{P}(x,y)·\sum_{i=1}^{n}w_i f_i(x,y) - logZ_w(x) · \sum_{x,y} \widetilde{P}(x) P_w(y|x) \tag{3.1}
\end{align}

因为公式(2.1)

E_{\widetilde{P}}(f)=\sum_{x,y} \widetilde{P}(x,y)f(x,y) \tag{2.1}

所以公式(3.1)=(2.16)。故而,对偶函数的极大化 = 最大熵模型的似然估计。

3.2 logistics模型和最大熵模型,有什么关系?

3.2.1 logistics模型
二分类模型
\begin{align}
P(Y=1|x)=\frac{exp(w·x)}{1+exp(w·x)} \\ 
P(Y=0|x)=\frac{1}{1+exp(w·x)} 
\end{align}
多分类模型
\begin{align}
P(Y=i|x)=&\frac{exp(w_i·x)}{1+\sum_{i=1}^{n-1}exp(w_i·x)},\ i=1,2,3...,n-1\\ 
P(Y=i|x)=&\frac{1}{1+\sum_{i=1}^{n-1}exp(w_i·x)}
\end{align}
logistics模型的通用表达式
\begin{align}
P(y|x)=\frac{exp(w_i·x)} {\sum_{i=1}^{n}exp(w_i·x)}, i=1,2,3...,n;w_1=0
\end{align}
3.2.2 最大熵模型
\begin{align}
p_w(y|x) =& \frac{exp (\sum_{i=1}^{n} w_i f_i(x,y))} {\sum_{y} exp (\sum_{i=1}^{n} w_i f_i(x,y))}\tag{2.13}
\end{align}

当类标签只有两个的时候,最大熵模型就是logistics回归模型。具体原因

小资的AI课堂-最大熵模型


4. 参考文献