簡體   English   中英

千層面的卷積神經網絡精度(回歸與分類)

[英]Convolutional Neural Network accuracy with Lasagne (regression vs classification)

我已經使用Lasagne玩了一段時間,以解決使用卷積神經網絡進行二進制分類的問題。 但是,盡管我在訓練和驗證損失上得到了不錯的結果,但我的驗證和測試准確性始終是恆定的(網絡始終預測同一班級)。

我遇到過這個問題 ,一個人和我的千層面有着同樣的問題。 他們的解決方案是在Lasagne頂部使用Nolearn時將regression=True設置regression=True

有誰知道如何在Lasagne中設置相同的變量(因為我不想使用Nolearn)? 除此之外,還有人解釋為什么需要這樣做嗎?

從nolearn看NeuralNet 類的代碼 ,看起來參數regression在很多地方都使用過,但是在大多數情況下,它會影響輸出值和損失的計算方式。

如果regression=False (默認值),則網絡以最大的概率輸出類別,並使用分類交叉熵計算損失。 另一方面,在regression=True情況下,網絡輸出每個類別的概率,並在輸出矢量上計算平方誤差的損失。

我不是深度學習和CNN方面的專家,但這樣做可能起作用的原因是,在regression=True情況下,如果誤差梯度較小,則對網絡參數進行小的更改可能不會更改預測的類別和相關的損失,並可能導致算法“認為”它已經收斂。 但是,如果改為查看類概率,則較小的參數更改將影響概率以及由此產生的均方誤差,並且網絡將繼續沿該路徑運行,這最終可能會更改預測。

這只是一個猜測,如果不查看代碼和數據集就很難分辨。

暫無
暫無

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

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