Tensorflow优化器:损失和与平均值

Tensorflow优化器:损失和与平均值,tensorflow,Tensorflow,我想知道Tensorflow优化器(尤其是AdamOptimizer)在将损失函数定义为一个和或一个小批量的平均值时是否有偏好 一般来说,我的假设是最好使用平均值,因为损失不取决于小批量的大小。因此,更容易找到适用于任何批量大小的学习率 然而,Tensorflow内部定义如下: output = sum(t ** 2) / 2 这是否意味着优化器已经在内部考虑了批量大小,也就是说,他们期望损失与批量大小成线性比例?另外,从优化的角度来看,取一半L2范数的动机是什么?这里L2_损失实际上是一个正

我想知道Tensorflow优化器(尤其是
AdamOptimizer
)在将损失函数定义为一个和或一个小批量的平均值时是否有偏好

一般来说,我的假设是最好使用平均值,因为损失不取决于小批量的大小。因此,更容易找到适用于任何批量大小的学习率

然而,Tensorflow内部定义如下:

output = sum(t ** 2) / 2

这是否意味着优化器已经在内部考虑了批量大小,也就是说,他们期望损失与批量大小成线性比例?另外,从优化的角度来看,取一半L2范数的动机是什么?

这里L2_损失实际上是一个正则化损失函数。我们在主损失函数中添加了这一点,以防止参数过度拟合。我们通常将l2损失除以2,以便在进行梯度时更容易


在任何优化器中,我们取平均损失w.r.t批量大小。

我明白了,2的除法只是为了在梯度中少一次乘法。所以要明确的是:对于非正则化用例,最好使用
tf.reduce_-mean(tf.square(output-target))
这取决于你的损失函数。这里你要实现的损失函数叫做线性平方和,是的,取平均值总是好的。在前面的例子中,l2损失我们使用2除,只是为了在获得梯度时更容易。