【问题标题】:Applying Boundary Conditions to Keras Output将边界条件应用于 Keras 输出
【发布时间】:2018-10-08 19:19:26
【问题描述】:

我有一个周期值(角度),周期 = pi(即pi+a = a)。在给定一组输入的情况下,我正在 Keras 中训练一个神经网络来输出这个值。网络表现非常好,除了边界0pi(如果真值为0pi,它的预测是随机的)。这可以在this histogram 中看到。有谁知道这是为什么?我可以以某种方式在训练中包含边界,或者告诉它如果它预测pi+a,当真值为a,那么它预测正确并且不需要更新它的权重和偏差?谢谢。

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-24
      • 2019-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-06
      • 1970-01-01
      相关资源
      最近更新 更多