在计算损失时,优化是否会以某种方式考虑计算降低的平均值或总和的轴?
例如......
X = [[.1, .2, .3, .4, .5],[.4, .3, .2, .1, .1]] # target Data
Y = [[.2, .1, .3, .2, .1],[.3, .1, .1, .3, .5]] # output data
lossA = tf.reduce_sum(tf.square(X - Y),0)
lossB = tf.reduce_sum(tf.square(X - Y),1)
errA = tf.reduce_mean(lossA)
errB = tf.reduce_mean(lossB)
A显示每个通道的样本总和,而B显示每个样本的通道总和,这会产生不同的均值误差。
lossA: [ 0.02 , 0.05000001, 0.01 , 0.08000001, 0.32000002]
lossB: [ 0.22000001, 0.26000002]
errA: 0.096000008
errB: 0.24000001
但是,如果要使用reduce_mean()进行损失计算,则最终平均误差相等。
lossA = tf.reduce_mean(tf.square(X - Y),0)
lossB = tf.reduce_mean(tf.square(X - Y),1)
lossA: [ 0.01 , 0.025 , 0.005 , 0.04000001, 0.16000001]
lossB: [ 0.044, 0.052]
errA: 0.048000004
errB: 0.048000004
无论使用均值/和,我都在想,优化器是否会根据我指示的轴以不同的方式将误差分配给权重。或者在backprop期间根本没有考虑到这一点?
我的直觉是,通过减少沿0轴的和,优化器将更好地知道通过backprop传递更大部分误差的路径。但是我可能已经完全混淆了自己,这实际上与backprop计算无关。