逻辑回归/logistic回归、广义线性模型与最大熵模型

以下内容由我的CSDN博客迁移。

在学习深度学习之前,再学习一下基本的机器学习算法。首先从logistic回归开始,再说一说sigmoid的推导等。

一、逻辑回归/logistic回归模型的简单介绍

1. logistic分布

\(X\)是连续随机变量,\(X\)服从logistic分布是指\(X\)具有下列分布函数和密度函数: \[F(x)=P(X\leq x)=\dfrac {1}{1+e^{-(x-\mu)/\gamma} }\\ ~\\ f(x)=\dfrac{e^{-(x-\mu)/\gamma}}{\gamma(1+e^{-(x-\mu)/\gamma})^2}\] 其中\(\mu\)为位置参数,\(\gamma > 0\)为形状参数。

2. 二项逻辑回归模型

  • 几率:事件发生的概率与该事件不发生的概率的比值。而对数几率就是取对数

对于二分类问题,类别\(Y\)只有1或0。如果我们认为事件\(Y\)发生的对数几率正比于随机变量\(X\),即: \[\log \dfrac{P(Y=1|x)}{1-P(Y=1|x)}=w \cdot x\]

那么便得出 \[P(Y=1|x)=\dfrac {\exp {(w\cdot x)}}{1+\exp{(w\cdot x)} }\] 加入偏置项b, 得二项逻辑回归模型\[P(Y=1|x)=\dfrac {\exp {(w\cdot x+b)}}{1+\exp{(w\cdot x+b)} }\]

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

3. 模型参数估计

逻辑回归学习时,对于给定的训练数据集,可以应用极大似然估计。 对数似然函数为: \[设P(Y=1|x)=\pi(x)\\L(w)=\sum^N_{i=1}[y_i\log \pi (x_i)+(1-y_i)\log(1-\pi (x_i))]\\=\sum^N_{i=1}[y_i(w\cdot x_i)-\log (1+\exp(w\cdot x_i)]\]

求出似然函数的极大值即可得到\(w\)的估计值。

4. 多项逻辑回归

与二项类似,K项模型是: \[P(Y=k|x)=\dfrac {\exp {(w_k\cdot x+b)}}{1+\sum^{K-1}_{k=1}\exp{(w_k\cdot x+b)} }, ~~k=1, 2, \dots, K-1\\~ \\P(Y=K|x)=\dfrac {1}{1+\sum^{K-1}_{k=1}\exp{(w_k\cdot x+b)} }\] 同样,二项参数估计也可以推广到多项。

二、逻辑回归的进一步理解

逻辑回归和线性回归本质上是广义线性模型,下面我们从指数分布族开始介绍。

1. 指数分布族

概率密度函数满足或能转化为 \[ P(y; \eta)=b(y)\exp(\eta T(y)-a(\eta)) \] 称为指数分布族。

其中:

  • y: y可以是标量或者是向量;既可以是离散值也可以是连续值
  • η:η为自然参数,可以是向量形式
  • T(y):T(y)为充分统计量
  • a(η):a(η)为累计函数, 也是正则化项,作用是确保概率和为1
  • b(y): y的某个函数

不难发现很多我们常见的分布都属于指数分布族

2. 广义线性模型

满足下面三个假设的模型就被称为广义线性模型:

  1. \(y|x;\theta\)满足一个一\(\eta\)为参数的指数族分布。
  2. 给定\(x\),目标是预测\(y\)的期望,即\(h_\theta (x)=E[y|x;\theta]\)
  3. \(\eta=\theta^T x\), 即\(\eta\)\(x\)为线性关系

3. 对逻辑回归的深入理解

对于二项逻辑回归(更高项也可以用类似解释),我们认为 \(P(y|x; \theta) \sim \mathrm{Bernoulli}(\phi)\)\[P(y; \phi)=\phi^y(1-\phi)^{1-y} \\=\exp(y\log\phi+(1-y)\log(1-\phi))\\ =\exp(y\log(\dfrac{\phi}{1-\phi})+\log(1-\phi))\]

套进指数分布族中:

\[\begin{cases} b(y)=1\\ \eta=\log(\dfrac{\phi}{1-\phi})\Rightarrow \phi=\dfrac{1}{1+\exp(-\eta)}\\ T(y)=y\\ a(\eta)=-\log(1-\phi) \end{cases}\]

因此可以认为逻辑回归的模型空间是指数分布族,所以我们可以假设它是广义线性模型,令\(\eta =\theta^T x\)。 我们要对给定的观测值\(x\)进行分类,即要找出样本所属类别的期望(假设二): \[h_\theta (x)=E[y|x; \theta]=E[y; \phi]=\phi(单个样本值是二项分布)\\~\\ =\dfrac{1}{1+\exp(-\eta)}=\dfrac{1}{1+\exp(-\theta^T x)}\] 即推导出sigmoid函数,与第一部分说的模型形式相同。

4. 对线性回归模型的进一步理解

与逻辑回归一样,线性回归认为\(P(y|x; \theta)\sim\mathcal N(\mu, \sigma^2)\) 这里只考虑简单的一维高斯分布: \[P(y; \mu, \sigma^2)=\dfrac{1}{\sqrt{2\pi\sigma^2}}\exp(-\dfrac{(y-\mu)^2}{2\sigma^2})\\~\\=\dfrac{1}{\sqrt{2\pi\sigma^2}}\exp(-\dfrac{y^2}{2\sigma^2})\exp(\dfrac{\mu}{\sigma^2}y-\dfrac{\mu^2}{2\sigma^2})\]

套进指数分布族中: \[\begin{cases} b(y)=\dfrac{1}{\sqrt{2\pi\sigma^2}}\exp(-\dfrac{y^2}{2\sigma^2})\\ \eta=\dfrac{\mu}{\sigma^2}\\ T(y)=y\\ a(\eta)=\dfrac{\mu^2}{2\sigma^2} \end{cases}\] 同样,我们假设线性回归模型是广义线性模型。对于每个样本值,我们需要求出预测值的期望:\(h_\theta(x)=E[y|x; \mu, \sigma^2]=\mu=\eta\sigma^2=\sigma^2\theta ^Tx\) 由于我们要对\(\theta\)进行点估计,因此它的放缩并不影响性能,所以这里我们可以通过放缩使得\(h_\theta (x)=\theta^Tx\), 也就是线性回归模型。

三、最大熵模型

逻辑回归也可以看作二分类时的最大熵模型

1. 最大熵思想

最大熵思想可以认为是奥卡姆剃刀原则的进一步阐释,最大熵原理是指:在所有可能的概率模型中,熵最大的模型是最好的模型。换句话说,就是在满足约束条件的模型集合中选取熵最大的模型。 对于离散的随机变量\(X\),概率分布为\(P(X)\),则它的熵是 \[H(P)=-\sum_xP(x)\log P(x)\] 满足不等式: \[0\leq H(P)\leq \log|X|\] 其中\(|X|\)\(X\)的取值个数。当且仅当均匀分布时右边等号成立。

2. 最大熵模型

当最大熵思想应用于分类问题时,得到最大熵模型。 给定训练集\(T=\{ (x_1, y_1), \dots, (x_N, y_N)\}\)

根据最大熵原理,我们需要先找到模型应该满足的条件。由于训练集已经给出,这可以看作我们已知的先验知识,因此可以确定联合分布P(X, Y)和边缘分布P(X)的经验分布: \[\tilde P(X=x, Y=y)=\dfrac{\upsilon(X=x, Y=y)}{N} \\~\\ \tilde P(X=x)=\dfrac{\upsilon(X=x)}{N}\]

其中\(\upsilon\)指频数

对于每个先验知识,我们定义一个特征函数: \[f(x, y)=\begin{cases} 1, x与y满足某些事实\\0, 否则\end{cases}\]

比如说规定事实:当x<0时y=0。则对于样本(-1,0)特征函数为1,而样本(1,0)或者(-1,1)的特征函数都是0。特征函数的作用是可以帮助筛选适合现有情况的模型。特征函数是我们自己定义的。

用特征函数f(x, y)表示x和y之间的关系,即上文所说的约束条件。 则可以得到: 特征函数 f(x, y) 关于经验分布 (X, Y) 的期望值为: \[E_{\tilde P}(f)=\sum_{x, y}\tilde P(x, y)f(x, y)\]

特征函数关于模型\(P(Y|X)\)与经验分布\(\tilde P(X=x)\)的期望值为: \[E_P(f)=\sum_{x, y}\tilde P(x)P(y|x)f(x, y)\] 为了满足先验知识的约束条件,即:使模型获取到训练数据中的信息。我们假设这两个期望值相等: \[\sum_{x, y}\tilde P(x, y)f(x, y)=\sum_{x, y}\tilde P(x)P(y|x)f(x, y)\]

这时可以保证我们的模型能够满足一个特征函数的约束条件。对n个特征函数,就有n个约束条件。 接下来,我们要在所有满足约束条件的模型中找到熵最大的模型。 每个模型P(Y|X)的条件熵为: \[H(P)=-\sum_{x, y}\tilde P(x)P(y|x)\log P(y|x)\]

求解最大熵模型,等价于约束最优化问题: \[\min_{P\in \bold C} -H(P)=\sum_{x, y}\tilde P(x)P(y|x)\log P(y|x)\\ ~\\ s.t.~~~ E_P(f_i)-E_{\tilde P}(f_i)=0, ~i=1, 2, \dots, n\\~\\\sum_yP(y|x)=1\]

具体求解就是引入拉格朗日乘子,定义拉格朗日函数: \[L(P, w)=-H(P)+w_0(1-\sum_yP(y|x))+\sum^n_{i=1}w_i(E_P(f_i)-E_{\tilde P}(f_i))\]

最优化的原始问题是\(\min_{P\in \bold C}\max_wL(P, w)\) 由于L是P的凸函数,因此我们可以将其转化为对偶形式: \[\max_w\min_{P\in \bold C}L(P, w)\]

此时原始问题和对偶形式是等价的。 具体思路就是先求里层偏导,令偏导等于0,得到\(P_w=\argmin_{P\in C}L(P, w)\). 最后我们可以得到:

\[P_w(y|x)=\dfrac{1}{Z_w(x)}\exp(\sum^n_{i=1}w_if_i(x, y))\] 其中, \[Z_w(x)=\sum_y\exp(\sum^n_{i=1}w_if_i(x, y))\]

此时\(P_w\)已经是最大熵了,接下来我们要进行参数优化。 第二步,最大化。将P_w(y|x)带入L(P, w),最大化该函数的值,此时可以用各种最优化算法或者梯度下降等求出。 以上,就是最大熵模型的推导过程。

4. 与逻辑回归的关系

当我们规定特征函数为

\[f(x, y)=\begin{cases}\theta^Tx, ~~y=y_0\\0, 否则\end{cases} \] 我们就会发现逻辑回归(sigmoid)就是二项分类的最大熵模型,同理softmax就是多项分类的最大熵模型。

  • 最大熵模型和logistic模型都是对数线性模型的形式。

更多解释请看:如何理解最大熵模型里面的特征?

在《统计学习方法》中,证明了对偶函数的极大化等价于最大熵模型的极大似然估计。因此对参数的学习就可以转换为具体求解对数似然函数极大化的问题。


以上内容如有谬误还请告知。之后还会持续更新