统计学习方法学习笔记-06-逻辑斯谛回归与最大熵模型01

首先介绍逻辑斯谛模型,然后介绍最大熵模型,最后讲述逻辑斯谛回归与最大熵模型的学习算法,包括改进的迭代尺度算法和拟牛顿法

逻辑斯谛回归模型

逻辑斯谛分布

\(X\)是连续随机变量,具有下列分布函数和密度函数:\(\mu\)是位置参数,\(\gamma \gt 0\)是形状参数,越小,分布函数在中心增长得越快

\[F(x) = P(X \leq x) = \frac{1}{1+e^{-(x - \mu) / \gamma}} \\ f(x) = F'(x) = \frac{e^{-(x - \mu) / \gamma}}{\gamma(1 + e^{-(x - \mu) / \gamma})^2} \]

曲线如下:
逻辑斯谛分布的密度函数与分布函数
分布函数\(F(x)\)是一条\(S\)形曲线,该曲线以点\((\mu,\frac{1}{2})\)为中心对称:

\[F(-x + \mu) - \frac{1}{2} = -F(x + \mu) + \frac{1}{2} \]

二项逻辑斯谛回归模型

  • 二项逻辑斯谛回归模型是一种分类模型,\(x \in R^n\)是输入,\(Y \in \{0,1\}\)\(\omega \in R^n,b\in R\)是参数,\(\omega\)是权值向量,\(b\)是偏置,\(\omega \cdot x\)\(\omega,x\)的内积
    模型是如下的条件概率分布:

\[P(Y = 1|x) = \frac{exp(\omega \cdot x + b)}{1 + exp(\omega \cdot x + b)} \\ P(Y = 0|x) = \frac{1}{1 + exp(\omega \cdot x + b)} \]

  • 为了方便将权值向量和输入向量进行扩充:\(\omega = (\omega^{(1)},\omega^{(2)},\cdots,\omega^{(n)},b)^T,x = (x^{(1)},x^{(2)},\cdots,x^{(n)},1)^T\),模型如下:

\[P(Y = 1|x) = \frac{exp(\omega \cdot x)}{1 + exp(\omega \cdot x)} \\ P(Y = 0|x) = \frac{1}{1 + exp(\omega \cdot x)} \]

  • 一个事件的几率:该事件发生与不发生的概率的比值\(\frac{p}{1-p}\)
  • 该事件的对数几率是:\(logit(p) = \log \frac{p}{1-p}\)
  • 逻辑斯谛回归模型输出\(Y = 1\)的对数几率是\(\log \frac{P(Y = 1|x)}{1 - P(Y = 1|x)} = \omega \cdot x\),是输入\(x\)的线性函数,通过逻辑斯谛回归模型可以将线性函数\(\omega \cdot x\)转换为概率

模型参数估计

目的:逻辑斯谛回归模型学习\(\omega\)的估计值,可以使用极大似然估计
给定训练数据集\(T = \{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\}\),其中\(x_i \in R^n,y \in \{0,1\}\)
设:

\[P(Y = 1|x) = \pi(x),P(Y = 0|x) = 1 - \pi(x) \]

似然函数为:

\[\prod_{i = 1}^N[\pi(x_i)]^{y_i}[1 - \pi(x_i)]^{1 - y_i} \]

对数似然函数为:

\[\begin{aligned} L(\omega) &= \sum_{i = 1}^N[y_i \log \pi(x_i) + (1 - y_i) \log (1 - \pi(x_i))] \\ &= \sum_{i = 1}^N\left[y_i\log \frac{\pi(x_i)}{1 - \pi(x_i)} + \log(1 - \pi(x_i))\right] \\ &= \sum_{i = 1}^N[y_i(\omega \cdot x_i) - \log(1 + exp(\omega \cdot x_i))] \end{aligned} \]

\(L(\omega)\)求极大值,得到\(\omega\)的估计值
问题转化为以对数似然函数为目标函数的最优化问题,可以采用梯度下降法及拟牛顿法

多项逻辑斯谛回归

此时离散型随机变量\(Y\)的取值集合是\(\{1,2,\cdots,K\}\),模型为:

\[P(Y = k|x) = \frac{exp(\omega_k \cdot x)}{1 + \sum_{k = 1}^{K - 1}exp(\omega_k \cdot x)},k = 1,2,\cdots,K-1 \\ P(Y = K|x) = \frac{1}{1 + \sum_{k = 1}^{K - 1}exp(\omega_k \cdot x)} \]

\(x \in R^{n + 1},\omega_k \in R^{n + 1}\)

最大熵模型

最大熵模型由最大熵原理推导完成,首先叙述一般的最大熵原理,然后讲解最大熵模型的推导,最后给出最大熵模型学习的形式

最大熵原理

学习概率模型时,在所有可能的概率模型中,熵最大的模型是最好的模型,假设离散随机变量\(X\)的概率分布是\(P(X)\),其熵是:

\[H(P) = -\sum_xP(x)\log P(x) \]

熵满足\(0 \leq H(P) \leq \log |X|\)\(|X|\)\(X\)的取值个数,当\(X\)的分布是均匀分布时右边的等号成立,也就是说\(X\)服从均匀分布时熵最大;
直观的,最大熵原理认为要选择的概率模型首先必须满足已有的事实,即约束条件,在没有更多信息的情况下,那些不确定的部分必须是等可能的,最大熵原理通过熵的最大化来表示等可能性

最大熵模型的定义

假设分类模型是一个条件概率分布\(P(Y|X),X \in \mathcal{X} \subseteq R^n\)表示输入,\(Y \in \mathcal{Y}\)表示输出,\(\mathcal{X},\mathcal{Y}\)分别是输入和输出的集合,这个模型表示的是对于给定的输入\(X\),以条件概率\(P(Y|X)\)输出\(Y\),训练数据集\(T = \{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\}\),学习的目标是用最大熵原理选择最好的分类模型。

\[\tilde{P}(X = x,Y = y) = \frac{\nu(X = x,Y = y)}{N} \\ \tilde{P}(X = x) = \frac{\nu(X = x)}{N} \]

\(\nu(X = x,Y = y)\)表示的是训练样本中\((x,y)\)出现的频数,\(\nu(X = x)\)表示训练数据中输入\(x\)出现的频数,\(N\)表示样本容量。
特征函数\(f(x,y)\)描述输入\(x\)和输出\(y\)之间的某一个事实:

\[f(x,y) = \begin{cases} 1 & x和y满足某一事实\\ 0 & otherwise \end{cases} \]

特征函数\(f(x,y)\)关于经验分布\(\tilde{P}(X,Y)\)的期望值:

\[E_{\tilde{P}}(f) = \sum_{x,y}\tilde{P}(x,y)f(x,y) \]

特征函数\(f(x,y)\)关于模型\(P(Y|X)\)与经验分布\(\tilde{P}(X)\)的期望值:

\[E_{{P}}(f) = \sum_{x,y}\tilde{P}(x)P(y|x)f(x,y) \]

如果模型能获取训练数据中的信息,那么就可以假设这两个期望值相等

\[E_{\tilde{P}}(f) = E_{{P}}(f) \\ \sum_{x,y}\tilde{P}(x,y)f(x,y) = \sum_{x,y}\tilde{P}(x)P(y|x)f(x,y) \]

我们将上式作为模型学习的约束条件,假如有\(n\)个特征函数\(f_i(x,y),i = 1,2,\cdots,n\),那么就有\(n\)个约束条件
假设满足所有约束条件的模型集合为:

\[\mathcal{C} \equiv \{P \in \mathcal{P}|E_P(f_i) = E_{\tilde{P}}(f_i),i = 1,2,\cdots,n\} \]

定义在条件概率分布上的条件熵为:

\[H(P) = -\sum_{x,y}\tilde{P}(x)P(y|x) \log P(y |x) \]

集合模型\(\mathcal{C}\)中条件熵\(H(P)\)最大的模型称为最大熵模型

最大熵模型的学习(P100例题值得一看)

最大熵模型的学习过程就是求解最大熵模型的过程,最大熵模型的学习等价于约束最优化问题:

\[\mathop{max}\limits_{P \in \mathcal{C}}H(P) = -\sum_{x,y}\tilde{P}(x)P(y|x) \log P(y |x) \\ \begin{aligned} s.t. \ \ \ & E_P(f_i) = E_{\tilde{P}}(f_i),i = 1,2,\cdots,n \\ & \sum_{y}P(y|x) = 1 \end{aligned} \]

转化为等价的求最小值问题:

\[\mathop{min}\limits_{P \in \mathcal{C}}-H(P) = \sum_{x,y}\tilde{P}(x)P(y|x) \log P(y |x) \\ \begin{aligned} s.t. \ \ \ & E_P(f_i) - E_{\tilde{P}}(f_i) = 0,i = 1,2,\cdots,n \\ & \sum_{y}P(y|x) = 1 \end{aligned} \]

将约束最优化的原始问题转换为无约束最优化的对偶问题,首先引进拉格朗日乘子\(\omega_0,\omega_1,\omega_2,\cdots,\omega_n\),定义拉格朗日函数\(L(P,\omega)\):

\[\begin{aligned} L(P,\omega) &\equiv -H(P) + \omega_0\left(1 - \sum_yP(y|x)\right) + \sum_{i = 1}^n\omega_i(E_{\tilde{P}}(f_i) - E_P(f_i)) \\ &= \sum_{x,y}\tilde{P}(x)P(y|x) \log P(y |x) + \omega_0\left(1 - \sum_yP(y|x)\right) + \sum_{i = 1}^n\omega_i\left(\sum_{x,y}\tilde{P}(x,y)f_i(x,y) - \sum_{x,y}\tilde{P}(x)P(y|x)f_i(x,y)\right) \end{aligned} \]

最优化的原始问题是:

\[\mathop{min}\limits_{P \in \mathcal{C}} \mathop{max}\limits_{\omega} L(P,\omega) \]

对偶问题是:

\[\mathop{max}\limits_{\omega} \mathop{min}\limits_{P \in \mathcal{C}} L(P,\omega) \]

由于拉格朗日函数是\(P\)的凸函数,原始问题的解与对偶问题的解是等价的
首先求解对偶问题内部的极小化问题\(\mathop{min}\limits_{P \in \mathcal{C}} L(P,\omega)\)\(\mathop{min}\limits_{P \in \mathcal{C}} L(P,\omega)\)\(\omega\)的函数,将其记作

\[\Psi(\omega) = \mathop{min}\limits_{P \in \mathcal{C}} L(P,\omega) = L(P_{\omega},\omega) \]

将其解记作:

\[P_\omega = arg \mathop{min}\limits_{P \in \mathcal{C}} L(P,\omega) = P_\omega(y|x) \]

具体地,求\(L(P,\omega)\)\(P(y|x)\)的偏导数

\[\begin{aligned} \frac{\partial L(P,\omega)}{\partial P(y|x)} &= \left(\sum_{x,y}\tilde{P}(x)P(y|x) \log P(y |x) + \omega_0\left(1 - \sum_yP(y|x)\right) + \sum_{i = 1}^n\omega_i\left(\sum_{x,y}\tilde{P}(x,y)f_i(x,y) - \sum_{x,y}\tilde{P}(x)P(y|x)f_i(x,y)\right)\right)'_{P(y|x)} \\ &= \sum_{x,y}\tilde{P}(x)(1 + \log P(y |x)) + \sum_y\omega_0 + \sum_{x,y}\left(\tilde{P}(x)\sum_{i = 1}^n\omega_if_i(x,y)\right) \\ &= \sum_{x,y}\tilde P(x) \left( \log P(y|x) + 1 - \omega_0 - \sum_{i = 1}^n \omega_if_i(x,y)\right) \end{aligned} \]

令偏导数等于0,在\(\tilde P(x) \gt 0\)的情况下解得

\[P(y|x) = exp \left( \sum_{i = 1}^n \omega_if_i(x,y) + \omega_0 - 1 \right) = \frac{exp \left( \sum_{i = 1}^n \omega_if_i(x,y) \right)}{exp(1 - \omega_0)} \]

由于\(\sum_y P(y|x) = 1\):

\[P_\omega(y|x) = \frac{1}{Z_\omega(x)}exp \left( \sum_{i = 1}^n \omega_if_i(x,y) \right) \]

其中:\(Z_\omega(x)\)被称为规范化因子

\[Z_\omega(x) = \sum_yexp \left( \sum_{i = 1}^n \omega_if_i(x,y) \right) \]

\(P_\omega = P_\omega(y|x)\)就是最大熵模型
之后将求解得到的最大熵模型带到拉格朗日函数中得到包含\(\omega\)的函数,求关于\(\omega\)的极大化问题,分别对\(\omega_1,\omega_2,\cdots,\omega_n\)求导,令偏导数为0求出\(\omega\)的值,将得出的\(\omega\)值带到最大熵模型中得到最大熵模型的结果。

posted @ 2022-09-15 23:10  eryo  阅读(117)  评论(0)    收藏  举报