广义线性模型三剑客:线性回归、逻辑回归与Softmax分类的统一视角

文章目录

  • 广义线性模型三剑客:线性回归、逻辑回归与Softmax分类的统一视角
    • 引言:机器学习中的"家族相似性"
    • 广义线性模型(GLMs)基础
    • 三位家族成员的统一视角
      • 1. 线性回归(Linear Regression)
      • 2. 逻辑回归(Logistic Regression)
      • 3. Softmax分类(Softmax Classification)
    • 三者的比较与联系
    • 实践中的注意事项
    • 从GLM到深度学习
    • 结语:统一之美

广义线性模型三剑客:线性回归、逻辑回归与Softmax分类的统一视角

引言:机器学习中的"家族相似性"

  • 在机器学习的世界里,乍看之下各不相同的算法实际上往往存在着深刻的联系。许多机器学习模型其实属于同一个"模型家族"。今天,我们要探讨的就是这样一个强大的家族——广义线性模型(GLMs)家族中的三位重要成员:线性回归(Linear Regression)、逻辑回归(Logistic Regression)和Softmax分类(Softmax Classification)。

  • 对于初学者来说,理解这些模型之间的内在联系不仅能加深对每个模型的理解,还能帮助我们在面对实际问题时做出更明智的模型选择。

  • 希望这篇博客能帮助你建立起对这些基本模型的统一认识!在机器学习的旅程中,这种"见树木亦见森林"的视角将为你后续的学习打下坚实基础。

广义线性模型(GLMs)基础

  • 广义线性模型是传统线性回归的扩展,它通过三个主要组成部分将线性预测与响应变量联系起来:
  1. 随机成分:响应变量 Y Y Y服从指数族分布
  2. 系统成分:通过线性预测器 η = X β η = Xβ η=
  3. 链接函数:连接随机成分和系统成分的 g ( μ ) = η g(μ) = η g(μ)=η
  • 指数分布族是一类形式统一的概率分布,可以表示为:
    p ( y ; η ) = b ( y ) e ( η T T ( y ) − a ( η ) ) p(y;η) = b(y)e^{(ηᵀT(y) - a(η))} p(y;η)=b(y)e(ηTT(y)a(η))
    其中 η η η是自然参数, T ( y ) T(y) T(y)是充分统计量, a ( η ) a(η) a(η)是对数配分函数, b ( y ) b(y) b(y)是基准测度。

三位家族成员的统一视角

1. 线性回归(Linear Regression)

模型假设

  • 响应变量 Y Y Y服从高斯分布
  • 链接函数是恒等函数(identity function)
  • 条件均值 μ = η = X β μ = η = Xβ μ=η=

等价表示

  • 线性回归可以看作:内积层(输入特征的线性组合) + 均方差损失(MSE, 在Caffe中称为EuclideanLoss)

为什么是GLM?
当将高斯分布表示为指数族形式时,自然参数η正好等于均值μ,因此可以直接用线性预测器建模。

损失函数推导
极大似然估计等价于最小化负对数似然:
L ( β ) = − Σ [ l o g p ( y i ∣ x i ; β ) ] ∝ Σ ( y i − x i T β ) 2 L(β) = -Σ[log p(yᵢ|xᵢ;β)] ∝ Σ(yᵢ - xᵢᵀβ)² L(β)=Σ[logp(yixi;β)]Σ(yixiTβ)2
这正是均方误差!

2. 逻辑回归(Logistic Regression)

模型假设

  • 响应变量Y服从伯努利分布
  • 链接函数是logit函数: l o g ( μ / ( 1 − μ ) ) = η log(μ/(1-μ)) = η log(μ/(1μ))=η
  • 条件概率 μ = σ ( η ) = 1 ( 1 + e − η ) μ = σ(η) = \frac{1}{(1+e^{- η})} μ=σ(η)=(1+eη)1,其中σ是sigmoid函数

等价表示

  • 逻辑回归可以看作:内积层 + Sigmoid激活函数 + 二元交叉熵损失(Binary CrossEntropy)

为什么是GLM?
伯努利分布可以表示为指数族形式,其自然参数η = log(μ/(1-μ)),这就是logit函数。

损失函数推导
对于二元分类,负对数似然:
L ( β ) = − Σ [ y i l o g ( σ ( x i T β ) ) + ( 1 − y i ) l o g ( 1 − σ ( x i T β ) ) ] L(β) = -Σ[yᵢ log(σ(xᵢᵀβ)) + (1-yᵢ)log(1-σ(xᵢᵀβ))] L(β)=Σ[yilog(σ(xiTβ))+(1yi)log(1σ(xiTβ))]
这正是二元交叉熵损失!

3. Softmax分类(Softmax Classification)

模型假设

  • 响应变量Y服从多项分布
  • 链接函数是多项logit函数
  • 条件概率 μ j = e η j / Σ e η i μⱼ = e^{ηⱼ}/Σe^{ηᵢ} μj=eηjeηi

等价表示
Softmax分类可以看作:内积层 + Softmax激活函数 + 分类交叉熵损失(Categorical CrossEntropy, 在Caffe中称为MultinomialLoss)

为什么是GLM?
多项分布也可以表示为指数族形式,使用softmax作为响应函数。

损失函数推导
对于多类分类,负对数似然:
L ( β ) = − Σ Σ y i j l o g ( s o f t m a x ( x i T β ) j ) L(β) = -ΣΣ yᵢⱼ log(softmax(xᵢᵀβ)ⱼ) L(β)=ΣΣyijlog(softmax(xiTβ)j)
这正是分类交叉熵损失!

三者的比较与联系

特征线性回归逻辑回归Softmax分类
响应变量分布高斯分布伯努利分布多项分布
链接函数恒等函数Logit函数多项Logit函数
激活函数SigmoidSoftmax
损失函数均方误差二元交叉熵分类交叉熵
输出类型连续值二元概率多元概率分布
适用任务回归二元分类多类分类

尽管这三个模型解决的问题不同,但从GLM的角度看,它们都遵循相同的建模范式:

  1. 假设响应变量来自特定的指数族分布
  2. 通过线性预测器建模自然参数
  3. 使用适当的链接函数连接线性预测和响应变量
  4. 通过极大似然估计进行参数学习

实践中的注意事项

  1. 模型选择

    • 预测连续值 → 线性回归
    • 预测二元类别 → 逻辑回归
    • 预测多类类别 → Softmax分类
  2. 正则化:三者都可以加入 L 1 / L 2 L_1/L_2 L1/L2正则化防止过拟合,分别得到 L a s s o / R i d g e Lasso/Ridge Lasso/Ridge回归、 L 1 / L 2 L_1/L_2 L1/L2正则化逻辑回归等变体。

  3. 数值稳定性

    • 实现Softmax时注意数值稳定性问题(减去最大值后再指数化)
    • 交叉熵损失实现时注意log(0)情况的处理
  4. 优化方法:由于都是凸优化问题(线性回归严格凸,逻辑回归和Softmax分类在数据线性可分时可能不是严格凸),可以使用梯度下降、牛顿法等优化算法。

从GLM到深度学习

  • 理解这些传统模型与神经网络组件之间的对应关系对学习深度学习非常重要:
    • 内积层 → 全连接层(无激活函数)
    • 内积层+Sigmoid → 二元分类的神经网络输出层
    • 内积层+Softmax → 多类分类的神经网络输出层
    • 相应的损失函数在深度学习中同样适用

这种对应关系显示了传统机器学习与深度学习之间的连续性,也解释了为什么这些损失函数在深度学习中仍然被广泛使用。

结语:统一之美

  • 通过广义线性模型的框架,我们看到了三种看似不同的模型背后统一的数学基础。这种理解不仅具有理论美感,更有重要的实践意义:

    1. 它帮助我们系统性地组织和记忆这些模型
    2. 当面对新问题时,我们可以基于数据特性选择合适的分布和链接函数
    3. 为理解更复杂的模型(如广义加性模型、神经网络等)奠定了基础
  • 正如统计学家George Box所说:"所有的模型都是错的,但有些是有用的。"理解这些模型之间的联系,能让我们在"模型工具箱"中选择最合适的工具来解决实际问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/78326.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux系统篇】:Linux线程控制基础---线程的创建,等待与终止

✨感谢您阅读本篇文章,文章内容是个人学习笔记的整理,如果哪里有误的话还请您指正噢✨ ✨ 个人主页:余辉zmh–CSDN博客 ✨ 文章所属专栏:Linux篇–CSDN博客 文章目录 一.线程创建二.线程等待三.线程终止四.扩展内容1.重谈pthread_…

More Effective C++学习笔记

条款1 指针与引用的区别 条款2 尽量使用C风格的类型转换 条款3 不要对数组使用多态 条款4 避免无用的缺省构造函数 条款5 谨慎定义类型转换函数 条款6 自增(increment)、自减(decrement)操作符前缀形式与后缀形式的区别 条款7 不要重载“&&”,“||”, 或“,” 条款8 理…

先知AIGC超级工场,撬动运营效率新杠杆

北京先智先行科技有限公司,作为行业内的重要参与者,拥有“先知大模型”、“先行AI商学院”以及“先知AIGC超级工场”这三款旗舰产品。这些产品在不同领域发挥着关键作用,尤其是先知AIGC超级工场,正悄然改变着内容创作与产品推广的…

十一岁少年叶珉雪用艺术点亮公益之路 个人原创公益演唱会传递大爱与担当

4月29日晚,"韶华映雪益路同行"叶珉雪个人原创公益演唱会在广东碧桂园学校歌剧院圆满落幕。 这场由该校美育成果浇灌出的艺术盛宴,生动诠释了广东碧桂园学校育人理念。11岁的叶珉雪以超越年龄的艺术掌控力,呈现了一场融合歌唱、舞蹈…

【深度学习基础】:VGG实战篇(图像风格迁移)

文章目录 前言style transfer原理原理解析损失函数 style transfer代码效果图 fast style transfer 代码效果图 前言 本篇来带大家看看VGG的实战篇,这次来带大家看看计算机视觉中一个有趣的小任务,图像风格迁移。 可运行代码位于: Style_tr…

python爬虫基础:requests库详解与案例

1.Requests模块的使用 requests模块的介绍与安装 作用:发送网络请求,返回响应数据。 中文文档:https://requests.readthedocs.io/projects/cn/zh_CN/latest/ 对于爬虫任务,使用 requests模块基本能够解决绝大部分的数据抓取的…

Spring 容器相关的核心注解​

以下是 Spring 容器中用于 ​​Bean 管理、依赖注入、配置控制​​ 的关键注解,按功能分类说明: ​​1. Bean 声明与注册​​ 注解作用示例​​Component​​通用注解,标记一个类为 Spring Bean(自动扫描注册) Compo…

C与指针5——字符串合集

常用函数 1、拷贝、长度、比较 size_t strlen();\\返回无符号整形 char* strcpy();char* strncpy();\\拷贝 int strcmp();int strncmp();\\比较 char* strcat();char* strncat();\\连接2、查找 char* strchr(const char * st,int ch);\\找字符第一次出现的位置 char* strrch…

论软件需求管理

目录 摘要(300~330字) 正文(2000~2500字,2200字为宜) 背景介绍(500字做左右) 论点论据(1500字做左右) 收尾(200字左右) 注:本篇论…

[特殊字符] 如何在比赛前调整到最佳状态:科学与策略结合的优化指

🧠 概述 在竞技体育中,赛前状态的调整对比赛结果起着决定性作用。所谓“最佳状态”,不仅指生理上的巅峰表现,更包括心理、认知、营养和恢复等多方面的协同优化。本文结合运动科学、心理学和营养学的研究成果,探讨赛前…

一种实波束前视扫描雷达目标二维定位方法——论文阅读

一种实波束前视扫描雷达目标二维定位方法 1. 专利的研究目标与实际问题意义2. 专利提出的新方法、模型与公式2.1 运动平台几何建模与回波信号构建2.1.1 距离历史建模2.1.2 回波信号模型2.2 距离向运动补偿技术2.2.1 匹配滤波与距离压缩2.3 加权最小二乘目标函数2.3.1 方位向信号…

基于 Spring Boot 瑞吉外卖系统开发(八)

基于 Spring Boot 瑞吉外卖系统开发(八) 自动填充公共字段 MyBatis-Plus公共字段自动填充,也就是在插入或者更新的时候为指定字段赋予指定的值,使用它的好处就是可以统一对这些字段进行处理,降低了冗余代码的数量。本…

【前端】从零开始的搭建结构(技术栈:Node.js + Express + MongoDB + React)book-management

项目路径总结 后端结构 server/ ├── controllers/ # 业务逻辑 │ ├── authController.js │ ├── bookController.js │ ├── genreController.js │ └── userController.js ├── middleware/ # 中间件 │ ├── authMiddleware…

【RAG】向量?知识库的底层原理:向量数据库の技术鉴赏 | HNSW(导航小世界)、LSH、K-means

一、向量化表示的核心概念 1.1 特征空间与向量表示 多维特征表示:通过多个特征维度(如体型、毛发长度、鼻子长短等)描述对象,每个对象对应高维空间中的一个坐标点,来表示狗这个对象,这样可以区分出不同种…

如何用CSS实现HTML元素的旋转效果

原文:如何用CSS实现HTML元素的旋转效果 | w3cschool笔记 (本文为科普文章,请勿标记为付费) 在网页制作中,为 HTML 元素设置旋转效果可使其更灵动,提升用户体验。本文将深入浅出地介绍如何利用 CSS 实现 H…

Spark集群搭建之Yarn模式

配置集群 1.上传并解压spark-3.1.2-bin-hadoop3.2.tgz,重命名解压之后的目录为spark-yarn。 2. 修改一下spark的环境变量,/etc/profile.d/my_env.sh 。 # spark 环境变量 export SPARK_HOME/opt/module/spark-yarn export PATH$PATH:$SPARK_HOME/bin:$SP…

xLua笔记

Generate Code干了什么 肉眼可见的,在Asset文件夹生成了XLua/Gen文件夹,里面有一些脚本。然后对加了[CSharpCallLua]的变量寻找引用,发现它被XLua/Gen/DelegatesGensBridge引用了。也可以在这里查哪些类型加了[CSharpCallLua]。 public over…

【tcp连接windows redis】

tcp连接windows redis 修改redis.conf 修改redis.conf bind * -::*表示禁用保护模式,允许外部网络连接 protected-mode no

【序列贪心】摆动序列 / 最长递增子序列 / 递增的三元子序列 / 最长连续递增序列

⭐️个人主页:小羊 ⭐️所属专栏:贪心算法 很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~ 目录 摆动序列最长递增子序列递增的三元子序列最长连续递增序列 摆动序列 摆动序列 贪心策略:统计出所有的极大值和极小…

STM32F103C8T6使用MLX90614模块

首先说明: 1.SMBus和I2C的区别 我曾尝试用江科大的I2C底层去直接读取该模块,但是无法成功,之后AI生成的的代码也无法成功。 思来想去最大的可能就是SMBus这个协议的问题,根据百度得到的结果如下: SMBus和I2C的区别 链…