【发布时间】:2017-07-24 20:09:30
【问题描述】:
我有一个关于 CS231n 中使用的 softmax 梯度的特殊问题。在导出 softmax 函数来计算每个单独类的梯度之后,作者将梯度除以 num_examples,即使梯度没有在任何地方求和。这背后的逻辑是什么。为什么我们不能直接使用 softmax 梯度?
【问题讨论】:
标签: machine-learning neural-network deep-learning
我有一个关于 CS231n 中使用的 softmax 梯度的特殊问题。在导出 softmax 函数来计算每个单独类的梯度之后,作者将梯度除以 num_examples,即使梯度没有在任何地方求和。这背后的逻辑是什么。为什么我们不能直接使用 softmax 梯度?
【问题讨论】:
标签: machine-learning neural-network deep-learning
神经网络学习的一个典型目标是最小化数据分布的预期损失,因此:
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
【讨论】: