【问题标题】:MNIST training example in AIFH Vol 3AIFH Vol 3 中的 MNIST 训练示例
【发布时间】:2016-02-23 11:15:36
【问题描述】:

我有一个关于这个神经网络结构的问题:

var network = new BasicNetwork();
network.AddLayer(new BasicLayer(null, true, inputCount));
network.AddLayer(new BasicLayer(new ActivationReLU(), true, 100));
network.AddLayer(new BasicLayer(new ActivationReLU(), true, 50));
network.AddLayer(new BasicLayer(new ActivationReLU(), true, 25));
network.AddLayer(new BasicLayer(new ActivationSoftMax(), false, outputCount));
network.FinalizeStructure();
network.Reset();

根据书中的文字,一个隐藏层的网络足以解决大部分问题,两个隐藏层的网络也称为深度神经网络,而具有三个隐藏层的网络很少见,现在是什么让开发者决定使用 3 个隐藏层,每层的神经元数量是如何决定的?

【问题讨论】:

    标签: c# neural-network encog


    【解决方案1】:

    How to choose the number of hidden layers and nodes in a feedforward neural network?”的答案表明通常不可能训练三个或更多隐藏层网络,并且还参考了 Jeff Heaton(ENCOG 的创建者)的一本书,其中他指出“目前有理论上没有理由使用具有两个以上隐藏层的神经网络”。

    换句话说,开发者不应该决定使用 3 个隐藏层。

    上面引用的Stack Exchange article on ENCOG也给出了一些有趣的公式来计算每一层的神经元个数。

    【讨论】: