我正在调整用于在线训练神经网络的代码,使其适用于迷你批量。我的问题是,一个权重的迷你批量梯度(de/dw)是否只是迷你批量中各个样本梯度的总和?还是因为使用了Sigmoid输出函数而变成了某种非线性函数?或者,它是总和但被某个数字除以,使其变小?
澄清:最好更具体地提出这个问题,并询问全批量梯度与在线梯度之间的关系。因此,请看下段:
我使用带有Sigmoid激活函数的神经元来对二维空间中的点进行分类。网络结构为2 x 10 x 10 x 1。有两个输出类别:一些点为1,其他点为0。误差是(目标值 – 输出值)的平方的一半。我的问题是,全批量梯度是否等于每个样本的梯度之和(在批量中保持权重不变)?
回答:
这在一定程度上取决于你的具体成本函数,但由于你使用的是在线模式,这意味着你的函数在训练样本上是可加的,所以最可能的方式(在不知道具体细节的情况下)是计算平均梯度。当然,如果你只是简单地将它们相加,结果会完全相同,但需要更小的学习率。