我有一个周期值为pi
(即pi+a
= a
)的周期值(角度)。给定一组输入,我正在Keras中训练神经网络以输出此值。该网络的性能非常好,除了在边界0
和pi
之外(如果真值是0
或pi
,则其预测是随机的)。可以在this histogram中看到。有人知道为什么吗?我可以以某种方式在训练中包括边界吗?或者说如果它预测pi+a
,则真值是a
时,它就可以正确预测并且不需要更新其权重和偏差?谢谢。
答案 0 :(得分:0)
在数据中出现不连续行为的任务上,神经网络的性能不佳。特别是在像您这样的角度数据上。为了规避您的问题,您可以先对目标值进行三角变换。实际上只不过是将内核应用于数据。假设您的定期输出数据为y=0...π
。然后,您的新目标是双值向量y_hat=[sin(2y), cos(2y)]
。让您的网络针对y_hat
进行训练,同时在推理过程中执行反向转换y=.5 atan2(y_hat)
以获取原始值。