[英]Custom Loss Function for Reward using Keras in Python
我有一個模型,我想構建一個自定義損失函數,我有我的狀態,這是我的 X 值,然后我有我的動作,這是我正在預測的 7 個單熱分類值,這是我的 Y 值。
但是我不確定如何將獎勵傳遞給損失函數。 我也不確定實際的功能應該是什么,但我可以稍后對此進行試驗。
x = input_data[:, :-2] # States
y = input_data[:, -2] # Actions
r = input_data[:, -1] # Rewards
def custom_loss(y_pred, y_true):
loss = K.square(y_pred - y_true) * r
return loss
model.compile(loss=custom_loss, optimizer='adam', metrics=['accuracy'])
model.fit(x, y)
您可以編寫一個返回另一個函數的函數。 您將獎勵作為參數傳遞給 top 函數:
def penalized_loss(reward):
def custom_loss(y_true, y_pred):
return K.mean(K.square(y_pred - y_true) - K.square(y_true - reward), axis=-1)
return custom_loss
.
.
.
model.compile(loss=[penalized_loss(reward=r)], optimizer='adam', metrics=['accuracy'])
我還提供了一個非常愚蠢的工作示例的要點: https : //gist.github.com/kolygri/c222adba4dff710c6c53bf83c0ed5d21
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.