我决定使用神经网络来为我拥有的动画引擎创建行为。神经网络为我拥有的每个身体部位接受 3 个向量 3 和 1 个欧拉角。第一个向量 3 是位置,第二个是它的速度,第三个是它的角速度。欧拉角是身体部分的旋转。我有 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# 版本。我将交叉方法从一点更改为混合。
我有 84 个输入和 15 个输出。我的神经网络应该有多大?