1 问题来源

记得一开始学逻辑回归时候也不知道当时怎么想得,很自然就接受了逻辑回归的决策函数——sigmod函数:

与此同时,有些书上直接给出了该函数与将 $y$ 视为类后验概率估计 $p(y=1|x)$ 等价,即

并给出了二分类(标签 $yin(0,1)$)情况下的判别方式:

但今天再回过头看的时候,突然就不理解了,一个函数值是怎么和一个概率联系起来了呢?有些人解释说因为 $h_{theta}(x)$ 范围在0~1之间啊,可是数值在此之间还是没说明白和概率究竟有什么关系。所以,前几天看了一些资料,对个人而言比较好理解的还是从广义线性模型(Generalized Linear Models, GLM)来解释,至少这种方法能从概率出发直接推出 sigmod 函数。实际上,线性回归和逻辑回归都是广义线性模型的特例,从此出发,得到对应的决策函数就比较自然了。

2 指数分布族

在介绍广义线性模型之前不得不先说一下“指数分布族”,因为指数分布族是广义线性模型所提出的假设之一。
指数分布族中的一类分布都可以用下述公式描述:

下面是公式中的参数:(可以通过后面具体例子的推导来理解)

  • η:分布的自然参数(也就是说跟分布有关)
  • T(y):充分统计量(通常 T(y)=y)
  • a(η):log partition function,$e^{-a(eta)}$ 本质上起着规范化常数的作用,保证概率分布 $sum p(y;eta)$ 为1

当T、a、b固定之后实际上就确定了指数分布族中的一种分布模型,就得到了以$eta$为参数的模型。

其实,大多数的概率分布都属于指数分布族:

  • 伯努利分布(Bernoulli):对 0、1 问题进行建模;
  • 二项分布(Multinomial):对 K 个离散结果的事件建模;
  • 泊松分布(Poisson):对计数过程进行建模,比如网站访问量的计数问题,放射性衰变的数目,商店顾客数量等问题;
  • 伽马分布(gamma)与指数分布(exponential):对有间隔的正数进行建模,比如公交车的到站时间问题;
  • β 分布:对小数建模;
  • Dirichlet 分布:对概率分布进建模;
  • Wishart 分布:协方差矩阵的分布;
  • 高斯分布(Gaussian)

知道了这么多的指数分布族之后其实我们已经能够求解一些问题了,求解的方法就是将概率分布符合上述指数分布族的转换成它对应的指数分布族的形式,求出指数分布族对应位置上的参数即可求出原模型的参数。

3 广义线性模型

为了给问题构造GL 大专栏  从广义线性模型(GLM)理解逻辑回归M模型,必须首先知道GLM为作出的三个假设:

  1. $y|x;θ sim ExponentialFamily(eta)$。比如,给定样本$x$与参数$theta$,样本的分类$y$服从以 $eta$ 为参数的指数分布族中的某个分布
  2. 给定$x$,广义线性模型的目标是求解 $T(y)|x$,不过由于很多情况下 $T(y) = y$ 所以我们的目标变成了求 $h(x) = E[y|x]$
  3. $eta=theta^Tx$

这些假设看起来似乎很神奇,比如第三条,但这就是GLM的假设(说成“设计”更合理),从这三个假设出发能得到一类很好的学习算法。下面就来展示一下如何从GLM推导出逻辑回归和线性回归。

3.1 GLM与逻辑回归

接下来按照上面GLM作出的假设条件来推导逻辑回归。

  • 对于二分类问题,很自然想到$y$服从伯努利分布,满足第一个假设,即$y|x;theta sim Bernoulli(phi)$
  • 第二个假设很重要,是求决策函数的。因此我们要求$E[y|x;theta]$。对于伯努利分布来说,$p(y=1|x;theta)=phi$,$p(y=0|x;theta))=1-phi$。因此有:

参照指数分布族的标准形式,可以得到:

$b(y)=1$
$T(y)=y$
$eta=log(frac{phi}{1-phi})y$,进而得到$phi=frac{1}{1+e^{-eta}}$
$a(eta)=-log(1-phi)=log(1+e^eta)$

再根据第三个假设条件$eta=theta^Tx$,得到 $phi=frac{1}{1+e^{-eta}}=frac{1}{1+e^{-theta^Tx}}$,即 $p(y=1|x;theta)=frac{1}{1+e^{-theta^Tx}}$,这样就将概率和 sigmod 函数联系起来了。

到这里,GLM已经解决了概率和sigmod函数之间关系的疑惑了。

3.2 GLM与线性回归

  • 在线性回归中,我们对概率分布作出的假设是 $y|x;theta sim N(mu,sigma^2)$
  • 接下来求 $h_{theta}(x)=E[y|x;theta]$。对于高斯分布,从概率角度是通过极大似然法来求,可以发现最后的结果是不受$sigma$影响的,因此可以将$sigma$设为1。(原因如下所示)

等价于:

所以我们从 $y|x;theta sim N(mu,1)$ 出发来推导:

通刚才一样,参照指数分布族的标准形式,可以得到:

$b(y)=frac{1}{sqrt{2pi}}exp(-frac{y^2}{2})$
$T(y)=y$
$eta=mu$
$a(eta)=frac{mu^2}{2}=frac{eta^2}{2}$

再根据第三个假设条件,即可得到线性回归模型 $h_{theta}(x)=E[y|x;theta]=mu=eta=theta^Tx$

