我有一个有结构的神经网络:7个输入神经元,3个输出神经元。
在互联网上,当隐藏层上的神经元数量是第一层神经元数的1.5 ~2倍时,效果最好。也就是说,在我的例子中,它将是14。我正在使用一种再静默传播训练方法来教网络在C#。
训练周期约为100 K。我真的得到了更好的结果-我有更多的隐藏神经元!不仅仅是数量的2倍,而是输入层数量的6倍。换句话说,目前共有44个隐神经元被定义!一切都在好转。
我开始觉得这里有什么不对劲..。隐神经元计数将如何影响网络的有效性?
我可以继续增加数量..。50.60..70我刚开始的时候只有11兆位,这样的训练结果很糟糕。请给出一个解释为什么更高的隐藏神经元计数提供十倍更好的结果,以及它如何影响网络对实际数据的有效性,而不是仅仅是训练集。(2k纪录)
发布于 2015-04-15 23:52:11
隐藏神经元的数量称为超参数.几乎所有的机器学习模型都有超参数.对于支持向量机,它是伽马和C等。基本上,这些超参数将影响您的模型在学习数据集方面的成功程度。这几乎总是取决于尝试和错误。对于神经网络,您应该坚持单一的隐藏层(见通用逼近定理)。
一般来说,隐藏的神经元越多,训练就越好。然而,这可能会鼓励过度适应。确保您正在使用培训集之外的数据测试网络。理想情况下,您希望只需要足够多的隐藏神经元,从而使神经网络达到这样的程度,即添加更多的内容并不能提高您在验证数据方面的性能(您没有使用这些数据来训练网络)。
发布于 2015-04-24 14:40:58
再澄清一次。你是否把你的数据分成两部分:训练和检查。例如,如果您有1000个示例,则可以用于培训800,并检查其余200个示例的结果。通常情况下,如果训练集的性能非常好,那么测试集的质量就会有一定程度的提高,然后下降。你需要在训练和检查的好结果之间找到平衡。
https://stackoverflow.com/questions/29565180
复制相似问题