你真的学懂了线性回归和logistic回归吗?——从指数族分布说起(一)

1,495 阅读6分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

1. 回顾机器学习的基本思想

机器学习所要实现多任务往往是:给定一组训练数据DD,我们希望通过DD得到我们研究的输入空间的概率分布。或者换句话讲,我们想用一个概率分布来尽可能准确地描述这组训练数据的分布。这样,我们就可以对给定的一个测试数据,找出条件概率最大的值作为输出,完成机器学习的预测部分。

然而,在没有任何假设的情况下,直接学习概率分布是不现实的。直接学习概率分布的一种最简单最暴力的方法,就是把空间分成很多小的单元,然后统计样本落在每个单元的频率,作为每个单元的概率分布(每个单元近似成一个均匀分布)。但是这种方法的确定很明显:数据不足、有噪音、存储能力受限等。单元分割得越细,得到的概率分布就越准确,但是这就需要越多的数据来训练,也需要越多的存储空间来存储。当考虑的空间是n维时,所需要的空间就是单元个数的n次方,这样会出现维度爆炸的情况。

因此,在大多数情况下,我们都会人为指定某种概率分布。例如,指定数据服从高斯分布或者伯努利分布等。这样,对概率分布函数的学校就简化为了对指定的函数参数的学习,这样一方面降低了学习的难度,另一方面也减少了存储空间(只需要存储我们感兴趣的统计量,例如对于高斯分布只需要存储均值和方差;对于伯努利分布,只需要存储正类的概率)。这种方法需要根据不同的问题选择不同的分布,需要一定先验知识。

指数族分布就是一类常用的分布模型,它有很多优良的性质,利用指数族分布假设来推导出的线性模型成为广义线性模型,Generalized Linear Model(GLM)。下面我们介绍指数族分布的由来。

2. 指数族分布

2.1. 指数族分布由来的推导

我们这里讨论的是离散模型的指数族分布。 设 X(i)X^{(i)} 表示第 ii 条训练数据,T(X(i))T(X^{(i)}) 表示从第 ii 条训练数据中我们感兴趣的统计量(或者也叫特征数,常用的比如k阶矩,例如T(X(i))=[x,x2,]T(X^{(i)})=[x,x^2,\cdots] 。注意这里T(X(i))T(X^{(i)})是一个向量,这样我们就可以表示两个或者更多我们感兴趣的统计量)。我们希望我们的概率模型 pp 能满足以下性质

Ep[T(X)]=μ^(2-1)\mathbb{E}_p[T(X)] = \hat{\mu}\\ \tag{2-1}

其中

μ^=1ni=1mT(X(i))(2-2)\hat{\mu} = \frac{1}{n}\sum_{i=1}^mT(X^{(i)})\\ \tag{2-2}

简单来说,就是我们希望概率模型的统计量的期望等于所有训练数据的统计量的均值,这个希望是非常合理、自然的。

除此之外,我们还希望我们的概率模型要有最大的信息熵,也即满足最大熵原理,这是因为在没有更多的信息的情况下,我们希望我们的概率模型有最大的不确定性,也即能够涵盖更多的可能性。

为此,我们可以将上述目标写成如下的最优化问题:

p(x)=argmaxp(x) xp(x)logp(x)s.t.xT(x)p(x)=μ^xp(x)=1(2-3)\begin{aligned} p^*(x) = &\mathop{\text{argmax}}\limits_{p(x)} \ -\sum_x p(x)\log p(x) \\ {\text{s.t.}} &\sum\limits_x T(x)p(x) = \hat{\mu} \\ &\sum\limits_x p(x) = 1 \\ \tag{2-3} \end{aligned}

这是一个仅含等式约束的凸优化问题,可以用Lagrange对偶方法来求解。 Lagrange函数为:

L(x,η,λ)=xp(x)logp(x)+ηT(xT(x)p(x)μ^)+λ(xp(x)1)=x(p(x)logp(x)+ηTT(x)p(x)+λp(x))ηTμ^λ(2-4)\begin{aligned} L(x,\eta,\lambda)& = -\sum_x p(x)\log p(x) + \eta^T(\sum_x T(x)p(x) - \hat{\mu}) + \lambda(\sum_x p(x) - 1) \\ &= \sum_x (-p(x)\log p(x) + \eta^TT(x)p(x) + \lambda p(x)) - \eta^T\hat{\mu} - \lambda\\ \tag{2-4} \end{aligned}

