据我所知,为了通过梯度下降更新模型参数,算法需要在某一点计算误差函数E相对于输出y的导数:dE / dy。不过,我已经看到,如果你想在Keras中使用自定义丢失函数,你只需要定义E,你就不需要定义它的衍生物了。我错过了什么?
每个丢失的函数都有不同的导数,例如:
如果损失函数是均方误差:dE / dy = 2(y_true - y)
如果损失函数是交叉熵:dE / dy = y_true / y
同样,模型怎么可能不问我衍生物是什么?模型如何根据参数从E?
的值计算损失函数的梯度由于
答案 0 :(得分:1)
据我所知,只要您在Error函数中使用的每个运算符都已经预定义了渐变。底层框架将设法计算损失函数的梯度。