Machine learning 如何规范不同激活函数的训练数据?
我正在训练完全连接的神经网络来对MNIST数据集进行分类。输入数据是正方形黑白图像,像素值在Machine learning 如何规范不同激活函数的训练数据?,machine-learning,neural-network,mnist,Machine Learning,Neural Network,Mnist,我正在训练完全连接的神经网络来对MNIST数据集进行分类。输入数据是正方形黑白图像,像素值在[0255]中 我已经读到,要使用sigmoid()activator,需要将输入标准化为[0,1](sigmoid的范围) 如何规范化tanh()activator的输入数据?我是否需要将其重新缩放为[-1,1](tanh范围)或它仍然可以在[0,1]中 哪种方法更好?为什么?一般指南是什么?对于不同的激活功能,不必使用不同的规范化。事实上,对于sigmoid,您不必将输入标准化为[0,1]。sigmo
[0255]
中
我已经读到,要使用sigmoid()
activator,需要将输入标准化为[0,1]
(sigmoid的范围)
如何规范化tanh()
activator的输入数据?我是否需要将其重新缩放为[-1,1]
(tanh范围)或它仍然可以在[0,1]
中
哪种方法更好?为什么?一般指南是什么?对于不同的激活功能,不必使用不同的规范化。事实上,对于sigmoid,您不必将输入标准化为
[0,1]
。sigmoid[0,1]
的范围是其输出的范围。它的输入范围(域)实际上是从负无穷大到正无穷大
更重要的是,您的输入不会直接进入sigmoid函数,因此图像输入的范围与sigmoid将获得的输入范围不同。将有一些线性层在其中更改数据范围
一般指导是将您的输入标准化为
[-1,1]
。这与激活函数无关,而是反向传播的一般有效措施。请参阅。标准化会导致神经网络的正确行为,因为它简化了网络权重调整,因此您可以选择标准化或标准化
标准化=(x-平均值(x))/std(x)
归一化=(x-x_最小值)/(x_最大值-x_最小值)
此外,Hampel等人对tanh估计进行了一项很好的研究,这项研究似乎对异常值具有鲁棒性。
他们考虑了以下x_标准=(1/2)*(tanh(0.01*((x-平均值(x))/std(x))+1)
Tanh估计标准化参考可在以下网址找到:感谢您的解释。我对
[0,1]
规范化的逻辑是,下一层作为输入输出从上一个sigmoid层获取。即网络中除第一层外的每一层的输入都在激活功能的输出范围内。这意味着你应该对第一层做同样的操作。@Ribtoks输入数据范围内的方差应该由线性运算符处理。每个层是否接收相同范围的输入并不重要。另一个建议是:试试看。训练MNIST分类器相当快。