如何用进化算法创建合适的前馈神经网络

时间:2019-03-06 04:51:56

标签: neural-network evolutionary-algorithm

我创建了一个2D游戏,您可以在其中使用地图编辑器来放置汽车,障碍物和汽车应行驶的目的地。

这个想法是,这些汽车将由前馈神经网络的生成来控制。但是我不确定应该如何在输入层中表示信息以及应该如何精确地表示演化,所以我将解释我的想法,并且最好就如何使这个想法更好地提出建议,尤其是在某些事情行不通的情况下完全没有。

输入图层值:

  1. 介于(0,1)之间的神经元表示到障碍物的距离
  2. 在(-1,1)之间的Neuron代表汽车的速度及其方向(-1-向后最大速度,0-无速度,0.5-最大最大速度的一半)
  3. 介于(-1,1)之间的两个神经元,代表相对于某些画布从地图到汽车的cos和sin(或2 * asin / Pi和2 *(acos-pi / 2)/ Pi)矢量恒定轴。

输出图层值:

  1. (-1,1)代表汽车加速度及其方向的神经元
  2. 在(-1,1)之间的Neuron代表汽车将在哪里转弯以及转弯多快

在看值时,我正在考虑在所有地方使用tanh函数。但这是使用单个负/正值确定方向(作为输入或输出)的好主意吗?还是用两个神经元告诉神经网络应该去哪里(显然不能用单个值告诉)等等?

我想象进化本身就是关于在最佳网络之间切换一些权重和偏差值(取决于适应度),并向一些权重和偏差添加小的随机数以进行变异(其中随机数abs将取决于适应度以便避免在良好的网络中造成破坏性的巨大变化。

0 个答案:

没有答案