为什么Keras不需要自定义损失函数的梯度?

时间:2018-01-12 03:54:53

标签: python python-3.x tensorflow deep-learning keras

据我所知,为了通过梯度下降更新模型参数,算法需要在某一点计算误差函数E相对于输出y的导数:dE / dy。不过,我已经看到,如果你想在Keras中使用自定义丢失函数,你只需要定义E,你就不需要定义它的衍生物了。我错过了什么?

每个丢失的函数都有不同的导数,例如:

如果损失函数是均方误差:dE / dy = 2(y_true - y)

如果损失函数是交叉熵:dE / dy = y_true / y

同样,模型怎么可能不问我衍生物是什么?模型如何根据参数从E?

的值计算损失函数的梯度

由于

1 个答案:

答案 0 :(得分:1)

据我所知,只要您在Error函数中使用的每个运算符都已经预定义了渐变。底层框架将设法计算损失函数的梯度。