我正在尝试MLP在包含 30000 个样本和 23 个特征的数据集上构建分类器模型。在选择隐藏层数和每个隐藏层中的节点数时,我需要考虑哪些标准?
神经网络隐藏层选择
数据挖掘
机器学习
Python
神经网络
深度学习
毫升
2022-02-28 12:10:09
2个回答
- 首先尝试一个简单的模型:输入层和输出层维度由您的数据/您的问题定义定义。然后训练一个没有任何隐藏层的模型。
- 看看它的表现如何。够好吗?如果是,你就完成了。如果没有,继续
- 添加合理大小的隐藏层或调整隐藏层大小。转到步骤 (2)。
“合理的”尺寸部分可能很困难。作为指导:如果您只有一个节点,对于 1000 类问题来说,它肯定太小了。对于 2 - 3 级的问题,它可能足够大。我通常建议将每层特征的大小保持大致不变,或者最多将其减少 1/10 或三倍。但这只是直觉。
我偏爱简单模型的原因是奥卡姆剃刀,事实上它们通常更快、更容易分析和手动改进。
有关拓扑学习和如何设计神经网络的规则的更多信息,请参阅:
托马斯,马丁。“卷积神经网络架构的分析与优化”。arXiv 预印本 arXiv:1707.09725 (2017)。
尤其是第 2.5 章和第 3 章。
由于您的输入具有许多特征,因此尚不清楚您的数据集是否可以使用超平面作为假设进行线性可分,因为您无法可视化数据并查看结果。首先,尝试添加一个具有线性计算和非线性激活的简单神经元。单个神经元的成本函数是凸的,它显示您的数据在该特征空间中是否线性可分。如果错误率很高,则必须添加神经元。为了弄清楚你应该如何添加额外的神经元和层,看看这里可能对你有帮助。
其它你可能感兴趣的问题