簡體   English   中英

當我們使用實值訓練目標時,為什么使用二進制交叉熵損失函數進行的神經網絡訓練會停滯不前?

[英]Why the training of a neural network using binary cross-entropy loss function gets stuck when we use real-valued training targets?

假設我們有一個二進制分類問題,其中訓練目標不在{0,1}中,而在[0,1]中。 我們使用以下代碼在Keras中訓練一個簡單的分類器:

model = Sequential()
model.add(Dense(100, input_shape=(X.shape[1],), activation='relu'))
model.add(Dense(1, activation='sigmoid'))

model.compile(loss='binary_crossentropy', optimizer='rmsprop')
model.fit(X,y)

如果我們通過實際的訓練目標(在[0,1]中),則訓練幾乎不會繼續進行,陷入其初始損失值附近; 但是,如果我們量化{0,1}中的目標,則效果會更好,可以迅速減少訓練損失。

這是正常現象嗎? 是什么原因

編輯: 是可重復的實驗。 這是獲得的圖:

在此處輸入圖片說明

您聲明要解決二進制分類任務,目標應為二進制值,即{0,1}。

但是,如果您的目標是[0,1]中的某個浮點值,則實際上是在嘗試執行回歸

除其他外,這改變了對損失功能的要求。 看到Tensorflow交叉熵進行回歸? ,其中更詳細地討論了交叉熵損失用於回歸的用法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM