天天看点

sigmoid函数_从【为什么要用sigmoid函数】到真的懂【逻辑回归】

1.逻辑回归是广义线性回归(GLM)的一种特殊形式

2.GLM有三个要素构成:响应变量服从指数族分布,系统分量是预测变量x的线性模型,通过连接函数联系前两者

2.逻辑回归建立在0-1分布上,而0-1分布是指数族分布一员

3.由最大熵原理可以推导出指数族分布

4.逻辑回归假设函数值域是[0,1]能代表概率是因为指数族分布的对数配分函数的一阶导(是充分统计量的期望)刚好与0-1分布均值为h的事实相吻合

5.最后,连接函数选择典则连接,这样可以使得GLM有完全统一的MLE正则方程

6.综上,推导出逻辑回归的假设函数是siomoid函数,这是基于GLM模型推导的结果,不是原因

sigmoid函数_从【为什么要用sigmoid函数】到真的懂【逻辑回归】

逻辑回归是机器学习用于二分类任务的重要算法,也是金融风控评分卡模型的假设函数。小编刚学习的时候就很多疑问:为什么一定是sigmoid函数而不能是均方误差呢,代价函数为什么是交叉熵呢。

一开始我得到的答案是分类问题要限定在0~1概率范围,sigmoid的性质很好等等,这些答案都是错的!!!

要回答【逻辑回归为什么要使用sigmoid函数】这个问题,得了解【指数族分布】和【广义线性回归】

1.指数族分布

sigmoid函数_从【为什么要用sigmoid函数】到真的懂【逻辑回归】

满足已知事实的最大熵问题

sigmoid函数_从【为什么要用sigmoid函数】到真的懂【逻辑回归】

机器学习经常需要做的事情是:给定一组训练数据 D,我们希望通过 D 得到我们研究空间的概率分布。这样,给出一个测试数据,我们就可以找出条件概率中概率最大的那个点,将其作为答案输出。

直接学习概率分布是不现实的。直接学习概率分布最简单的方法,就是把空间分成很多很多小的单元,然后统计样本落在每个单元的频率,作为每个单元的概率分布。但是这种方法会面临着数据不足、有噪音、存储能力受限等问题。

在大多数情况下,我们都会人为指定某种概率分布的形式(例如指定为高斯分布或伯努利分布等)。对概率函数的学习就转化为了函数参数的学习,减小了学习的难度;我们也只需要存储我们感兴趣的统计量(例如对于高斯分布,我们只需要存储均值和方差;对于伯努利分布,我们只需要存储取正类的概率),减小了对存储空间的需求。当然,由于人为限定了概率分布形式,我们就需要根据不同的问题选择不同的分布,就像对不同问题选择不同的机器学习模型一样。

 为此,我们抽象出概率模型P,它满足以下性质:

sigmoid函数_从【为什么要用sigmoid函数】到真的懂【逻辑回归】

其中,Xi表示第i条训练样本数据, ϕ(Xi)表示从第i条样本数据中感兴趣的统计量(向量),简单来说,就是概率模型的期望等于所有训练数据的均值

注: ϕ(X)其实叫做充分统计量,它直观理解是用一定的统计量(可以是一个,也可以是多个)就能表示一组数据,比如高斯分布,只需要存储均值和方差,就能生成一组服从该分布的数据。可以减少数据存储的压力。

满足上述式子的概率模型有很多种,我们再加一条限制:这个概率模型要有最大的信息熵,也就是有最大的不确定性。我们认为这样的概率模型能够涵盖更多的可能性。

所谓的信息熵,就是衡量事件包含信息量的大小;最大熵,就是每个随机事件都是等可能性的。(关于熵,小编已经在机器学习之模型评估(损失函数)介绍过,这里再次介绍)

熵是信息论中最基本、最核心的一个概念,它衡量一个概率分布的随机程度,或者说包含的信息量的大小。

我们知道,如果一个事件发生的概率越大,它所包含的信息量越少,反之则越多。比如事件“太阳从东边升起”,这几乎是100%确定的事情,有用的信息量很少。因此,事件包含的信息量与事件发生的概率成反比。

接着进一步思考,如果是独立的两个事件,那么其信息量应该是求和,而它们同时发生的可能,应该是概率的乘积。所以,我们要找到一个指标,能够衡量概率和信息的之间的这种直观关系,天才的数学家们想到了这样一个指标:

sigmoid函数_从【为什么要用sigmoid函数】到真的懂【逻辑回归】

