上一篇文章(第六章)主要介绍了最大熵模型,并从中推导出逻辑斯谛回归,感觉意犹未尽。在复习了CS229 Lecture note之后,我决定重新整理思路:从广义线性模型的角度来看逻辑斯谛回归。最后,基于样本特征 X 分布的假设,生成和逻辑斯谛回归一样的模型。

一、背景

上图参考了b站“机器学习白板推导系列”:https://www.bilibili.com/video/BV1aE411o7qd?p=39

实际上,逻辑斯谛回归是广义线性模型的一种,而广义线性模型与最大熵模型都是源于指数族分布。因此直接从最大熵模型推出逻辑斯谛回归,确实有些不太自然的地方(具体在“特征函数”的取值上,违背了原来特征函数的取值假设),但从广义线性模型出发就没有违和感了。

二、指数族分布

什么是指数族分布呢?它是一个分布家族,包括:高斯分布、伯努利分布、二项分布、泊松分布等常见分布。

关于“指数族分布”可以参考这篇文章:https://zhuanlan.zhihu.com/p/89155678,是根据“白板推导”整理而成的笔记。

(1)一般形式

指数族分布具有以下一般形式:(此处使用CS229的符号规则)

其中:

是分布对应的随机变量,
称为“自然参数”,一般为向量。
是 y的充分统计量,就是足以对表随机变量 y 主要特征的值,例如:样本均值、样本方差等。
一般表示两个向量的内积,
有相同的维度。如果
为标量,则
也为标量,
表示两个数的乘积。
称为 log 配分函数,它主要起到归一化的作用,使得密度函数积分结果为1。

(2)高斯分布

为了简化计算,假设高斯分布的方差为1:

它的指数族形式如下:

(3)伯努利分布

它的指数族形式如下:

三、广义线性模型

广义线性模型用来解决“给定

预测
”的问题,它

基于以下三个假设

  • ,经常假设

假设一: 认为 y 是服从指数族分布的。由于广义线性模型既可用于“回归”,也可用于“分类”,因此不同分布将生成不同模型。回归对应连续型分布,分类对应离散型分布。

假设二:

就是需要“学习”的模型,它等于
。为什么?
就是给定数据x的条件下,预测 y 的值,它的数学期望不就是预测模型本身吗?

假设三:“自然参数”是样本x的线性组合,因此它是一个“线性模型”。

见证奇迹的时刻,看如何通过三个假设,得到不同的线性模型:

(1)线性回归

线性回归对应高斯分布:

。此假设的合理性在于,如果 y = h(x) 为线性模型,实际值与预测值的误差是由随机扰动引起的,这部分误差是服从高斯分布的。

根据假设二,线性模型有如下形式:

线性回归模型的输出:

(2)Logistic Regression

逻辑斯谛回归对应伯努利分布:

,逻辑斯谛回归的输出,并不是分类结果,而是一个概率 p(y=1 | x)。当此概率大于0.5时 ,y=1,否则y=0。因此它等于伯努利分布的概率参数。

逻辑斯谛回归的分类结果:

(3)Softmax Regression

Softmax 与 多项逻辑斯谛回归是等价的,下面将证明这一点,它被用于解决多分类问题。由于涉及多分类,不能简单地假设

,此时
都是向量。下面将展示这个较为复杂的推导过程:

用分布参数

表示 y 属于第 i 分类的概率:

时,

时,

由此可见,上述 k 个参数

并非完全独立的,它们的和等于1。

(一个 k-1 维的向量):
, ... ,

其中

表示向量
的 第 i 个分量。

接下来是关键一步,由于

,可用“示性函数”表示,

由此得到 softmax 的概率质量函数

如果把

展开,分别合并到前 k-1 项里面,可得

以上就是 softmax 的指数族形式

最后,寻找“自然参数”

与 “分布参数”
的关系:

由于

, 那么
,即

把上式左右两边累加起来,得到:

, 即

将“即”字后面的两个式子整理一下,得到:

... 式(1)

但请注意:

只有 k-1 个分量,如果令
, 使得
... 式(2)

刚好满足

根据假设三:

,其中
,将其代入 式(1)、式(2)得到

时,
... 式(3)

时,
... 式(4)

上述式(3)、式(4)就是 Softmax Regression 模型,与多项逻辑斯谛回归模型一样。

中概率最大的那一项,决定了 y 的取值。

四、线性从何而来

如果选择一个公式代表“逻辑斯谛回归”,该选择哪个公式呢?我认为是:

或者
,其中

也就是“对数几率”等于 x 的线性函数。

从这个公式出发,可以推导出逻辑斯谛回归的全部公式。

如果把右侧的线性模型记作 s,上式可以表示为

,由此可见 p 是 s 的 sigmoid 函数。

sigmoid 的作用是将

映射至
,于是分类结果 s :正数(代表正类),负数(代表负类)被转换为一个处于0到1之间的概率值 p。

回顾感知机模型(线性模型),通过模型的符号标记分类结果,逻辑斯谛回归只是进一步把符号转换为概率值。如果把线性模型替换为其他非线性模型,只要用正数、负数表示不同分类,将其代入 sigmoid 函数,仍可得到不同的概率输出。

最后一个问题:为什么选择线性模型

呢?或者说为什么

仅仅是因为线性模型最简单吗?此处试图从另一个角度看待这个问题。根据贝叶斯定理,

其中

是由训练集样本决定的常数(设为
),
假设服从高斯分布,且在Y的不同取值情况下方差相同(或者简单设为1),但均值不同。于是有

上式等号右侧为 x 与 参数

的线性模型。

在更为一般的情况下,如果将

换成其他“指数族分布”,结果仍然是线性模型。

请参阅:https://tech.meituan.com/2015/05/08/intro-to-logistic-regression.html

延伸阅读部分。

广义线性模型_广义线性模型(第六章补充)相关推荐

  1. 中根遍历二叉查找树所得序列一定是有序序列_学习数据结构--第六章:查找(查找)

    第六章:查找 1.查找的基本概念 查找:在数据集合中寻找满足某种条件的数据元素的过程. 查找的结果 查找成功和查找失败 查找表:用于查找的数据集合,由同一种数据类型(或记录)的组成,可以是一个数组或链 ...

  2. 角速度求积分能得到欧拉角吗_数值计算方法 第六章 数值积分和数值微分

    写在章前:积分与微分的计算,是具有广泛应用的古典问题. 然而,在微积分教材中,只对简单的或特殊的情况,提供了函数的积分或微分的解析表达式,在理论上可以使用Newton-Leibniz公式计算.但对很多 ...

  3. python广义极值_广义极值分布的数据拟合

    我一直想用scipy.stats.genextreme使我的数据符合广义极值分布.我试过所有我能找到的方法,但我不知道为什么它不符合数据.在 我试过这两种方法:import numpy as np f ...

  4. 高性能mysql 第六章_高性能MySQL 第六章

    查询优化.索引优化.库表结构优化需要齐头并进,一个不落,才能最终设计出在实际场景中能发挥良好效果的方案. 为什么查询速度会慢? 如果把查询看作是一个任务,那么它由一系列子任务组成,每个子任务都会消耗一 ...

  5. python广义极值_广义极值(GEV)极大似然拟合的奇异pdf

    首先,我认为您可能希望将位置参数固定在0.在 其次,你的数据中有0,结果拟合可能在x=0处有{}pdf,例如对于GEV拟合或Weibull拟合. 因此,拟合实际上是正确的,但是当绘制pdf(包括x=0 ...

  6. 物流信息管理系统MySQL设计_案例分析第六章:物流管理系统的数据库设计(六个基本步骤)案例分析...

    物流管理信息系统的数据库设计 (案例分析) 系统名称:物流管理信息系统(数据库管理系统) 一.需求分析 需求分析是整个数据库设计过程的基础,要收集数据库所有用户的信息内容和处理要求,并加以规格化和分析 ...

  7. ❤️解决非线性回归问题的机器学习方法总结:多项式线性模型、广义线性(GAM)模型、回归树模型、支持向量回归(SVR)模型

    文章目录 前言 多项式回归模型 概念解释: sklearn实现多项式回归模型: 广义线性可加(GAM)模型 概念解释: pygam实现广义线性可加模型: GAM模型的优点与不足: 回归树模型 概念解释 ...

  8. 从线性模型到广义线性模型(2)——参数估计、假设检验

    本文系转载,原文链接:http://cos.name/2011/01/how-does-glm-generalize-lm-fit-and-test/ 1.GLM参数估计--极大似然法 为了理论上简化 ...

  9. 一般线性模型和混合线性模型_线性混合模型如何工作

    一般线性模型和混合线性模型 生命科学的数学统计和机器学习 (Mathematical Statistics and Machine Learning for Life Sciences) This i ...

最新文章

  1. 探测电磁波就能揪出恶意软件,网友:搁这给电脑把脉呢?
  2. leetcode算法题--多边形三角剖分的最低得分★
  3. 比特币详解3.0 ——区块链的救赎
  4. 如何高效的编写与同步博客 (.NET Core 小工具实现)
  5. JTable demo
  6. Codeforces Round #346 (Div. 2) D. Bicycle Race 叉积
  7. 在Rayeager px2上搭建web服务器anmpp
  8. SpringCloud——服务调用
  9. 突发奇想-怎么写一个死锁?
  10. 电子科大考研计算机考研经验,电子科技大学
  11. mysql教程泰牛程序员_mysql高级教程笔记.docx
  12. Python 处理 PDF 的神器 -- PyMuPDF(上)
  13. 华为给出的测试账号里面的题
  14. r73750h和i79750h哪个好
  15. hdu1013 (Digital Roots)
  16. 高并发之阿里云弹性伸缩的使用记录
  17. Java:15位或18位居民身份证号码简单校验(正则表达式)
  18. win8计算机意外,解决win8.1/win10开机提示“致命错误c0000034”的方案
  19. AVS3码流结构解析
  20. 国赛latex方法快速检索(入门级)

热门文章

  1. ucinet计算聚类系数大于1怎么办_聚类性能评估-ARI(调兰德指数)
  2. html代码type,HTML中type是什么意思
  3. word交叉引用插入文献后更新域之后编号未更新
  4. Pytorch 为什么每一轮batch需要设置optimizer.zero_grad
  5. Python基础:获取迭代器下一项目的常见操作
  6. comparing ORB and AKAZE
  7. web.config 指定的默认页失效
  8. 用jar 命令打包war包
  9. html select 文字居中显示图片,html原生select改造箭头及文字左右居中的一种办法...
  10. 工具用途_见微知著,小工具大用途!