当前位置: 首页 > news >正文

广义线性模型三剑客:线性回归、逻辑回归与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.xdnf.cn/news/265951.html

相关文章:

  • JavaScript 星河:类型流转的诗意旅程
  • 基于LangChain 实现 Advanced RAG-后检索优化(上)-Reranker
  • 第4章 Python 3 基础语法规则补充
  • LangChain与MCP:大模型时代的工具生态之争与协同未来
  • STM32F103C8T6使用MLX90614模块
  • VTK实战笔记(1)在win11搭建VTK-9.4.2 + qt5.15.2 + VS2019_x64开发环境
  • 通往“共识空域”的系统伦理演化
  • [方法论]软件工程中的设计模式:从理论到实践的深度解析
  • 排序算法——归并排序
  • 【Mytais系列】Type模块:类型转换
  • 基于51单片机和LCD1602、矩阵按键的小游戏《猜数字》
  • 【BLE】【nRF Connect】 精讲nRF Connect自动化测试套件(宏录制、XML脚本)
  • 大数据:数字时代的驱动力
  • 应用层自定义协议序列与反序列化
  • toLua笔记
  • 突破认知边界:神经符号AI的未来与元认知挑战
  • Vmware设置静态IP和主机访问
  • 用单目相机和apriltag二维码aruco实现单目定位
  • Go语言的优势与应用场景 -《Go语言实战指南》
  • 5月3日日记
  • 删除有序数组中的重复项 II
  • 【2025软考高级架构师】——计算机网络(9)
  • FPGA DDR4多通道管理控制器设计
  • 自己部署后端,浏览器显示久久未响应
  • 模型测试报错:有2张显卡但cuda.device_count()显示GPU卡数量只有一张
  • 计算机组成原理实验(7) 堆指令部件模块实验
  • C++STL之vector
  • 2018-2020年 北京大学县域数字乡村指数
  • 深度学习:AI 机器人时代
  • Sharding-JDBC分库分表中的热点数据分布不均匀问题及解决方案