p(x)是事件发生的概率,h(x)表示事件包含的信息量。可以看到,指标h(x)满足上述两个要求:信息量与概率成反比;两个独立事件发生的信息量是各自求和。

有了以上定义,熵的概念自然而然就出来了,上面是考察了一个确定事件下的信息量,那么如果这个事件是一个随机变量呢(记得吗,学习概率论的时候也是从事件到随机事件的过度,这个就是天才数学家们的思维,你学到了吗),就用数学期望衡量其信息量的大小。这个数学期望就是我们要的熵:

sigmoid函数_从【为什么要用sigmoid函数】到真的懂【逻辑回归】

这里,随机变量越均匀(随机),熵越大,反之越小。

所以,最大熵就是所有随机变量等可能发生,其原理的实质可以理解为,在已知部分知识的前提下,关于未知分布最合理的推断就是符合已知知识最不确定或最随机的推断。

因此,从最大熵原理出发,概率模型求解化为以下约束问题

sigmoid函数_从【为什么要用sigmoid函数】到真的懂【逻辑回归】

可以这么理解:在满足已知事实(现实中收集到的数据集)条件下的最大熵

sigmoid函数_从【为什么要用sigmoid函数】到真的懂【逻辑回归】

从最大熵原理到指数族分布

sigmoid函数_从【为什么要用sigmoid函数】到真的懂【逻辑回归】

利用拉格朗日乘子法求解上面的数学约束问题:

sigmoid函数_从【为什么要用sigmoid函数】到真的懂【逻辑回归】

充分统计量ϕ(X)可以有多个,因此是一个向量,故θ也是一个向量

函数L对p(x)求偏导,可得:

sigmoid函数_从【为什么要用sigmoid函数】到真的懂【逻辑回归】

最后我们推导出概率模型表达式红色框框那一坨东西,实际上,这坨东西就是概率论上很重要的一个族分布~指数族分布(以后小编会专门介绍指数族分布,这里仅仅为了推导出逻辑回归的表达式)。

我们先给出表达式的A其实是关于θ的函数,与x无关,只需要对所有训练集求和即可:

sigmoid函数_从【为什么要用sigmoid函数】到真的懂【逻辑回归】

这里,给出指数族分布的一般表达形式。

称一个概率密度函数族或概率质量函数族为指数族(exponential family),如果它统一表示成:

sigmoid函数_从【为什么要用sigmoid函数】到真的懂【逻辑回归】

注:定义出自《统计推断》102页,教科书标准定义

大多数情况下,我们用更一般参数化的形式表示指数族分布:

sigmoid函数_从【为什么要用sigmoid函数】到真的懂【逻辑回归】

这里必须要强调的是,参数向量η实际更一般形式为w(η),当取w(η)=η时,这种叫做canonical form,在GLM回归中连接函数通常用canonical link,其实就是w(η)=η的情况。维基百科也有提到:

sigmoid函数_从【为什么要用sigmoid函数】到真的懂【逻辑回归】

实际上,大多数概率分布都可表示为指数族分布形式:

  1. 伯努利分布(Bernoulli):对0、1问题建模
  2. 多项式分布(Multinomial):对有K个离散结果事件建模
  3. 泊松分布(Poisson):对计数过程进行建模。比如网站访问量,商店顾客数量等。
  4. 指数分布(exponential)与伽马分布(gamma):对有间隔的正数进行建模
  5. b分布:对小数建模
  6. Dirichlet分布:对概率分布建模
  7. Wishart分布:协方差矩阵的分布
  8. 高斯分布

关于指数族分布,是机器学习非常重要的数学基础,以后小编会出一篇系统讲解,现在是从最大熵原理出发推导出该分布的一般形式。

2.广义线性回归(GLM)

广义线性模型(Generalized linear model)描述一个响应变量的均值与自变量x的关系。

一个GLM包含三个部分:响应变量,系统分量和连接函数

(1)响应变量Y1,Y2,...,Yn是随机分量。假定它们是独立的随机变量,其中每一个服从来自于一个特定的指数族分布。这些Yi不是同分布的,但它们每一个都有来自于同一个分布族的分布,这个分布族可以是二项,Possion,正态等

(2)系统分量是模型。它是预测变量X的一个函数,对于参数是线性的,并且与Yi的均值相联系。这里只考虑线性关系(θ0+θ1X1+..+θnXn)

