softmax函数详解

2023-05-16

softmax函数

1.softmax函数理解

我们知道Logistic回归只能进行二分类,因为它的随机变量的取值只能是0或者1,那么如果我们面对多分类问题怎么

办?比如要将一封新收到的邮件分为垃圾邮件,个人邮件,还是工作邮件;根据病人的病情预测病人属于哪种病;那么今天要说的softmax回归能解决这类分类的问题。

softmax它将多个神经元的输出,映射到(0,1)区间内,其输出向量其实就是概率,为样本在某个类的概率

如下图只需先了解左边输入,右边输出概率就行了

在这里插入图片描述

softmax直白来说就是将原来输出是3,1,-3通过softmax函数一作用,就映射成为(0,1)的值,而这些值的累和为1(满足概率的性质),那么我们就可以将它理解成概率,在最后选取输出结点的时候,我们就可以选取概率最大(也就是值对应最大的)结点,作为我们的预测目标!
假设我们有一个数组,V,Vi表示V中的第i个元素,那么这个元素的softmax值就是
在这里插入图片描述

2.求导

在这里插入图片描述
我们能得到下面公式:

z4 = w41o1+w42o2+w43*o3

z5 = w51o1+w52o2+w53*o3

z6 = w61o1+w62o2+w63*o3

z4,z5,z6分别代表结点4,5,6的输出,01,02,03代表是结点1,2,3往后传的输入.

那么我们可以经过softmax函数得到
在这里插入图片描述

3.softmax损失函数

根据求梯度,然后利用梯度下降方法更新梯度!
要使用梯度下降,肯定需要一个损失函数,这里我们使用交叉熵(称它为损失函数)作为我们的损失函数,为什么使用交叉熵损失函数,不是这篇文章重点(大家只要知道用这个就可以了)
公式
在这里插入图片描述
y:代表真实值
a:代表softmax求出的值
i:代表的是输出结点的标号!在上面例子,i就可以取值为4,5,6三个结点(当然我这里只是为了简单,真实应用中可能有很多结点)
由于 log 运算符不会影响函数的单调性,我们对 Si 进行 log 操作:
在这里插入图片描述
我们希望 Si 越大越好,即正确类别对应的相对概率越大越好,那么就可以对 Si 前面加个负号,来表示损失函数:

在这里插入图片描述
对上式进一步处理,把指数约去:
在这里插入图片描述
这样,Softmax 的损失函数就转换成了简单的形式。

4.softmax实际应用

使用 Softmax 线性分类器,对 图片集进行分类。

总结

其实说白了softmax函数就是处理多分类问题的。在左边输入值,出来的是概率。重头戏就是中间这个转换的过程
1.交叉熵(作为损失函数)
2.求导

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

