所以我读过,对于图像来说,减法是非常重要的,因为它使数据中心为零。来自这的讲座。
然而,数据的零中心是非常重要的,并且看到每个像素的标准化也是很常见的。
然而,在所有的MNIST和猫/狗分类教程中,我从未见过这种情况。真的有那么重要吗?如果你不把数据归零会发生什么?有人能指给我一个教程笔记本,最好是在Tensorflow,它显示的是平均减法正在做?
发布于 2017-06-29 08:09:26
输入归一化,特别是平均减法,确实是一个重要的预处理步骤,在实践中对于使SGD收敛是必要的。
当你说它几乎没有在教程中使用时,你就错了:它几乎无处不在。例如,tensorflow的CIFAR-10教程将图像规范化这里。
唯一常见的例外是MNIST,不幸的是,它也是无所不在的CNN-101教程,也许留下了一个持久的印象,图像正常化毕竟是可选的。
我用tensorflow的深度MNIST教程做了一个小实验,比较了归一化和不归一化的结果。
标准实施产生了:
step 0, training accuracy 0.1
step 100, training accuracy 0.94
step 200, training accuracy 0.88
step 300, training accuracy 0.9
step 400, training accuracy 0.92
step 500, training accuracy 0.92
step 600, training accuracy 0.92
step 700, training accuracy 0.98
step 800, training accuracy 0.98
step 900, training accuracy 0.9
step 1000, training accuracy 0.94
step 1100, training accuracy 0.98
step 1200, training accuracy 0.96
step 1300, training accuracy 0.94
step 1400, training accuracy 0.98
step 1500, training accuracy 1
step 1600, training accuracy 0.94
step 1700, training accuracy 0.96
step 1800, training accuracy 1
step 1900, training accuracy 0.96
test accuracy 0.974加法时
x_image = tf.map_fn(lambda frame: tf.image.per_image_standardization(frame), x_image)我得到了
step 0, training accuracy 0.1
step 100, training accuracy 0.86
step 200, training accuracy 0.92
step 300, training accuracy 0.86
step 400, training accuracy 0.94
step 500, training accuracy 0.98
step 600, training accuracy 0.94
step 700, training accuracy 0.96
step 800, training accuracy 1
step 900, training accuracy 0.92
step 1000, training accuracy 0.92
step 1100, training accuracy 0.98
step 1200, training accuracy 0.98
step 1300, training accuracy 0.96
step 1400, training accuracy 0.96
step 1500, training accuracy 1
step 1600, training accuracy 0.98
step 1700, training accuracy 0.96
step 1800, training accuracy 0.94
step 1900, training accuracy 1
test accuracy 0.974最后,我得到了准确的(!)在两种情况下,2000年后的测试精度相同。因此,在这里,图像规范化不会降低性能,但不会增加太多。
真正的问题是,是什么使MNIST数据集如此特殊,以至于它无法从图像规范化中受益。这可能是由于图像的性质,这些图像大多是常量的,或者是通常在这个数据集上使用的网络(LeNet和变体),这些数据集很浅,能够处理非零均值数据。
https://stackoverflow.com/questions/44813514
复制相似问题