机器学习爱好者机器学习和人工智能入门统计&Python

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

2019-07-19  本文已影响5人  To_QT
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个。

这样的话,就可以算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)的约束条件),于是有:
\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}
对偶问题是[1]
\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回归模型。具体原因


4. 参考文献


  1. 拉格朗日对偶性(截图取自李航——统计学习方法)


上一篇 下一篇

猜你喜欢

热点阅读