(3)连接函数通过G(μ)=θ0+θ1X1+..+θnXn连接上面两个分量,其中μi=E(Yi)

注:该定义出自《统计推断(翻译版原书第2版)》648页对GLM的定义

把GLM假设写得更直观一点:

(1)概率分布服从指数族分布

(2)线性关系:(θ^T)X

  (3)连接函数g:

sigmoid函数_从【为什么要用sigmoid函数】到真的懂【逻辑回归】

3.逻辑回归

对于0-1分布的建模问题,记y=1为正样本,y=0为负样本,h为正样本出现的概率,则样本服从二项分布:

sigmoid函数_从【为什么要用sigmoid函数】到真的懂【逻辑回归】

由此,响应变量Y服从二项分布的指数族分布,满足GLM第一个假设。

注意到A(η)可以转换为η的表达式:

sigmoid函数_从【为什么要用sigmoid函数】到真的懂【逻辑回归】

0-1分布的均值为u=h,于是有:

sigmoid函数_从【为什么要用sigmoid函数】到真的懂【逻辑回归】

可见,该表达式和0-1分布的均值为h的事实相吻合,也就是说A(η)一阶导的取值值域由概率h完全刻画,这也是为什么sigmoid函数把线性回归转化到[0,1]之间可以代表概率。

注:指数族分布的对数配分函数与充分统计量有如下关系:

sigmoid函数_从【为什么要用sigmoid函数】到真的懂【逻辑回归】

于是连接函数是关于h的函数:

sigmoid函数_从【为什么要用sigmoid函数】到真的懂【逻辑回归】

理论上,可以有很多种,这里选取的连接函数是:

g(h)=log[h/(1-h)]

为什么要这么选呢,因为这样的连接函数称为典则连接(Canonical link),canonical形式唯一,它可以使得GLM有完全统一的MLE正则方程(下一节推导):

sigmoid函数_从【为什么要用sigmoid函数】到真的懂【逻辑回归】

由此,我们得到逻辑回归的假设函数:

sigmoid函数_从【为什么要用sigmoid函数】到真的懂【逻辑回归】

最后我们发现,假设函数刚好是sigmoid函数。

由此,逻辑回归的连接函数是G(h)=log[h/(1-h)],激活函数是sigmoid函数,它是推导的结果,不是原因!!!

注:从0-1分布推导出指数族分布刚好是sigmoid形式是没掌握GLM连接函数的概念,这是不对的;sigmoid函数有很好的性质(平滑,可导,限定在0-1区间)这些答案犯了把结果当成原因的逻辑错误

拓展:对于0-1分布,连接函数可以不选择Canonical link,如果选择标准正态累计分布函数,模型叫做probit回归;如果用Gumbel累计分布函数,连接函数叫做log-log连接

4.逻辑回归参数估计

逻辑回归最常用的估计方法是MLE,还记得吗,最大似然是已知分布和事件结果,求解参数,在这里,已知分布就是我们假定的响应变量服从0-1分布,事件结果就是给定的是数据集。下面我们用MLE估计其参数。

根据连接函数,不妨记F:

sigmoid函数_从【为什么要用sigmoid函数】到真的懂【逻辑回归】

给定样本点x1,x2....,xn,似然函数为:

sigmoid函数_从【为什么要用sigmoid函数】到真的懂【逻辑回归】

对数似然是

sigmoid函数_从【为什么要用sigmoid函数】到真的懂【逻辑回归】

求对数似然关于θ参数的偏导数,首先,常数项偏导数为:

sigmoid函数_从【为什么要用sigmoid函数】到真的懂【逻辑回归】

同理可得非常数项偏导数,于是得到似然函数关于θ参数的偏导数:

sigmoid函数_从【为什么要用sigmoid函数】到真的懂【逻辑回归】

如果F(w)是sigoimd函数,则:

sigmoid函数_从【为什么要用sigmoid函数】到真的懂【逻辑回归】

因此,似然函数关于θ参数可以简化为:

sigmoid函数_从【为什么要用sigmoid函数】到真的懂【逻辑回归】

这样子简化了GLM的MLE方程,这也是为什么要用sigmoid激活函数的原因。

这些方程式θ参数非线性方程,必须用数值解法,最常用的是梯度下降法

参考资料:

《统计推断(翻译版原书第2版)》

https://www.zhihu.com/question/41647192

https://www.zhihu.com/question/35322351

https://en.wikipedia.org/wiki/Generalized_linear_model

继续阅读