0

我試圖用遺傳算法訓練的人工神經網絡,其任務是垂直移動一欄,以便它使一個反彈球沒有擊中櫃檯後面的牆上,在其他神經網絡單詞,單條乒乓球。 我會直接問,因爲我想知道問題是什麼。 遊戲窗口是200x200像素,所以我創建了40000個輸入神經元。明顯的疑問是:GA可以處理40000(輸入)* 10(隱藏)* 2元素(基因)的染色體嗎? 因爲我認爲答案是否定的(我實現這個解決方案似乎並沒有工作),解決方案似乎很簡單,我喂NN只有4參數,這些參數座標x,酒吧和球的Y,釘它。 很好的解決方案,但問題是:我怎麼能適用於像supermario遊戲這樣的解決方案,其中在屏幕的敵人的數量是不固定的?當然,我不能創建一個具有動態數字輸入的NN。 我希望你能幫助我。使用具有遺傳算法的乒乓球或supermario

回答

0

你要使用的功能來代表你的國家。例如,您可以按瓷磚劃分屏幕並根據考慮到敵人的功能(例如,如果敵人在瓦片中或者距離最近敵人的距離爲布爾值)分配一個值。

,您仍然可以使用像素,但您可能需要預處理它們,以減少它們的大小(例如,使用一個經常性的NN)。

順便說一句,NN可能無法處理200x200像素,但它能夠學習使用尺寸爲84x84x4的預處理像素(請參閱this paper)的狀態表示法來播放Atari遊戲。

+0

高興看到這麼長時間後:)一個答案。無論如何,我試圖減少輸入到只有1個神經元,這是酒吧和球之間的Y距離。我得到了什麼?我不知道我是否真的可以稱它爲GA,因爲幾乎總是會學習在第一代玩遊戲......無論如何,感謝瓷磚的想法,我沒有真正想過,你是否在某處讀過它? – Christian

+0

歡迎您:)瓷磚編碼是在強化學習中表示狀態的常用方法。看看這裏https://webdocs.cs.ualberta.ca/~sutton/book/ebook/node88.html在Google上搜索,您可以輕鬆找到這些算法的一些C實現。類似的方式(經常使用)是徑向基函數。 關於你的1-神經元網絡,它似乎是合理的,因爲最終目標是最小化球和杆之間的距離。 – Simon