用深度网络解决分类任务

数据挖掘 机器学习 神经网络 分类 深度学习
2022-02-15 08:00:41

我目前正在研究一个分类问题:

我正在使用的数据集(2000 个特征,25 个标签)可通过使用 2 层多层感知器(1 个输入 + 1 个输出层 = 1 个权重矩阵)进行分离,并达到很高的精度。

注意:我使用的数据是频谱图。

现在我很好奇的是:我可以使用深度网络(超过 2 层)来提高准确率吗?

我的想法:增加网络结构将使网络以更复杂的方式解释数据,因此甚至应该能够正确分类数据集的小“outbrakers”和“noisy elements”。

1个回答

如果您使用两个隐藏层,则可能意味着您的数据不是线性可分的。如果您只在单个隐藏层中使用一个单元,那么您可以声称您的数据是线性可分的,在您的情况下,您可能会说存在一个线性分离数据的超平面。

作为你的问题的答案,是的。可以通过在当前架构中添加层或添加额外单元来减少错误量,但有一些点需要考虑。

  • 每当您添加更多层时,都会出现梯度消失和爆炸,这可能会导致您的网络无法学习,或者学习可能发生得如此缓慢。为避免,您应该使用ReLU激活以避免梯度饱和。此外,您必须使用HeXavier初始化技术来避免随机权重不好。还有其他解决此问题的技术称为跳过连接,但至少我从未见过在MLPs 中使用它们,尽管它们确实有助于解决上述问题。
  • 协变量偏移是学习更深层的问题。作为一种解决方案,您必须使用批量标准化以某种方式标准化更深层的激活。
  • 过度拟合是在没有提供足够训练数据的大型架构中发生的问题。您应该使用正则化技术。关于这方面的论文有很多,但在您使用的情况下,MLP我强烈建议您使用由所谓的深度学习之父发明的 Dropout 技术。