【问题标题】:Neural Networks test cases神经网络测试用例
【发布时间】:2011-02-14 18:48:48
【问题描述】:
  • 在精确神经网络的情况下增加测试用例训练数据的数量是否会导致问题(例如过度拟合)..?

  • 增加测试用例训练数据的数量总是好的吗?这总会带来转化吗?

  • 如果不是,这些情况是什么..举个例子会更好..

谢谢,

【问题讨论】:

  • @Jeff,它看起来不像家庭作业......如果它与学校有关,那么它不会询问“测试用例”。

标签: machine-learning neural-network testcase


【解决方案1】:

过拟合问题是指构建具有许多神经元的网络,因此当您意识到训练过程中网络调整“太好”。换句话说,它就像拟合等级 n ​​的多项式,并且您的数据大小为 m,其中 n 在 m 附近大于 o。 由于您在函数中有这么多等级,因此拟合会更好,但这并不意味着这条曲线是最好的。神经网络发生了同样的事情,神经元和错误之间的关系正在减少,更像是一个微笑。

没有证据表明更多的数据会导致更多的错误,但一些工作使用主成分对数据进行预分析以捕获更好的关系。

【讨论】:

    【解决方案2】:

    当你说“测试用例”时,我假设你在谈论数据实例。

    我们来看几个场景:

    各向异性

    假设您有一个包含 1000 个实例的训练数据集,并且它们彼此非常相似,但您的资格数据集中的实例与你的训练数据。例如,您在尝试估计函数 y = mx + b 时遇到问题。

    假设您的某些数据集为您提供了帮助您估计 m 的样本,而其他数据集帮助您估计了 b。如果你为你的神经网络提供 1000 个样本来帮助你估计 b,但只有 5 个样本可以帮助你估计 m,那么你的神经网络在估计 m 时的表现会很差。您将过度拟合您的神经网络,添加更多样本来帮助您估计 b 将无济于事。

    各向同性

    现在假设您的数据集中有一个 proportional 分布(注意我没有说 equal)数据实例...并且您希望它们成比例,因为估计m 可能需要比估计b 更多的数据实例。现在您的数据相对同质,添加更多样本将为您提供更多机会,帮助您更好地估计函数。使用y = mx + b,从技术上讲,您可以拥有无​​限数量的数据实例(因为线在两个方向上都是无限的),这可能会有所帮助,但存在收益递减点。

    收益递减

    y = mx + b 示例中,您可以拥有无​​限数量的数据实例,但如果您可以用 1,000 个实例估计函数,那么向数据集中再添加 100,000 个数据实例可能没有用。在某些时候添加更多实例不会导致更好的适应度,因此收益递减。

    现在假设您正在尝试估计一个像 XOR 这样的布尔函数:

    A    B   A XOR B
    1    1      0
    1    0      1
    0    1      1
    0    0      0
    

    在这种情况下,您根本无法添加更多数据,并且添加更多数据也没有任何意义......只有四个有效的数据实例,这就是您所拥有的全部。对于此示例,根本没有必要添加更多数据实例。

    结论

    通常,添加更多数据实例将直接取决于您的问题:一些问题可能会从更多数据实例中受益,而其他问题可能会受到影响。您必须分析您的数据集,并且您可能必须对您的数据集做一些事情,以使您的样本更能代表真实世界的数据。你必须研究你试图解决的问题,了解它的领域,了解它拥有的数据样本,并且你必须做出相应的计划……在机器学习/人工智能中没有万能的解决方案。

    【讨论】:

    • 我一直认为布尔运算符仿真是 ANN 使用的一个糟糕例子......一个简单但更实用的例子是一个常见的函数,例如高斯函数或 sigmoid 函数(取决于激活函数,但是最后一个对于 NN 来说非常简单)。
    • 我也不是这个例子的忠实粉丝,但它在教科书中很经典。我几乎为自己举了这个例子而反感。
    猜你喜欢
    • 1970-01-01
    • 2012-09-19
    • 2018-10-30
    • 1970-01-01
    • 2017-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多