将边界条件应用于Keras输出

时间:2018-10-08 19:19:27

标签: python tensorflow machine-learning neural-network keras

我有一个周期值为pi(即pi+a = a)的周期值(角度)。给定一组输入,我正在Keras中训练神经网络以输出此值。该网络的性能非常好,除了在边界0pi之外(如果真值是0pi,则其预测是随机的)。可以在this histogram中看到。有人知道为什么吗?我可以以某种方式在训练中包括边界吗?或者说如果它预测pi+a,则真值是a时,它就可以正确预测并且不需要更新其权重和偏差?谢谢。

1 个答案:

答案 0 :(得分:0)

在数据中出现不连续行为的任务上,神经网络的性能不佳。特别是在像您这样的角度数据上。为了规避您的问题,您可以先对目标值进行三角变换。实际上只不过是将内核应用于数据。假设您的定期输出数据为y=0...π。然后,您的新目标是双值向量y_hat=[sin(2y), cos(2y)]。让您的网络针对y_hat进行训练,同时在推理过程中执行反向转换y=.5 atan2(y_hat)以获取原始值。