2

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

谢谢你。

      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
4

2 回答 2

1

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

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

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

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

于 2013-08-08T15:03:01.923 回答
0

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

于 2013-08-08T11:52:07.020 回答