神经网络输入转换

时间:2013-08-08 11:45:40

标签: r neural-network

我试图用以下数据实现神经网络。我已经决定将输出变量转换为0-1并使用逻辑激活函数。问题是如何转换输入变量? 我已经读过,通常我们将它们转换为0/1或-1/1,并使用logistic或tanh隐藏的音符转换函数。但我也读到有些人将输入数据转换为假人,即。 (1,2,3)甚至根本不变换。我有点困惑什么是最佳的做法。关于这个问题的第二个问题是如何选择隐藏节点激活功能,这是基于数据传输的吗?

谢谢你 S上。

      Age   Salary Mortrate Clientrate Savrate PartialPrate
 [1,]  62 2381.140    0.047       7.05     3.1            0
 [2,]  52 1777.970    0.047       6.10     3.1            0
 [3,]  53 2701.210    0.047       6.40     3.1            0
 [4,]  52 4039.460    0.047       7.00     3.1            0
 [5,]  56  602.240    0.047       6.20     3.1            0
 [6,]  43 2951.090    0.047       6.80     3.1            0
 [7,]  49 4648.860    0.047       7.50     3.1            0
 [8,]  44 3304.110    0.047       7.10     3.1            0
 [9,]  56 1300.000    0.047       6.10     3.1            0
[10,]  50 1761.440    0.047       6.95     3.1            0
[11,]  63 1365.660    0.047       6.40     3.1            0
[12,]  51  986.530    0.047       6.40     3.1            0
[13,]  81    0.000    0.047       8.10     3.1            0
[14,]  64    0.000    0.047       5.80     3.1          697
[15,]  73    0.000    0.047       6.90     3.1          197
[16,]  56  226.890    0.047       5.15     3.1          750
[17,]  51 2576.645    0.047       3.70     3.1         8207
[18,]  66 3246.710    0.047       4.30     3.1            4
[19,]  66 3105.950    0.047       4.50     3.1         2998
[20,]  64  114.950    0.047       6.60     3.1          500
[21,]  84 1468.030    0.047       4.30     3.1         5000
[22,]  55 2616.510    0.047       4.70     3.1         3629
[23,]  71 3189.680    0.047       5.90     3.1         5445

2 个答案:

答案 0 :(得分:1)

您可以参考这个伟大而庞大的神经网络知识库:

ftp://ftp.sas.com/pub/neural/FAQ.html

理论上不需要归一化,因为它可以通过输入权重的其他值来实现。然而在实践中这是一个好主意 - 否则在学习期间你可能会偶然发现神经元权重的算术溢出。范围[0; 1]优于[-1; 1]是一个棘手的问题,需要深入分析您的数据集和您的学习算法。

请参阅ftp://ftp.sas.com/pub/neural/FAQ2.html#A_std

答案 1 :(得分:0)

将输入向量转换为平均值为零且标准差为1时,通常是个好主意。这适用于统计分类器和反向传播神经网络。它有助于使特征空间中的簇更均匀地形成(更接近n维球体)。话虽如此,多层神经网络中的学习过程应该适应任何输入范围,因此它不是一个大问题。 您必须为多层网络使用非线性(通常是S形)激活函数,否则它将等同于单个图层,并且不会在类之间学习复杂的边界形状。