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函数的导数解释[关闭] 的相关文章

  • Tensorflow Inception 多 GPU 训练损失未求和?

    我正在尝试检查多个 GPU 在一台机器上 的 Tensorflow 初始代码 我很困惑 因为据我所知 我们从不同的塔 又名 GPU 中得到了多次损失 但是loss评估的变量似乎只是最后一个塔的变量 而不是所有塔的损失之和 for step
  • 实例标准化与批量标准化

    据我所知 批量归一化通过将激活转向单位高斯分布来帮助加快训练速度 从而解决梯度消失问题 批量归一化行为在训练 使用每个批次的平均值 var 和测试时间 使用训练阶段的最终运行平均值 var 时应用不同 另一方面 实例归一化充当本文提到的对比
  • 帮助我在 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
  • R中的神经网络包出现大错误

    我正在尝试弄清楚如何使神经网络包发挥作用 我用我创建的数据及其结果 大约 50 行数据和三列 第四列是我想要的结果 它是通过简单的数学执行 如对其他三列求和 得出的 进行了一些测试 到目前为止一切顺利 然后我决定将这个包应用到真实数据上 我
  • 如何修复:AttributeError:模块“neat”没有属性“config”

    我正在浏览使用发现的 NEAT 神经网络 API 玩 flappybird 的 AI 的指南 当我运行从 Github 下载的代码时 出现错误 Traceback most recent call last File test py lin
  • sympy 中共轭的导数

    当我尝试用 SymPy 区分符号时 我得到以下结果 In x Symbol x In diff x x Out 1 当我将符号与其共轭微分时 结果是 In 55 diff x x conjugate Out 55 0 但是 当我尝试区分符号
  • Keras 获取中间层的输出

    what my model looks like defining the model archictecture model Sequential 1st conv layer model add Conv2D 32 5 5 activa
  • 如何在 Caffe 的网络中出现多次损失?

    如果我在网络中定义多个损失层 从这些末端到网络的开头是否会发生多个反向传播 我的意思是 他们真的是这样工作的吗 假设我有这样的事情 Layer1 Layer2 Layer n Layer cls1 bottom layer n top cl
  • keras 层教程和示例

    我正在尝试编码和学习不同的神经网络模型 我对输入维度有很多复杂性 我正在寻找一些教程 显示层的差异以及如何设置每个层的输入和输出 Keras 文档 https keras io layers core 向您展示所有input shape每层
  • `numpy.diff` 和 `scipy.fftpack.diff` 在微分时给出不同的结果

    我正在尝试计算一些数据的导数 并且正在尝试比较有限差分的输出和谱方法的输出 但结果却截然不同 我无法弄清楚到底为什么 考虑下面的示例代码 import numpy as np from scipy import fftpack as sp
  • 神经网络不能立即重现?

    通过使用反向传播导数 弹性 的前馈神经网络中的随机权重初始化 误差图上的初始位置位于某个随机谷的顶部 该随机谷可能是也可能不是局部最小值 可以使用方法来克服局部最小值 但假设这些方法没有被使用 或者在给定的地形上不能很好地工作 那么神经网络
  • 神经网络中的时间序列提前预测(N点提前预测)大规模迭代训练

    N 90 使用神经网络进行提前预测 我试图预测提前 3 分钟 即提前 180 点 因为我将时间序列数据压缩为每 2 个点的平均值为 1 所以我必须预测 N 90 超前预测 我的时间序列数据以秒为单位给出 值在 30 90 之间 它们通常从
  • 如何使用 pybrain 黑盒优化训练神经网络来处理监督数据集?

    我玩了一下 pybrain 了解如何生成具有自定义架构的神经网络 并使用反向传播算法将它们训练为监督数据集 然而 我对优化算法以及任务 学习代理和环境的概念感到困惑 例如 我将如何实现一个神经网络 例如 1 以使用 pybrain 遗传算法
  • 通过 Caffe 中的层提供数据的多种路径

    我想在 Caffe 中构建一个网络 其中传入的数据最初被分割 分别通过同一组层 最后使用 eltwise 层重新组合 此后 所有部件将作为一个斑点移动 除了学习的参数之外 数据并行移动的网络部分的层配置将是相同的 有没有一种方法可以在 Ca
  • 混合 SOM(带 MLP)

    有人可以提供一些有关如何正确地将自组织映射与多层感知器结合起来的信息吗 我最近读了一些关于这种技术的文章 与常规 MLP 相比 它在预测任务中表现得更好 因此 我想使用 SOM 作为前端 通过对输入数据进行聚类来降维 并将结果传递到 MLP
  • 为什么平均百分比误差(mape)非常高?

    我已获得代码掌握机器学习 https machinelearningmastery com time series prediction lstm recurrent neural networks python keras 我修改了mod
  • 如何防止我的程序陷入局部最大值(前馈人工神经网络和遗传算法)

    我正在开发一个前馈人工神经网络 ffann 它将以简单计算的形式获取输入并返回结果 充当袖珍计算器 结果不会很准确 人工网络使用遗传算法对权重进行训练 目前我的程序陷入局部最大值 正确答案为 5 6 误差范围为 1 30 正确答案 10 误
  • 为什么反向传播神经网络中必须使用非线性激活函数? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我一直在阅读一些有关神经网络的内容 并且了解单层神经网络的一般原理 我理解需要额外的层 但为什么要使用非线性激活函数 这个问题后面跟着这个
  • 从 [tensorflow 1.00] 中的 softmax 层提取概率

    使用张量流 我有一个 LSTM 分类模型 以 softmax 作为最终节点 这是我的 softmax 层 with tf name scope Softmax as scope with tf variable scope Softmax
  • 预处理 csv 文件以与 tflearn 一起使用

    我的问题是关于在将 csv 文件输入神经网络之前对其进行预处理 我想使用 python 3 中的 tflearn 为著名的 iris 数据集构建一个深度神经网络 数据集 http archive ics uci edu ml machine

随机推荐

  • 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