您的位置:首页 > 其它

Multinomial Logistic Regression

2016-06-19 13:37 363 查看
之前的文章中我们通过实际的例子和详细的公式推导已经相当直白而详尽地阐明了 Logistic Regression 的相关知识。在过去的介绍中,我们的逻辑回归通常只用来处理二分类问题,所以又称这种逻辑回归为 Binary (或Binomial) Logistic Regression。本文以此为基础,讨论如何处理多分类问题,这也就是通常所说的 Multinomial Logistic Regression。MLR还有很多可能听起来更熟悉的名字,例如最大熵模型(MaxEnt),Softmax,Boltzmann distribution, 条件随机场(conditional random field)等等。

欢迎关注白马负金羁的博客 http://blog.csdn.net/baimafujinji,为保证公式、图表得以正确显示,强烈建议你从该地址上查看原版博文。本博客主要关注方向包括:数字图像处理、算法设计与分析、数据结构、机器学习、数据挖掘、统计分析方法、自然语言处理。

如果你在阅读本文之时感到力不从心或者概念不清,那么强烈建议你参考下面几篇文章来作为阅读本文的基础:

二项分布与多项分布

机器学习之详解Logistic回归

牛顿法解机器学习中的Logistic回归

Binomial Logistic Regression

因为在之前的文章里我们已经详细地讨论过这部分内容,所以本小节仅作简单回顾,如果你对其中的推导感到吃力,可以参见“白马负金羁”博客上的其他相关文章。

首先,人们之所以会提出逻辑回归的方法,其实是从线性回归中得到的启发。通常,线性回归可以表示为

P=w⋅xP=\mathbf{w}\cdot \mathbf{x}

其中 w\mathbf{w} 是参数向量,x\mathbf{x} 是样本观察值向量。对于一个Binary Classifier问题而言,我们希望 PP 表示一个概率,也就是由 x\mathbf{x} 所表征的样本属于两个分类之一的概率。既然是概率,所以也就要求 PP 介于0和1之间。但上述方程左侧的 w⋅x\mathbf{w}\cdot \mathbf{x} can take any real value。

为此,我们定义

odds=P1−Podds=\frac{P}{1-P}

as the ratio of the probability to its complement, or the ratio of favorable to unfavorable case.

然后我们对上式两边同时取对数,得到 logit or log-odds 如下

y=logit(P)=logP1−P=w⋅xy={\rm{logit}}(P)=\log \frac{P}{1-P}=\mathbf{w}\cdot \mathbf{x}

取反函数可得

P=ey1+eyP=\frac{e^y}{1+e^y}

此时,概率 PP 就介于0~1之间了。

在Bishop的PRML[3]中,作者从另外一个角度对 Logistic Regression 进行了解读。既然我们最终是想求条件概率 p(y | x)p(y\ |\ \mathbf{x}),其中 yy 是目标的类别,x \mathbf{x} 是特征向量(或观察值向量)。那么根据贝叶斯定理,则有

P(y=1 | x)=P(x | y=1)P(y=1)P(x | y=1)P(y=1)+P(x | y=0)P(y=0)=ey1+ey=11+e−yP(y=1\ |\ \mathbf{x})=\frac{P( \mathbf{x}\ |\ y=1)P(y=1)}{P( \mathbf{x}\ |\ y=1)P(y=1)+P( \mathbf{x}\ |\ y=0)P(y=0)}\\
=\frac{e^y}{1+e^y}=\frac{1}{1+e^{-y}}

其中

y=logP(x | y=1)P(y=1)P(x | y=0)P(y=0)=logP(y=1 | x)P(y=0 | x)=logP1−Py=\log \frac{P( \mathbf{x}\ |\ y=1)P(y=1)}{P( \mathbf{x}\ |\ y=0)P(y=0)}=\log \frac{P(y=1\ |\ \mathbf{x})}{P(y=0\ |\ \mathbf{x})}
=\log \frac{P}{1-P}

这跟本文的解读是一致的。

逻辑回归遵循一个(单次的)二项分布。所以可以写出下列PMF:

