我对CS231n中使用的softmax的梯度有一个特殊的问题。在推导softmax函数以计算每个单独类的梯度之后,即使梯度未在任何地方求和,作者也将其除以num_examples。这背后的逻辑是什么?为什么我们不能直接使用softmax渐变呢?
神经网络学习的典型目标是使数据分布上的expected损失最小化,因此:
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