1

我一直在研究神經網絡,並且最近學習了有關退出訓練算法。有很多優秀的論文來理解它的工作原理,包括作者的論文。帶退出訓練神經網絡的模型選擇

所以我建有輟學訓練神經網絡(這是相當容易的),但我有點困惑如何執行模型選擇。根據我的理解,看起來退出是一種在訓練通過模型選擇獲得的最終模型時要使用的方法。

至於測試部分,論文總是談論與使用權減半整個網絡,但他們沒有提到如何在培訓/驗證部分使用它(至少那些我讀)。

我想使用網絡而無需輟學機型選擇的一部分。說,這使我發現網絡與N神經元表現良好。然後,對於最終訓練(我用來訓練測試部分的網絡),我使用2N個退出概率爲p = 0.5的神經元。這可以確保我平均有N個神經元處於活動狀態,從而在大多數時間使用正確的網絡。

這是一個正確的方法嗎?

順便說一句,我所知道的一個事實,即輟學可能與小數據集的最佳選擇。我正在進行的項目有學術目的,因此,只要我堅持機器學習的良好實踐,我並不需要爲數據使用最佳模型。

回答

2

使用不同的模型進行模型選擇和不同的最終訓練是從來沒有一個好方法。您應該在模型選擇過程中使用完全相同的過程(包括退出,具有相同的概率等)。事實上,這個概率是你在模型選擇時需要適應的另一個超參數。事實上,在有和沒有DOPOUT的模式選擇之間沒有區別,這就是爲什麼沒有人在他們的論文中提到它 - 只是注意到變化。

+0

直接點。我喜歡這個:) – mp85 2014-12-05 23:14:38

0

首先,模型選擇和特定模型的訓練是完全不同的問題。對於模型選擇,通常需要一個完全獨立於構建模型的訓練集和用於估計其性能的測試集的數據集。因此,如果您正在做一個交叉驗證的例子,那麼您需要進行內部交叉驗證(通常用於訓練模型並估計性能)以及進行模型選擇的外部交叉驗證。

想知道爲什麼,請考慮以下思維實驗(從this paper無恥地竊取)。你有一個完全隨機預測的模型。它有許多可以設置的參數,但不起作用。如果你嘗試不同的參數設置足夠長的時間,最終你會得到一個比所有其他參數更好的模型,因爲你是從隨機分佈抽樣的。如果您對所有這些型號使用相同的數據,則這是您將選擇的型號。如果您有一個單獨的測試集,它會很快告訴您沒有實際影響,因爲在模型構建階段獲得良好結果的此參數設置的性能在單獨集上並不會更好。

現在,回到帶有退路的神經網絡。你沒有提到任何特定的論文;我假設你的意思是Srivastava et。人。 「輟學:防止神經網絡過度配合的簡單方法」。我並不是這方面的專家,但對我來說,這種方法似乎與隨機森林或裝袋中使用的方法類似,以減輕個別學習者可能通過在稍微不同的環境中反覆應用的缺陷。如果我正確地理解了這個方法,那麼實際上你最終得到的是幾種可能模型的平均值,這與隨機森林非常相似。

這是一種使單個模型更好的方法,但不適用於模型選擇。丟失是一種調整單個神經網絡模型的學習權重的方法。如上面引用的論文所描述的那樣,您需要訓練和測試具有不同參數的神經網絡,然後對完全不同的數據集進行評估。

+0

你對任何事都是對的,我可能沒有很好地解釋自己。我知道如何使用這些數據進行訓練,驗證和測試(我也知道這個實驗,儘管呈現的方式稍有不同),但這只是關於如何將模型應用到驗證部分(但我認爲我不是甚至用這句話解釋自己)。但是感謝資源,我會閱讀它,並且肯定會從中學到一些新東西。 – mp85 2014-12-05 23:08:51