我決定和神經網絡一起創建一個動畫引擎的行爲。神經網絡爲我的每個身體部位提供3個矢量3和1歐拉角。第一個vector3是位置,第二個是速度,第三個是角速度。歐拉角是身體部位的旋轉角度。我有7個身體部位。每種數據類型都有3個浮點數。 7 * 4 * 3 = 84,所以我有84個神經網絡輸入。輸出映射到角色的肌肉。它們提供了適用於每個肌肉的力量,其中有15個。動畫系統的神經網絡尺寸
我正在同時運行15個網絡10秒,通過計算最低能量使用來評估它們的適應性,具有最少量的z和x移動,並且如果身體部位與其餘部位相比處於正確的y位置hips.y> upperleg.y,upperleg.y> lowerleg.y等),然後通過遺傳算法運行它們。我運行的是每個隱藏層有168個神經元的神經網絡,有8個隱藏層。我試圖讓角色挺身而出,而不是四處走動。我跑了3000代,我甚至都沒有接近。
神經網絡和遺傳算法是C#版本this tutorial。我將交叉方法從一點改爲混合。
我有84個輸入和15個輸出。我的神經網絡應該有多大?
我不喜歡你的答案,但它似乎是真的。儘管感謝您的領導。看完文獻後我很好奇。 NEAT和HyperNEAT的區別在於CPPN,對嗎? CPPN能夠創建神經網絡,但本身不是神經網絡?或者它是一個發展並創建其他神經網絡的神經網絡? 非常有幫助,謝謝。 – DrSammyD 2010-08-19 02:40:07
NEAT使用直接編碼,這意味着對於基因組中的每個神經元和連接,您將在最終網絡中具有相同的編碼。 HyperNEAT使用間接編碼。基因組是一個網絡(CPPN隨NEAT發展而來),當你將其應用於底物的神經元對(第二網絡的神經元+更多信息,通常是2D/3D座標系中的座標)時,連接權重。我認爲技術上CPPN也是一個NN,但它可以使用奇特的激活函數,而不是通常的S形/ tanh。但是,可能會有一些其他的細微差別。 – 2010-08-19 07:18:50