你能在前馈神经网络中拥有过于统一的测试数据吗?

数据挖掘 机器学习 深度学习 神经网络 数据集 执行
2022-02-14 02:57:03

我一直在尝试实现自己的前馈神经网络。为了尝试一下,我决定举一个简单的例子。3 个输入,3 个输出。当您发送(1,0,0)预期的输出是(0,1,0). 当您发送(0,1,0)预期的输出是(0,0,1). 依此类推,你会看到模式。

当使用大小为 1 的测试数据时,我得到了完美的结果。在输入(1,0,0)i get的 100 次培训课程后,(0.0192068, 0.980584, 0.0187576)我训练得越多,结果就越好。

但是,当我尝试使用 2 组训练数据(1,0,0)(0,1,0)时,在训练后尝试两种输入时我得到了相同的结果:(0.0189567, 0.499995, 0.500002)这并不是我真正想要的。我训练得越多,结果就越均匀。

当我尝试使用 100 个不同的训练示例(使用所有 7 种组合的均等分布:)时(1, 0 ,0), (0, 1 ,0), (0, 0 ,1), (1, 1 ,0), (0, 1 ,1), (1, 0 ,1), (1, 1 ,1),结果变得越来越一致:(0.420004, 0.429997, 0.430002)

所以我的问题是:这个结果是否是对前馈神经网络的普遍弱点的回应,换句话说,它不能处理过于统一的训练数据?还是您认为这可能是因为某个地方出现了数学错误?恐怕我对前馈神经网络的概念还不够新,我无法区分两者。

Ps.:对于那些对我正在使用什么代码感到好奇的人,我正在关注以下代码:

https://github.com/mnielsen/neural-networks-and-deep-learning/blob/master/src/network2.py

我正在从该代码示例移植到 C++。我发现移植代码是一种很好的学习方式,因为你真的必须深入挖掘每一段代码在做什么才能清楚地了解如何移植它。我也恰好是那些更喜欢 C++ 而不是 Python DS 的怪人之一。

0个回答
没有发现任何回复~