更多输入改善神经网络?

时间:2016-01-12 21:35:48

标签: optimization machine-learning neural-network regression

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

请检查此链接:Neural Network for regression

随着神经网络的输入数量(我的情况为s-inputs)的增加,精度会增加吗?

1 个答案:

答案 0 :(得分:2)

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

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

首先,您需要拥有这两个数据集。如果您只有训练集,则需要大约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

你会得到这样的东西:

Learning curve for a normal case

如果验证错误减少,网络的精度会变得更好。从图像中可以看出,情况就是如此。在这里增加训练集肯定有帮助。

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

  • 您的网络遭受高偏差(欠拟合):您的正则化参数太大,没有足够的多项式功能(在神经网络的情况下,您可能只有太少的单位隐藏层)

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

高偏差情况的学习曲线看起来像这样(我将隐藏层中的单位数量减少为1):

learning curve for high bias

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

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

learning curve for high variance

在这里,您可以通过增加网络的精确度来增加新的培训示例!