遗传算法A.I。重复行为
Genetic Algorithm A.I. repetitive behavior
我正在编写一个 C# Windows 表单应用程序,它模拟一个简单的环境(网格),其中包含两种类型的对象:植物和食草动物。食草动物有神经网络,将周围少数细胞的内容作为输入,决定向哪个方向移动。这个想法是使用适应度函数和遗传算法训练食草动物吃植物。
我的问题是,如果食草动物周围没有任何东西,它会决定向特定方向移动,然后,如果周围仍然没有任何东西,它就会移动再次朝同一个方向。我最终得到的是一些食草动物,它们只是在海峡中移动,实际上根本没有遇到任何植物。
添加 时钟信号 作为输入(每个位作为神经网络的单独输入)会改变这种行为还是不推荐这样做?我还考虑过添加一个只是随机数据(来自高斯分布)的输入以增加一些不可预测性,但我不知道这是否会帮助或损害问题。另一个我不确定的想法是,如果对过去的几个动作进行输入(作为一种记忆)是否可以解决这个问题。
我想你需要 Recurrent Network。您可以跟踪网络做出的最后 N 个决定,然后将它们用作网络的额外输入,这样它就会对它的去向和持续时间有某种了解。它可能会在某个时候以开始进行某种路径查找的方式发展。
@Can_Alper说的绝对好。另请查看 LSTM's.
我正在编写一个 C# Windows 表单应用程序,它模拟一个简单的环境(网格),其中包含两种类型的对象:植物和食草动物。食草动物有神经网络,将周围少数细胞的内容作为输入,决定向哪个方向移动。这个想法是使用适应度函数和遗传算法训练食草动物吃植物。
我的问题是,如果食草动物周围没有任何东西,它会决定向特定方向移动,然后,如果周围仍然没有任何东西,它就会移动再次朝同一个方向。我最终得到的是一些食草动物,它们只是在海峡中移动,实际上根本没有遇到任何植物。
添加 时钟信号 作为输入(每个位作为神经网络的单独输入)会改变这种行为还是不推荐这样做?我还考虑过添加一个只是随机数据(来自高斯分布)的输入以增加一些不可预测性,但我不知道这是否会帮助或损害问题。另一个我不确定的想法是,如果对过去的几个动作进行输入(作为一种记忆)是否可以解决这个问题。
我想你需要 Recurrent Network。您可以跟踪网络做出的最后 N 个决定,然后将它们用作网络的额外输入,这样它就会对它的去向和持续时间有某种了解。它可能会在某个时候以开始进行某种路径查找的方式发展。
@Can_Alper说的绝对好。另请查看 LSTM's.