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

逻辑回归与Softmax

Softmax函数是一种将一个含任意实数的K维向量转化为另一个K维向量的函数,这个输出向量的每个元素都在(0, 1)区间内,并且所有元素之和等于1。
因此,它可以被看作是某种概率分布,常用于多分类问题中作为输出层的激活函数。这里我们以拓展逻辑回归解决多分类的角度对Softmax函数进行理解:

假设共有 C C C 个类别,模型对输入 x \mathbf{x} x 输出 C C C个类别的得分,
则属于类别 c c c 的后验概率为:
P ( y = c ∣ x ) = e β c ⊤ x ∑ j = 1 C e β j ⊤ x P(y = c \mid \mathbf{x}) = \frac{e^{\beta_c^\top \mathbf{x}}}{\sum_{j=1}^{C} e^{\beta_j^\top \mathbf{x}}} P(y=cx)=j=1Ceβjxeβcx
其中 β c \beta_c βc 是第 c c c 类对应的参数向量, j j j 是求和的类别索引, x \mathbf{x} x 是输入特征向量。

为什么使用指数函数 e e e?

Softmax 函数的形式为:
σ ( z ) i = e z i ∑ j = 1 C e z j , \sigma(\mathbf{z})_i = \frac{e^{z_i}}{\sum_{j=1}^{C} e^{z_j}}, σ(z)i=j=1Cezjezi,
其中每个得分 z i z_i zi 的形式为:
z i = β i ⊤ x , z_i = \beta_i^\top \mathbf{x}, zi=βix,
表示输入特征向量 x \mathbf{x} x 与第 i i i 类对应的参数向量 β i \beta_i βi 的线性组合。

使用指数函数 e z i e^{z_i} ezi 有以下几点重要理由:

  • 非负性:对于任意实数 z i z_i zi,都有 e z i > 0 e^{z_i} > 0 ezi>0。这保证了 Softmax 输出的概率值始终为正数。

  • 保持序关系:指数函数是严格单调递增函数。若 z i > z j z_i > z_j zi>zj,则 e z i > e z j e^{z_i} > e^{z_j} ezi>ezj,从而保留了原始得分之间的相对大小关系。

  • 便于求导:指数函数具有良好的可导性,且其导数形式简单 ( d d x e x = e x ) \left(\frac{d}{dx}e^x = e^x\right) (dxdex=ex),这对基于梯度下降等优化算法非常友好。

  • 映射到概率分布:通过除以总和 ∑ j = 1 C e z j \sum_{j=1}^{C} e^{z_j} j=1Cezj,使得所有类别的输出加起来等于 1,形成一个合法的概率分布。

下面的示意图清晰地表示 Softmax 函数的原理和计算过程。以下是一个完整的推导流程示例,包括线性回归输出、Softmax 激活函数的应用,以及最终的分类结果。

( 0.5 0 0.7 0.5 0.5 0.9 0.1 0.1 0.6 0.6 0.1 0 ) X × ( − 0.15 0.95 2.2 ) β = ( 0.5 ⋅ ( − 0.15 ) + 0 ⋅ 0.95 + 0.7 ⋅ 2.2 0.5 ⋅ ( − 0.15 ) + 0.5 ⋅ 0.95 + 0.9 ⋅ 2.2 0.1 ⋅ ( − 0.15 ) + 0.1 ⋅ 0.95 + 0.6 ⋅ 2.2 0.6 ⋅ ( − 0.15 ) + 0.1 ⋅ 0.95 + 0 ⋅ 2.2 ) = ( 1.385 2.43 1.37 − 0.095 ) 线性输出  z \overset{X}{\begin{pmatrix} 0.5 & 0 & 0.7 \\ 0.5 & 0.5 & 0.9 \\ 0.1 & 0.1 & 0.6 \\ 0.6 & 0.1 & 0 \end{pmatrix}} \times \overset{\bm{\beta}}{ \begin{pmatrix} -0.15 \\ 0.95 \\ 2.2 \end{pmatrix}} =\begin{pmatrix} 0.5 \cdot (-0.15) + 0 \cdot 0.95 + 0.7 \cdot 2.2 \\ 0.5 \cdot (-0.15) + 0.5 \cdot 0.95 + 0.9 \cdot 2.2 \\ 0.1 \cdot (-0.15) + 0.1 \cdot 0.95 + 0.6 \cdot 2.2 \\ 0.6 \cdot (-0.15) + 0.1 \cdot 0.95 + 0 \cdot 2.2 \end{pmatrix}=\overset{\text{线性输出 } \mathbf{z}}{ \begin{pmatrix} 1.385 \\ 2.43 \\ 1.37 \\ -0.095 \end{pmatrix}}

相关文章:

  • 《深度探秘:Java构建Spark MLlib与TensorFlow Serving混合推理流水线》
  • 基于tensorflow实现的猫狗识别
  • 下载和安装Visual Studio(开发ASP.NET MVC应用)
  • 【图片识别Excel】批量提取图片中的文字,图片设置识别区域,识别后将文字提取并保存Excel表格,基于WPF和OCR识别的应用
  • [假面骑士] 龙骑浅谈
  • Java -jar命令运行外部依赖JAR包的深度场景分析与实践指南
  • 【基础】每天掌握一个Linux命令 - awk
  • React项目的状态管理:Redux Toolkit
  • Excel处理控件Aspose.Cells教程:使用 C# 在 Excel 中创建组合图表
  • 接地电阻柜安装后测试、验收与维护
  • SpringBoot+MySQL家政服务平台 设计开发
  • Imprompter: Tricking LLM Agents into Improper Tool Use
  • Blazor-表单提交的艺术:如何优雅地实现 (下)
  • 打卡day46
  • 界面开发框架DevExpress XAF实践:集成.NET Aspire后如何实现数据库依赖?
  • NoSQL之redis哨兵
  • 洞悉 MySQL 查询性能:EXPLAIN 命令 type 字段详解
  • 【各种主流消息队列(MQ)对比指南】
  • MySQL 事务详解
  • 优选算法第十二讲:队列 + 宽搜 优先级队列
  • 广西省住房和城乡建设厅官方网站/百度推广工作怎么样
  • 武汉网站建设jw100/免费的行情软件网站下载
  • 个人兼职做建设网站/百度推广销售员好做吗
  • 网站域名怎么取/品牌推广方案范文
  • 青岛网页建站模板/seo优化的主要任务包括
  • 哪些网站可以做直播/网络推广网站有哪些