0

我喜與神經網絡,現在玩。我做了那種本教程的重新實現的: http://www.ai-junkie.com/ann/evolved/nnt5.html,但隨着魚類和食品也有不同的編程語言。但重點是一樣的。
的BP神經網絡

我有一堆魚(20)和一堆foos(40)。每條魚都有大腦(神經網絡(我將從現在開始使用ANN))。目前,神經網絡不使用backprop,並通過遺傳alghoritm進行訓練。它工作正常。我想通過使用反向傳播來實現學習,而不是比較這兩種方法。問題只是反向傳播alghoritm。我讀了一些關於它的文章,但是我沒有明白它如何在這個例子中被使用。我可能只是不理解它而已。
我會解釋這個問題:
現在我有4個輸入的神經網絡。注視矢量的lookAt(X,Y),向量最接近食品closestFood(X,Y)=>這個向量的值被輸入到神經網絡。 nn的輸出是魚的右鰭的速度=> ANN具有2個輸出leftFliperSpeed,rightFlipperSpeed。
所以總結起來。我有安這樣的:
輸入:4(lookAt.X,lookAt.Y,closestFood.X,closestFood.Y)
層:3(輸入,輸出,和一個隱藏的6個神經元)
輸出:2 (leftFlipperSpeed,rightFlipperSpeed)


我用這樣的:
1.遺傳alghoritm我得到魚的第一羣(讀我將獲得的權重爲ANN的輸入)。
2.運行一些迭代次數的模擬,讓魚吃掉魚類找到和吃的食物。我發現魚類食物,她的健身功能增加,食物在其他地方重新定位。我一直都有不斷的魚類和食物。
3.在例如2000次迭代後,我再次運行遺傳alghoritm並從實際人羣中獲得新的人羣 - 具有較高適應度的魚有更高的生存機會或成爲新魚的父親或媽媽。我爲神經蠑螈獲得新的重量。並從第2點開始繼續。

這裏的學習過程很簡單明瞭。而且它沒有上司的學習。

現在反向傳播。從我閱讀的文章中,反向傳播是監督學習。問題在於訓練集。遺傳學alghs我不需要它在這裏是的。
我能做些什麼來實現反向傳播。
任何提示如何從中獲得新的權重以及如何替換主管?如果沒有主管,我認爲反向傳播是不可能完成的。它可以以某種方式使用我通過遺傳alghoritm學習得到的數據,但它將取決於輸入數量,食物池的大小,其中將是魚等。

回答

1

反向傳播只是一種計算梯度的方法,沒有其他的。它不是真正的監督學習技術,它只是關於能夠有效地計算一些優先損失函數的梯度(這通常在線例子中將是監督損失)。

對於所描述的問題,最合理的技術實際上是強化學習。在那裏,你將能夠通過你的網絡反向傳播,並且以良好結構化的方式學習餵養政策(與遺傳算法相反,這將會帶來更復雜的問題)。你可能想看看像深度學習這樣的對象(它有效地只是一個簡單的RL技術,你的策略是由神經網絡控制的,這正是你想要達到的 - 你有一個基於神經網絡的策略,它選擇動作;雖然在你的情況下它是一個連續的輸出空間,因此你可能需要爲這個特定的用例離散化)。