CS231n上softmax的分析梯度

时间:2017-07-24 20:09:31

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

我对CS231n中使用的softmax的梯度有一个特殊的问题。在导出softmax函数以计算每个类的梯度之后,作者将渐变除以num_examples,即使渐变未在任何位置求和。这背后的逻辑是什么?为什么我们不能直接使用softmax渐变?

enter image description here

1 个答案:

答案 0 :(得分: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