如何使用PyBrain?

6 python neural-network

PyBrain是一个基于Python的库,用于创建神经网络.我看过他们网站上的教程,但他们似乎对我没什么帮助.我打算做的模拟是有一辆在轨道上行驶的汽车,配备有5个测距仪,显示它与墙壁之间的当前距离,范围介于0.0和之间1.0.适应性基于平均速度.(更高会更好)输出将是一个数字,你在特定时刻转向多少,一直都是正确的1.0,并且一直剩下的是-1.0或者0.0,无论哪个更简单.

我假设使用这个设置我将有5个输入神经元和1个输出神经元.例如,我假设我有4个隐藏的神经元.让我们假设我已经创建了一个函数runSimulation(),它将神经网络作为一个参数,使用该神经网络将汽车推向一条路线,然后返回平均速度(适应度).

如何根据重复的结果训练神经网络runSimulation()


我希望我正确地解释这一点,(更不用说我知道自己在做什么),但如果我不这样做,请告诉我.

Ati*_*gur 9

这似乎是一个有监督的学习问题.在这类问题中,您需要在训练NN之前提供一些答案.

您可以尝试以下方法

  1. 为您的汽车创建一个简单的迷宫.
  2. 在这个迷宫中手动驾驶您的汽车.
  3. 收集您的转弯信息

让我们假设您有以下车.

  • rf =测距仪
  • rf_f = rangefinder_forward
  • rf_r = rangefinder_right
  • rf_l = rangefinder_left
  • rf_60 = rangefinder_60度
  • rf_320 = rangefinder_320度

下面是你的rf图

  320   f   60
   \   |  / 
    \  | /
     \ |/  
 l--------------r
       |
       |
       |
Run Code Online (Sandbox Code Playgroud)

您的火车组应如下所示.

rf_f , rf_l , rf_r, rf_60, rf_320 , turn
0     0      0    0    0     0       0    // we go directly, no obstacles detected
0     0      0    0    0     0       0     // we go directly, , no obstacles detected
1.0   0      0    0    0     0       0    // We see a wall in forward far away. 
0.9   1      0    0    0     0       0.2  // We see a wall in forward and left, 
                                             therefore turn right slightly etc.
0.8   0.8      0    0    0     0     0.4  // We see a wall in forward and left, 
                                         therefore turn right slightly etc.
Run Code Online (Sandbox Code Playgroud)

在您向NN提供此类培训数据集后,您可以对其进行培训.