马里奥波罗
在这段用于计算负对数可能性的代码中,他们说:
注意:我们使用平均值代替总和,因此学习率对批次大小的依赖性较小
这就是他们获得负面对数可能性的方式:
return -T.mean(T.log(self.p_y_given_x)[T.arange(y.shape[0]), y])
在许多教科书中都是如此(例如Bishop的模式识别和机器学习),通过使用每个样本误差的总和而不是均值来计算负对数似然率。我仍然不理解作者的注释。每次计算成本函数时,我们应该使用均值而不是总和吗?即使我们不使用批处理?
胡安·列尼(Juan Leni)
平均值与和之间的差只是乘以1 / N。
使用总和的问题是批次大小(N)将影响您的梯度。学习率表示您要在梯度方向上调整参数的程度。
如果对于较大的批次大小(N),您的梯度较大,则意味着您需要在增加批次大小(N)时调整学习率。
实际上,为了使这两个(学习率和批量大小)保持独立,通常使用均值而不是总和。这使得梯度幅度与N无关。
如果不使用批处理,则N = 1,并且平均值与总和相同。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
编辑于
我来说两句