我正在训练完全连接的神经网络来对MNIST数据集进行分类。输入数据是像素值为[0, 255]
的方形黑白图像。
我已经读到,使用sigmoid()
激活器需要将输入归一化为[0, 1]
(S型范围)。
如何规范tanh()
激活器的输入数据?我是否需要将其缩放为[-1, 1]
(tanh范围),还是仍然可以为[0, 1]
。
哪种方法更好,为什么?什么是一般指导?
答案 0 :(得分:4)
您不必为不同的激活功能使用不同的规范化。实际上,您不必将Sigmoid的输入标准化为[0, 1]
。 S型[0, 1]
的范围是其输出的范围。其输入(域)范围实际上是从负无穷大到正无穷大。
此外,您的输入不会直接进入Sigmoid函数,因此图像输入的范围与Sigmoid将获得的输入范围不同。在它们之间将存在一些线性层,这些线性层会更改数据范围。
一般指导是将输入标准化为[-1, 1]
。这与激活功能无关,而是用于反向传播的一般有效措施。参见Effective BackProp。
答案 1 :(得分:1)
归一化可简化神经网络的权重调整,因此可导致神经网络的正常运行,为此,您可以选择标准化或归一化。
标准化=(x-均值(x))/标准差(x);
归一化=(x-x_min)/(x_max-x_min);
此外,Hampel等人对tanh估计量进行了很好的研究。就离群值而言,这似乎很可靠。 他们认为以下x_norm =(1/2)*(tanh(0.01 *((x-mean(x))/ std(x)))+ 1)
Tanh估计量归一化参考可以在以下位置找到:https://www.cs.ccu.edu.tw/~wylin/BA/Fusion_of_Biometrics_II.ppt