我试图了解 MAE 如何在使用反向传播的神经网络中作为损失函数工作。我知道它可以直接在某些 API 中使用——例如Keras——但是我看到tensorflow 不允许它(尽管你可以手动声明它tf.abs(tf.minus(y_pred,y_true))
)。
我的问题是:通常如何计算 MAE 的导数(我只发现它使用了一个明显复杂的近似值),特别是它是如何在 tensorflow(手动声明时)和 keras 中计算的?
我试图了解 MAE 如何在使用反向传播的神经网络中作为损失函数工作。我知道它可以直接在某些 API 中使用——例如Keras——但是我看到tensorflow 不允许它(尽管你可以手动声明它tf.abs(tf.minus(y_pred,y_true))
)。
我的问题是:通常如何计算 MAE 的导数(我只发现它使用了一个明显复杂的近似值),特别是它是如何在 tensorflow(手动声明时)和 keras 中计算的?
至于 Tensorflow 的 Keras,这是一个很好的答案: https ://stackoverflow.com/a/35344963
如果我们深入研究源代码,我们会看到它使用了 math_ops.sign ,它返回 0 为 0 https://github.com/tensorflow/tensorflow/blob/c91e944d626b517781af6a63c0aee302ab2457e3/tensorflow/python/ops/math_grad.py# L577