为什么logistic regression要使用sigmoid函数

转自:JUN’S TECH BLOG
http://leijun00.github.io/2014/08/logistic-regression/

我们知道,线性回归模型输出的是一个连续值,如果我们要输出的不是连续值,该怎么做呢?假设我们的输出只有 1 和 -1.
逻辑回归模型形式上是把线性回归模型做一个变换,让其输出是一个 0 到 1 之间的数,假设我们的变换叫做 g(z)g(z),然后在变换后的结果上定义一个决策函数,如果:

y=1ifg(z)>0.5
y=1ifg(z)>0.5
y=−1ifg(z)<0.5
y=−1ifg(z)<0.5
其中 zz 就是我们前面讲到的线性模型:

z=wTx
z=wTx
而变换采用了逻辑变换,也叫 sigmoidsigmoid 变换,其形式为:

g(z)=11+e−z
g(z)=11+e−z
通过上面几个式子进行一个简单的推导,我们的决策函数变为:

y=1ifz=wTx>0
y=1ifz=wTx>0
y=−1ifz=wTx<0
y=−1ifz=wTx<0
最后我们的逻辑回归模型就变成:

hw(x)=gw(x)=11+e−wTx
hw(x)=gw(x)=11+e−wTx
我们看看 sigmoid 函数有什么特点,从下面的图形可以看出,这个函数是个连续光滑函数,定义域是 (−∞,∞)(−∞,∞),值域是 [0,1][0,1],在 0 附近函数的区分度很高(yy的值变化比较明显),越往两边,函数的区分度就越低(yy的值变化越来越不明显).

并且这个函数处处可导,其导数为:

g′=(11+e−z)′=e−z(1+e−z)2=g(z)⋅(1−g(z))
g′=(11+e−z)′=e−z(1+e−z)2=g(z)⋅(1−g(z))
其导数可以由自己本身表示.

而且:

g(−z)=11+ez=1−g(z)
g(−z)=11+ez=1−g(z)
z=0,e0=1,g(z)=1/2
z=0,e0=1,g(z)=1/2
z→∞,e−∞→0,g(z)=1
z→∞,e−∞→0,g(z)=1
z→−∞,e∞→∞,g(z)=0
z→−∞,e∞→∞,g(z)=0
为什么sigmoidsigmoid函数比别的非线性函数有吸引力呢? 做sigmoidsigmoid变换的目的是把(−∞,∞)(−∞,∞)的取值范围(用xx表示)映射到 (0,1)(0,1) 范围内(用yy表示): h=y(x)h=y(x),为此我们应该选择什么样的 hh 呢,hh 变换可以理解成对 xx 的一种编码,当然hh最好是双射,意味着可以从yy反解码得到xx.理论上满足双射的hh可以有无穷多种,该怎么选择呢? 实际上双射是不可能的,因为观测 yy 时不可避免的要引入误差,即 y=h(x)+εy=h(x)+ε,其中 εε 为误差,在有误差的情况下,xx和yy就不是一一映射了.任何从 yy 反解码得到 xx 都是不可能的,所以问题来了:有没有一种映射hh,在有误差的情况下做到最优? 通俗的讲,就是寻找一个映射hh,在有观测误差εε的情况下,最优的保持输入信号xx的信息,用信息学的语言描述就是xx与yy之间的互信息最大,而 I(x,y)=H(y)−H(y∥x)=H(y)−H(ε)I(x,y)=H(y)−H(y∥x)=H(y)−H(ε) .x,yx,y的互信息由两项决定 H(y)=H(h(x))H(y)=H(h(x)) 和 H(ε)H(ε),而其中第二项完全由误差决定,我们控制不了.第一项 H(y)H(y)是由映射hh决定的,H(y)H(y)越大越好,所以问题又变成: 给定取值范围(0,1)(0,1),熵 H(y)H(y)什么时候最大? 答案就是yy服从均匀分布时熵最大.因此,能把xx映射成一个均匀分布的映射hh是最优的.当知道xx的概率密度为f(x)f(x)时,怎么样的变换能把 xx 变成均匀分布呢? 还记得遇到多这样的面试题吗: 如何用(0,1)(0,1)的均匀分布生成任意的其他概率分布? 答案是用一种叫 inverse cumulative distribution function 的变换方法.而这里的问题正好和面试题相反,我们要从任意分布生成均匀分布.答案就是f(x)f(x)的累积分布函数F(x)F(x)就是最优的hh.想象一下正态分布的概率密度函数,是一个倒置的钟形函数,而它的累积分布函数是不是和 sigmoidsigmoid 函数长得很像? 而现实中我们遇到的倒置钟形分布的信号又比比皆是.

注意: 对概率密度不是倒置钟形的信号,sigmoidsigmoid变换不一定是最优的.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值