对于CS231n中使用的softmax的梯度,我有一个特殊的问题。在推导softmax函数以计算每个单独类的梯度之后,即使梯度未在任何地方求和,作者也将其除以num_examples。这背后的逻辑是什么?为什么我们不能直接使用softmax渐变呢?
最佳答案
神经网络学习的典型目标是最大程度地减少数据分布上的预期损失,从而:
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
关于machine-learning - CS231n上softmax的解析梯度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45289209/