用于嘈杂的不可微损失函数的自定义 Tensorflow 优化器

Posted

技术标签:

【中文标题】用于嘈杂的不可微损失函数的自定义 Tensorflow 优化器【英文标题】:Custom Tensorflow optimizer for noisy non-differentiable loss function 【发布时间】:2018-07-11 02:49:09 【问题描述】:

我已经使用低级 tensorflow API 构建了一个模型,该模型只有几个我想要优化的变量(大约 10 个)。因此,我想实现一个自定义损失函数来产生噪声损失值(有点像基于模拟的优化方法)。

通常我会使用 SPSA 优化器等无衍生优化器。

有没有办法使用低级 tensorflow API 实现不可微分的损失函数和像 SPSA 这样的优化器?

PS:有人可能会问,为什么要为此使用 tensorflow?这是因为我想用tensorflow方便保存模型,用tensorboard方便全面的可视化。我还希望能够在标准化框架中切换和比较不同的模型。

【问题讨论】:

【参考方案1】:

我认为 SPSA 也适用于不可微函数。 对于 SPSA 实施:https://github.com/fraunhofer-iais/tensorflow_spsa

【讨论】:

以上是关于用于嘈杂的不可微损失函数的自定义 Tensorflow 优化器的主要内容,如果未能解决你的问题,请参考以下文章

Keras 中的自定义损失函数(IoU 损失函数)和梯度误差?

Keras 上的自定义损失函数

我的自定义损失函数是不是正确? (火炬)

Keras 中基于输入数据的自定义损失函数

Keras 中具有样本权重的自定义损失函数

Tensorflow:不提供梯度的自定义损失函数