1. 逻辑回归的建模
1.1.sigmoid函数
说道建模,总有一些粗暴的地方,即强行给真实模型f指定某种形式f^,像线性回归里就强行指定了f^(x)=βTx,x∈Rp,β∈Rp+1这种形式,然后依靠所找到的最优的β使f^尽量接近f。
分类问题与回归的问题的不同在于y的值域不同,对于分类问题,我们想把样本x分到y∈{a,b,c,d,...}的类别中。这样,我们希望拟合y在给定x下的条件概率P(y=a,b,...|x)。概率的值域为[0,1]。由于我们不能保证内积的结果在[0,1]之内,所以线性回归的那种内积的形式就不适用了,我们就不能以这种形式的模型去拟合真实模型。
人们找到一种叫sigmoid(s型)的函数

y=g(x)=11+e−x,x∈R,y∈(0,1)(1)
它可以把范围在
(−∞,+∞)的值映射到
(0,1)里去,由于它是单调递增函数,因此可以保持输入值的单调性、奇偶性、周期型。把
f^(x)=βTx带入其中得到
hβ(x)=g(βTx)=11+e−βTx(2)
1.2.二分类
对于二分类问题y∈{0,1},我们假设
⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪P(y=1|x;β)P(y=0|x;β)==hβ(x)=11+e−βTx1−hβ(x)=e−βTx1+e−βTxx∈Rp,β∈Rp+1(3)
可能因为这种模型的结果是在0, 1之间,且保持了线性回归模型的内积形式,因此它被称作logistic regression,即逻辑回归,或逻辑斯蒂回归。
**参考
1.2. 逻辑回归的特质
将(3)中的2个等式取对数相比(log-odd)得
logP(y=1|x)P(y=0|x)=βTx(4)
可以发现以下特质,
考虑任意样本x0:
1. 当
P(y=1|x0)>P(y=0|x0)时,
x0被分类到
βTx=0的>0的一边;
2. 当
P(y=1|x0)<P(y=0|x0)时,
x0被分类到
βTx=0<0的一边。
3. 当
P(y=1|x0)=P(y=0|x0)时,
x0在平面
βTx=0上。
可见Logistic Regression仍然是一种线性方法,即用平面(βTx=0)来分类。在二分类问题中,样本在超平面的一边就属于一类, 这个平面就是类与类之间的边界。
可以认为逻辑回归实际上式以(4)建模的。它认为一个样本属于类1的概率P(y=1|x)大的话,它应当在分类平面βTx=0的一边,即满足βTx>0;当这个样本属于0类概率 P(y=0|x)大时,它应当在分类平面βTx=0的另一边,即满足βTx<0 。并且,它严格地假设了两类条件概率的对数比是线性的,可以被输入X线性表出。我们知道由于类密度高斯假设和公共协方差假设,LDA(线性判别分析)的log-odd是x的线性函数,与(4)形式一样。而Logistic绕过了这2个假设以式(4)建模。逻辑回归不要求样本满足类密度高斯假设和公共协方差假,更具一般性。
其实,我们忘掉sigmoid函数,直接拿(4)来建模,粗暴地假设类对数比率(log-odd)是关于x的线性函数,又由于样本属于两类的概率之和为1
P(y=1|x)+P(y=0|x)=1(5)
联立(4)(5),解未知数为P(Y=1|x)和P(Y=-1|x)的方程还是可以得到式(3),自然含有sigmoid函数。
1.3.多分类
对于K分类问题,如y∈{1,2,...,K},我们希望模型拟合的是y的后验分布P(y=i|x),i=1,2,...,K。像二分类一样,如法炮制,假设两两类的条件概率对数比(log-odd)是关于x的线性函数,这样我们能列(K2)=K(K−1)2个方程。可是我们只有K个未知数,只需要列K个方程就行了,不妨取1,2,…,K-1类分别与K类的对数比来列方程,并限制样本属于K个类的概率的和为1,则
⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪logP(y=1|x)P(y=K|x)logP(y=2|x)P(y=K|x)...logP(y=K−1|x)P(y=K|x)∑i=1KP(y=i|x)====βT1xβT2xβTK−1x1x∈Rp,βk∈Rp+1,k=1,2,...,K−1(6)
解方程组得到多分类的模型
⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪P(y=k|x;β)P(y=K|x;β)==e−βTkx1+∑K−1i=1e−βTix11+∑K−1i=1e−βTix(7)
其中,
x∈Rp,βk∈Rp+1,k=1,2,...,K−1。
这很像
softmax回归,把(7)中的“1”替换成“
e−βTKx”就成了softmax回归。
P(y=k|x;β)=e−βTkx∑Ki=1e−βTix,k=1,2,...,K(8)
softmax回归可以看做是logistic的推广。当然softmax回归并不是这么推倒出来的,它的建模过程有它自己的考虑,像logistic一样出于某种需求被逐步构建出,就像你做deep learning搭积木一样,是一种建模过程。你能根据模型的某种数学特点把他们归类在一起,比如GLM, tree。模型与模型间确定的推导关系是很难给出的, 至少我在写这个博客时还做不到。或者我该以另一种形式开头,如“人们找到一种叫做softmax的函数,它有这样那样的特点。。。”再写一篇博客。
2.逻辑回归的求解
用最大似然估计法估计β, 令
pi=P(yi=1|xi)=1−sigmoid(βTxi)
则
P(yi=0|xi)=1−pi=sigmoid(βTxi)
那么似然函数为:
l(β)=∏i=1npyii(1−pi)1−yi
对数似然为:
L(β)=logl(β)=∑i=1nyilogpi+(1−yi)log(1−pi)(8)
最大化
L(β)即最小化
−L(β) −L(β)=−logl(β)=∑i=1n−yilogpi−(1−yi)log(1−pi)(9)
(9)等号右边每一项为交叉熵(cross entropy),因此对逻辑回归使用最大似然估计等价于最小化交叉熵,因此在神经网络中以交叉熵为损失函数求解二分类问题与最大似然估计是等价的。
这里只介绍一般逻辑回归的求解,回到(8), 将(6)(7)带入(8)得
L(β)=∑i=1nyiβTxi−log(1+exp(βTxi))
令其梯度为0有
∂L(β)∂β=∑i=1nxi(yi−exp(βTxi)1+exp(βTxi))=∑i=1nxi(yi−pi)=0(10)
(10)是非线性方程组,难以求得
β的解析解,可使用Newton-Raphson算法(牛顿迭代法)求解(10)的零点,Newton-Raphson算法需要(10)的导数,也就是
L(β)的Hessian矩阵(二阶导数)
∂L2(β)∂β∂βT=−∑i=1nxixTipi(1−pi)
因此Newton-Raphson算法每一步的迭代公式为:
βnew=βold−(∂L2(β)∂β∂βT∣∣∣βold)−1∂L(β)∂β∣∣∣βold(11)
可根据(11)迭代即可求解出(10)的零点
β,同时也是(8)的极值点。
Newton-Raphson算法(牛顿迭代法)
以logP(y=1|x)P(y=0|x)=βTx建模的遐想
考虑任意样本x0:
- 若x0属于1类的概率大于属于0类的概率,它应当在分类平面βTx=0的某一边,不妨设βTx0>0;
- 若x0属于0类的概率大于属于1类的概率,它应当在分类平面βTx=0的另一边,即βTx0<0。
换成数学的语言就是:
如果 |
那么 |
logP(y=1|x0)P(y=0|x0)>0
|
βTx0>0
|
logP(y=1|x0)P(y=0|x0)<0
|
βTx0<0
|
只要logP(y=1|x0)P(y=0|x0)和βTx0同号就是我们想要的模型。Logistic直接以logP(y=1|x)P(y=0|x)=βTx建模保证了这种同号的要求,但是这样建模多了一个副产品,就是“绝对值相等”——
|logP(y=1|x0)P(y=0|x0)|=|βTx0|(12)
容易理解,
|βTx0|是
x0到分类平面
βTx=0的距离,而
|logP(y=1|x0)P(y=0|x0)|是样本
x0属于于0,1类概率的对数比率(log-odd)。二者相等吗?
样本到分类平面的距离与样本属于各类概率的对数比率大小相等吗?有可能碰到正好满足的样本,但是绝大多数情况下不相等。
我想,这种过度建模也许就是LR的缺陷所在。
这些想法由ESL和我在知乎中关于逻辑回归的回答引申而来,我也没见过相关的文献,要是有相关的文献作为以上臆想的佐证或者驳斥,烦请通知我。