gpt4 book ai didi

animation - 动画系统的神经网络大小

转载 作者:行者123 更新时间:2023-11-30 08:24:51 24 4
gpt4 key购买 nike

我决定使用神经网络来为我拥有的动画引擎创建行为。神经网络为我 body 的每个部位接收 3 个向量和 1 个欧拉角。第一个向量 3 是位置,第二个向量是速度,第三个向量是角速度。欧拉角是 body 部位的旋转角度。我的 body 有 7 个部位。这些数据类型中的每一种都有 3 个 float 。 7*4*3 = 84,所以我的神经网络有 84 个输入。输出被映射到角色的肌肉。它们提供施加到每 block 肌肉的力量大小,共有 15 个。

我同时运行 15 个网络 10 秒,通过计算最低能量消耗、z 和 x 运动量最少以及 body 部位与其他部位相比是否处于正确的 y 位置(臀部)来评估其健康状况.y > upperleg.y、upperleg.y > lowerleg.y 等),然后通过遗传算法运行它们。我正在运行一个神经网络,每个隐藏层有 168 个神经元,有 8 个隐藏层。我试图让角色站直,不要走​​动太多。我运行了 3000 代,但距离还差得很远。

神经网络和遗传算法是 this tutorial 的 C# 版本。我将交叉方法从一点更改为混合。

我有 84 个输入和 15 个输出。我的神经网络应该有多大?

最佳答案

你想要解决的问题是一个非常棘手的问题,我怀疑任何“普通”GA(尤其是使用固定网络架构的)都会解决它(在合理的时间内)。我也不认为你会在隐藏层中找到“正确数量的神经元”。

但是,如果您愿意花一些时间,请查看 HyperNEAT for Locomotion Control in Modular Robots它或多或少处理相同的问题。他们使用了一种非常先进的 GA 技术,称为 HyperNEAT,并报告了一些良好的结果。

HyperNEAT 构建于 NEAT ( Neuroevolution of augmenting topologies ) 之上。 NEAT 不仅能够进化 ANN 的权重,还能进化它们的结构。它从简单的网络开始,慢慢地使它们变得更加复杂,直到您达到目标(或放弃)。

然后,NEAT 稍作修改,以便能够使用各种激活函数。当它应用于一组点时,它将能够产生各种各样的“模式”,例如在坐标系中。这些图案可以具有一些有趣的特征,例如完美/不完美的对称性,或者它们可以是周期性的。此变体称为 Compositional pattern-producing network或CPPN。这项技术的一个引人注目的应用是 PicBreeder网络用于“绘制”图片。

HyperNEAT CPPN 用于创建其他 ANN。新网络的隐藏层由所谓的基底表示,可以想象该层的神经元被置于 2D/3D 坐标系中。然后,对于每对可能的神经元(所有从输入层到所有隐藏层、从所有隐藏层到所有输出层),CPPN 用于确定权重。因此我们有一个间接编码,

  • 本身很小
  • 最终可以产生任意大的网络
  • 它也可以显示相当复杂的行为
  • 现实/自然中出现的模式(同样,对称性、周期性行为)可以相对容易地出现。请注意,对于动画/有效运动来说,它们都非常有利(如果不是必须的话)。

总而言之,它会给您一个解决复杂问题的机会。

正如您所看到的,该技术有多个层次,因此您自己实现它并不那么容易。幸运的是,它有一些很好的实现,您可以在 NEAT home page 上找到它们。 ,以及许多其他文档、论文和教程。

关于animation - 动画系统的神经网络大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3496272/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com