如何使用PyBrain?

6 投票
1 回答
2268 浏览
提问于 2025-04-17 04:26

PyBrain 是一个基于Python的库,用来创建神经网络。我看过他们网站上的教程,但感觉对我帮助不大。我计划做一个模拟,模拟一辆车在轨道上行驶,车上装有5个测距仪,可以显示它与墙壁之间的当前距离,范围在 0.01.0 之间。评估标准是平均速度,速度越高越好。输出的结果是一个数字,表示在特定时刻你需要转动的程度,向右转到底是 1.0,向左转到底则是 -1.00.0,选择哪个更简单就用哪个。

我假设在这个设置中,我会有5个输入神经元和1个输出神经元。为了举个例子,我假设我有4个隐藏神经元。我们还假设我创建了一个叫 runSimulation() 的函数,它接受一个神经网络作为参数,利用这个神经网络让车在赛道上行驶,并返回平均速度(也就是评估标准)。

我该如何根据 runSimulation() 的重复结果来训练这个神经网络呢?


我希望我解释得没问题,(更别提我是否真的知道自己在做什么)如果我说错了,请告诉我。

1 个回答

9

看起来这是一个监督学习的问题。在这种情况下,你需要在训练你的神经网络之前,先提供一些答案。

你可以尝试以下方法:

  1. 为你的车创建一个简单的迷宫。
  2. 手动驾驶你的车在这个迷宫里行驶。
  3. 收集你转弯的信息。

假设你有以下的车:

  • rf = 距离传感器
  • rf_f = 前方距离传感器
  • rf_r = 右侧距离传感器
  • rf_l = 左侧距离传感器
  • rf_60 = 60度距离传感器
  • rf_320 = 320度距离传感器

下面是你的距离传感器示意图:

  320   f   60
   \   |  / 
    \  | /
     \ |/  
 l--------------r
       |
       |
       |

你的训练数据集应该像下面这样:

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.

在你给神经网络提供了这样的训练数据集后,你就可以开始训练它了。

撰写回答