关于softmax损失函数的推导

2023-05-16

关于softmax损失函数的推导

某人问我softamx损失函数的推导,索性就写一下.
定义softmax损失函数的输入为 XN×C YN×C ,
其中N代表输入的数据的个数,C代表类别的个数.X指的是神经网络的输出,Y代表的是0-1矩阵,即如果第i个样本的类别为j那么 yij=1 , 那么第i行的其余列的值就都为0. 这里我们用 1{j=y(i)} 来表示.
这里的softmax分类器是接在了神经网络的后面的.我们把softmax分类器看成神经网络的最后一层(请注意我的前提条件!).那么在对神经网络进行优化的时候就需要求出其关于输入X的偏导.

softmax classifier的损失函数如下:
loss(X,Y)=1Nij1{j=y(i)}log(pi,j)
其中 pi,j=exp(xi,j)jexp(xi,j) ,其含义为第i个输入的类别为j的概率为 pi,j
我们关于 xi,j 求偏导
首先进行拆分
ij1{j=y(i)}log(pi,j)=i[1{j=y(i)}log(pi,j)+cj1{c=y(i)}log(pi,c)]
那么损失函数为
loss(X,Y)=1N[i[1{j=y(i)}log(pi,j)+cj1{c=y(i)}log(pi,c)]]
接下来进行求导
lossxi,j=1N[1{j=y(i)}1pi,jpi,jxi,j+cj1{c=y(i)}1pi,cpi,cxi,j]

接下来我们求 pi,jxi,j
pi,j=exp(xi,j)jexp(xi,j)
pi,jxi,j=exp(xi,j)jexp(xi,j))exp(xi,j)exp(xi,j))[jexp(xi,j)]2=exp(xi,j)jexp(xi,j)jexp(xi,j)exp(xi,j)jexp(xi,j)=pi,j(1pi,j)
接下来我们求 pi,cxi,j
pi,c=exp(xi,c)jexp(xi,j) ,
pi,cxi,j=exp(xi,c)exp(xi,j)[jexp(xi,j)]2=exp(xi,c)jexp(xi,j)exp(xi,j)jexp(xi,j)=pi,c(pi,j)

那么就可以将上述结果带入可得
lossxi,j=1N[1{j=y(i)}1pi,jpi,jxi,j+cj1{c=y(i)}1pi,cpi,cxi,j]
=1N[1{j=y(i)}1pi,jpi,j(1pi,j)+cj1{c=y(i)}1pi,cpi,c(pi,j)]
=1N[1{j=y(i)}(1pi,j)+cj1{c=y(i)}(pi,j)]
=1N[1{j=y(i)}1{j=y(i)}pi,jcj1{c=y(i)}pi,j]
=1N[1{j=y(i)}j1{j=y(i)}pi,j]
=1N[1{j=y(i)}pi,j]
=1N[pi,j1{j=y(i)}]
即为所求,代码如下:
softmax损失函数及其关于输入的偏导
转载请注明出处:http://blog.csdn.net/xizero00

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

