机器学习所要实现多任务往往是:给定一组训练数据 D D D,我们希望通过 D D D得到我们研究的输入空间的概率分布。或者换句话讲,我们想用一个概率分布来尽可能准确地描述这组训练数据的分布。这样,我们就可以对给定的一个测试数据,找出条件概率最大的值作为输出,完成机器学习的预测部分。
然而,在没有任何假设的情况下,直接学习概率分布是不现实的。直接学习概率分布的一种最简单最暴力的方法,就是把空间分成很多小的单元,然后统计样本落在每个单元的频率,作为每个单元的概率分布(每个单元近似成一个均匀分布)。但是这种方法的确定很明显:数据不足、有噪音、存储能力受限等。单元分割得越细,得到的概率分布就越准确,但是这就需要越多的数据来训练,也需要越多的存储空间来存储。当考虑的空间是n维时,所需要的空间就是单元个数的n次方,这样会出现维度爆炸的情况。
因此,在大多数情况下,我们都会人为指定某种概率分布。例如,指定数据服从高斯分布或者伯努利分布等。这样,对概率分布函数的学校就简化为了对指定的函数参数的学习,这样一方面降低了学习的难度,另一方面也减少了存储空间(只需要存储我们感兴趣的统计量,例如对于高斯分布只需要存储均值和方差;对于伯努利分布,只需要存储正类的概率)。这种方法需要根据不同的问题选择不同的分布,需要一定先验知识。
指数族分布就是一类常用的分布模型,它有很多优良的性质,利用指数族分布假设来推导出的线性模型成为广义线性模型,Generalized Linear Model(GLM)。下面我们介绍指数族分布的由来。
我们这里讨论的是离散模型的指数族分布。
设 X ( i ) X^{(i)} X(i) 表示第 i i i 条训练数据, T ( X ( i ) ) T(X^{(i)}) T(X(i)) 表示从第 i i i 条训练数据中我们感兴趣的统计量(或者也叫特征数,常用的比如k阶矩,例如 T ( X ( i ) ) = [ x , x 2 , ⋯   ] T(X^{(i)})=[x,x^2,\cdots] T(X(i))=[x,x2,⋯] 。注意这里 T ( X ( i ) ) T(X^{(i)}) T(X(i))是一个向量,这样我们就可以表示两个或者更多我们感兴趣的统计量)。我们希望我们的概率模型 p p p 能满足以下性质
(2-1) E p [ T ( X ) ] = μ ^ \mathbb{E}_p[T(X)] = \hat{\mu}\\ \tag{2-1} Ep[T(X)]=μ^(2-1)
其中
(2-2) μ ^ = 1 n ∑ i = 1 m T ( X ( i ) ) \hat{\mu} = \frac{1}{n}\sum_{i=1}^mT(X^{(i)})\\ \tag{2-2} μ^=n1i=1∑mT(X(i))(2-2)
简单来说,就是我们希望概率模型的统计量的期望等于所有训练数据的统计量的均值,这个希望是非常合理、自然的。
除此之外,我们还希望我们的概率模型要有最大的信息熵,也即满足最大熵原理,这是因为在没有更多的信息的情况下,我们希望我们的概率模型有最大的不确定性,也即能够涵盖更多的可能性。
为此,我们可以将上述目标写成如下的最优化问题:
(2-3) p ∗ ( x ) = argmax p ( x ) − ∑ x p ( x ) log p ( x ) s.t. ∑ x T ( x ) p ( x ) = μ ^ ∑ x p ( x ) = 1 \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} p∗(x)=s.t.p(x)argmax −x∑p(x)logp(x)x∑T(x)p(x)=μ^x∑p(x)=1(2-3)
这是一个仅含等式约束的凸优化问题,可以用Lagrange对偶方法来求解。
Lagrange函数为:
(2-4) L ( x , η , λ ) = − ∑ x p ( x ) log p ( x ) + η T ( ∑ x T ( x ) p ( x ) − μ ^ ) + λ ( ∑ x p ( x ) − 1 ) = ∑ x ( − p ( x ) log p ( x ) + η T T ( x ) p ( x ) + λ p ( x ) ) − η T μ ^ − λ \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} L(x,η,λ)=−x∑p(x)logp(x)+ηT(x∑T(x)p(x)−μ^)+λ(x∑p(x)−1)=x∑(−p(x)logp(x)+ηTT(x)p(x)+λp(x))−ηTμ^−λ(2-4)
由于 ( 2 − 3 ) (2-3) (2−3)是一个仅含等式约束的凸优化问题的标准形式,所以强对偶性成立。对 ( 2 − 4 ) (2-4) (2−4)中的 p ( x ) p(x) p(x)求导令导数等于0,有
(2-5) − 1 − log p ( x ) + η T T ( x ) + λ = 0 -1-\log p(x) + \eta^TT(x) + \lambda = 0\\ \tag{2-5} −1−logp(x)+ηTT(x)+λ=0(2-5)
可进一步得到:
(2-6) p ( x ) = exp ( η T T ( x ) + λ − 1 ) = exp ( η T T ( x ) − a ) \begin{aligned} p(x) &= \exp(\eta^TT(x) + \lambda - 1) \\ &= \exp(\eta^TT(x) - a)\\ \tag{2-6} \end{aligned} p(x)=exp(ηTT(x)+λ−1)=exp(ηTT(x)−a)(2-6)
对 ( 2 − 6 ) (2-6) (2−6)两边求和,可得:
(2-7) ∑ x p ( x ) = 1 = ∑ x exp ( η T T ( x ) − a ) \sum_x p(x) = 1 = \sum_x \exp(\eta^TT(x) - a)\\ \tag{2-7} x∑p(x)=1=x∑exp(ηTT(x)−a)(2-7)
由上式可以得到
(2-8) a ( η ) = log ∑ x exp ( η T T ( x ) ) a(\eta) = \log\sum_x \exp(\eta^TT(x))\\ \tag{2-8} a(η)=logx∑exp(ηTT(x))(2-8)
令
η ′ T = η T \eta'^T =\eta^T η′T=ηT 以及 T ′ ( x ) = T ( x ) log b ( x ) T'(x) = T(x) \log b(x) T′(x)=T(x)logb(x),可以得到 p ( x ) p(x) p(x)的一种更常见的表达式:
(2-9) p ( y ; η ) = b ( y ) exp ( η T T ( y ) − a ( η ) ) p(y;\eta) = b(y)\exp(\eta^TT(y) - a(\eta))\\ \tag{2-9} p(y;η)=b(y)exp(ηTT(y)−a(η))(2-9)
上式就是很多文献中常见的指数族分布的概率密度函数表达式。
在 ( 2 − 9 ) (2-9) (2−9)中;
下面我们来说明一下,伯努利分布和高斯分布都是指数族分布的特殊情形。
假设伯努利分布的均值(也即取值为1的概率)为 ϕ \phi ϕ,那么伯努利分布的概率密度函数可以表示成:
(2-10) p ( y ; ϕ ) = ϕ y ( 1 − ϕ ) 1 − y = e x p ( y l o g ϕ + ( 1 − y ) l o g ( 1 − ϕ ) ) = e x p ( ( l o g ϕ 1 − ϕ + l o g ( 1 − ϕ ) ) ) \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} p(y;ϕ)=ϕy(1−ϕ)1−y=exp(ylogϕ+(1−y)log(1−ϕ))=exp((log1−ϕϕ+log(1−ϕ)))(2-10)
η \eta η就是 l o g ϕ 1 − ϕ log{\frac{\phi}{1-\phi}} log1−ϕϕ,
与此同时,如果我们用 η \eta η来反解出 ϕ \phi ϕ,有:
(2-11) ϕ = 1 1 + e − η \phi=\frac{1}{1+e^{-\eta}}\\ \tag{2-11} ϕ=1+e−η1(2-11)
这其实就是sigmoid函数的表达形式 !后面我们会再深入些讨论logistic回归和sigmoid函数。
此时,指数族分布中的参数对应地可以写成如下:
(2-12) η = l o g ϕ 1 − ϕ T ( y ) = y a ( η ) = − l o g ( 1 − ϕ ) = l o g ( 1 + e η ) b ( y ) = 1 \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} ηT(y)a(η)b(y)=log1−ϕϕ=y=−log(1−ϕ)=log(1+eη)=1(2-12)
对于高斯分布,为了简化起见,我们这里考虑方差为1的情况。(这种简化是有意义的,尤其是在作为线性回归的铺垫的时候。因为在推导线性回归模型的时候,高斯分布的方差对后的优化目标无影响,因此可以选取任意的方差来进行推导说明)。令均值为 μ \mu μ,高斯分布的概率密度函数为:
(2-13) p ( y ; μ , δ ) = 1 δ 2 π e x p ( − 1 2 δ 2 ( y − μ ) 2 ) = 1 δ 2 π e x p ( − 1 2 δ 2 y 2 ) e x p ( μ y δ 2 − 1 2 δ 2 μ 2 ) \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} p(y;μ,δ)=δ2π1exp(−2δ21(y−μ)2)=δ2π1exp(−2δ21y2)exp(δ2μy−2δ21μ2)(2-13)
对应的指数族分布的参数为:
(2-14) η = μ δ 2 T ( y ) = y a ( η ) = 1 2 δ 2 μ 2 = δ 2 2 η 2 b ( y ) = 1 δ 2 π e x p ( − 1 2 δ 2 y 2 ) \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} ηT(y)a(η)b(y)=δ2μ=y=2δ21μ2=2δ2η2=δ2π1exp(−2δ21y2)(2-14)
从上式我们可以得到:
(2-15) y ^ = E ( y ∣ x ; μ , δ ) = μ = δ 2 ⋅ η \hat y=E(y|x;\mu,\delta)=\mu=\delta^2\cdot\eta\\ \tag{2-15} y^=E(y∣x;μ,δ)=μ=δ2⋅η(2-15)
在2.1.节中,我们其实并没有求出 η \eta η的最优值。正常的思路,应该是通过求取Lagrange对偶函数的最大值点来求出 η \eta η,然而实际中这比较困难,因此一般用另一种方法来求——极大似然估计法。下面我们证明用极大似然估计的方法来求 η \eta η,满足 ( 2 − 2 ) (2-2) (2−2)
所谓极大似然估计法,其实就是求如下最优化问题:
(2-16) argmax η L ( p ( D ∣ η ) ) = argmax η p ( D ∣ η ) = argmax η ∑ i = 1 m ( η T T ( X ( i ) ) − a ( η ) ) \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} ηargmax L(p(D∣η))=ηargmax p(D∣η)=ηargmax i=1∑m(ηTT(X(i))−a(η))(2-16)
不失一般性,我们这里仅给出 η \eta η为1维的情况下的求解过程。上式对 η \eta η求导令导数为0(这里其实省略了上式中的最优化目标函数是凹函数的证明,读者有兴趣可以自行证明):
(2-17) ∑ i = 1 m T ( X ( i ) ) − m ∂ a ( η ) ∂ η = 0 \sum_{i=1}^m T(X^{(i)})- m\frac{\partial{a(\eta)}}{\partial{\eta}}=0\\ \tag{2-17} i=1∑mT(X(i))−m∂η∂a(η)=0(2-17)
求得:
(2-18) ∂ a ( η ) ∂ η = 1 m ∑ i = 1 m T ( X ( i ) ) = μ ^ \frac{\partial{a(\eta)}}{\partial{\eta}}=\frac{1}{m}\sum_{i=1}^m T(X^{(i)})=\hat\mu\\ \tag{2-18} ∂η∂a(η)=m1i=1∑mT(X(i))=μ^(2-18)
也即,用极大似然估计的方法也满足 ( 2 − 2 ) (2-2) (2−2),因此可以放心用。
此外我们还注意到,如果 T ( x ) = x T(x)=x T(x)=x,也即我们关心的统计量是一阶矩(对弈一个样本,就是x本身;对于多个样本,就是均值)。也即,这里隐含了一个结论: η \eta η是x的线性函数!。这是下一小节的铺垫。
下面我们来总结一下,利用GLM对问题建模的三个基本假设
本章研究的问题场景是:输出变量 y y y是连续的,同时假设误差 ϵ ( i ) \epsilon^{(i)} ϵ(i)(模型预测值和实际值的茶)是独立同分布的,也即 ϵ ( i ) ∼ N ( 0 , δ 2 ) \epsilon^{(i)}\sim N(0,\delta^2) ϵ(i)∼N(0,δ2)。
这个假设也等价于 y ∣ x ; θ ∼ N ( μ , δ 2 ) y|x;\theta\sim N(\mu,\delta^2) y∣x;θ∼N(μ,δ2)。当然,严谨一点的线性回归理论中,并不要求误差一定符合正态分布(一般只假设误差的均值的期望为0),这里不做深入研究。但是我们一般都会假设误差服从正态分布。这个假设的理由如下:
结合前面的2.2节可知,当输出量 y y y服从整体分布时,有 y ^ = δ 2 ⋅ η \hat y=\delta^2\cdot\eta y^=δ2⋅η;再结合2.4节中的假设3,可以得到 y ^ = δ 2 ⋅ ( w T x + b ) \hat y=\delta^2\cdot(w^Tx+b) y^=δ2⋅(wTx+b)。如果令 w ′ = δ 2 w , b ′ = δ 2 b w'=\delta^2w,b'=\delta^2b w′=δ2w,b′=δ2b,则有 y ^ = w T x + b \hat y=w^Tx+b y^=wTx+b,这就是线性回归的模型表达式!这也说明了,如果问题是回归问题( y y y是连续变量),且误差服从均值为0的正态分布,并且没有其他多余的信息,那么用线性回归来建模是最优的选择。
我们用如下更紧凑的方式来表示线性回归模型:
(3-1) y ( i ) = θ x ( i ) + ϵ ( i ) y^{(i)}=\theta x^{(i)}+\epsilon^{(i)}\\ \tag{3-1} y(i)=θx(i)+ϵ(i)(3-1)
其中 x 0 = 1 , θ = [ w ; b ] x_0=1,\theta=[w;b] x0=1,θ=[w;b], ϵ ( i ) ∼ N ( 0 , δ 2 ) \epsilon^{(i)}\sim N(0,\delta^2) ϵ(i)∼N(0,δ2)。
用极大似然估计的方法来求取最优的 θ \theta θ。似然函数为:
(3-2) L ( θ ) = L ( θ ; x , y ) = p ( y ∣ x ; θ ) L(\theta)=L(\theta;x,y)=p(y|x;\theta)\\ \tag{3-2} L(θ)=L(θ;x,y)=p(y∣x;θ)(3-2)
因为随机误差 ϵ ( i ) \epsilon^{(i)} ϵ(i)是相互独立的,因此似然函数可以写成:
(3-3) L ( θ ) = ∏ i = 1 m p ( y ( i ) ∣ x ( i ) ; θ ) = ∏ i = 1 m 1 δ 2 π e x p ( − 1 2 δ 2 ( y − μ ) 2 ) \begin{aligned} L(\theta)&=\prod_{i=1}^{m}p(y^{(i)}|x^{(i)};\theta)\\ &=\prod_{i=1}^{m}{\frac{1}{\delta\sqrt {2\pi}}exp{\left(-\frac{1}{2\delta^2}(y-\mu)^2\right)}}\\ \tag{3-3} \end{aligned} L(θ)=i=1∏mp(y(i)∣x(i);θ)=i=1∏mδ2π1exp(−2δ21(y−μ)2)(3-3)
对数自然函数为:
(3-4) l ( θ ) = l o g L ( θ ) = m l o g 1 δ 2 π − 1 δ 2 ⋅ 1 2 ∑ i = 1 m ( y ( i ) − θ T x ( i ) ) 2 \begin{aligned} l(\theta)&=log\ L(\theta)\\ &=mlog{\frac{1}{\delta\sqrt {2\pi}}}-\frac{1}{\delta^2}\cdot\frac{1}{2}\sum_{i=1}^{m}(y^{(i)}-\theta^Tx^{(i)})^2\\ \tag{3-4} \end{aligned} l(θ)=log L(θ)=mlogδ2π1−δ21⋅21i=1∑m(y(i)−θTx(i))2(3-4)
最大化 l ( θ ) l(\theta) l(θ)其实也就是等价于最小化如下式子(一般要再除以样本数 m m m,使cost function的量级不会依赖于样本数):
(3-5) 1 2 m ∑ i = 1 m ( y ( i ) − θ T x ( i ) ) 2 \frac{1}{2m}\sum_{i=1}^{m}(y^{(i)}-\theta^Tx^{(i)})^2\\ \tag{3-5} 2m1i=1∑m(y(i)−θTx(i))2(3-5)
这就是线性回归的cost function!。
本章研究的问题场景是二分类场景,也即输出变量 y y y是离散的且只能取两个不同的值,不妨设为 y ∈ { 0 , 1 } y\in\{0,1\} y∈{0,1}。很自然地我们可以假设 y y y服从伯努利分布,假设伯努利分布的均值(也即取值为1的概率)为 ϕ \phi ϕ,由2.2节和2.3节可知:
(4-1) y ^ = E ( y ∣ x ; ϕ ) = ϕ = 1 1 + e − η = 1 1 + e − θ T x \hat y=E(y|x;\phi)=\phi=\frac{1}{1+e^{-\eta}}=\frac{1}{1+e^{-\theta^T x}}\\ \tag{4-1} y^=E(y∣x;ϕ)=ϕ=1+e−η1=1+e−θTx1(4-1)
上式就是logistic回归的模型,用到的就是sigmoid函数。也即,在二分类问题中,假设样本之间是相互独立的,如果没有其他更多信息,用sigmoid函数来对输出值(或者取正例的概率)进行建模是最优的选择。
记 h θ = 1 1 + e ( − θ T x ) h_\theta=\frac{1}{1+e^{(-\theta^Tx)}} hθ=1+e(−θTx)1,则
(4-2) P ( y ∣ x ; θ ) = ( h θ ( x ) ) y ( 1 − h θ ( x ) ) 1 − y P(y|x;\theta)=(h_\theta(x))^y(1-h_\theta(x))^{1-y}\\ \tag{4-2} P(y∣x;θ)=(hθ(x))y(1−hθ(x))1−y(4-2)
似然函数为:
(4-3) L ( θ ) = P ( Y ∣ X ; θ ) = ∏ i = 1 m P ( y ( i ) ∣ x ( i ) ; θ ) = ∏ i = 1 m ( h θ ( x ( i ) ) ) y ( i ) ( 1 − h θ ( x ( i ) ) ) 1 − y ( i ) \begin{aligned} L(\theta) &=P(\boldsymbol{Y}|\boldsymbol{X};\theta) \\ &=\prod_{i=1}^{m}P(y^{(i)}|x^{(i)};\theta) \\ &=\prod_{i=1}^{m}(h_\theta(x^{(i)}))^{y^{(i)}}(1-h_\theta(x^{(i)}))^{1-y^{(i)}}\\ \tag{4-3} \end{aligned} L(θ)=P(Y∣X;θ)=i=1∏mP(y(i)∣x(i);θ)=i=1∏m(hθ(x(i)))y(i)(1−hθ(x(i)))1−y(i)(4-3)
对数似然函数为:
(4-4) l ( θ ) = log L ( θ ) = ∑ i = 1 m y ( i ) log h θ ( x ( i ) ) + ( 1 − y ( i ) ) log ( 1 − h θ ( x ( i ) ) ) \begin{aligned} l(\theta) &=\log L(\theta) \\ &=\sum_{i=1}^{m}y^{(i)}\log h_\theta(x^{(i)})+(1-y^{(i)})\log (1-h_\theta(x^{(i)}))\\ \tag{4-4} \end{aligned} l(θ)=logL(θ)=i=1∑my(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i)))(4-4)
我们的木事是使对数似然函数最大化,因此cost function为如下(一般会再除以样本数 m m m使cost function的量级不会依赖样本数):
(4-5) J ( θ ) = − 1 m [ ∑ i = 1 m y ( i ) log h θ ( x ( i ) ) + ( 1 − y ( i ) ) log ( 1 − h θ ( x ( i ) ) ) ] J(\theta)=-\frac{1}{m}\left[\sum_{i=1}^{m}y^{(i)}\log h_\theta(x^{(i)})+(1-y^{(i)})\log (1-h_\theta(x^{(i)}))\right] \tag{4-5} J(θ)=−m1[i=1∑my(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i)))](4-5)