综上所述,广义线性模型GLM是通过假设一个概率分布并将其化成指数分布族形式,从而得到不同的模型,这对理解模型的由来很有帮助。

参考:
CS229 Andrew Ng

从广义线性模型(GLM)理解逻辑回归的更多相关文章

  1. 广义线性模型 GLM

    Logistic Regression 同 Liner Regression 均属于广义线性模型,Liner Regression 假设 $y|x ; \theta$ 服从 Gaussian 分布,而 ...

  2. 广义线性模型(GLM, Generalized Linear Model)

    引言:通过高斯模型得到最小二乘法(线性回归),即:      通过伯努利模型得到逻辑回归,即:      这些模型都可以通过广义线性模型得到.广义线性模型是把自变量的线性预测函数当作因变量的估计值.在 ...

  3. 广义线性模型------逻辑回归和softmax回归

    1.广义线性模型 2.逻辑回归 3.softmax回归

  4. 广义线性模型(GLM)

    一.广义线性模型概念 在讨论广义线性模型之前,先回顾一下基本线性模型,也就是线性回归. 在线性回归模型中的假设中,有两点需要提出: (1)假设因变量服从高斯分布:$Y={{\theta }^{T}}x ...

  5. 【Coursera】线性回归和逻辑回归

    一.线性回归 1.批量梯度下降法 每次对参数进行一次迭代时,都要扫描一遍输入全集 算法可以收敛到局部最优值 当迭代多次之后,每次迭代参数的改变越小 2.随机梯度下降法 对于一个输入样本,对参数进行一次 ...

  6. 逻辑回归(Logistic Regression)

    转载请注明出自BYRans博客:http://www.cnblogs.com/BYRans/ 本文主要讲解分类问题中的逻辑回归.逻辑回归是一个二分类问题. 二分类问题 二分类问题是指预测的y值只有两个 ...

  7. 分类和逻辑回归(Classification and logistic regression)

    分类问题和线性回归问题问题很像,只是在分类问题中,我们预测的y值包含在一个小的离散数据集里.首先,认识一下二元分类(binary classification),在二元分类中,y的取值只能是0和1.例 ...

  8. 逻辑回归(Logistic Regression)推导

    出自BYRans博客:http://www.cnblogs.com/BYRans/ 本文主要讲解分类问题中的逻辑回归.逻辑回归是一个二分类问题. 二分类问题 二分类问题是指预测的y值只有两个取值(0或 ...

  9. 机器学习——逻辑回归(Logistic Regression)

    1 前言 虽然该机器学习算法名字里面有"回归",但是它其实是个分类算法.取名逻辑回归主要是因为是从线性回归转变而来的. logistic回归,又叫对数几率回归. 2 回归模型 2. ...

随机推荐

  1. 使用git submodule

    git submodule 引用 $ git help submodule $ git submodule add https://github.com/aditya-grover/node2vec. ...

  2. 吴裕雄--天生自然TensorFlow高层封装:Estimator-DNNClassifier

    # 1. 模型定义. import numpy as np import tensorflow as tf from tensorflow.examples.tutorials.mnist impor ...

  3. Ubuntu---不能打开 exfat 文件系统格式的 U盘解决方法

    出现问题:今天把 U 盘插入 Ubuntu 系统的电脑中,打开 U 盘发现弹出 系统格式不支持 的提醒,无法进入 U 盘进行操作. 环境: Ubuntu18.04 TSL; 格式化为 exfat 文件 ...

  4. 二、提高期(Upping the Ante)

    二.提高期(Upping the Ante) Upping the Ante?这可是第四阶段的词.没办法,Greg Thomson用这个词代表第二阶段,看着喜欢,继续沿用. 经过两三个月的“图象+声音 ...

  5. 漫谈设计模式(三):桥接(Bridge)模式 —— 将类功能、结构两层次分离

    1.前言 类主要有两个层次,一个是功能层次,另一个是实现层次. 功能层次,一般应用于当前类不能满足多样化的业务需求,让子类去继承(具体)父类,添加加一些父类中没有的功能(一般是增加新的方法),这就属于 ...

  6. 面向对象 part7 class

    类的定义 类实际上是个“特殊的函数“,就像能够定义函数表达式和函数声明一样,类语法 有两个组成部分:类表达式和类声明式 类声明 类声明没有提升 静态方法 只有构造函数名可以调用,实例无法使用.常用于应 ...

  7. c指针(2)

    #include<stdio.h> #include<malloc.h> #include<stdlib.h> typedef struct LNode { cha ...

  8. Python笔记_第一篇_面向过程_第一部分_6.其他控制语句(with...as等)

    其他控制语句,也就是说一个with... as...语句. 这是python非常精妙的一个语句,非常的简单但是作用非常大,在打开文件获得句柄的时候可以用它,省去f.close()忘记添加的麻烦(这个文 ...

  9. Mysql数据库删除重复数据

    最近因为发现数据库中的表有脏数据,需要维护.这些脏数据就是重复数据,需要将其删除. 现假设有一张test表,主键字段为num,还有id,one,two三个字段.假设id规定只能有一条记录(即需要为id ...

  10. Opencv笔记(十二)——形态学转换

    学习目标: 学习不同的形态学操作,例如腐蚀,膨胀,开运算,闭运算等 我们要学习的函数有: cv2.erode(), cv2.dilate(), cv2.morphologyEx()等 原理简介: 形态 ...