由于(23)(2-3)是一个仅含等式约束的凸优化问题的标准形式,所以强对偶性成立。对(24)(2-4)中的p(x)p(x)求导令导数等于0,有

1logp(x)+ηTT(x)+λ=0(2-5)-1-\log p(x) + \eta^TT(x) + \lambda = 0\\ \tag{2-5}

可进一步得到:

p(x)=exp(ηTT(x)+λ1)=exp(ηTT(x)a)(2-6)\begin{aligned} p(x) &= \exp(\eta^TT(x) + \lambda - 1) \\ &= \exp(\eta^TT(x) - a)\\ \tag{2-6} \end{aligned}

(26)(2-6)两边求和,可得:

xp(x)=1=xexp(ηTT(x)a)(2-7)\sum_x p(x) = 1 = \sum_x \exp(\eta^TT(x) - a)\\ \tag{2-7}

由上式可以得到

a(η)=logxexp(ηTT(x))(2-8)a(\eta) = \log\sum_x \exp(\eta^TT(x))\\ \tag{2-8}

ηT=ηT\eta'^T =\eta^T 以及 T(x)=T(x)logb(x)T'(x) = T(x) \log b(x),可以得到p(x)p(x)的一种更常见的表达式:

p(y;η)=b(y)exp(ηTT(y)a(η))(2-9)p(y;\eta) = b(y)\exp(\eta^TT(y) - a(\eta))\\ \tag{2-9}

上式就是很多文献中常见的指数族分布的概率密度函数表达式。

2.2. 指数族分布的特殊情形:伯努利分布和高斯分布

(29)(2-9)中;

  • η\eta被称为自然参数(natural parameter)或者典范参数(canonical parameter)
  • T(y)T(y)被称为充分统计量(sufficient statistic),常用的是T(y)=yT(y)=y
  • a(η)a(\eta)被称为对数分割函数(log partition function),可以起到归一化的作用

下面我们来说明一下,伯努利分布和高斯分布都是指数族分布的特殊情形。 假设伯努利分布的均值(也即取值为1的概率)为ϕ\phi,那么伯努利分布的概率密度函数可以表示成:

p(y;ϕ)=ϕy(1ϕ)1y=exp(ylogϕ+(1y)log(1ϕ))=exp((logϕ1ϕ+log(1ϕ)))(2-10)\begin{aligned} p(y;\phi)&=\phi^y(1-\phi)^{1-y}\\ &=exp(ylog{\phi}+(1-y)log{(1-\phi)})\\ &=exp\left(\left(log{\frac{\phi}{1-\phi}}+log{(1-\phi)}\right)\right)\\ \tag{2-10} \end{aligned}

η\eta就是logϕ1ϕlog{\frac{\phi}{1-\phi}}, 与此同时,如果我们用η\eta来反解出ϕ\phi,有:

ϕ=11+eη(2-11)\phi=\frac{1}{1+e^{-\eta}}\\ \tag{2-11}

这其实就是sigmoid函数的表达形式 !后面我们会再深入些讨论logistic回归和sigmoid函数。 此时,指数族分布中的参数对应地可以写成如下:

η=logϕ1ϕT(y)=ya(η)=log(1ϕ)=log(1+eη)b(y)=1(2-12)\begin{aligned} \eta&=log{\frac{\phi}{1-\phi}}\\ T(y)&=y\\ a(\eta)&=-log{(1-\phi)}\\ &=log{(1+e^{\eta})}\\ b(y)&=1\\ \tag{2-12} \end{aligned}

对于高斯分布,为了简化起见,我们这里考虑方差为1的情况。(这种简化是有意义的,尤其是在作为线性回归的铺垫的时候。因为在推导线性回归模型的时候,高斯分布的方差对后的优化目标无影响,因此可以选取任意的方差来进行推导说明)。令均值为μ\mu,高斯分布的概率密度函数为:

p(y;μ,δ)=1δ2πexp(12δ2(yμ)2)=1δ2πexp(12δ2y2)exp(μyδ212δ2μ2)(2-13)\begin{aligned} p(y;\mu,\delta)&=\frac{1}{\delta\sqrt {2\pi}}exp{\left(-\frac{1}{2\delta^2}(y-\mu)^2\right)}\\ &=\frac{1}{\delta\sqrt {2\pi}}exp{\left(-\frac{1}{2\delta^2}y^2\right)}exp{\left(\frac{\mu y}{\delta^2}-\frac{1}{2\delta^2}\mu^2\right)}\\ \tag{2-13} \end{aligned}

对应的指数族分布的参数为:

η=μδ2T(y)=ya(η)=12δ2μ2=δ22η2b(y)=1δ2πexp(12δ2y2)(2-14)\begin{aligned} \eta&=\frac{\mu}{\delta^2}\\ T(y)&=y\\ a(\eta)&=\frac{1}{2\delta^2}\mu^2\\ &=\frac{\delta^2}{2}\eta^2\\ b(y)&=\frac{1}{\delta\sqrt {2\pi}}exp{\left(-\frac{1}{2\delta^2}y^2\right)}\\ \tag{2-14} \end{aligned}

从上式我们可以得到:

y^=E(yx;μ,δ)=μ=δ2η(2-15)\hat y=E(y|x;\mu,\delta)=\mu=\delta^2\cdot\eta\\ \tag{2-15}

2.3. 关于参数η\eta如何求取的一点讨论

在2.1.节中,我们其实并没有求出η\eta的最优值。正常的思路,应该是通过求取Lagrange对偶函数的最大值点来求出η\eta,然而实际中这比较困难,因此一般用另一种方法来求——极大似然估计法。下面我们证明用极大似然估计的方法来求η\eta,满足(22)(2-2) 所谓极大似然估计法,其实就是求如下最优化问题:

argmaxη L(p(Dη))=argmaxη p(Dη)=argmaxη i=1m(ηTT(X(i))a(η))(2-16)\begin{aligned} \mathop{\text{argmax}}\limits_{\eta} \ &L(p(D|\eta)) \\ &= \mathop{\text{argmax}}\limits_{\eta} \ p(D|\eta) \\ &= \mathop{\text{argmax}}\limits_{\eta} \ \sum_{i=1}^m (\eta^T T(X^{(i)}) - a(\eta))\\ \tag{2-16} \end{aligned}

不失一般性,我们这里仅给出η\eta为1维的情况下的求解过程。上式对η\eta求导令导数为0(这里其实省略了上式中的最优化目标函数是凹函数的证明,读者有兴趣可以自行证明):

i=1mT(X(i))ma(η)η=0(2-17)\sum_{i=1}^m T(X^{(i)})- m\frac{\partial{a(\eta)}}{\partial{\eta}}=0\\ \tag{2-17}

求得:

a(η)η=1mi=1mT(X(i))=μ^(2-18)\frac{\partial{a(\eta)}}{\partial{\eta}}=\frac{1}{m}\sum_{i=1}^m T(X^{(i)})=\hat\mu\\ \tag{2-18}

也即,用极大似然估计的方法也满足(22)(2-2),因此可以放心用。

2.4. 用广义线性模型(GLM)来对问题进行建模的几个基本假设

下面我们来总结一下,利用GLM对问题建模的三个基本假设

  1. yx;θExponentialFamily(η)y|x;\theta\sim ExponentialFamily(\eta),即给定样本输入xx和参数θ\theta,样本的输出分布服从指数族分布。参数θ\theta的含义见3.
  2. 给定xx,我们的目标是预测x对应的输出yy的统计量T(y)T(y)的期望。在大多数情况下,统计量就是yy(的期望)。
  3. 指数族分布的参数η\etaxx的线性组合,这个是一个基本假设,线性假设也是一种最简单直接的假设。也即y=wTx+by=w^Tx+b。如果令x0=1,θ=[w;b]x_0=1,\theta=[w;b],则前式可以写成更紧凑的形式:η=θTx\eta=\theta^Tx