- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我决定使用神经网络来为我拥有的动画引擎创建行为。神经网络为我 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/
我是一名优秀的程序员,十分优秀!