softmax函数的导数解释[关闭]

2023-11-23

我正在尝试计算 softmax 激活函数的导数。我找到了这个 :https://math.stackexchange.com/questions/945871/derivative-of-softmax-loss-function似乎没有人能够正确推导我们如何获得 i=j 和 i!= j 的答案。有人可以解释一下吗!当涉及到求和(如 softmax 激活函数的分母)时,我对导数感到困惑。


和的导数是导数之和,即:

    d(f1 + f2 + f3 + f4)/dx = df1/dx + df2/dx + df3/dx + df4/dx

推导出导数p_j关于o_i我们从以下开始:

    d_i(p_j) = d_i(exp(o_j) / Sum_k(exp(o_k)))

我决定使用d_i对于关于的导数o_i使本文更易于阅读。 使用乘积规则我们得到:

     d_i(exp(o_j)) / Sum_k(exp(o_k)) + exp(o_j) * d_i(1/Sum_k(exp(o_k)))

看第一项,导数将是0 if i != j,这可以用一个表示德尔塔函数我将其称为 D_ij。这给出(对于第一项):

    = D_ij * exp(o_j) / Sum_k(exp(o_k))

这只是我们的原始函数乘以D_ij

    = D_ij * p_j

对于第二项,当我们单独导出总和的每个元素时,唯一的非零项将是i = k,这给了我们(不要忘记幂律,因为总和在分母中)

    = -exp(o_j) * Sum_k(d_i(exp(o_k)) / Sum_k(exp(o_k))^2
    = -exp(o_j) * exp(o_i) / Sum_k(exp(o_k))^2
    = -(exp(o_j) / Sum_k(exp(o_k))) * (exp(o_j) / Sum_k(exp(o_k)))
    = -p_j * p_i

将两者放在一起,我们得到了令人惊讶的简单公式:

    D_ij * p_j - p_j * p_i

如果你真的想要我们可以把它分成i = j and i != j cases:

    i = j: D_ii * p_i - p_i * p_i = p_i - p_i * p_i = p_i * (1 - p_i)

    i != j: D_ij * p_i - p_i * p_j = -p_i * p_j

这就是我们的答案。

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

softmax函数的导数解释[关闭] 的相关文章

  • Encog/neuroph 保存神经网络

    我是神经网络领域的新手 说实话 我几天前才开始 我想在我的 OCR 应用程序中使用神经网络来识别手写文本 我想知道的是 是否可以在初始训练后训练网络 换句话说 我将在开始时训练几个字符 但我想稍后向网络添加更多字符 而不影响之前训练的数据的
  • 将 CNN Pytorch 中的预训练权重传递到 Tensorflow 中的 CNN

    我在 Pytorch 中针对 224x224 大小的图像和 4 个类别训练了这个网络 class CustomConvNet nn Module def init self num classes super CustomConvNet s
  • 如何在prototxt文件中写注释?

    我找不到如何写评论prototxt files 有没有办法在 prototxt 文件中添加注释 如何 Thanks 您可以通过添加评论 char 之后的行中的所有内容都是注释 layer name aLayerWithComments I
  • 反向传播实现问题

    我应该做什么 我有一个黑白图像 100x100px 我应该训练一个反向传播 http en wikipedia org wiki Backpropagation神经网络与该图像 输入是图像的 x y 坐标 从 0 到 99 输出是 1 白色
  • Matlab - 神经网络训练

    我正在努力创建一个具有反向传播的 2 层神经网络 神经网络应该从 20001x17 向量获取数据 该向量在每行中包含以下信息 前 16 个单元格包含从 0 到 15 的整数 它们充当变量 帮助我们确定在看到这些变量时要表达的 26 个字母中
  • 随着新数据的出现,如何增量训练 FANN?

    我使用 FANN 库构建并训练了一个神经网络 这是初步培训 大部分数据将在线收集 当在线数据可用时我想要improve使用这些新数据的网络 不是重新训练 而是使之前的训练更加准确 如何用FANN来做这种增量训练呢 从更改为的文件进行训练 s
  • BatchNorm 动量约定 PyTorch

    Is the 批归一化动量约定 http pytorch org docs master modules torch nn modules batchnorm html 默认 0 1 与其他库一样正确 例如Tensorflow默认情况下似乎
  • 张量流:简单 LSTM 网络的共享变量错误

    我正在尝试构建一个最简单的 LSTM 网络 只是想让它预测序列中的下一个值np input data import tensorflow as tf from tensorflow python ops import rnn cell im
  • 如何在快速人工智能中获得给定测试集的预测并计算准确性?

    我正在尝试加载由导出的学习者learn export 我想针对测试集运行它 我希望我的测试集有标签 以便我可以测量其准确性 这是我的代码 test src TextList from df df path cols texts split
  • 神经网络的局部逆

    我有一个带有 N 个输入节点和 N 个输出节点的神经网络 可能还有多个隐藏层和循环 但让我们先忘记这些 神经网络的目标是学习一个N维变量Y 给定N维值X 假设神经网络的输出是Y 学习后应该接近Y 我的问题是 是否有可能得到输出 Y 的神经网
  • 将数值和分类数据混合到具有密集层的 keras 序列模型中

    我在 Pandas 数据框中有一个训练集 我将此数据框传递到model fit with df values 以下是有关 df 的一些信息 df values shape 981 5 df values 0 array 163 0 6 83
  • 帮助我在 Python 中实现反向传播

    EDIT2 新的训练集 Inputs 0 0 0 0 0 0 1 0 0 0 2 0 0 0 3 0 0 0 4 0 1 0 0 0 1 0 1 0 1 0 2 0 1 0 3 0 1 0 4 0 2 0 0 0 2 0 1 0 2 0 2
  • 如何制作 U 矩阵?

    为了可视化一个 U 矩阵到底是如何构建的自组织映射 http en wikipedia org wiki Self organizing map 更具体地说 假设我有一个 3x3 节点的输出网格 已经经过训练 我如何从中构造一个 U 矩阵
  • R中的神经网络包出现大错误

    我正在尝试弄清楚如何使神经网络包发挥作用 我用我创建的数据及其结果 大约 50 行数据和三列 第四列是我想要的结果 它是通过简单的数学执行 如对其他三列求和 得出的 进行了一些测试 到目前为止一切顺利 然后我决定将这个包应用到真实数据上 我
  • Keras 中的损失函数和度量有什么区别? [复制]

    这个问题在这里已经有答案了 我不清楚 Keras 中损失函数和指标之间的区别 该文档对我没有帮助 损失函数用于优化您的模型 这是优化器将最小化的函数 指标用于判断模型的性能 这仅供您查看 与优化过程无关
  • keras 层教程和示例

    我正在尝试编码和学习不同的神经网络模型 我对输入维度有很多复杂性 我正在寻找一些教程 显示层的差异以及如何设置每个层的输入和输出 Keras 文档 https keras io layers core 向您展示所有input shape每层
  • 如何组织循环神经网络?

    我想模拟以下内容 y t F x t 1 x t 2 x t k 或者说一个函数 其当前输出取决于最后 k 个输入 1 我知道一种方法是使用一个经典的神经网络 其中 k 个输入为 x t 1 x t 2 x t k 对于每个y t 并训练它
  • 神经网络不能立即重现?

    通过使用反向传播导数 弹性 的前馈神经网络中的随机权重初始化 误差图上的初始位置位于某个随机谷的顶部 该随机谷可能是也可能不是局部最小值 可以使用方法来克服局部最小值 但假设这些方法没有被使用 或者在给定的地形上不能很好地工作 那么神经网络
  • 如何将神经网络的输出限制在特定范围内?

    我正在使用 Keras 进行回归任务 并希望将输出限制在一个范围内 例如 1 到 10 之间 有没有办法保证这一点 像这样编写自定义激活函数 a simple custom activation from keras import back
  • 如何使用一个模型中间层的输出作为另一个模型的输入?

    我训练一个模型A并尝试使用中间层的输出name layer x 作为模型的附加输入B 我尝试像 Keras 文档一样使用中间层的输出https keras io getting started faq how can i obtain th

随机推荐

  • PHP:Adobe Reader 无法打开使用 mpdf 创建的 PDF 文件

    我正在使用 mpdf 即时创建 PDF 文件 文件可以在浏览器中正常打开 但 Adob e 给我一个错误 Adobe Acrobat Reader DC 无法打开 example filename pdf 因为它不是受支持的文件类型 或者因
  • Android webview:检测滚动

    我需要知道如何检测用户是否无法在 webView 中滚动 我想在用户向左或向右滑动时生成一个操作 但前提是用户无法滚动 IF the user swipes to the left AND the webview can t scroll
  • MVC中的文件上传

    我正在尝试在 MVC 中上传文件 我在 SO 上看到的大多数解决方案是使用 webform 我不想使用它 并且个人更喜欢使用流 如何在MVC上实现RESTful文件上传 谢谢 Edit 当您认为自己已经解决了所有问题时 您就会意识到还有更好
  • 如何查找具有特定标签(属性)的视图列表

    我为 UI 小部件设置了标签 并且想要检索具有特定标签的视图列表 使用View findViewWithTag test tag 只返回一个视图 而不是所有支持标签的视图 任何帮助表示赞赏 您不应期望从此方法中获得视图数组 因为方法签名本身
  • Sympy:手动处理等式

    我目前正在学习数学课程 我的目标是理解概念和过程 而不是尽快解决问题集 在解方程时 我希望能够自己研究它们 而不是让它们帮我解 假设我们有一个非常简单的方程z 1 4 如果我自己解决这个问题 我显然会从两边减去1 但我不知道是否sympy提
  • bash 脚本中的源文件

    我正在使用两个版本的 ROS 要使用它 我必须为特定版本获取一些环境变量 我想创建一个脚本来执行此操作 但是 如果我创建如下所示的脚本 则未设置变量 它们可能是在子 shell 中设置的 如何将文件发送到主终端 shell 来源 sh so
  • OutputStreamWriter 不追加

    原始代码及其将数据保存到SD卡的工作原理 Writing data to internal storage btnSaveData setOnClickListener new View OnClickListener Override p
  • 动画 WPF DataGrid 行详细信息

    任何人都可以帮助我在打开和关闭时对 WPF DataGrid 行详细信息进行动画处理 例如 当选择行时 幻灯片像手风琴一样打开 而当未选择行时 幻灯片会关闭 我需要一个简单的概念证明 在此先感谢您的帮助 冗长但有效
  • 如果触发器中不存在

    我有两个表concept access 和concept access log 我想创建一个触发器 每次从concept access 中删除某些内容时都会起作用 检查日志表中是否有类似的记录 如果没有 则在从concept access
  • 如何声明 constexpr extern?

    是否可以声明变量extern constexpr并在另一个文件中定义它 我尝试了一下 但是编译器给出了错误 声明constexpr多变的 i 不是一个定义 in h extern constexpr int i in cpp constex
  • 如何创建具有自定义屏幕尺寸的新模拟器?

    在 avd 管理器中 当我尝试创建新的 avd 时 有皮肤部分 但是更新sdk后 我看不到这个部分了 如何使用我自己的屏幕尺寸而不是现有的屏幕尺寸 这些是新模拟器屏幕的旧外观和新外观 old one new one 如果您使用的是最新版本的
  • 无法让 ASP.NET 4 Web API 返回成功 POST 的状态代码“201 - 创建”

    我正在尝试返回 HTTP 状态代码201 Created使用 ASP NET 4 Web API 进行 RESTful POST 操作 但我总是得到200 OK 我目前正在 IIS 7 5 7600 16385 VS 2010 Profes
  • IE+溢出:隐藏

    我不知道这是一个问题还是错误 但是当我使用时overflow hidden 在IE中选择文本并将光标移动到页面底部 页面正在滚动 我尝试了IE9 IE11 当我使用 Firefox Opera Chrome Safari 时 页面不滚动 我
  • 'str' 对象没有 Python 中 Tensorflow 的属性 'decode' [重复]

    这个问题在这里已经有答案了 我想运行一段代码 它是使用 Tensorflow 用 Python3 编写的 我可以运行代码 但是当代码运行时 我尝试在单独的 Anaconda Prompt 中运行另一个代码并进行一些更改 然后我停止了代码 现
  • 双手柄滑块android [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 I was wondering if anyone had some code or knew of a place that has code f
  • 如何为 Firestore 中的不同字段组合创建索引?

    假设我有一个users我想在我的页面中过滤的集合 要过滤的字段是name age location 为此 我创建了一个复合索引 姓名 年龄 位置 问题是我希望有机会按 3 个名称的任意组合进行过滤 姓名和年龄 姓名和位置 年龄和位置 当我尝
  • 在 Android 中使用意图分享到 Facebook

    我使用以下代码来分享内容 Intent intent new Intent Intent ACTION SEND intent setType text plain intent putExtra Intent EXTRA TEXT The
  • Firebase Firestore:orderBy 与 where 结合导致错误“操作被拒绝”

    我正在查看 Firebase Cloud Firestore文档对于 orderBy 当我尝试执行这个时 var facultyQuery facultyRef where department Core Teacher orderBy b
  • 具有整数参数的模板的部分特化

    我正在尝试做一些部分专业化的事情 我有一个tuple 我想从某个元素索引迭代到第一个元组索引 累积每个类型的值tuple 这似乎是使用递归模板实例化的简单问题 问题是 我似乎无法让递归工作 为了停止递归 我需要部分特化元组索引 0 处的模板
  • softmax函数的导数解释[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我正在尝试计算 softmax 激活函数的导数 我找到了这个 https math stackexchange com questions 945871 derivative of