Python 如何将人工生命模拟中最近的对象输入到神经网络的输入中?

Python 如何将人工生命模拟中最近的对象输入到神经网络的输入中?,python,neural-network,artificial-intelligence,artificial-life,Python,Neural Network,Artificial Intelligence,Artificial Life,我刚刚开始使用Pybrain在Python和Pygame中进行人工生命模拟(再一次…我丢失了另一个),我正在计划如何进行。到目前为止,我的环境中有一些“食物颗粒”。每分钟加入一粒食物颗粒。我还没有制作我的代理(也称为“生物”),但我知道我希望它们有简单的前馈神经网络,带有一些输入,输出将是它的“运动”。我想让输入显示他们面前的东西,就像他们看到他们面前的模拟世界一样。我该怎么做?我想让他们实际“看到”他们视线中的颜色,或者只是将最近的物体输入到他们的NN中。哪一个最好,我将如何实现它们?在神经网

我刚刚开始使用Pybrain在Python和Pygame中进行人工生命模拟(再一次…我丢失了另一个),我正在计划如何进行。到目前为止,我的环境中有一些“食物颗粒”。每分钟加入一粒食物颗粒。我还没有制作我的代理(也称为“生物”),但我知道我希望它们有简单的前馈神经网络,带有一些输入,输出将是它的“运动”。我想让输入显示他们面前的东西,就像他们看到他们面前的模拟世界一样。我该怎么做?我想让他们实际“看到”他们视线中的颜色,或者只是将最近的物体输入到他们的NN中。哪一个最好,我将如何实现它们?

在神经网络中拥有完整的视野在技术上是可能的,但需要大量的输入和大量的处理;这不是一个你应该期望能够以任何有意义的方式发展的方向

神经网络处理数值和阈值。我建议使用两个与最近的个体相关的输入-其中一个具有距离值(最近的),另一个具有角度值(零在正前方,小于零在左侧,大于零在右侧)

确保这些值易于处理为输出。例如,如果一个输出到旋转执行器,请确保输入值和输出值在同一刻度上。然后很容易转向或远离某个特定的个体


如果您希望他们能够看到多个个体,简单的方法是包含多对输入。我想建议将它们按距离顺序排列,但如果一个生物体一看到某个东西,它就会进入相同的输入,直到不再被跟踪,这对它们来说可能会更容易。

当你说要使输入和输出值具有相同的标度时,你的意思是如果输出范围为0-1,那么输入应该在0-1之间。我怎样才能输入颜色?Pygame中的颜色是一个元组,其中三个值的范围为0-255。所谓“相同比例”,我的简单意思是,如果输入角度为-1到1,则输出旋转执行器应为-1到1,因此将输入直接链接到输出将有助于转向目标形状。关于颜色,你可能是对的,这需要三个额外的输入。如果可能的话,我建议使用HSL而不是RGB。例如,在许多情况下,他们可能只想注意色调。