Tensorflow-惩罚后续的相同预测

时间:2020-07-29 19:55:42

标签: python tensorflow loss-function

我有一个时间序列数据,它可能是真正随机的(事实未知),但它至少是如此的复杂,以至于我发现我的网络很快就知道,最小化成本函数的最佳方法是收敛到所有输入具有相同的输出。 (我尝试了几种建议的解决方案来解决相同输出的预测问题,但由于没有一个可行的方法,因此我认为这是因为数据是随机随机的。)如果网络随后使用自定义损失来预测相同的值,我想对网络进行惩罚。功能。这是我尝试的方式:

last_pred = tf.Variable(tf.convert_to_tensor(np.zeros(9), dtype='float32'))
@tf.function
def calc_loss(y_actual, y_predicted):
  global last_pred
  if tf.math.reduce_sum(tf.math.squared_difference(last_pred.value(),y_predicted)) < 0.1:
    last_pred = y_predicted
    return 100.0
  last_pred = y_predicted
  
  return tf.reduce_mean(tf.square(y_actual-y_predicted))

但是,这似乎不起作用。在训练期间,我从未见过任何突出的val_loss碰撞。有什么想法可以实现吗?这样做是否值得,还是有更好的解决方案?

顺便说一句,我建立和训练网络的目标是找出数据集是否是真正随机的,或者不是,则对其中的任何模式进行近似。

0 个答案:

没有答案