p(y | x)={Pw(x), if y=11−Pw(x),if y=0 p(y\ |\ \mathbf{x})
=\begin{cases}
P_{\mathbf{w}}(\mathbf{x}), \quad \ \ if\ y=1\\
1-P_{\mathbf{w}}(\mathbf{x}), if\ y=0
\end{cases}

其中 w\mathbf{w} 是参数向量,且

Pw(x)=11+e−w⋅xP_{\mathbf{w}}(\mathbf{x}) = \frac{1}{1+e^{-\mathbf{{w}}\cdot \mathbf{x}}}

上述PMF亦可写为如下形式

p(y | x)=[Pw(x)]y[1−Pw(x)]1−yp(y\ |\ \mathbf{x})=[P_{\mathbf{w}}(\mathbf{x})]^y[1-P_{\mathbf{w}}(\mathbf{x})]^{1-y}

然后我们就可以使用N次观测样本的最大对数似然来对参数进行估计:

lnL(w)=ln{∏i=1N[Pw(xi)]yi[1−Pw(xi)]1−yi}=∑i=1N{yilogPw(xi)+(1−yi)log[1−Pw(xi)]}\ln L(\mathbf{w})=\ln\{\prod^N_{i=1}[P_{\mathbf{w}}(\mathbf{x}_i)]^{y_i}[1-P_{\mathbf{w}}(\mathbf{x}_i)]^{1-y_i}\}\\
=\sum^N_{i=1}\{y_i\log P_{\mathbf{w}}(\mathbf{x}_i)
+(1-y_i)\log [1-P_{\mathbf{w}}(\mathbf{x}_i)]\}

根据多元函数求极值的方法,为了求出使得 lnL(w)\ln L(\mathbf{w}) 最大的向量 w=(w0,w1,⋯,wn)\mathbf{w}=(w_0,w_1,⋯,w_n),对上述的似然函数求偏导后得到

∂lnL(w)∂wk=∂∂wk∑i=1N{yilogPw(xi)+(1−yi)log[1−Pw(xi)]}=∑i=1Nxik[yi−Pw(xi)]\frac{∂\ln L(\mathbf{w})}{∂w_k}
=\frac{∂}{∂w_k}\sum^N_{i=1}\{y_i\log P_{\mathbf{w}}(\mathbf{x}_i)
+(1-y_i)\log [1-P_{\mathbf{w}}(\mathbf{x}_i)]\} \\
=\sum^N_{i=1}x_{ik}[y_i-P_{\mathbf{w}}(\mathbf{x}_i)]

所以,我们所要做的就是通过上面已经得到的结论来求解使得似然函数最大化的参数向量。

Multinomial Logistic Regression

如果目标类别数超过 2 个,这时就需要使用Multinomial Logistic Regression。

The Binomial logistic regression is a probabilistic model for binomial cases.

The Multinomial logistic regression generalizes the same principle for multinomial cases.

在这个从二分类向多分类演进的过程中,参考之前的做法无疑会带给我们许多启示。由于参数向量 w\mathbf{w} 和特征向量 x\mathbf{x}的线性组合 w⋅x\mathbf{w} \cdot \mathbf{x} 的取值范围是任意实数,为了能够引入概率值 PP,在二分类中我们的做法是将两种分类情况的概率之比(取对数后)作为与 w⋅x\mathbf{w} \cdot \mathbf{x} 相对应的取值,因为只有两个类别,所以类别1VS类别2也就等于类别1VS类别1的补,即

logP(y=1 | x)P(y=0 | x)=logP1−P=w⋅x \log \frac{P(y=1\ |\ \mathbf{x})}{P(y=0\ |\ \mathbf{x})}
=\log \frac{P}{1-P}=\mathbf{w} \cdot \mathbf{x}

事实上,我们知道,如果 P(y=1 | x)P(y=1\ |\ \mathbf{x}) 大于 P(y=0 | x)P(y=0\ |\ \mathbf{x}),自然就表示特征向量 x\mathbf{x} 所标准的样本属于 y=1y=1 这一类别的概率更高。所以odds这个比值是相当有意义的。同样的道理,如果现在的目标类别超过2个,即 y=1, y=2,⋯,y=j,⋯ y=Jy=1,\ y=2, \cdots, y=j, \cdots \ y=J,那么我们就应该从这些目标类别中找一个类别来作为baseline,然后计算其他类别相对于这个baseline的log-odds。并让这个log-odds 作为线性函数的predictors。Typically we pick the last category as a baseline。

在multinomial logit model中,我们假设每一个响应(response)的 log-odds 遵从一个线性模型,即

yj=logPjPJ=wj⋅xy_j=\log \frac{P_j}{P_J}=\mathbf{w}_j\cdot \mathbf{x}

其中,j=1,2,⋯,J−1j=1,2,\cdots,J-1。这个模型与之前的logistic model本质上是一致的。只是响应(YY)的分布由二项分布变成了多项分布。而且我们不再只有一个方程,而是 J−1J-1 个。例如当 J=3J=3 时,我们有两个方程,分别比较 j=1j=1 VS j=3j=3 和 j=2j=2 VS j=3j=3。你可能会疑惑是不是缺失了一个比较。The missing contrast between categories 1 and 2 can easily be obtained in terms of the other two, 因为 log(P1/P2)=log(P1/P3)−log(P2/P3)\log (P_1/P_2) = \log (P_1/P_3) - \log (P_2/P_3)。

The multinomial logit model 也可以写成 原始概率 PjP_j(而不是log-odds)的形式。

在二分的逻辑回归中,我们有

y=logP(y=1)P(y=0)⟹P=ey1+ey
y=\log \frac{P(y=1)}{P(y=0)} \Longrightarrow P=\frac{e^y}{1+e^y}

类似地,在multinomial的情况中,我们还可以得到

yj=logPjPJ=wj⋅x⟹Pj=eyj∑Jk=1eyk
y_j=\log \frac{P_j}{P_J}=\mathbf{w}_j\cdot \mathbf{x} \Longrightarrow
P_j=\frac{e^{y_j}}{\sum_{k=1}^J e^{y_k}}

其中j=1,⋯,Jj=1,\cdots,J。下面我们来证明它。其中我们需要用到的一个事实是∑Jj=1Pj=1\sum_{j=1}^JP_j=1。我们首先来证明 PJ=1∑Jj=1eyjP_J=\frac{1}{\sum_{j=1}^J e^{y_j}},如下

PJ=PJ⋅∑Jj=1Pj∑Jj=1Pj=PJ(P1+P2+⋯+PJ)∑Jj=1Pj=P1P1+P2+⋯+PJPJ+P2P1+P2+⋯+PJPJ+⋯+PJP1+P2+⋯+PJPJ=P1ey1+ey2+⋯+eyJ+P2ey1+ey2+⋯+eyJ+⋯PJey1+ey2+⋯+eyJ=P1+P2+⋯+PJey1+ey2+⋯+eyJ=∑Jj=1Pj∑Jj=1eyj=1∑Jj=1eyj
\begin{align*}
P_J&=P_J\cdot \frac{\sum_{j=1}^J P_j}{\sum_{j=1}^J P_j}\\
&=\frac{P_J(P_1+P_2+\cdots+P_J)}{\sum_{j=1}^J P_j}\\
&=\frac{P_1}{\frac{P_1+P_2+\cdots+P_J}{P_J}}+ \frac{P_2}{\frac{P_1+P_2+\cdots+P_J}{P_J}} +\cdots+
\frac{P_J}{\frac{P_1+P_2+\cdots+P_J}{P_J}} \\
&=\frac{P_1}{e^{y_1}+e^{y_2}+\cdots+e^{y_J}}+
\frac{P_2}{e^{y_1}+e^{y_2}+\cdots+e^{y_J}}+\cdots
\frac{P_J}{e^{y_1}+e^{y_2}+\cdots+e^{y_J}}\\
&=\frac{P_1+P_2+\cdots+P_J}{e^{y_1}+e^{y_2}+\cdots+e^{y_J}}\\
&=\frac{\sum_{j=1}^J P_j}{\sum_{j=1}^J e^{y_j}}\\
&=\frac{1}{\sum_{j=1}^J e^{y_j}}
\end{align*}

又因为Pj=PJ⋅eyjP_j=P_J\cdot e^{y_j}, 而且 yJ=0y_J=0,综上便证明了之前的结论。

在Bishop的PRML[3]中,他指出根据贝叶斯定理,可得

P(y=j | x)=P(x | y=j)P(y=j)∑Jk=1P(x | y=k)P(y=k)=eyj∑Jk=1eykP(y=j\ |\ \mathbf{x})=\frac{P( \mathbf{x}\ |\ y=j)P(y=j)}{\sum_{k=1}^J
P( \mathbf{x}\ |\ y=k)P(y=k)}
=\frac{e^{y_j}}{\sum_{k=1}^Je^{y_k}}

其中yk=log[P(x | y=k)P(y=k)]y_k=\log [{P( \mathbf{x}\ |\ y=k)P(y=k)}]。

前面的推导就告诉我们,在 Multinomial LR 中,响应变量 yy 遵循一个多项分布。可以写出下列PMF(假设有 JJ 个类别):

P(y|x)=⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪ey1∑Jk=1eyk=ew1⋅x∑Jk=1ewk⋅x,if y=1ey2∑Jk=1eyk=ew2⋅x∑Jk=1ewk⋅x,if y=2⋮eyj∑Jk=1eyk=ewj⋅x∑Jk=1ewk⋅x,if y=j⋮eyJ∑Jk=1eyk=ewJ⋅x∑Jk=1ewk⋅x,if y=J
P(y|\mathbf{x})=\begin{cases}
\frac{e^{y_1}}{\sum_{k=1}^J e^{y_k}}=
\frac{e^{\mathbf{w}_1 \cdot \mathbf{x}}}{\sum_{k=1}^J e^{\mathbf{w}_k \cdot \mathbf{x}}},\quad if\ y=1\\
\frac{e^{y_2}}{\sum_{k=1}^J e^{y_k}}=
\frac{e^{\mathbf{w}_2 \cdot \mathbf{x}}}{\sum_{k=1}^J e^{\mathbf{w}_k \cdot \mathbf{x}}},\quad if\ y=2\\
\quad \quad \quad \vdots\\
\frac{e^{y_j}}{\sum_{k=1}^J e^{y_k}}=
\frac{e^{\mathbf{w}_j \cdot \mathbf{x}}}{\sum_{k=1}^J e^{\mathbf{w}_k \cdot \mathbf{x}}},\quad if\ y=j\\
\quad \quad \quad \vdots\\
\frac{e^{y_J}}{\sum_{k=1}^J e^{y_k}}=
\frac{e^{\mathbf{w}_J \cdot \mathbf{x}}}{\sum_{k=1}^J e^{\mathbf{w}_k \cdot \mathbf{x}}},\quad if\ y=J
\end{cases}

可以看出,Binomial LR 和 Multinomial LR本质上是统一的,Binomial LR 是 Multinomial LR 的特殊情况。我们将这两类机器学习模型统称为 逻辑回归(Logistic Regression)。更进一步地,逻辑回归和另外一个称呼“最大熵模型”(MaxEnt)本质上也是一致的,等同的。或者说最大熵模型是Multinomial LR 的另外一个称谓,我们后续会在其他文章中讨论最大熵模型和Multinomial LR 的等同性。

同时推荐《R语言实战——机器学习与数据分析》一书,整合R语言深藏不露的强大威力,决胜数据分析之巅。且听我将统计学之精髓娓娓道来,助你砥砺大数据时代的掘金技法。探寻数据挖掘之术,拨开机器学习迷雾,点破公式背后的层层玄机。本书引言请见如下链接:/article/11896969.html



参考文献

[1] http://data.princeton.edu/wws509/notes/c3.pdf

[2] http://data.princeton.edu/wws509/notes/c6.pdf

[3] Christopher M. Bishop. Pattern Recognition and Machine Learning. Springer Science+Business Media, LLC, 2006
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: