2017-09-26 78 views
0

我有一個卷積神經網絡,只能通過查看遊戲地圖的當前狀態來設計玩蛇遊戲。它正在與地圖上的其他3條蛇競爭。網絡訓練通過觀看「專家蛇」來玩遊戲,並且旨在做出與每個時間步驟相同的決定(決策是:左轉,右轉或直行)。當培訓超過20萬張圖像時,批量大小爲500,退出率爲0.5(50%),網絡學習的驗證數據的準確率約爲80%,範圍從75%到83%。然而,當我訓練200萬個圖像的更大數據集時(沒有任何其他超參數發生變化),網絡未能學會通過38%,這隻比隨機移動略好一點。我發現以下帖子:https://www.quora.com/Intuitively-how-does-batch-size-impact-a-convolutional-network-training,這導致我相信我的數據現在太吵了,增加批量大小可以解決我的問題。因此,我運行的最近一次培訓會話使用了200萬張圖像,批量爲1000,退出率爲0.75。這再次導致了38%的重複驗證準確度(測試準確度約爲37%)。這些調整沒有影響的事實令人擔憂。我改變了孤立測試的學習速度,這也無助於測試的準確性。有沒有人遇到類似的問題?這讓我非常困惑,因爲我的印象是更多的培訓數據幾乎總是一件好事。在我運行的所有培訓課程中,隨機從我的所有圖像集中選擇不同的圖像,因此如果網絡可以學習隨機的數據子集,我會想象它可以學習更大的數據子集。預先感謝您的幫助。總結我的問題是:這種問題的可能原因是什麼?哪些超參數會導致這種類型的行爲更具影響力?神經網絡在大量數據上學得更差

+0

但最新的問題是什麼? – Priya

+0

你的網絡是什麼樣的?什麼激活功能?你在使用池嗎?我不會爲這個+ 0.75的輟學率非常高。 – convolutionBoy

+0

我的網絡: 輸入52x52x1 - > 5x5窗口的conv> 32特徵 - > maxpool 2x2 - > conv 4x4窗口64特徵 - > maxpool 2x2 - >完全連接圖層,大小爲4096,dropout = 0.5(也嘗試過0.75) - >輸出層的大小爲3. 激活功能是relu。 我會嘗試刪除池並查看會發生什麼,但是不會使用它的原因是什麼?網絡上還有其他什麼似乎很奇怪的東西嗎? 感謝您的回覆 –

回答

0

我上面遇到的問題是由於我的數據存在偏見。主蛇選擇比其選擇向左或向右合併更頻繁地進行。因此,我們的模型學會了直行。

在小數據集中,這看起來像是學習玩遊戲,其實它正在學習選擇偏見。因此,一個更大的數據集暴露了該模型真正學到的程度。因此,當正確的答案是正確的時候(只是超過三分之一的時間)

我希望這可以幫助任何人在訓練他們的模型時遇到類似的奇怪行爲。檢查你的數據是否存在偏見或反作用行爲。

我們的解決方案是平衡訓練數據,並在等量的左,右和直線位置訓練模型。