【问题标题】:Custom loss function with Keras to penalise more negative prediction使用 Keras 自定义损失函数来惩罚更多的负面预测
【发布时间】:2018-07-23 14:20:02
【问题描述】:

我了解 mse 将以相同的方式对待实际 - 预测和预测 - 实际。我想编写一个自定义损失函数,这样 预测>实际的惩罚大于实际>预测 假设我将因预测>实际而受到 2 倍的惩罚。我将如何实现这样的功能

import numpy as np

from keras.models import Model
from keras.layers import Input

import keras.backend as K
from keras.engine.topology import Layer
from keras.layers.core import  Dense

from keras import objectives

def create_model():
    # define the size
    input_size = 6
    hidden_size = 15;
    # definte the model
    model = Sequential()
    model.add(Dense(input_size, input_dim=input_size, kernel_initializer='normal', activation='relu'))
    model.add(Dense(hidden_size, kernel_initializer='normal', activation='relu'))
    model.add(Dense(1, kernel_initializer='normal'))

    # mse is used as loss for the optimiser to converge quickly
    # mae is something you can quantify the manitude
    model.compile(optimizer='adam', loss='mse', metrics=['mae'])

    return model

early_stop = EarlyStopping(monitor='val_loss', patience=20)
history = model.fit(train_features, train_label, epochs=200, validation_split=0.2, verbose=0, shuffle=True)
predvalue = model.predict(test_features).flatten() * 100

如何实现这样的损失函数?

【问题讨论】:

    标签: function keras loss


    【解决方案1】:
    def customLoss(true,pred):
        diff = pred - true
    
        greater = K.greater(diff,0)
        greater = K.cast(greater, K.floatx()) #0 for lower, 1 for greater
        greater = greater + 1                 #1 for lower, 2 for greater
    
        #use some kind of loss here, such as mse or mae, or pick one from keras
        #using mse:
        return K.mean(greater*K.square(diff))
    
    model.compile(optimizer = 'adam', loss = customLoss)
    

    【讨论】:

    • 非常感谢您的帮助
    • @HairyAss,欢迎来到 Stack Overflow :) -- 我很高兴它有帮助。当您认为某个答案令人满意时,请将其标记为已回答:)
    猜你喜欢
    • 2021-01-14
    • 2020-09-01
    • 2021-12-16
    • 2019-03-12
    • 2020-11-14
    • 2018-12-28
    • 2019-12-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多