神经网络模型是否总是比逻辑回归分类器效果更好?

4

我刚开始接触机器学习并正在探索不同的算法。我从互联网上拿了一个二元分类问题,并尝试应用各种机器学习技术。

首先,我尝试在其上运行朴素贝叶斯分类器,发现成功率约为75%。我尝试了逻辑回归,发现成功率惊人达90%。我尝试将正则化应用于我的分类器,下面是当我变换Lambda(正则化参数)超过30个值时所得到的曲线。plot红色曲线是训练集,蓝色曲线是验证集。您可以看到,两条曲线的误差边界都随着Lambda的增加而增加。我认为这表明我的假设一开始就欠拟合,而欠拟合随着Lambda的增加而恶化。这种解释方法正确吗?

无论如何,为了解决欠拟合问题,尝试使用更复杂的模型似乎是有道理的,因此我转向了神经网络。我最初的问题有31个特征来描述它,我选择了一个具有两个隐藏层和每层10个节点的网络。

训练后,我发现它仅正确分类了65%的训练数据。这比朴素贝叶斯分类器和逻辑回归还要差。这种情况有多常见?我的神经网络实现是否有问题?

有趣的是,神经网络似乎只在25-30次迭代后就收敛了。我的逻辑回归需要300次迭代才能收敛。我考虑到神经网络可能会陷入局部最小值,但根据我正在学习的 Andrew NG 的机器学习课程,这种情况相当不可能。

从课程上所解释的来看,神经网络通常会给出比逻辑回归更好的预测结果,但您可能会遇到过拟合的问题。然而,我认为这里不是问题,因为65%的成功率是在训练集上获得的。

我需要重新审查一下我的神经网络实现,还是这种情况可能会发生?

1个回答

3

首先,尝试使用更大的隐藏层,例如每层200个节点。然后更新您的结果,以便我们可以看到什么是关键问题。

当您使用神经网络对数据进行分类时,它实际上适合于执行此任务的向量空间。在这种情况下,假设您的数据具有31个维度,则至少32维空间可以完美地对您的数据进行分类,如果没有样本既在正类又在负类。因此,如果在训练集中表现不佳,请将神经网络扩大,直到在训练集上获得100%的结果,然后您可以开始考虑泛化问题。


谢谢您的建议。我首先使用了100个节点重新训练了网络,然后又使用了200个节点。性能明显提高了,现在它能够以约92%的准确率对我的数据进行分类。以下是我注意到的一些要点。首先,这种性能仍然可以与逻辑回归模型相媲美,后者显示几乎完全相同的准确性。其次,当我从100个节点增加到200个节点时,性能提升并不多,只增加了2%。有什么想法吗? - Ananda
@ANANDAPADHMANABHANS 也许你不相信,但你仍然可以尝试更大的层,比如每个层有1000个节点或每个层有2000个节点。如果这样仍然不起作用,那问题并不是你的网络结构,而是其他原因。有很多技巧,比如调整学习率,如果你使用较大的学习率进行训练,可能会错过高维空间中的最优点。另一个简单的技巧是对输入进行归一化处理,这意味着你应将数据缩放到[-1, 1]的范围内。之后,如果你仍然遇到其他问题,请编辑你的问题。 - Sraw
谢谢,我已经使用规范化完成了所有这些。接下来我会尝试更大的节点大小。 - Ananda
@ANANDAPADHMANABHANS 别忘了调整你的学习率,这很重要。 - Sraw
内核初始化也有影响。尝试使用Glorot初始化。 - keramat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接