【问题标题】:Analytic gradient of softmax on CS231nCS231n上softmax的解析梯度
【发布时间】:2017-07-24 20:09:30
【问题描述】:

我有一个关于 CS231n 中使用的 softmax 梯度的特殊问题。在导出 softmax 函数来计算每个单独类的梯度之后,作者将梯度除以 num_examples,即使梯度没有在任何地方求和。这背后的逻辑是什么。为什么我们不能直接使用 softmax 梯度?

【问题讨论】:

    标签: machine-learning neural-network deep-learning


    【解决方案1】:

    神经网络学习的一个典型目标是最小化数据分布的预期损失,因此:

    minimise E_{x,y} L(x,y)
    

    现在,在实践中,我们对训练集 xi, yi 使用由样本均值给出的这个数量的估计值

    minimise 1/N SUM L(xi, yi)
    

    上面推导中给出的是 d L(xi, yi) / d theta,但是由于我们想要最小化 1/N SUM L(xi, yi) 我们应该计算它的梯度,即:

    d 1/N SUM L(xi, yi) / d theta = 1/N SUM d L(xi, yi) / d theta
    

    这只是偏导数的一个性质(总和的导数是导数之和等等)。请注意,在所有上述推导中,作者都​​谈到了 Li,而实际优化是在 L 上执行的(注意缺少索引 i),定义为 L = 1/N SUM_i Li

    【讨论】:

      猜你喜欢
      • 2017-05-30
      • 2021-03-24
      • 2019-03-12
      • 2020-04-04
      • 1970-01-01
      • 1970-01-01
      • 2016-07-16
      • 1970-01-01
      • 2013-06-19
      相关资源
      最近更新 更多