2

Logistic模型及其推广

 2 years ago
source link: https://allenwind.github.io/blog/7288/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Logistic模型及其推广

从线性模型出发,再到odds & logit这两个概念,然后介绍Logistic模型及其推广。

给定数据集

D={(x1,y1,(x2,y2),...,(xn,yn)}

线性回归问题就是学习如下模型,

f(x)=w⋅x+b

对于每个样本的误差,

εi=f(xi;w)−yi

最小二乘法是曲线拟合中使用平方误差的特例。“二乘”其实就是平方的意思。模型f(x)拟合样本,让误差的平方最小化,

minwn∑i=1(f(xi;w)−yi)2

其中f(x)可以是复杂的模型如神经网络,也可以是简单的模型如线性模型。如果样本有差异,给与不同权重,那么有加权最小二乘法,

minwn∑i=1αi(f(xi;w)−yi)2

此外还有广义的线性模型,如对数线性回归,

log(y)=w⋅x+b

指数线性回归,

exp(y)=w⋅x+b

Logistic模型本身也是线性模型,只不过它引入概率意义,这里需要先介绍odds 、logit这两个概念。

odds & logit

odds和logits在神经网络和机器学习中都是常见的概念,也非常容易混淆,因此这里简单讲一讲这两个概念。odds称为几率或可能性,是事件A发生与不发生(非A)的概率的比值,

odds(p)=p1−p

根据概率的取值范围容易得到odds(p)∈[0,+∞),不过该取值范围不对称,对于很多模型的输出来说,需要加激活处理才能使得取值在正半轴区间。

Logit,顾名思义log it,对odds(p)取对数变换,

logits(p)=log(odds(p))=logp1−p

于是logits(p)∈[−∞,+∞]没有上下限,于是可以方便地进行建模。例如最简单的线性模型,

logits(p)=log(p1−p)=β0+n∑i=1βixi

这就是可以理解,为什么很多机器学习和深度学习模型的输入在没有加激活(如softmax)称为logit。对上式变换,有对数线性模型,

p(x)=exp(β0+∑ni=1βixi)1+exp(β0+∑ni=1βixi)

这就是下面推出的Logistic模型。该模型的特例就是σ(x),

σ(x)=11+e−x

这种形式的函数事实上来自增长模型,微分方程表示为,

dPdt=r×P×(1−PK)

P为种群数量,r为增长率,K为环境容量,方程解得,

P(t)=K×P0ertK+P0(ert−1)=K1+(K−P0P0)e−rt

把参数简约掉,就得到Logistic函数。

Logistic模型

二项Logistic regression模型是对数线性模型,表示为如下条件概率,

P(Y=1|x)=exp(w⋅x+b)1+exp(w⋅x+b)P(Y=0|x)=11+exp(w⋅x+b)

假设取P(Y=1|x)=p,根据上式不难有,

logit(p)=logp1−p=w⋅x+b

因此,我们也常常称w⋅x+b为logit,可以理解为一个未经归一化的概率值。在前馈神经网络中,全连接网络W⋅X+b​​也称为logit。Logistic模型的参数可以使用MLE方法估计,这里不展开。

多项Logistic模型

以上是二项logistic regression模型,不难推广到多项logistic regression模型。多项Logistic模型,即multi-nominal logistic regression。

当k=1,…,K−1时,

P(Y=k|x)=exp(wk⋅x+b)1+K−1∑k=1exp(wk⋅x+b)

当Y=K时,

P(Y=K|x)=11+K−1∑k=1exp(wk⋅x+b)

取P(Y=k|x)=pk,那么有,

lnpkpK=wk⋅x+b

可见,该形式类似于Logit。

softmax regression

multi-nominal logistic regression模型右边乘以exp(wK⋅x+b)exp(wK⋅x+b),等式不变,即

P(Y=k|x)=exp(wk⋅x+b)1+K−1∑k=1exp(wk⋅x+b)×exp(wK⋅x+b)exp(wK⋅x+b)=exp(w′k⋅x+b)exp(wK⋅x+b)+K−1∑k=1exp(w′k⋅x+b) P(Y=K|x)=11+K−1∑k=1exp(wk⋅x+b)×exp(wK⋅x+b)exp(wK⋅x+b)=exp(wK⋅x+b)exp(wK⋅x+b)+K−1∑k=1exp(w′k⋅x+b)

综上,可转换为如下形式,

P(Y=k|x)=exp(wk⋅x+b)K∑k=1exp(wk⋅x+b)

需要注意,这里wk是形式符号和multi-nominal logistic regression的并不是同一个参数。这个形式称为softmax regression。

本文从odds & logit出发,然后介绍Logistic模型、多项Logistic模型、softmax regression。

[1] https://scikit-learn.org/stable/modules/linear_model.html

[2] 统计学习方法

[3] https://en.wikipedia.org/wiki/Multinomial_logistic_regression

[4] https://en.wikipedia.org/wiki/Logistic_regression

[5] https://en.wikipedia.org/wiki/Least_squares

转载请包括本文地址:https://allenwind.github.io/blog/7288
更多文章请参考:https://allenwind.github.io/blog/archives/


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK