【问题标题】:Will a neural network always outperform a logistic regression classifier? [closed]神经网络是否总是优于逻辑回归分类器? [关闭]
【发布时间】:2017-10-09 21:55:55
【问题描述】:

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

首先我尝试在其上运行一个朴素贝辛分类器,我发现成功率约为 75%。我尝试了逻辑回归,发现成功率高达 90%。我尝试将正则化应用于我的分类器,这是当我将 Lambda(正则化参数)改变超过 30 个值时发现的曲线。 。红色图是训练集,蓝色图是验证集。如您所见,两条曲线的误差幅度都在 Lambda 上增加。我认为这表明我的假设一开始就欠拟合,并且随着 lambda 的增加,欠拟合变得更糟。这是正确的解释方式吗?

无论哪种方式,为了解决欠拟合问题,尝试更复杂的模型是有意义的,所以我转向了神经网络。我最初的问题有 31 个特征来表征它,我选择了一个具有两个隐藏层的网络,每个隐藏层有 10 个节点。

经过训练,我发现它只正确分类了 65% 的训练数据。这比 Naive-Baysien 和逻辑回归更糟糕。这种情况多久发生一次?我的神经网络实现是否更有可能出现问题?

值得注意的是,神经网络似乎在 25-30 次迭代后就收敛了。我的逻辑回归需要 300 次迭代才能收敛。我确实考虑过神经网络可能陷入局部最小值的可能性,但根据我正在关注的 Andrew NG 的机器学习优秀课程,这不太可能。

根据课程的解释,一般而言,神经网络比逻辑回归提供更好的预测,但您可能会遇到过度拟合的问题。但是,我认为这不是问题所在,因为 65% 的成功率在训练集上。

我是否需要检查我的神经网络实现,或者这是可能发生的事情?

【问题讨论】:

    标签: python machine-learning neural-network logistic-regression


    【解决方案1】:

    首先,请尝试更大的隐藏层,例如每个 200 个节点。然后更新您的结果,以便我们查看关键问题。

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

    【讨论】:

    • 感谢您的建议。我先用 100 个节点重新训练网络,然后用 200 个节点重新训练。性能肯定有所提高,因为现在它能够以大约 92% 的准确度对我的数据进行分类。以下是我注意到的几点。首先,该性能仍可与显示几乎完全相同准确性的逻辑回归模型相媲美。其次,当我从 100 个节点增加到 200 个节点时,性能提升并不多。它只上涨了百分之二。有什么想法吗?
    • @ANANDAPADHMANABHANS 也许您不相信,但您仍然可以尝试更大的层,例如每个 1000 个节点甚至每个 2000 个节点。如果它不起作用,则问题不在于您的网络结构,而在于其他问题。调整学习率这样的技巧有很多,如果你用大的学习率训练,你可能会错过高维空间中的优化点。另一个简单的技巧是你应该标准化你的输入,这意味着你应该将你的数据缩放到 [-1, 1]。之后,如果您还有其他问题,只需编辑您的问题。
    • 谢谢你,我已经通过规范化完成了这一切。接下来我正在尝试更大的节点大小。
    • @ANANDAPADHMANABHANS 不要忘记调整学习率,这很重要。
    • 内核初始化也有影响。尝试 Glorot 初始化。
    猜你喜欢
    • 2019-07-13
    • 2011-07-24
    • 2018-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-27
    • 1970-01-01
    • 2023-03-21
    相关资源
    最近更新 更多