我决定和神经网络一起创建一个动画引擎的行为。神经网络为我的每个身体部位提供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