关于softmax损失函数的推导 的相关文章

  • Softmax求导

    softmax的方程为 xff1a p 61 softmax z where
  • 【人脸识别】L2_Softmax Loss详解

    论文题目 xff1a L2 constrained Softmax Loss for Discriminative Face Verification 论文地址 xff1a https arxiv org pdf 1703 09507 pd
  • AM-Softmax

    论文 xff1a Additive Margin Softmax for Face Verification 0 摘要 AM Softmax xff0c additive margin softmax 人脸识别任务是一个度量学习任务 xff
  • 损失函数改进之Large-Margin Softmax Loss

    最近几年网络效果的提升除了改变网络结构外 xff0c 还有一群人在研究损失层的改进 xff0c 这篇博文要介绍的就是较为新颖的Large Margin softmax loss xff08 L softmax loss xff09 Larg
  • softmax层_AM-Softmax

    回顾一下Angular Softmax A softmax xff0c 它是以乘法的方式合并angular margin 角度间隔 从上式中的 可以看出 xff0c m乘以目标角 所以这种类型的损失函数称为 xff1a 乘性Margin S
  • 关于softmax损失函数的推导

    关于softmax损失函数的推导 某人问我softamx损失函数的推导 索性就写一下 定义softmax损失函数的输入为 X N C 和 Y N C 其中N代表输入的数据的个数 C代表类别的个数 X指的是神经网络的输出 Y代表的是0 1矩阵
  • 关于A-Softmax损失函数的一些解释

    关于A Softmax损失函数的一些解释 关于A Softmax具体内容请参考论文 SphereFace Deep Hypersphere Embedding for Face Recognition by Weiyang Liu Yand
  • Softmax到AMSoftmax(附可视化代码和实现代码)

    Softmax nbsp 个人理解 在训练的时候 加上角度margin 把预测出来的值减小 往0那里挤压 离标注距离更大 减少训练得分 加大loss 增加训练收敛难度 不明白的有个问题 减去m后 如果出现负数怎么办 nbsp nbsp 以下
  • A-Softmax(SphereFace)的总结及与L-Softmax的对比

    目录 1 A Softmax的推导 2 A Softmax Loss的性质 3 A Softmax的几何意义 4 源码解读 A Softmax的效果 与L Softmax的区别 引言 SphereFace在MegaFace数据集上识别率在2
  • [交叉熵损失函数的由来:KL散度] & [softmax+交叉熵损失函数求梯度 推导]

  • 一看就懂的LSTM+Attention,此处用softmax求概率

    1 序言 首先 xff0c 我是看这两篇文章的 但是 xff0c 他们一个写的很笼统 xff0c 一个是根据Encoder Decoder和Query key value 第二个讲的太深奥了 xff0c 绕来绕去 xff0c 看了两天才知道
  • Tensorflow(二)MNIST数据集分类

    1 获取数据集 有两种方式可以得到数据集 第一是直接通过mnist input data read data sets MNIST data one hot True 进行联网下载 但这个方法可能很慢或者连接不到服务器 所以推荐使用第二个
  • softmax函数的定义及求导

    本文中 x0 x1 xm x 0 x 1 x m 代表一个向量 也就是一个 m m行1列的矩阵 在监督式的深度学习中 输入通常是一个向量 用xx表示 输出 y y则可以分为多种情况 标量 yy表示输入 x x属于某一类别的概率 向量 此时输
  • TensorFlow在MNIST中的应用-Softmax回归分类

    参考 TensorFlow技术解析与实战 http wiki jikexueyuan com project tensorflow zh tutorials mnist beginners html http www jianshu com
  • softmax函数的导数解释[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我正在尝试计算 softmax 激活函数的导数 我找到了这个 https math stackexchange com questions 945871 derivative of
  • 如果可以激活多个输出,那么 softmax 层的替代是什么?

    例如 我有 CNN 它尝试从 MNIST 数据集 使用 Keras 编写的代码 中预测数字 它有 10 个输出 形成 softmax 层 只有一个输出可以为真 对于从 0 到 9 的每一位数字都是独立的 Real 0 1 0 0 0 0 0
  • Pytorch 中 [-1,0] 的维度范围是多少?

    所以我正在努力理解 Pytorch 中有关集合的一些术语 我不断遇到同样类型的错误range我的张量不正确 当我尝试谷歌寻找解决方案时 解释往往更加令人困惑 这是一个例子 m torch nn LogSoftmax dim 1 input
  • CS231n:如何计算Softmax损失函数的梯度?

    我正在观看斯坦福 CS231 用于视觉识别的卷积神经网络的一些视频 但不太明白如何使用计算 softmax 损失函数的解析梯度numpy From 这个堆栈交换 https math stackexchange com questions
  • 为什么需要softmax函数?为什么不进行简单的标准化呢?

    我对深度学习不熟悉 所以这可能是一个初学者问题 根据我的理解 多层感知器中的softmax函数负责标准化和分配每个类别的概率 如果是这样 我们为什么不使用简单的标准化呢 假设我们得到一个向量x 10 3 2 1 应用softmax 输出将是
  • 全卷积网络的每像素 softmax

    我正在尝试实现类似全卷积网络的东西 其中最后一个卷积层使用大小为 1x1 的滤波器并输出 分数 张量 分数张量的形状为 Batch height width num classes 我的问题是 张量流中的什么函数可以对每个像素应用 soft

随机推荐

  • FFprobe查看&统计视频信息

    1 查看音视频信息 1 1 查看基本信息 ffprobe span class token number 1280 span x720 h264 8mbps 30fps span class token punctuation span m
  • 百度2014校园招聘研发工程师笔试题+答案

    一 xff0c 简答题 30分 1 xff0c 当前计算机系统一般会采用层次结构存储数据 xff0c 请介绍下典型计算机存储系统一般分为哪几个层次 xff0c 为什么采用分层存储数据能有效提高程序的执行效率 xff1f 10分 xff08
  • Linux 查看文件夹大小,磁盘剩余空间(du/df)

    1 简介 du查看目录大小 xff0c df查看磁盘使用情况 2 du disk usage xff08 1 xff09 基本功能 递归查看文件夹下所有文件的大小 xff08 2 xff09 常用参数 xff1a h human reada
  • Python matplotlib高级绘图详解

    1 前言 前面我们介绍了使用matplotlib简单的绘图方法 xff08 见 xff1a Python应用matplotlib绘图简介 xff09 但是想要完全控制你的图形 xff0c 以及更高级的用法 xff0c 就需要使用 pyplo
  • ffmpeg视频精准剪切

    1 导言 ffmepg剪切视频 xff0c 很方便 xff0c 但是也有很大缺陷 xff1a xff08 1 xff09 剪切时间点不精确 xff08 2 xff09 有时剪切的视频开头有黑屏 造成这些问题的原因是ffmpeg无法seek到
  • AudioChannelManipulation

    Manipulating audio channels with ffmpeg Contents stereo mono streamstereo 2 mono filesstereo 2 mono streamsmono stereo2
  • sklearn数据集随机切分(train_test_split)

    sklearn学习 给定数据集X和类别标签y xff0c 将数据集按一定比例随机切分为训练集和测试集 代码 span class hljs comment usr bin env python span span class hljs co
  • 音频节奏检测(Onset Detection)

    1 前言 最近市场上出现一些多个视频拼接而成MV xff0c 其原理是根据音频的节拍变换切换视频 我在这里讲述下如何进行音频节拍检测 2 音频检测一般流程 3 3 1 原始音频频谱 以1024为窗口 xff08 即每次读取1024个采样点
  • 金融时间序列分析:6. AR模型实例(R语言)

    0 目录 金融时间序列分析 xff1a 9 ARMA自回归移动平均模型 金融时间序列分析 xff1a 8 MA模型实例 xff08 Python xff09 金融时间序列分析 xff1a 7 MA滑动平均模型 金融时间序列分析 xff1a
  • 比特率,帧率,分辨率对视频画质的影响

    0 前言 前几天和别人讨论视频编码参数对视频清晰度影响 xff0c 今日查查文献在此记录总结下 对最终用户而言 xff0c 其只关心视频的文件大小和画面质量 其中画面质量包括 xff1a 分辨率 xff0c 清晰度和流畅度 流畅度 xff1
  • 搭建Android Camera项目工程

    0 前言 这块内容非常简单 xff0c 需要注意的有两个 xff1a 需要申请相机权限需要一个Surface用来预览 1 申请相机权限 1 1 申请Camera权限 span class hljs tag lt span class hlj
  • 获取webshell权限的45种方法

    1 到GoogLe 搜索一些关键字 edit asp 韩国肉鸡为多 多数为MSSQL数据库 2 到Google site cq cn inurl asp 3 利用挖掘鸡和一个ASP木马 文件名是login asp 路径组是 manage 关
  • EGLContext: eglMakeCurrent详解

    1 前言 在完成EGL的初始化之后 xff0c 需要通过eglMakeCurrent 函数来将当前的上下文切换 xff0c 这样opengl的函数才能启动作用 boolean eglMakeCurrent EGLDisplay displa
  • UART串口通信 Verilog实现代码

    串行通信分为两种方式 xff1a 同步串行通信和异步串行通信 同步串行通信需要通信双方在同一时钟的控制下 xff0c 同步传输数据 xff1b 异步串行通信是指通信双方使用各自的时钟控制数据的发送和接收过程 UART 是一种采用异步串行通信
  • pytorch: 四种方法解决RuntimeError: CUDA out of memory. Tried to allocate ... MiB

    Bug xff1a RuntimeError CUDA out of memory Tried to allocate MiB 解决方法 xff1a 法一 xff1a 调小batch size xff0c 设到4基本上能解决问题 xff0c
  • Linux打开txt文件乱码的解决方法

    今天发现打开windows下的txt文本出现问题 xff0c 主要是编码问题 xff0c 所以这里我记录下这个问题的解决方法 Linux显示在 Windows 编辑过的中文就会显示乱码是由于两个操作系统使用的编码不同所致 Linux下使用的
  • ubuntu14.04安装cuda

    首先验证你是否有nvidia的显卡 xff08 http developer nvidia com cuda gpus这个网站查看你是否有支持gpu的显卡 xff09 xff1a lspci grep i nvidia 查看你的linux发
  • debian安装无线网卡驱动

    最近安装了debian8 xff0c 但是安装好了后发现不能连wifi 能连有线的 xff0c 笔记本不能连WIFI是个悲剧 xff0c 于是就度百度 xff0c 最后在一篇文章看到方法 xff0c 原文地址 xff1a https wik
  • 魔改Cmake系列:cmake中Boost找不到库的解决方法

    Begin finding boost libraries FindBoost cmake文件中 xff0c 在CMake share cmake 3 4 Modules 找到下面这几行代码 xff08 你可以搜索 xff09 messag
  • 关于softmax损失函数的推导

    关于softmax损失函数的推导 某人问我softamx损失函数的推导 索性就写一下 定义softmax损失函数的输入为 X N C 和 Y N C 其中N代表输入的数据的个数 C代表类别的个数 X指的是神经网络的输出 Y代表的是0 1矩阵