9

我決定和神經網絡一起創建一個動畫引擎的行爲。神經網絡爲我的每個身體部位提供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個輸出。我的神經網絡應該有多大?

回答

5

你想解決的問題是一個相當棘手的問題,我懷疑任何「香草」GA(特別是那些使用固定架構的網絡)將解決它(在合理的時間內)。我也不認爲你會在隱藏層找到「正確數量的神經元」。

但是,如果你願意花一些時間在它上看看HyperNEAT for Locomotion Control in Modular Robots,它或多或少地處理相同的問題。 他們使用相當先進的GA技術,稱爲HyperNEAT並報告一些好的結果。

HyperNEAT建立在NEAT之上(Neuroevolution of augmenting topologies)。 NEAT不僅能夠演化人工神經網絡的權重,而且能夠演化他們的結構。它從簡單的網絡開始,慢慢地讓它們變得更復雜,直到你達到目標(或放棄)。

然後NEAT稍作修改,以便能夠使用各種激活功能。當它被應用於一組點時,它將使其能夠產生各種各樣的「模式」,例如,在一個座標系中。這些模式可以有一些有趣的特徵,如完美/不完美的對稱性,或者它們可以是週期性的。該變體稱爲Compositional pattern-producing network或CPPN。該技術的一個引人注目的應用是PicBreeder,其中網絡用於「繪製」圖片。

HyperNEAT CPPN用於創建其他人工神經網絡。新網絡的隱藏層由所謂的襯底表示,可以想象該層的神經元被放置到2D/3D座標系中。然後,對於每個可能的神經元對(全部從輸入層到全部隱藏,從全部隱藏到全部輸出),CPPN用於確定權重。因此,我們有一個間接的編碼,這

    本身
  • 可以在年底
  • 這也可以顯示十分複雜的行爲
  • 模式,在現實中顯示產生任意大的網絡/自然(再次,對稱性,週期性行爲)可以相對容易地出現。請注意,對於動畫/有效運動,它們都非常有利(如果不是必須的話)。

總而言之,它會給你一個機會來解決你的複雜問題。

正如你所看到的,這種技術有各種各樣的層次,所以爲你自己實現它並不那麼容易。幸運的是,它有一些很好的實現,你可以在NEAT home page上找到它們,以及許多其他文檔,論文和教程。

+0

我不喜歡你的答案,但它似乎是真的。儘管感謝您的領導。看完文獻後我很好奇。 NEAT和HyperNEAT的區別在於CPPN,對嗎? CPPN能夠創建神經網絡,但本身不是神經網絡?或者它是一個發展並創建其他神經網絡的神經網絡? 非常有幫助,謝謝。 – DrSammyD 2010-08-19 02:40:07

+0

NEAT使用直接編碼,這意味着對於基因組中的每個神經元和連接,您將在最終網絡中具有相同的編碼。 HyperNEAT使用間接編碼。基因組是一個網絡(CPPN隨NEAT發展而來),當你將其應用於底物的神經元對(第二網絡的神經元+更多信息,通常是2D/3D座標系中的座標)時,連接權重。我認爲技術上CPPN也是一個NN,但它可以使用奇特的激活函數,而不是通常的S形/ tanh。但是,可能會有一些其他的細微差別。 – 2010-08-19 07:18:50

0

你可以簡化這個到最基本的必需品嗎?有一隻腳和一隻小腿,就是這樣;兩個身體部位,兩個角度,並讓它站立。

0

有趣的方法!我一直在想一些類似的東西,很想聽聽你會得到什麼結果。

你必須測試,但我猜你有太多的隱藏層。我認爲這個應用程序最多可以使用一兩個。

你還應該看看你的健身功能 - 我認爲提供學習可能「太困難」,因爲在開始時它沒有希望站起來。因此,你陷入的「本地最低限度」是學習如何以最小的努力倒下。不是很有用。一般來說,GAs受到當地最低標準的限制。

爲了提高你的健身功能,我會嘗試像處罰直立每幀的偏差。這將對管理局部平衡的解決方案有所貢獻,所以應該有一個改進途徑。除非你有足夠的能量平衡,否則我根本就不會爲能量使用而煩惱。

+0

實際上,我擺脫了常規指標,只專注於最小化能量並保持在一個x z位置。即使那不過是在30代以內。 – DrSammyD 2010-08-16 19:15:16

+0

我的遺傳算法可能有問題。 – DrSammyD 2010-08-16 19:19:26

+0

我在計算健身方式時出了點問題。它開始爲低能量工作並停留在一個x z位置。我讓你知道它如何與站立。 – DrSammyD 2010-08-16 20:58:10