【问题标题】:Do more inputs improve neural networks?更多的输入会改善神经网络吗?
【发布时间】:2016-01-14 21:33:03
【问题描述】:

我正在使用神经网络进行回归。

请查看此链接:Neural Network for regression

随着神经网络的输入数量(在我的例子中为s-inputs)增加,精度也会增加吗?

【问题讨论】:

  • 可能,但不一定。
  • @cel 请检查上面的链接并分享您的想法
  • cel 是对的——对于如此广泛的问题没有答案。它可能有帮助,但也可能损害进程。机器学习是一个复杂的领域,很少有人回答“X 会改善结果”这样的问题。

标签: optimization machine-learning neural-network regression


【解决方案1】:

正如在 cmets 中所说,更大的训练集并不总能提高网络的精度。为了更具体地回答您的问题,您需要绘制和分析网络的学习曲线。

学习曲线描述了网络预测误差(对于训练集和验证集)与训练集大小的相关性。

首先你需要有这两个数据集。如果您只有训练集,则取大约 30% 的记录进行验证(在拆分之前对训练集进行洗牌)。

假设训练集有m 记录。执行以下操作:

for i=1 to m
    train your network using only i training examples
    predict output of those training exaples, save the error
    predict output using THE WHOLE VALIDATION SET, save the error
end

plot the errors as a function of i

你会得到这样的东西:

如果验证错误减少,您的网络精度会提高。从图片中可以看出,情况就是这样。在这里增加训练集肯定会有所帮助。

使用这种方法有两种极端情况:

  • 您的网络遭受 高偏差(欠拟合):您的正则化参数太大,没有足够的多项式特征(如果是神经网络,您可能在隐藏层)

  • 您的网络遭受 高方差(过拟合):根本没有正则化或正则化参数太小,多项式特征太多(您的神经网络可能有太多很多层,很多单元)

高偏差情况的学习曲线如下所示(我将隐藏层中的单元数降至 1):

在这种情况下,您无法通过添加更多训练示例来提高网络的精度。

高方差情况的学习曲线是这样的(我将隐藏层中的单元数增加到 60 个并设置了一个非常小的正则化参数):

在这里,您有一个很好的机会来提高网络的精度,并添加新的训练示例!

【讨论】:

    猜你喜欢
    • 2018-06-15
    • 1970-01-01
    • 1970-01-01
    • 2012-10-05
    • 2017-03-16
    • 1970-01-01
    • 2021-01-03
    • 1970-01-01
    相关资源
    最近更新 更多