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

作者: To_QT | 来源:发表于2019-07-19 16:02 被阅读5次
    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)的期望了:

    • 特征函数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}
    对偶问题是[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. 拉格朗日对偶性(截图取自李航——统计学习方法)


    相关文章

      网友评论

        本文标题:Logistic回归与最大熵模型-理论推导

        本文链接:https://www.haomeiwen.com/subject/eldmkctx.html