为什么 LR 模型要使用 sigmoid 函数,背后的数学原理是什么?

这个问题经常被问到,但一直没找到较好的资料。Ng的视频里提到过Exponential Family相关的东西,但觉得并不能很好的解释这个问题。
关注者
1,286
被浏览
105,943

32 个回答

看了一下,几乎所有的回答都只解释了“为什么可以用sigmoid”,而没有解释“为什么要用sigmoid”。虽然也有回答提到了exponential family中bernoulli的形式,但高票回答基本只说明了sigmoid的各种良好性质。

若是光从这个角度解释的话,probit也具有相同的性质,为什么除了做GLM的,基本上就没人用呢?

说到底源于sigmoid,或者说exponential family所具有的最佳性质,即maximum entropy的性质。
虽然不清楚历史上孰先孰后,但这并不妨碍maximum entropy给了logistic regression一个很好的数学解释。

为什么maximum entropy好呢?entropy翻译过来就是熵,所以maximum entropy也就是最大熵。熵原本是information theory中的概念,用在概率分布上可以表示这个分布中所包含的不确定度,熵越大不确定度越大。所以大家可以想象到,均匀分布熵最大,因为基本新数据是任何值的概率都均等。

而我们现在关心的是,给定某些假设之后,熵最大的分布。也就是说这个分布应该在满足我假设的前提下越均匀越好。比如大家熟知的正态分布,正是假设已知mean和variance后熵最大的分布。

回过来看logistic regression,这里假设了什么呢?首先,我们在建模预测 Y|X,并认为 Y|X 服从bernoulli distribution,所以我们只需要知道 P(Y|X);其次我们需要一个线性模型,所以 P(Y|X) = f(wx)。接下来我们就只需要知道 f 是什么就行了。而我们可以通过最大熵原则推出的这个 f,就是sigmoid。

其实前面也有人剧透了bernoulli的exponential family形式,也即是 1/ (1 + e^-z)

具体推导详见:win-vector.com/dfiles/L
考虑任意多类(不仅是两类)的分类问题。

Exponential model 的形式是这样的:
假设第i个特征对第k类的贡献是w_{ki},则数据点(x_1, \ldots, x_n)属于第k类的概率正比于\exp(w_{k1}x_1 + \ldots + w_{kn}x_n)。(省略bias)

因为一个数据点属于各类的概率之和为1,所以可以得到
P(y = k) = \frac{\exp(\sum_{i=1}^n w_{ki}x_i)}{\sum_{k'} \exp(\sum_{i=1}^n w_{k'i}x_i)}

现在回到两类(0、1)的情况,此时分母上只有两项:
P(y = 1) = \frac{\exp(\sum_{i=1}^n w_{1i}x_i)}{\exp(\sum_{i=1}^n w_{1i}x_i) + \exp(\sum_{i=1}^n w_{0i}x_i)}

分子、分母同除以分子,并设w_i = w_{1i} - w_{0i},则有
P(y = 1) = \frac{1}{1 + \exp(-\sum_{i=1}^n w_i x_i)}

喏,这就是logistic函数。其中参数w_i表示第i个特征对1类的贡献比对0类的贡献多多少。