softmax函数详解 的相关文章

  • ubuntu+nvidia显卡驱动安装+(顺带)解决rviz卡顿/CPU使用率过高问题/compiz占用CPU过高问题

    前言 我原本安装nvidia显卡驱动的方式为 xff1a 从官网下载 run文件 xff0c 参考教程link 虽然安装成功 xff0c 运行深度学习相关代码没有出状况 xff0c 但仍然存在一些问题 重新通过ppa方式安装后 xff0c
  • Docker与ROS可视化(RViz)

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 文章目录 前言一 Docker中构建ROS环境二 Docker内ROS与主机ROS通信三 Docker内开启RViz1 OpenGL2 n
  • 卡尔曼滤波

    文章目录 前言一 初印象二 基本概念三 公式及参数四 其他总结 前言 之前看Fast LIO的时候 xff0c 了解过卡尔曼滤波的知识 xff0c 重新整理下 同时推荐一个很棒的Kalman Filter讲解网站 xff1a https w
  • 京东云前端JS分片上传完整版

    京东云上传我是写了以下几步 注 xff1a 京东云分片上传时成功则有data返回 失败则返回err 1 请求后台接口获取身份信息等数据用于访问 2 createMultipartUpload创建上传请求 身份信息 data为第一步时请求后台
  • Windows10环境下Python 开发环境搭建

    目录 前言 xff1a 一 安装包 二 Python安装 三 Pycharm安装 四 pip使用 前言 xff1a 本文档使用的安装包版本 xff1a python3 9 6 pycharm community 2021 1 3 本文安装提
  • Docker run 命令常用参数

    docker run xff1a 创建一个新的容器并运行一个命令 docker run OPTIONS IMAGE COMMAND ARG OPTIONS说明 xff1a it 以交互模式运行容器 xff1b gpus all xff1a
  • 3D resnet根据UCF101数据集制作自己的数据集实现动作识别

    3D resnet根据UCF101数据集制作自己的数据集实现动作识别 配置要求数据集数据集结构 构建数据集训练测试 配置要求 作者代码 3D resnet pytorch gt 0 4FFmpeg FFprobePython 3 我这里使用
  • STM32移植ucos-III并实现多任务——HAL

    文章目录 前言一 uC OS III简介1 什么是uC OS III2 uC OS III的特点 二 基于HAL库stm32移植uC OS III1 STM32CubeMX新建一个工程2 用keil打开工程完成uC OS III的移植 三
  • Mapreduce程序实现思路

    Map的输出 是key value的 list Reduce的输入是key value的list MapReduce核心思想 分而治之 xff0c 先分后和 MapReduce是hadoop提供的一个分布式运算框架 1将任务分为两个阶段执行
  • 人的梦想 是不会结束的!

    文章目录 前言一 一年之约1 学习嵌入式2 探寻嵌入式之路 二 我的心跳1 奉劝2 行动人的梦想是永远不会结束的 xff01 前言 随着在程序员这条路上不断发展 xff0c 自己学得越多 xff0c 就会感觉自己学的东西有多渺小 下面就说说
  • 在linux下启动tomcat,并实时查看tomcat的控制台输出

    在windows下 xff0c 只要双击运行start bat文件 xff0c tomcat就能正常启动 xff0c 并且在控制台中保持持续输出 xff0c 方便维护人员实时查看程序运行状态 但是在Linux中 xff0c 情况会比wind
  • apt-get autoremove remove 新手收割者

    每一个接触linux系统的小坏蛋 xff0c 都会接触apt get 不出意外的话 xff0c 每一个小坏蛋都会尝试被sudo apt get remove 所摆布的命运 重申一遍 xff0c 重要的事情说三遍 文章目录 不要用sudo a
  • c++ stringstream ss()

    定义了三个类 xff1a istringstream ostringstream 和 stringstream xff0c 分别用来进行流的输入 输出和输入输出操作 本文以 stringstream 为主 xff0c 介绍流的输入和输出操作
  • C++ getline函数用法详解

    文章目录 前言一 getline 函数的定义二 getline 函数的使用1 可读取整行 xff0c 包括前导和嵌入的空格 xff0c 并将其存储在字符串对象中 2 char delim表示遇到这个字符停止读入 xff0c 在不设置的情况下
  • 【ROS-Navigation-costmap_2d】costmap_prohibition_layer障碍物插件

    系列文章目录 文章目录 系列文章目录前言一 costmap 2d是什么 xff1f 二 使用步骤1 下载源代码2 安装插件3 在costmap 2d中插入障碍物4 修改launch文件5 设置障碍物坐标参数6 主要事项 总结 前言 随着SL
  • 【C++】指向指针的引用

    系列文章目录 文章目录 系列文章目录前言一 指向指针的引用二 使用步骤1 代码2 TIPS 总结 前言 一 指向指针的引用 引用本身不是一个对象 xff0c 因此不能定义指向引用的指针 但指针是对象 xff0c 所以存在对指针的引用 二 使
  • 第三讲 【cartographer】 添加功能以从RVIZ为纯本地化模式设置初始姿势

    系列文章目录 第一讲 ROS SLAM 2D激光雷达 cartographer构建地图 第二讲 cartographer Ubuntu16 04 kinetic 最新版cartographer安装 xff08 2020 11 4更新 xff
  • 第四讲 【cartographer】纯定位 纯本地化 pure_localization

    系列文章目录 第一讲 ROS SLAM 2D激光雷达 cartographer构建地图 第二讲 cartographer Ubuntu16 04 kinetic 最新版cartographer安装 xff08 2020 11 4更新 xff
  • C++中compare函数

    compare函数用来进行字符串以及其子串的比较 xff0c 示例如下 span class token macro property span class token directive keyword include span span
  • C++ to_string()函数

    系列文章目录 文章目录 系列文章目录前言一 C 43 43 to string 函数详解二 example总结 前言 http www cplusplus com reference string to string 一 C 43 43 t

