4

我想解決語義分割問題。根據真實的約束條件,假陽性標準和假陰性標準是不同的。例如,如果像素被錯誤糾正,因爲前景不太理想,而像素被錯誤糾正爲背景。如何處理這種設定損失函數的約束條件。損失函數設計,以納入不同的重量爲假陽性和假陰性

+0

目前,我只是使用binary_corrsentropy作爲損失函數,我很好奇是否有可能爲不同的類標籤添加權重。 – user297850

回答

2

您可以使用的class_weight參數來加權您的類,並因此根據類別對錯誤分類進行不同的處理。

class_weight:可選字典映射類指數(整數)爲權重(浮點數)以適用於模型在訓練期間來自此類的樣本的損失。這可能有助於告訴模型「更關注」來自代表性不足的班級的樣本。

例如:

out = Dense(2, activation='softmax') 
model = Model(input=..., output=out) 
model.fit(X, Y, class_weight={0: 1, 1: 0.5}) 

這將懲罰第二類比第一以下。

+0

有沒有辦法明智地做到這一點?我可以簡單地加權binary_cross熵的輸出嗎?如果真正的肯定應該不同於真實的否定(而不僅僅是你的答案中的肯定)呢? – Nickpick

+0

最後,您可以將您所需的任何術語與損失函數的輸出相乘,但爲了執行此操作,您需要編寫自己的損失函數(即提供一個函數,它需要'y_pred'和'y_true',計算您的損失並乘以你的權重向量)。 – nemo

+0

但是,二進制交叉熵函數不會總是在0和1之間產生一個損失(0.5意味着y_true == y_pred)。不會縮小失真功能嗎? – Nickpick