我正在训练一个神经网络,并从随机权重开始。训练后,权重发生变化,但神经网络的准确性与起始权重相同。无论如何改变网络的体系结构。隐藏层中的节点数量,迭代次数和特征数量(使用PCA降维)它具有与开始时相同的精度。这可能是因为关于功能数量的例子数量很少? (我有675个例子和9000个特征)。或者这是因为别的吗?此外,我尝试了使用logistic回归的相同数据集,它能够达到64%的准确率,而不是比我在神经网络训练之前和之后得到的50%好得多。神经网络权重和成本变化,但不是它的准确性
1
A
回答
3
一般来说,你的训练样例应该超过你的特征数量级,而不是相反。除非您的PCA将事情降低很多,否则这将会伤害您。
你确实记得规范你的功能,对吧?这通常在PCA中处理,但有时您必须首先进行标准化,具体取决于您使用的软件。
除此之外,你没有提到改变学习率,使用自适应学习率,或使用动量项,所以我会建议你看看这些。此外,还有更多的权重更新算法,而不仅仅是普通的老式后备程序。 Levenberg-Marquardt Algorithm可能值得一试。假设你不是自己写的,你的实现可能已经有了。
早期停止的某种形式也可能有用。
您没有提及您是否尝试分类或回归。如果您正在进行分类,请确保输出节点上的激活功能与您正在使用的类标签类型相匹配。 Logsig的范围是0到1,而Tansig的范围是-1到1.如果您正在进行回归,请确保输出具有线性激活,或者至少可能的输出范围与您的训练示例相匹配。
0
如果您正在进行分类,问题可能出现在您的标签中。
我在用Octave训练神经网络时遇到了类似的问题。准确度约为50%。我有两个标签0和1.我的准确度很低,因为八度音阶从1开始索引而不是0.您可能想要查看标签。
0
首先,分类的准确性取决于数据集。所有人工智能方法都试图在矢量空间中分离数据。但是,数据可能无法分开,有些情况下64%可能非常接近最佳结果。你使用的是什么样的数据集(它是众所周知的基准之一,还是你试图解决的某个特定问题?)
其次,权重变化并不一定意味着网络是正在训练。训练结束后,您不应检查权重是否改变,但如果总平方误差减小。如果它没有显着减少,您的网络可能根本没有受过培训。在你的情况下,如果训练后精度仍然保持50%(我想你说的是两级问题),但很可能这种方法根本不起作用。您应该首先尝试一个更简单的数据集,以检查它是否有效。
此外:
- 9000的功能太多,如果你想培养一个多层感知。您可能需要SVM来解决这样一个复杂的问题。
- 实例的数量,最有可能的,太小了这样的问题(但是,如果两个类之间的模式是太远的问题空间)
相关问题
- 1. 神经网络准确性优化
- 2. 经常性神经网络的权重
- 3. 神经网络的准确性
- 4. Rapidminer神经网络准确性
- 5. OpenCV神经网络权重
- 6. 如何解决神经网络的准确性成为不变的问题?
- 7. 如何测试经常性神经网络的准确性
- 8. 神经网络中权重的意义和规范化函数
- 9. 多层神经网络中的权重
- 10. MNIST神经网络:准确度很低
- 11. Matlab的神经网络权
- 12. 人工神经网络标准化
- 13. 神经网络反向传播不能正确计算权重
- 14. 神经网络加权
- 15. 更多的神经网络结果的准确性与MATLAB
- 16. 如何不同的是SVM和神经网络的成本函数优化
- 17. 神经网络(CNN)的解释结果/准确性
- 18. 卷积神经网络的验证准确性
- 19. 真的很差准确性与神经网络
- 20. 在Keras的零准确性训练神经网络
- 21. 使用遗传算法的神经网络权重优化
- 22. 神经网络性能优化
- 23. 准确性降低卷积神经网络
- 24. 访问神经网络权和神经元激活
- 25. 通过神经网络的权重和偏差推导方程
- 26. 关于和神经网络权重矢量的一般查询
- 27. 卷积神经网络中权重和输出的值
- 28. 建立一个已知权重和偏差的神经网络
- 29. 构建神经网络的标准
- 30. 非标准输入的神经网络
润通信息存在的。 PCA似乎降低了一些例子的特征数量。这是分类。我在matlab中使用fmincg,我相信它具有自适应学习速率。我确实规范了它。 – cubearth