0

我想知道如何定義或表示負面訓練集,如果我想從預先訓練的模型訓練二元分類器,例如AlexNet on ILSVRC12(或ImageNet)數據集。我目前所想的是將一個與負相關的班級作爲負相關的班級,而將相關的班級作爲正相關的班級。有沒有更好的方式更優雅?Caffe表示二進制分類基準數據集上的負面示例

回答

1

在ILSVRC數據集上訓練的CNN已經在1000種圖像類別中進行區分。是的,您可以使用其中一種拓撲來訓練二元分類器,但我建議您從未經訓練的模型開始,並在兩個選定的類中運行它。如果你從一個訓練有素的模型開始,你必須去掉很多,並且你的結果仍然試圖區分1000個類:最後一個FC層會給你帶來麻煩。

有辦法解決1000級的問題。如果您的應用程序已經重疊了一個或多個受過訓練的類,那麼只需添加一個圖層,將這些類映射爲標記「1」,其他所有其他標記爲「0」。

如果您堅持保留受過訓練的內核,請嘗試用2級FC層替換最後的FC層(1000)。然後選擇你的兩個班級(適用的圖像vs其他一切)並運行你的訓練。

+0

感謝您的洞察力。但是,你的意思是你在第二段中提到的與第三段相同嗎?如果是這樣,你有沒有顯示你的意思的代碼片段「,那麼只需添加一個圖層,將這些類別映射爲標籤」1「,其他所有標籤映射爲」0「。 –

+0

我在第3段中提到了通過在FC層中將1000更改爲2來訓練我自己的數據,但預測準確度相當低,即約55%。我對你提到的內容感興趣「,然後簡單地添加一個將這些類映射到標籤」1「的映射層,其他所有映射到標籤」0「。」,我如何在prototxt級別實現這個? –

+0

是的,我的申請與其中一個班級重疊。 –