有状态损失函数和在线回归

数据挖掘 神经网络 张量流 损失函数
2022-02-22 00:24:27

在 tensorflow + keras 中工作我正在尝试定义一个自定义损失函数。注意我对损失的值而不是预测的实际值更感兴趣(这将用于异常检测)。

我的网络输出未来 n 步的预测。

在时间 t,我收到一个输入,即当前观察 (y_t),我有过去 x 个时间步长的历史记录。我希望将 y_t 的值与 t-1、...tn 中的每个预测的 y_t 值进行比较。

为此,我设想了一个长度从 1 到 n 的“三角形”数组。我将预测的值添加到它们各自数组的末尾,并从每个数组中弹出第一个值以生成我的 y_pred 张量。然后将 y_t 复制成等长 (y_true) 的张量,以用于计算时间 t 的损失(可能是 MSE 等)。

我遇到的困难是如何在批次之间保留这些预测数组的状态。

我们的想法是将此以在线方式使用,其中在每个时间步长(批量大小 1)对网络进行小幅更新,而无需在接收观察和报告模型的准确度之间存在显着延迟(如需要保存 n 步的预测并在收到所有信息后进行计算)。

1个回答

您可以将您的问题描述为强化学习 (RL)。强化学习 (RL) 是在不确定性下的顺序决策。

“损失的价值”可以被定义为最大化奖励。输出是最大化前面 n 步奖励的序列。“三角形”数组是历史。

强化学习 (RL) 能够使用当前最佳参数集进行预测,通常称为“利用”