本文参考:

干货|softmax函数计算时候为什么要减去一个最大值?_机器学习AI的技术博客_51CTO博客

 1、softmax概述

softmax用于多分类过程,它将多个神经元的输出映射到(0,1)之间。

2、存在问题

当运算比较小的值的时候是不会有什么问题的,但是如果运算的值比较打的时候,比如很大或者很小的时候,朴素的方式直接计算会上溢或者下溢,从而导致严重的问题。

举个例子,对于[3, 1, -3],直接计算是可行的,我们可以得到(0.88, 0.12, 0)。

但是对于[1000, 1000, 1000]和[-1000, -999, -1000]是不行的,会得到-inf。

目前浮点数只有64位,在计算指数函数的环节,exp{1000}=inf会发生上溢;exp{-1000}=0会发生下溢。

3、解决办法

函数曲线如下:

对任意a都成立,这意味着我们可以自由地调节指数函数的指数部分,一个典型的做法是取 中的最大值:a=max{x1,x2…xn}

这可以保证指数最大不会超过0,于是你就不会上溢出。即便剩余的部分下溢出了,加了a之后,你也能得到一个合理的值。

4、正确性证明

证明softmax不受输入的常数偏移影响,即
softmax(x)=softmax(x+c)
也就是证明加了偏移c之后,对整个softmax层的作用不起影响。

softmax函数计算时减去一个最大值的原因相关推荐

  1. R语言max函数min函数计算各种数据对象最大值最小值实战

    R语言max函数min函数计算各种数据对象最大值最小值实战 目录 R语言max函数min函数计算各种数据对象最大值最小值实战 #基本语法

  2. softmax函数计算概念,过程。Coursera | Andrew Ng (02-week3-3.9)—训练一个 Softmax 分类器

    版权声明:本文为博主--ZJ--原创文章,未经博主允许不得转载. https://blog.csdn.net/JUNJUN_ZHAO/article/details/79122927 该系列仅在原课程 ...

  3. crc16的c语言函数 计算ccitt_求一个C语言实现的CRC16/CCITT-FALSE校验码函数

    匿名用户 1级 2017-02-20 回答 //函数功能:计算CRC16 //参数1:*pData 16位CRC校验数据, //参数2:nLength 数据流长度 //参数3:init 初始化值 // ...

  4. Softmax 函数及其作用(含推导)

    Softmax函数的定义及作用 Softmax是一种形如下式的函数: P(i)=exp(θTix)∑Kk=1exp(θTkx) 其中 θi和x是列向量, θTix可能被换成函数关于x的函数 fi(x) ...

  5. softmax函数理解

    该节课中提到了一种叫作softmax的函数,因为之前对这个概念不了解,所以本篇就这个函数进行整理,如下: 维基给出的解释:softmax函数,也称指数归一化函数,它是一种logistic函数的归一化形 ...

  6. 深度学习softmax函数理解

    文章目录 一,引入 二,softmax是什么? 三,为什么 使用exe^xex 实现 总结 一,引入 我们为什么要引入这个函数,我们知道在机器学习当中,一些问题大概可以分为两种,一种是分类问题,一种是 ...

  7. 开发函数计算的正确姿势 —— 爬虫

    2019独角兽企业重金招聘Python工程师标准>>> 在 <函数计算本地运行与调试 - Fun Local 基本用法> 中,我们介绍了利用 Fun Local 本地运行 ...

  8. 函数计算新功能-----支持C#函数

    声明 本文转载自 原文 前言 函数计算作为新兴的事件驱动serverless平台正受到越来越多开发者的欢迎,之前已支持Java, Python, Nodejs, Php四种语言.现在函数计算正式支持C ...

  9. 函数计算是如何工作的?

    函数计算调用链路 上图展示了函数计算完整的请求和调用链路.函数计算是事件驱动的无服务器应用,事件驱动是说可以通过事件源自动触发函数执行,比如当有对象上传至 OSS 中时,自动触发函数,对新上传的图片进 ...

最新文章

  1. asp.net MD5 加密
  2. Parcelable与Serializable的比较
  3. 基于 Spring Cloud 的服务治理实践
  4. 为脚本语言平反-JavaScript篇(3)
  5. fatal: remote origin already exists.报错已成功解决
  6. Caffe Batch Normalization推导
  7. My interested stuff(2008-07-18)
  8. VelocityTracker使用总结
  9. python urlencode函数_Python urlencode和unquote函数使用实例解析
  10. Android 长按Menu键的监听
  11. 解决.bat文件打开是记事本的问题
  12. Mybatis-plus学习-最全细致讲解
  13. 动态规划题目——背包
  14. python 找出两个dataframe中不同的元素
  15. [AHOI2022]山河重整
  16. 新松机器人发行价_机器人公司简介,沈阳新松机器人自动化股份有限公司企业概况_赢家财富网...
  17. 浙江大学计算机学院保研率,浙江大学2020届保研率25.9%,主要保研本校、复旦、交大、北大...
  18. [Verilog]格雷码与二进制码的相互转换
  19. SQL 删除替换字符串中第一次出现的指定字符
  20. TYPEC 线缆 维修 miniUSB

热门文章

  1. mac QQ 聊天记录 数据表
  2. [webrtc_ndk开发]在调用流程错误导致的ndk音频模块崩溃问题的解决
  3. 【嵌入式】Ubuntu、stm32下的C程序中堆、栈、全局、局部等变量的分配地址
  4. qml全局变量定义建议
  5. 逆水寒最新服务器贴吧,逆水寒新区一号难求,玩家蹲守贴吧半月后崩溃:早知道自己练了...
  6. Sql Server的dateadd()函数和day()函数
  7. fcrackzip暴力破解zip密码
  8. cron 工具 每分钟_在线cron表达式生成工具
  9. 3串12.6V3.3A锂电池充电器规格书
  10. Spring Framework 5.0.0.M4中文文档第3章