我喜與神經網絡,現在玩。我做了那種本教程的重新實現的: 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學習得到的數據,但它將取決於輸入數量,食物池的大小,其中將是魚等。