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

一文看懂softmax loss

文章目录

  • softmax loss
    • 1.softmax函数
    • 2.交叉熵损失函数
    • 3.softmax loss损失函数(重点)
    • 4.带有temperature参数的softmax loss
    • 参考

softmax loss

1.softmax函数

softmax函数是一种常用的激活函数,通常用于多分类任务中。给定一个向量,softmax函数将每个元素转化为一个介于0~1之间的概率值,并且所有元素的概率之和为1。softmax函数的定义如下:
softmax ⁡ ( z ) i = e z i ∑ j = 1 K e z j \operatorname{softmax}(z)_i=\frac{e^{z_i}}{\sum_{j=1}^Ke^{z_j}} softmax(z)i=j=1Kezjezi
其中 z z z是输入向量, K K K是向量的维度。softmax函数的作用是将输入的原始分数(通常称之为logits1)转化为表示各个类别概率的分布。

2.交叉熵损失函数

交叉熵损失函数是用来衡量两个概率分布之间的差异性的一种度量方式。在深度学习中,常用交叉熵损失函数来衡量模型预测的概率分布与真实标签的分布之间的差异,从而作为优化目标来训练模型。

对于二分类问题,交叉熵损失函数的定义如下
Binary Cross Entropy Loss = − 1 N ∑ i = 1 N [ y i log ⁡ ( p i ) + ( 1 − y i ) log ⁡ ( 1 − p i ) ] \text{Binary Cross Entropy Loss}=-\frac1N\sum_{i=1}^N\left[y_i\log(p_i)+(1-y_i)\log(1-p_i)\right] Binary Cross Entropy Loss=N1i=1N[yilog(pi)+(1yi)log(1pi)]
其中 y i y_i yi是真实标签, p i p_i pi是模型预测的概率值, N N N是样本数。

对于多分类问题,交叉熵损失函数的定义如下
Cross Entropy Loss = − 1 N ∑ i = 1 N ∑ k = 1 K y i , k log ⁡ ( p i , k ) \text{Cross Entropy Loss}=-\frac1N\sum_{i=1}^N\sum_{k=1}^Ky_{i,k}\log(p_{i,k}) Cross Entropy Loss=N1i=1Nk=1Kyi,klog(pi,k)
其中 y i , k y_{i,k} yi,k是第 i i i 个样本属于第 k k k 个类别的真实标签, p i , k p_{i,k} pi,k 是模型预测的第 i i i 个样本属于第 k k k 个类别的概率值, N N N 是样本数, K K K 是类别数。

3.softmax loss损失函数(重点)

softmax loss是深度学习中最常见的损失函数,完整的叫法为 Cross-entropy loss with softmax。softmax loss 由Fully Connected Layer,Softmax Function和Cross-entropy Loss组成。

Alt

softmax loss就是将softmax函数和交叉熵损失函数结合在了一起
Softmax Loss = − 1 N ∑ i = 1 N ∑ k = 1 K y i , k log ⁡ ( exp ⁡ ( z i , k ) ∑ j = 1 K exp ⁡ ( z i , j ) ) \text{Softmax Loss}=-\frac1N\sum_{i=1}^N\sum_{k=1}^Ky_{i,k}\log\left(\frac{\exp(z_{i,k})}{\sum_{j=1}^K\exp(z_{i,j})}\right) Softmax Loss=N1i=1Nk=1Kyi,klog(j=1Kexp(zi,j)exp(zi,k))
其中 y i , k y_{i,k} yi,k 是第 i i i 个样本属于第 k k k 个类别的真实标签,当样本 i i i 属于类别 k k k 时, y i , k = 1 y_{i,k}=1 yi,k=1;否则, y i , k = 0 y_{i,k}=0 yi,k=0 z i , k z_{i,k} zi,k 是样本 i i i 关于类别 k k k 的得分logits, N N N 是样本数, K K K 是类别数。

4.带有temperature参数的softmax loss

带有温度参数 T T T 的 softmax loss的损失函数如下:
Loss = − 1 N ∑ i = 1 N ∑ k = 1 K y i , k log ⁡ ( exp ⁡ ( z i , k / T ) ∑ j = 1 K exp ⁡ ( z i , j / T ) ) \text{Loss}=-\frac1N\sum_{i=1}^N\sum_{k=1}^Ky_{i,k}\log\left(\frac{\exp(z_{i,k}/T)}{\sum_{j=1}^K\exp(z_{i,j}/T)}\right) Loss=N1i=1Nk=1Kyi,klog(j=1Kexp(zi,j/T)exp(zi,k/T))

参考

1.Large-Margin Softmax Loss for Convolutional Neural Networks

2.Softmax Loss推导过程以及改进

3.深度学习中的温度参数(Temperature Parameter)是什么?

😃😃😃


  1. logits就是一个向量,该向量下一步通常被输入到激活函数中,如softmax、sigmoid中。 ↩︎

http://www.lryc.cn/news/320328.html

相关文章:

  • 用C语言链表实现图书管理
  • Hello,Spider!入门第一个爬虫程序
  • AI实景无人自动直播间怎么搭建?三步教你轻松使用
  • wechaty微信机器人,当机器人被@时做出响应
  • 8.6 Springboot项目实战 Spring Cache注解方式使用Redis
  • rust引用本地crate
  • 分布式(计算机算法)
  • CSS概念及入门
  • 用 C 语言模拟 Rust 的 Result 类型
  • git基础命令(四)之分支命令
  • redis瘦身版
  • 使用ChatGPT高效完成简历制作[中篇]-有爱AI实战教程(五)
  • 论文阅读——SpectralGPT
  • Redis的过期键是如何处理的?过期键的删除策略有哪些?请解释Redis的内存淘汰策略是什么?有哪些可选的淘汰策略?
  • 软件测试方法 -- 等价类边界值
  • LeetCode——贪心算法(Java)
  • 【MySQL】2. 数据库基础
  • 《如何使用C语言去下三子棋?》
  • Linux——线程(4)
  • vite+vue3项目中svg图标组件封装
  • 根据服务器系统选择对应的MySQL版本
  • 【数据结构】栈与队列的“双向奔赴”
  • sqllab第二十七关通关笔记
  • 助推直播产业升级与经济转型 天府锋巢直播产业基地成都开园
  • VSCode+python单步调试库代码
  • 如何使用EMC测试软件执行辐射抗扰度测试?(三)软件检查及手动模式
  • 云手机为电商提供五大出海优势
  • chatgpt大模型基础学习
  • 代码随想录算法训练营第14天 part01 | 二叉树理论基础篇
  • async与defer的区别