【问题标题】:Does customized loss function impact backpropagation in Keras?自定义损失函数会影响 Keras 中的反向传播吗?
【发布时间】:2018-10-08 02:46:12
【问题描述】:

我正在通过使用带有 tensorflow 后端的 Keras 来做一个项目。出于商业原因,我需要高度重视某种错误,所以我实现了一个自定义的损失函数。例如:

error = np.abs(y_true - predict)
if error > low_limit:
    error = error * 10

我发现这个自定义的损失函数确实改变了训练过程中显示的误差值。我想知道的是,这个新的损失函数是否真的可以改变训练期间反向传播的行为?因为我没有看到与模型的重量有太大差异。

【问题讨论】:

    标签: keras backpropagation


    【解决方案1】:

    简短的回答:是的,这个损失函数确实改变了 BP 的行为,但我很惊讶这个损失函数有效......

    反正我觉得下面的损失函数更有意义

    def my_mae( y_true, y_pred, low_bound=1e-3, coef=10. ) :
        raw_mae = keras.losses.mae( y_true, y_pred )
        mask = K.cast( raw_mae <= low_bound, dtype='float32' )
        #new_mae = mask * raw_mae * coef + (1-mask) * raw_mae
        new_mae = (1 + mask * (coef-1)) *raw_mae
        return new_mae
    

    当样本损失太低时会产生额外损失。

    【讨论】:

      猜你喜欢
      • 2018-06-14
      • 1970-01-01
      • 2021-07-27
      • 2022-10-30
      • 1970-01-01
      • 2019-11-14
      • 2020-12-19
      • 2017-12-18
      • 2020-03-27
      相关资源
      最近更新 更多