如何针对不同的激活功能标准化训练数据?

时间:2018-08-02 05:59:46

标签: machine-learning neural-network mnist

我正在训练完全连接的神经网络来对MNIST数据集进行分类。输入数据是像素值为[0, 255]的方形黑白图像。

我已经读到,使用sigmoid()激活器需要将输入归一化为[0, 1](S型范围)。

如何规范tanh()激活器的输入数据?我是否需要将其缩放为[-1, 1](tanh范围),还是仍然可以为[0, 1]

哪种方法更好,为什么?什么是一般指导?

2 个答案:

答案 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