我有一组数据需要使用全连接深度神经网络(FC-DNN)进行训练和测试;我应该训练的输入数据大小接近3000,第一隐藏层的节点数最多可达4096,第三层也是4096,最后输出层的节点数应为3000。
我的问题是这个深度神经网络的大小是否合理和可接受?深度神经网络的最大合理大小是多少?
回答:
深度神经网络并没有最大合理的尺寸(无论是每层的节点数还是层数)。在某个特定点之后(这点真的取决于你试图解决的问题),应用多个Dense
层会导致收益递减。事实上,这可能会导致过拟合,这是应该避免的。同时,如果没有残差连接,堆叠多个Dense
层(使网络超级深)也可能导致梯度消失问题。
你应该手动尝试添加几层,只有当你发现你的网络表现不佳(低准确率/其他在你的问题中表示欠拟合的指标)时,才应该增加更多的层。
此外,对于最后一层,我认为你的问题不需要3000个神经元。如果是回归问题,一个带线性激活函数的神经元就足够了。只有当你有3000个不同的类别时,才需要3000个神经元(这里我们仅讨论回归和分类问题)。