Ch06

ZhuYuanxiang 2020-10-12 18:15:39
Categories: Tags:

C06. Logistic 回归与最大熵模型

Logistic 回归是分类模型,最大熵是其学习准则。(强烈建议先看 [^Bishop,2006]Ch 04了解原理,再通过此书看推导)

6.1 Logistic 模型

6.1.1 Logistic 分布

Logistic 概率分布函数是 Sigmoid 函数

Logistic 概率密度函数

6.1.2 二项 Logistic 回归模型

二项 Logistic 回归模型是二分类模型,由条件概率分布 $p ( X|Y )$ 表示,形式为参数化的 Logistic 分布,使用监督学习方法来估计模型参数。

模型的条件概率分布

$$
\begin{aligned}
P ( Y=1|\text{x} ) &=\frac{\exp{\text{w}^T \text{x} +b}}{1+\exp{\text{w}^T \text{x} +b}}\
P ( Y=0|\text{x} ) &=\frac1{1+\exp{\text{w}^T \text{x} +b}}
\end{aligned}
$$

概率分布的简化

$$
\begin{aligned}
P ( Y=1|\text{x} ) &=\frac{\exp{\dot{\text{w}}^T \dot{\text{x}}}}{1+\exp{\dot{\text{w}}^T \dot{\text{x}}}}\
P ( Y=0|\text{x} ) &=\frac1{1+\exp{\dot{\text{w}}^T \dot{\text{x}}}}
\end{aligned}
$$

一个事件的几率 ( odds ) 是指该事件发生的概率与该事件不发生的概率的比值,例如:如果事件发生的概率是 $p$,则这个事件的几率是 $\frac{p}{1-p}$,这个事件的对数几率是$\text{logit}=\ln\frac{p}{1-p}$。

概率分布的对数几率是输入 $\text{x}$ 的线性函数,即 Logistic 回归模型。

$$
\ln\frac{P ( Y=1|\text{x} )}{1-P ( Y=1|\text{x} )}=\text{w}^T\text{x}
$$

根据模型的概率条件分布可以将线性函数转化为概率,从而作为分类判断的概率依据。

6.1.3 模型参数估计

使用 最大似然估计方法 求解模型参数

$$
\prod_{i=1}^N [\pi ( \text{x}_i )]^{y_i}[1-\pi ( \text{x}_i )]^{1-y_i}
$$

对数似然函数
$$
\begin{aligned}
L ( \dot{\text{w}} )
&=\sum_{i=1}^N [y_i\ln\pi ( \text{x}_i ) + ( 1-y_i ) \ln ( 1-\pi ( \text{x}i )) ]\
&=\sum
{i=1}^N [y_i\ln\frac{\pi ( \text{x}_i )}{1-\pi ( \text{x}_i )}+\ln ( 1-\pi ( \text{x}i )) ]\
&=\sum
{i=1}^N [y_i ( \dot{\text{w}}^T\dot{\text{x}} ) -\ln ( 1+\exp{\dot{\text{w}}^T\dot{\text{x}}} )
\end{aligned}
$$

问题转化成对数似然函数的最优化问题,一般采用梯度下降法或者拟牛顿法。

6.1.4 多项 Logistic 回归模型

多项 Logistic 回归模型是多分类模型

$$
\begin{aligned}
P ( Y=k|\text{x} )
&=\frac{\exp{\dot{\text{w}}k^T \dot{\text{x}}}}{1+\sum{k=1}^{K-1}\exp{\dot{\text{w}}k^T \dot{\text{x}}}},k=1,\cdots,K-1\
P ( Y=K|\text{x} ) &=\frac1{1+\sum
{k=1}^{K-1}\exp{\dot{\text{w}}_k^T \dot{\text{x}}}}
\end{aligned}
$$

6.2 最大熵模型

6.2.1 最大熵原理

基于最大熵原理推导的,表示条件概率分布的分类模型,可以用于二类或多类分类。

6.2.2 最大熵模型的定义

最大熵模型就是基于最大熵原理在分类问题中建立的模型。

假设分类模型是一个条件概率分布 $P(Y|X)$

基于训练数据集,得到联合分布 $P(X,Y)$ 和边缘分布 $P(X)$

$$
\tilde{P}(X=\text{x},Y=y)=\frac{v(X=\text{x},Y=y)}{N}\
\tilde{P}(X)=\frac{v(X=\text{x})}{N}
$$

使用特征函数 $f(\text{x},y)$ 描述输入 $\text{x}$ 与 输出 $y$ 之间的某一个事实,定义如下
$$
f(\text{x},y)=
\begin{cases}
1,&\text{x与}y\text{满足某一事实}\
0,& others
\end{cases}
$$
特征函数 $f(\text{x},y)$ 关于经验分布 $\tilde{P}(X,Y)$ 的期望为
$$
E_{\tilde{P}}(f)=\sum_{\text{x},y} \tilde{P}(\text{x},y)f(\text{x},y)
$$
特征函数 $f(\text{x},y)$ 关于模型 $\tilde{P}(Y|X)$ 和经验分布 $\tilde{P}(X)$ 的期望为
$$
E_{P}(f)=\sum_{\text{x},y} \tilde{P}(\text{x})P(y|\text{x})f(\text{x},y)
$$
如果模型能够获取训练数据中的信息,那么就可以假设这两个期望相等,即$E_P(f)=E_{\tilde{P}}(f)$,以此作为模型学习的约束条件,假设有 $n$ 个特征函数 $f_i(\text{x},y),i=1,\cdots,n$,那么就有 $n$ 个约束条件。

定义 6.3 ( 最大熵模型 ) :假设满足所有约束条件的模型集合为
$$
\mathcal{C}\equiv{P\in\mathcal{P}|E_P(f_i)=E_{\tilde{P}}(f_i),i=1,\cdots,n}
$$
定义在条件概率分布 $P(Y|X)$ 上的条件熵为
$$
H(P)=-\sum_{x,y}\tilde{P}(x)P(y|x)\ln P(y|x)
$$

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

6.2.3 最大熵模型的学习

最大熵模型的学习过程就是求解的过程,学习可以形式化为有约束的最优化问题 ( 对偶问题 )

前提条件

等价模型

$$
\begin{aligned}
&\max_{P\in\mathcal{C}}&H(P)&=-\sum_{x,y}\tilde{P}(x)P(y|x)\ln P(y|x)\
&\text{s.t.}&E_P(f_i)&=E_{\tilde{P}}(f_i),i=1,\cdots,n\
&&\sum_y P(y|\text{x})&=1
\end{aligned}
$$

$$
\begin{aligned}
&\min_{P\in\mathcal{C}}&-H(P)&=\sum_{x,y}\tilde{P}(x)P(y|x)\ln P(y|x)\
&\text{s.t.}&E_P(f_i)-E_{\tilde{P}}(f_i)&=0,i=1,\cdots,n\
&&\sum_y P(y|\text{x})&=1
\end{aligned}
$$

$$
\begin{aligned}
L(P,\text{w})
&\equiv -H(P)+w_0\biggl(1-\sum_y P(y|\text{x})\biggl)+\sum_{i=1}^n w_i\biggl(E_{\tilde{P}}(f_i)-E_P(f_i)\biggl)\
&=\sum_{\text{x},y}\tilde{P}(\text{x})P(y|\text{x} )\ln p ( y|\text{x})+w_0\biggl(1-\sum_y P(y|\text{x})\biggl)\
&+\sum_{i=1}^n\biggl(\sum_{\text{x},y}\tilde{P}(\text{x},y)f_i(\text{x},y)-\sum_{\text{x},y} \tilde{P}(\text{x})P(y|\text{x})f_i(\text{x},y)\biggl)
\end{aligned}
$$

对偶问题的求解

$$
\begin{aligned}
\frac{\partial L(P,\text{w})}{\partial P(y|\text{x})}
&=\sum_{\text{x},y} \tilde{P}(\text{x})\biggl(\ln P(y|\text{x})+1\biggl)-\sum_y w_0 -\sum_{\text{x},y} \biggl(\tilde{P}(\text{x})\sum_{i=1}^n w_i f_i(\text{x},y)\biggl)\
&=\sum_{\text{x},y} \tilde{P}(\text{x})\biggl(\ln P(y|\text{x})+1-w_0-\sum_{i=1}^n w_i f_i(\text{x},y)\biggl)
\end{aligned}
$$

$$
\begin{aligned}
P(y|\text{x})
&=\exp{\sum_{i=1}^n w_i f_i(\text{x},y)+w_0-1}\
&=\frac{\exp{\sum_{i = 1}^n w_i f_i(\text{x},y)}}{\exp{1-w_0}}
\end{aligned}
$$

$$
\begin{aligned}
P_{\text{w}}(y|\text{x})&=\frac1{Z_{\text{w}}(\text{x})}\exp{\sum_{i = 1}^n w_i f_i(\text{x},y)}\
Z_{\text{w}}(\text{x})&=\sum_y\exp{\sum_{i = 1}^n w_i f_i(\text{x},y)}
\end{aligned}
$$

6.2.4 极大似然估计

对偶函数的极大化 等价于 最大熵模型的极大似然估计 的证明:

$$
\begin{aligned}
L_{\tilde{P}}(P_{\text{w}})
&=\ln\prod_{\text{x},y}P(y|\text{x})^{\tilde{P}(\text{x},y)}\
&=\sum_{\text{x},y} \tilde{P}(\text{x},y)\ln P(y|\text{x})\
&=\sum_{\text{x},y} \tilde{P}(\text{x},y)\sum_{i=1}^n w_i f_i(\text{x},y)-\sum_{\text{x},y} \tilde{P}(\text{x},y)\ln Z_{\text{w}}(\text{x})\
&=\sum_{\text{x},y} \tilde{P}(\text{x},y)\sum_{i=1}^n w_i f_i(\text{x},y)-\sum_{\text{x}} \tilde{P}(\text{x})\ln Z_{\text{w}}(\text{x})
\end{aligned}
$$

$$
\begin{aligned}
\Psi(\text{w})
&=\sum_{\text{x},y} \tilde{P}(\text{x})P_{\text{w}}(y|\text{x})\ln P_{\text{w}}(y|\text{x})\
&+\sum_{i=1}^n w_i\biggl(\sum_{\text{x},y} \tilde{P}(\text{x},y)f_i(\text{x},y)-\sum_{\text{x},y} \tilde{P}(\text{x})P_{\text{w}}(y|\text{x})f_i(\text{x},y)\biggl)\
&=\sum_{\text{x},y} \tilde{P}(\text{x},y)\sum_{i=1}^n w_i f_i(\text{x},y)+\sum_{\text{x},y} \tilde{P}(\text{x})P_{\text{w}}(y|\text{x})\biggl(\ln P_{\text{w}}(y|\text{x})-\sum_{i = 1}^n w_i f_i(\text{x},y)\biggl)\
&=\sum_{\text{x},y} \tilde{P}(\text{x},y)\sum_{i=1}^n w_i f_i(\text{x},y)-\sum_{\text{x},y}\tilde{P}(\text{x})P_{\text{w}}(y|\text{x})\ln Z_{\text{w}}(\text{x})\
&=\sum_{\text{x},y} \tilde{P}(\text{x},y)\sum_{i=1}^n w_i f_i(\text{x})-\sum_{\text{x},y} \tilde{P}(\text{x})\ln Z_{\text{w}}(\text{x})
\end{aligned}
$$

最大熵模型与 Logistic 回归模型有着类似的形式,它们统称为「对数线性模型」。模型的学习就是在给定的训练数据下对模型进行极大似然估计或者正则化极大似然估计。

6.3 模型学习的最优化算法

因为目标函数是凸函数,因此采用数值优化方法可以求解极值。常用的求解无约束最优化问题的算法

6.3.1 改进的迭代尺度法

改进的迭代尺度法(Improved Iterative Scaling, IIS)是可以学习最大熵模型的最优化算法。

基本思路

$$
\begin{aligned}
L(\text{w}+\delta)-L(\text{w})
&=\sum_{\text{x},y} \tilde{P}(\text{x},y)\ln P_{\text{w}+\delta}(y|\text{x})-\sum_{\text{x},y} \tilde{P}(\text{x},y)\ln P_{\text{w}}(y|\text{x})\
&=\sum_{\text{x},y} \tilde{P}(\text{x},y)\sum_{i=1}^n \delta_i f_i(\text{x},y)-\sum_{\text{x}} \tilde{P}(\text{x})\ln\frac{Z_{\text{w}+\delta}(\text{x})}{Z_{\text{w}}(\text{x})}
\end{aligned}
$$

基于不等式 $-\ln \alpha \geq 1-\alpha,\alpha>0$,建立对数似然函数改变量的下界
$$
\begin{aligned}
L(\text{w}+\delta)-L(\text{w})
&\geq\sum_{\text{x},y} \tilde{P}(\text{x},y)\sum_{i=1}^n \delta_i f_i(\text{x},y)+1-\sum_{\text{x}} \tilde{P}(\text{x})\ln\frac{Z_{\text{w}+\delta}(\text{x})}{Z_{\text{w}}(\text{x})}\
&=\sum_{\text{x},y} \tilde{P}(\text{x},y)\sum_{i=1}^n \delta_i f_i(\text{x},y)+1-\sum_{\text{x}} \tilde{P}(\text{x})\sum_y P_{\text{w}}(y|\text{x})\exp{\sum_{i = 1}^n \delta_i f_i(\text{x},y)}
\end{aligned}
$$

将右端记为$A(\delta|\text{w})$,则 $L(\text{w}+\delta)-L(\text{w})\geq A(\delta|\text{w})$,故 $A(\delta|\text{w})$ 是对数似然函数改变量的下界。

如果找到合适的 $\delta$ 使下界 $A(\delta|\text{w})$ 提高,那么对数似然函数也会提高。然而,$\delta$ 是一个向量,即有多个变量,不易同时优化,而 IIS 就是试图一次只优化其中一个变量,而固定其他变量。

6.3.2 拟牛顿法

最大熵模型
$$
P_{\text{w}}(y|\text{x})=\frac{\exp{\sum_{i=1}^n w_i f_i(\text{x},y)}}{\sum_y\exp{\sum_{i = 1}^n w_i f_i(\text{x},y)}}
$$

目标函数
$$
\min_{\text{w}\in\mathbb{R}^n}f(\text{w})=\sum_{\text{x}}\tilde{P}(\text{x})\ln\sum_y\exp{\sum_{i = 1}^n w_i f_i(\text{x},y)}-\sum_{\text{x},y} \tilde{P}(\text{x},y)\sum_{i=1}^n w_i f_i(\text{x},y)
$$

梯度
$$
g(\text{w})=(\frac{\partial f(\text{w})}{\partial w_1},\cdots,\frac{\partial f(\text{w})}{\partial w_n})^T
$$

其中
$$
\frac{\partial f(\text{w})}{\partial w_i}=\sum_{\text{x},y} \tilde{P}(\text{x})P_{\text{w}}(y|\text{x})f_i(\text{x},y)-E_{\tilde{P}}(f_i),i=1,\cdots,n
$$
最大熵模型基于拟牛顿法的 BFGS 算法。

本章概要