随机推荐

  • Ubuntu18.04 下VSCode配置Clang-format

    系列文章目录 文章目录 系列文章目录前言一 Clang format二 使用步骤1 Visual Studio Code安装Clang format2 在命令行中安装Clang format3 添加格式化同步保存功能 总结 前言 一 Cla
  • 在Ubuntu/Linux环境下使用MySQL:启动和关闭MySQL服务

    传送门 在Ubuntu下使用MySQL 安装MySQL 操作系统 Ubuntu 17 04 64位 MySQL版本 MySQL 5 7 一 启动MySQL服务 nbsp 使用以下命令来启动MySQL service mysql start
  • CDockablePane操作[转]

    去掉关闭按钮 xff1a 在继承CDockablePane的类中重写CanBeClosed 方法 xff1a virtual BOOL CanAutoHide const return FALSE 去掉自动隐藏风格 xff1a virtua
  • 【设计模式】中介者模式的解析与使用

    系列文章目录 文章目录 系列文章目录前言一 使用设计模式的目的二 实践是最好的老师2 1 中介者模式 xff08 飞机塔台 xff09 2 2 通信过程 总结 前言 设计模式在系统编程的重要性不言而喻 xff0c 如何一个程序没有使用设计模
  • 【C++】一文读懂多重条件判断、多条件判断

    系列文章目录 文章目录 系列文章目录前言一 if else1 1 优点 xff1a 1 2 缺点 xff1a 二 switch case2 1 优点 xff1a 2 2 缺点 xff1a 总结 前言 多重条件判断 多条件判断是每一个程序员都
  • 修身齐家治国平天下

    系列文章目录 文章目录 系列文章目录前言一 修身齐家治国平天下1 1 修身1 2 齐家1 3 治国1 4 平天下 二 了凡四训2 1 立命之学2 2 改过之法2 3 积善之方2 4 谦德之效 总结 前言 人的一生 xff0c 追求光明 xf
  • 如何使用IntelliJ IDEA 配置Maven

    IDEA 全称 IntelliJ IDEA xff0c 是java语言开发的集成环境 xff0c IntelliJ在业界被公认为最好的Java开发工具之一 IDEA是JetBrains公司的产品 现在有逐步取代老牌Java开发工具Eclip
  • Protobuf协议格式详解

    protobuf 是google开源的一个序列化框架 xff0c 类似xml xff0c json xff0c 最大的特点是基于二进制 xff0c 比传统的XML表示同样一段内容要短小得多 还可以定义一些可选字段 xff0c 用于服务端与客
  • 【Nacos源码调试】集群模式内置数据源单机多实例部署问题解决

    最近对Nacos源码比较感兴趣 xff0c 个人是个好奇宝宝 xff0c 特别想了解一下Nacos这个阿里开源的分布式服务注册与发现及配置管理中间件内部到底是个啥样子 xff0c 于是就想着自己源码编译 xff0c debug走一下试试 可
  • 浅谈网络安全态势感知

    一 基本概念 前美国空军首席科学家Endsley博士给出的动态环境中态势感知的通用定义是 态势感知是感知大量的时间和空间中的环境要素 xff0c 理解它们的意义 xff0c 并预测它们在不久将来的状态 在这个定义中 xff0c 我们可以提炼
  • [搬运]Ali Canal Prometheus QuickStart

    Prometheus QuickStart lcybo edited this page on 29 Aug 2018 3 revisions Pages 38 Contents 目录 HomeIntroduction 简介Quick St
  • python打包分发工具:setuptools

    你是否也想写一个python库 xff0c 想向社会开源或者企业内部使用 xff0c 想让别人通过简单的命令pip install 安装你的库 那么setuptools绝对是最好用的python打包与分发工具 setuptools库的前身是
  • Reactor 3 参考文档

    Reactor 3 参考文档 Stephane Maldini 64 smaldini Simon Basl 64 simonbasle3 2 0 BUILD SNAPSHOT xff08 译者加 xff09 本文档的一些典型的名词如下 x
  • 在Ubuntu/Linux环境下使用MySQL:开放/修改3306端口、开放访问权限

    操作系统 Ubuntu 17 04 64位 MySQL版本 MySQL 5 7 一 查看3306端口是否开放 netstat an grep 3306 如果看到下图这样的 说明端口并未打开 nbsp 二 修改访问权限 进入目录 etc my
  • 使用nohup后台运行并获取pid

    启动 nohup command gt command log 2 gt amp 1 amp echo gt command pid 注意 nohup运行后需要按回车键 xff0c 不然强行ctrl 43 C会退出 停止 kill 96 c
  • YAML——基本语法

    功能 编辑 YAML的语法和其他高级语言类似 xff0c 并且可以简单表达清单 散列表 xff0c 标量等数据形态 4 它使用空白符号缩进和大量依赖外观的特色 xff0c 特别适合用来表达或编辑数据结构 各种配置文件 倾印调试内容 文件大纲
  • 推荐一些socket工具,TCP、UDP调试、抓包工具

    推荐一些socket工具 xff0c TCP UDP调试 抓包工具 转载 还记得我在很久很久以前和大家推荐的Fiddler和Charles debugger么 他们都是HTTP的神器级调试工具 xff0c 非常非常的好用 好工具能让你事半功
  • Docker学习笔记(3)-- 如何使用Dockerfile构建镜像

    Dockfile是一种被Docker程序解释的脚本 xff0c Dockerfile由一条一条的指令组成 xff0c 每条指令对应Linux下面的一条命令 Docker程序将这些Dockerfile指令翻译真正的Linux命令 Docker
  • Ubuntu部署安装Jenkins

    1 概述 安装jenkins需要有java的环境 xff0c 因此需要先安装jdk 2 安装OpenJDK 11 2 1 安装JDK 更新apt sudo apt get update 安装 sudo apt get install ope
  • softmax函数详解

    softmax函数 1 softmax函数理解 我们知道Logistic回归只能进行二分类 xff0c 因为它的随机变量的取值只能是0或者1 xff0c 那么如果我们面对多分类问题怎么 办 xff1f 比如要将一封新收到的邮件分为垃圾邮件