用随机生成的满足某些约束的假数据训练神经网络有什么效果?

人工智能 神经网络 参考请求 数据增强 训练数据集
2021-11-06 05:29:55

我有一个具有 2 个输入和一个输出的神经网络,如下所示:

input    | output
____________________
 a    | b   |  c       
 5.15 |3.17 | 0.0607
 4.61 |2.91 | 0.1551

等等。

我有 75 个样本,其中 50 个用于训练,25 个用于测试。

但是,我觉得训练样本还不够。因为我不能提供更多的真实样本(由于时间限制),我想用假数据训练网络:

例如,我知道a参数的范围是从 3 到 14,并且b参数约为参数的 65% a我也知道这c是一个介于 0 和 1 之间的数字,并且当 a 和 b 增加时它会增加。

所以,我想做的是使用上述限制(大约 20 个样本)生成一些数据。例如,假设a = 13,b = 8c= 0.95, 并在使用真实样本训练网络之前使用这些样本训练网络。

有没有人研究过这样做对神经网络的影响?是否有可能知道网络上的效果是好是坏?如果我想这样做,有什么建议/指南吗?

2个回答

这是不可取的。如果你用随机数据训练你的模型,你的模型并没有学到任何有用的东西,因为没有从这些例子中获得信息。更糟糕的是,它可能(并且可能是)试图从你不正确的例子中概括出来,这将减少你真实例子的影响。本质上,你只是在用噪音抑制你的训练集。

不过,您正在朝着正确的方向前进。如果你的问题有任何复杂性,75 个例子是不够的。除非您知道输入和输出之间的某种相关性,否则您a不想b生成c数据(即使您确实知道某些相关性,也不总是建议生成数据)。如果无法获得更多数据,您可能需要考虑统计模型,而不是神经网络。

如果您将假样本添加到训练集中,您的神经网络会学习您刚刚创建的新数据集,您的假样本是估计值,因此您会在训练集中添加噪声。

您可以使用 Leave one out 交叉验证技术来评估您的模型。