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

激活函数篇(3):Softmax

Softmax是一种常用在多分类问题中的激活函数,主要作用是将一个实数向量“压缩”映射为一个概率分布,使得输出各项都是(0,1)之间的小数,且所有输出加起来为1。

假设有一个长度为n的向量z=[z1,z2,...,zn],softmax的第i个输出为:

\sigma (z)_i=\frac{e^{z_i}}{\sum_{j=1}^{n}e^{z_j}}

e是自然对数的底数;

每个分量zi先取指数,再归一化,保证输出和为1。

为什么要使用指数运算?

最大的zi经过指数运算后,其值会远大于其他项,因此最终概率最大。

归一化

所有分量加起来为1,可以直接解释为概率。常用在最后一层,用于神经网络的多分类任务。


代码实现

import numpy as npdef softmax(z):z = np.array(z)  # 将输入参数 z 转换为 NumPy 数组z = z - np.max(z)  # 对 z 的每个元素都减去 z 的最大值,目的是防止后面指数运算时溢出(提升数值稳定性)exp_z = np.exp(z) # 计算 z 每个元素的指数值return exp_z / np.sum(exp_z)logits = softmax([2.0,1.0,0.1])
print(logits)

为什么要减去z中的最大值再做指数运算?

如果zi比较大,exp(zi)也会非常大,计算机的浮点数表示有其最大值限制。当 exp(z_i) 超过这个限制时,就会发生溢出,导致结果变为 inf (无穷大)。

通过减去 z 中的最大值,将所有的输入值平移到一个新的范围(最大值为0,其他值小于0),从而确保在后续的指数运算中,exp(z) 的结果不会因为数值过大而溢出,同时又不会改变 Softmax 函数的最终输出结果。

http://www.dtcms.com/a/355541.html

相关文章:

  • maven scope 详解
  • 通信原理实验之线性均衡器-迫零算法
  • dht11传感器总结
  • [灵动微电子 MM32BIN560CN MM32SPIN0280]读懂电机MCU之串口DMA
  • 【C++游记】子承父业——乃继承也
  • 91美剧网官网入口 - 最新美剧资源在线观看网站
  • 保姆级教程 | 在Ubuntu上部署Claude Code Plan Mode全过程
  • 【论文阅读】MotionXpert:基于肌电信号的优化下肢运动检测分类
  • Spring事务管理机制深度解析:从JDBC基础到Spring高级实现
  • [灵动微电子MM32SPIN0280]从灵动微电子看电机专用MCU
  • Deeplizard 深度学习课程(五)—— 模型训练
  • 数据结构01:顺序表
  • react Antd Table 多选大数据量 UI渲染很慢的解决方案
  • 每日五个pyecharts可视化图表日历图和箱线图:从入门到精通
  • ChatGPT登录,拒绝访问,错误1020解决办法
  • THM Whats Your Name WP
  • QT .pro文件的常见用法
  • 与trae携手,构建owtb一体化物流平台之--需求文档V0.3
  • RTL8198E SDK温控机制
  • 家电公司跨界造车,追觅能否造出“电动时代的布加迪”
  • 【架构师干货】软件工程
  • 从卡顿到丝滑:大型前端项目 CSS 优化全攻略
  • Agent实战教程:Langgraph的StateGraph以及State怎么用
  • 如何安装InfluxDB 1.7.0 Windows版(influxdb-1.7.0_windows_amd64.exe使用方法附安装包下载)​
  • 群晖 DS225+ 和绿联 DXP2800:企业文件备份方案对比
  • 仿生纺织飞行模块专利拆解:螺旋旋转结构的空气动力学与升力产生机制
  • curl打印信息实现
  • 如何将yolo训练图像数据库的某个分类的图像取出来
  • Step-by-Step: 接入淘宝商品详情 API 并解析返回数据
  • 无人机+AI光伏热斑检测技术