神经网络对输入过于敏感
the neural networks are too sensitive for the input
我有以下两个特征向量:
0.2567 0.2567
0.0105 0.0105
0.0000 -0.0000
-0.0000 0.0000
0.0000 0.0000
0.2567 0.2567
0.0105 0.0105
0.0000 -0.0000
-0.0000 0.0000
0.0000 0.0000
0.2567 0.2567
0.0105 0.0105
0.0000 -0.0000
-0.0000 0.0000
0.0000 0.0000
0.2567 0.2567
0.0105 0.0105
0.0000 -0.0000
-0.0000 0.0000
0.0000 0.0000
0.2567 0.2567
0.0105 0.0105
0.0000 -0.0000
-0.0000 0.0000
0.0000 0.0000
0.2567 0.2567
0.0105 0.0105
0.0000 -0.0000
-0.0000 0.0000
0.0000 0.0000
0.2567 0.2567
0.0105 0.0105
0.0000 -0.0000
-0.0000 0.0000
0.0000 0.0000
0.2567 0.2567
0.0105 0.0105
0.0000 -0.0000
-0.0000 0.0000
0.0000 0.0000
0.2567 0.2567
0.0105 0.0105
0.0000 -0.0000
-0.0000 0.0000
0.0000 0.0000
0.2567 0.2567
0.0105 0.0105
0.0000 -0.0000
-0.0000 0.0000
0.0000 0.0000
0.2567 0.2567
0.0105 0.0105
0.0000 -0.0000
-0.0000 0.0000
0.0000 0.0000
0.2567 0.2567
0.0105 0.0105
0.0000 -0.0000
-0.0000 0.0000
0.0000 0.0000
0.2567 0.2567
0.0105 0.0105
0.0000 -0.0000
-0.0000 0.0000
0.0000 0.0000
0.2567 0.2567
0.0105 0.0105
0.0000 -0.0000
-0.0000 0.0000
0.0000 0.0000
我们称第一个为A
,第二个为B
。 A
已用于学习神经网络,如果您再次将其应用于神经网络,它会为您提供以下输出:
1.0000
0.0000
-0.0000
但是如果你应用特征向量 B
,下面的输出将给出:
-0.2475
1.0524
0.5106
此表格的结果有何不同!特征向量相同(除了零点,零点的符号不同)
任何模型都可以在这两个实例上表现得像那样。你的问题很广泛,所以我只列出一些你应该考虑的事情。
- 数据标准化和缩放
将 feature scaling or mean normalization 应用于您的数据可能会更好。
- 检测过拟合
使用cross validation的方法(经常使用10折交叉验证)来检测你是否过拟合:如果你的training folds的准确率远高于你的test folds,那么你就是过度拟合你的训练数据。
交叉验证也可用于调整模型参数以获得最佳性能:只需在每次调整后重新运行交叉验证过程。
- 解决过拟合
使用正则化通常可以解决过拟合问题。您可以使用多种方法进行正则化,因此您应该进行一些搜索。
获取更多数据不太可能正确解决问题,而且通常不值得花时间。如果可以就去做,但这不是解决过拟合问题的灵丹妙药。
我有以下两个特征向量:
0.2567 0.2567
0.0105 0.0105
0.0000 -0.0000
-0.0000 0.0000
0.0000 0.0000
0.2567 0.2567
0.0105 0.0105
0.0000 -0.0000
-0.0000 0.0000
0.0000 0.0000
0.2567 0.2567
0.0105 0.0105
0.0000 -0.0000
-0.0000 0.0000
0.0000 0.0000
0.2567 0.2567
0.0105 0.0105
0.0000 -0.0000
-0.0000 0.0000
0.0000 0.0000
0.2567 0.2567
0.0105 0.0105
0.0000 -0.0000
-0.0000 0.0000
0.0000 0.0000
0.2567 0.2567
0.0105 0.0105
0.0000 -0.0000
-0.0000 0.0000
0.0000 0.0000
0.2567 0.2567
0.0105 0.0105
0.0000 -0.0000
-0.0000 0.0000
0.0000 0.0000
0.2567 0.2567
0.0105 0.0105
0.0000 -0.0000
-0.0000 0.0000
0.0000 0.0000
0.2567 0.2567
0.0105 0.0105
0.0000 -0.0000
-0.0000 0.0000
0.0000 0.0000
0.2567 0.2567
0.0105 0.0105
0.0000 -0.0000
-0.0000 0.0000
0.0000 0.0000
0.2567 0.2567
0.0105 0.0105
0.0000 -0.0000
-0.0000 0.0000
0.0000 0.0000
0.2567 0.2567
0.0105 0.0105
0.0000 -0.0000
-0.0000 0.0000
0.0000 0.0000
0.2567 0.2567
0.0105 0.0105
0.0000 -0.0000
-0.0000 0.0000
0.0000 0.0000
0.2567 0.2567
0.0105 0.0105
0.0000 -0.0000
-0.0000 0.0000
0.0000 0.0000
我们称第一个为A
,第二个为B
。 A
已用于学习神经网络,如果您再次将其应用于神经网络,它会为您提供以下输出:
1.0000
0.0000
-0.0000
但是如果你应用特征向量 B
,下面的输出将给出:
-0.2475
1.0524
0.5106
此表格的结果有何不同!特征向量相同(除了零点,零点的符号不同)
任何模型都可以在这两个实例上表现得像那样。你的问题很广泛,所以我只列出一些你应该考虑的事情。
- 数据标准化和缩放
将 feature scaling or mean normalization 应用于您的数据可能会更好。
- 检测过拟合
使用cross validation的方法(经常使用10折交叉验证)来检测你是否过拟合:如果你的training folds的准确率远高于你的test folds,那么你就是过度拟合你的训练数据。
交叉验证也可用于调整模型参数以获得最佳性能:只需在每次调整后重新运行交叉验证过程。
- 解决过拟合
使用正则化通常可以解决过拟合问题。您可以使用多种方法进行正则化,因此您应该进行一些搜索。
获取更多数据不太可能正确解决问题,而且通常不值得花时间。如果可以就去做,但这不是解决过拟合问题的灵丹妙药。