Sigmoid function 的数学原理

本文深入探讨Sigmoid函数的来源和数学含义,从Logistic Regression和神经网络的角度阐述其作用。通过公式推导,解释了Sigmoid如何从概率论的角度得出,并分析了为何在某些情况下,直接使用Discriminative model优于Generative model。
摘要由CSDN通过智能技术生成

Sigmoid function详解

本文阅读对象为有一定machine learing基础,并且在模型的数学含义层面有意愿探索的同学。

什么是Sigmoid function

一提起Sigmoid function可能大家的第一反应就是Logistic Regression。我们把一个sample扔进sigmoid中,就可以输出一个probability,也就是是这个sample属于第一类或第二类的概率。

还有像神经网络也有用到sigmoid,不过在那里叫activation function。

Sigmoid function长下面这个样子:

σ(z)=11+ez

其实这个function我们只知道怎么用它,但是不知道它是怎么来的,以及底层的含义是什么。我在ATA中搜了一下并没有人解释这个问题,知乎有人解答不过都是照着教材抄一抄捞几个赞,那么我详细的解释一下,争取不要让算法工程师沦为调参工程师…

首先假设我们有两个class:class1和class2,并且给出一个sample x,我们的目标是求x属于 C1 的概率是多少。

这个概率我们可以通过Naive Bayes很轻松的得出,也就是:
公式1:

P(C1|x)=P(x|C1)P(C1)P(x)

其中
公式2:

P(x)=P(x|C1)P(C1)+P(x|C2)P(C2)

这个公式是高中难度的,不过也解释一下:x出现的概率等于,class1出现的概率乘以class1中出现x的概率 加上 class2出现的概率乘以class2中出现x的概率。

那么就可以把公式2带入公式1的分母中:
公式3:

P(C1|x)=P(x|C1)P(C1)P(x|C1)P(C1)+P(x|C2)P(C2)

下面我们将等式两边同时除以分子就变成了:
公式4:

P(C1|x)=11+P(x|C2)P(C2)P(x|C1)P(C1)

z=lnP(x|C1)P(C1)P(x|C2)P(C2)

那么把z带入公式4就变成了:

σ(z)=11+ez

也就是Sigmoid function

更多思考

上面已经知道sigmoid函数是从什么东西推导过来的了,那么有个问题就是,既然上面式子中只有 P(x|C1) P(x|C2) 我们不知道,那我们干脆用Bayes不就能直接计算出 P(x|C1) 了嘛?
(x是某个sample,其中有多个feature,也就是说x是一个vector)

P(x|C1)=P(x1|C1)P(x2|C1)......P(xk|C1)......

但是Bayes有一个限制条件就是所有的feature都必须是independent的,假如我们训练的sample中各个feature都是independent的话,那么Bayes会给我们一个很好的结果。但实际情况下这是不太可能的,各个feature之间不可能是independent的,那么bias就会非常大,搞出的model就很烂。

这个 z 应该长什么样子?

我们将 z 变换一下可以变换成下面的样子:

z=lnP(x|C1)P(x|C2)+lnP(C1)P(C2)

上式中 ln
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值