逻辑回归与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}}

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

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

相关文章

基于PSO与BP神经网络分类模型的特征选择实战(Python实现)

说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在机器学习建模过程中,特征选择是提升模型性能、降低计算复杂度的重要环节。尤其在高维数据场景下&…

深度学习之模型压缩三驾马车:基于ResNet18的模型剪枝实战(1)

一、背景:为什么需要模型剪枝? 随着深度学习的发展,模型参数量和计算量呈指数级增长。以ResNet18为例,其在ImageNet上的参数量约为1100万,虽然在服务器端运行流畅,但在移动端或嵌入式设备上部署时&#xf…

uni-app学习笔记二十四--showLoading和showModal的用法

showLoading(OBJECT) 显示 loading 提示框, 需主动调用 uni.hideLoading 才能关闭提示框。 OBJECT参数说明 参数类型必填说明平台差异说明titleString是提示的文字内容,显示在loading的下方maskBoolean否是否显示透明蒙层,防止触摸穿透,默…

【大模型RAG】六大 LangChain 支持向量库详细对比

摘要 向量数据库已经成为检索增强生成(RAG)、推荐系统和多模态检索的核心基础设施。本文从 Chroma、Elasticsearch、Milvus、Redis、FAISS、Pinecone 六款 LangChain 官方支持的 VectorStore 出发,梳理它们的特性、典型应用场景与性能边界&a…

【MySQL】数据库三大范式

目录 一. 什么是范式 二. 第一范式 三. 第二范式 不满足第二范式时可能出现的问题 四. 第三范式 一. 什么是范式 在数据库中范式其实就是一组规则,在我们设计数据库的时候,需要遵守不同的规则要求,设计出合理的关系型数据库,…

Coze工作流-语音故事创作-文本转语音的应用

教程简介 本教程将带着大家去了解怎么样把文本转换成语音,例如说我们要做一些有声故事,我们可能会用上一些语音的技术,来把你创作的故事朗读出来 首先我们创建一个工作流 对各个模块进行编辑,如果觉得系统提示词写的不好&#xf…

5.子网划分及分片相关计算

某公司网络使用 IP 地址空间 192.168.2.0/24,现需将其均分给 市场部 和 研发部 两个子网。已知: 🏢 市场部子网 🖥️ 已分配 IP 地址范围:192.168.2.1 ~ 192.168.2.30🌐 路由器接口 IP:192.16…

三体问题详解

从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…

机器学习算法时间复杂度解析:为什么它如此重要?

时间复杂度的重要性 虽然scikit-learn等库让机器学习算法的实现变得异常简单(通常只需2-3行代码),但这种便利性往往导致使用者忽视两个关键方面: 算法核心原理的理解缺失 忽视算法的数据适用条件 典型算法的时间复杂度陷阱 SV…

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…

OPENCV图形计算面积、弧长API讲解(1)

一.OPENCV图形面积、弧长计算的API介绍 之前我们已经把图形轮廓的检测、画框等功能讲解了一遍。那今天我们主要结合轮廓检测的API去计算图形的面积,这些面积可以是矩形、圆形等等。图形面积计算和弧长计算常用于车辆识别、桥梁识别等重要功能,常用的API…

一.设计模式的基本概念

一.核心概念 对软件设计中重复出现问题的成熟解决方案,提供代码可重用性、可维护性和扩展性保障。核心原则包括: 1.1. 单一职责原则‌ ‌定义‌:一个类只承担一个职责,避免因职责过多导致的代码耦合。 1.2. 开闭原则‌ ‌定义‌&#xf…

React第五十七节 Router中RouterProvider使用详解及注意事项

前言 在 React Router v6.4 中&#xff0c;RouterProvider 是一个核心组件&#xff0c;用于提供基于数据路由&#xff08;data routers&#xff09;的新型路由方案。 它替代了传统的 <BrowserRouter>&#xff0c;支持更强大的数据加载和操作功能&#xff08;如 loader 和…

Opencv中的addweighted函数

一.addweighted函数作用 addweighted&#xff08;&#xff09;是OpenCV库中用于图像处理的函数&#xff0c;主要功能是将两个输入图像&#xff08;尺寸和类型相同&#xff09;按照指定的权重进行加权叠加&#xff08;图像融合&#xff09;&#xff0c;并添加一个标量值&#x…

C++ 基础特性深度解析

目录 引言 一、命名空间&#xff08;namespace&#xff09; C 中的命名空间​ 与 C 语言的对比​ 二、缺省参数​ C 中的缺省参数​ 与 C 语言的对比​ 三、引用&#xff08;reference&#xff09;​ C 中的引用​ 与 C 语言的对比​ 四、inline&#xff08;内联函数…

关于面试找工作的总结(四)

不同情况下收到offer后的处理方法 1.不会去的,只是面试练手2.还有疑问,考虑中3.offer/职位不满足期望的4.已确认,但又收到更好的5.还想挽回之前的offer6.确认,准备入职7.还想拖一下的1.不会去的,只是面试练手 HR您好,非常荣幸收到贵司的offer,非常感谢一直以来您的帮助,…

什么是高考?高考的意义是啥?

能见到这个文章的群体&#xff0c;应该都经历过高考&#xff0c;突然想起“什么是高考&#xff1f;意义何在&#xff1f;” 一、高考的定义与核心功能 **高考&#xff08;普通高等学校招生全国统一考试&#xff09;**是中国教育体系的核心选拔性考试&#xff0c;旨在为高校选拔…

L1和L2核心区别 !!--part 2

哈喽&#xff0c;我是 我不是小upper~ 昨天&#xff0c;咱们分享了关于 L1 正则化和 L2 正则化核心区别的精彩内容。今天我来进一步补充和拓展。 首先&#xff0c;咱们先来聊聊 L1 和 L2 正则化&#xff0c;方便刚接触的同学理解。 L1 正则化&#xff08;Lasso&#xff09;&…

字节推出统一多模态模型 BAGEL,GPT-4o 级的图像生成能力直接开源了!

字节推出的 BAGEL 是一个开源的统一多模态模型&#xff0c;他们直接开源了GPT-4o级别的图像生成能力。&#xff08;轻松拿捏“万物皆可吉卜力”玩法~&#xff09;。可以在任何地方对其进行微调、提炼和部署&#xff0c;它以开放的形式提供与 GPT-4o 和 Gemini 2.0 等专有系统相…

互联网大厂Java面试:从Spring Cloud到Kafka的技术考察

场景&#xff1a;互联网大厂Java求职者面试 面试官与谢飞机的对话 面试官&#xff1a;我们先从基础开始&#xff0c;谢飞机&#xff0c;你能简单介绍一下Java SE和Java EE的区别吗&#xff1f; 谢飞机&#xff1a;哦&#xff0c;这个简单。Java SE是标准版&#xff0c;适合桌…