我试图用以下数据实现神经网络。我已经决定将输出变量转换为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
答案 0 :(得分:1)
您可以参考这个伟大而庞大的神经网络知识库:
ftp://ftp.sas.com/pub/neural/FAQ.html
理论上不需要归一化,因为它可以通过输入权重的其他值来实现。然而在实践中这是一个好主意 - 否则在学习期间你可能会偶然发现神经元权重的算术溢出。范围[0; 1]优于[-1; 1]是一个棘手的问题,需要深入分析您的数据集和您的学习算法。
答案 1 :(得分:0)
将输入向量转换为平均值为零且标准差为1时,通常是个好主意。这适用于统计分类器和反向传播神经网络。它有助于使特征空间中的簇更均匀地形成(更接近n维球体)。话虽如此,多层神经网络中的学习过程应该适应任何输入范围,因此它不是一个大问题。 您必须为多层网络使用非线性(通常是S形)激活函数,否则它将等同于单个图层,并且不会在类之间学习复杂的边界形状。