假设我想用神经网络对sqrt
函数进行建模。但是对于每个输入x
,有两个答案sqrt(x) = y
和sqrt(x) = -y
。 (但实际上,我不知道我有sqrt
函数 - 我只有很多数据 - 所以我不知道先验是否有0,1,2或更多答案{每个输入y
{1}}。)如何才能正确分发x
?
答案 0 :(得分:0)
你应该问自己的问题是,你将如何训练这样一个神经网络:
如果你想给x - > {sqrt(x), - sqrt(x)}作为训练示例i,那么这意味着您通过查看单个示例来了解输出的数量,因此您应该编码有2个输出的事实。
我想要给出的例子有时是x - > sqrt(x)和其他时间x - > -sqrt(x),那么你的神经网络将很难训练,因为每个梯度都可以以完全不同的方式改变权重。它可能会在许多训练样例之后收敛,并且只会输出它看到的最多的y。
更好的方法是在强化学习中使用类似奖励功能的东西。在这种情况下的函数将是f(x)= x ^ 2,并且只是说输出是否正确。这样可以让您的网络对正负输出进行训练。因此,请尝试为您的问题找到奖励功能!