AIFH 第 3 卷中的 MNIST 训练示例

本文关键字:MNIST AIFH | 更新日期: 2023-09-27 18:36:00

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

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个隐藏层的网络很少见,现在是什么让开发人员决定使用3个隐藏层以及如何决定每层的神经元数量?

AIFH 第 3 卷中的 MNIST 训练示例

"如何选择前馈神经网络中隐藏层和节点的数量?"的答案表明,三个或更多的隐藏层网络通常无法训练,并且还引用了Jeff Heaton(ENCOG的创建者)的一本书,其中他说"目前没有理论上的理由使用具有两个以上隐藏层的神经网络"。

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

上面引用的关于ENCOG的堆栈交换文章也给出了一些有趣的公式来计算每层中的神经元数量。