0
我想知道Tensorflow優化器(特別是AdamOptimizer
)在定義損失函數作爲總和還是平均值/平均值時有優先權?Tensorflow優化器:損失總和vs平均值
一般來說,我的假設是使用均值是首選,因爲損失不取決於小批量的大小。因此,更容易找到適用於任何批量規模的學習速率。然而,Tensorflow定義了例如, l2_loss
內部爲:
output = sum(t ** 2)/2
這是否意味着優化佔批量大小已經在內部,即,他們預計損失與批量大小呈線性比例關係?另外,從優化的角度來看,採取L2規範的一半是什麼動機?
我明白了,2除以在梯度上只有一個乘法運算。所以要清楚:對於非正則化用例,最好使用'tf.reduce_mean(tf.square(輸出 - 目標))' – bluenote10
那麼這是根據你的損失函數。在這裏,你正在實現的損失函數被稱爲線性平方和,是的,平均值總是很好。在前一種情況下,我們使用兩分法來簡化漸變過程。 –