Как использовать PyBrain?

PyBrain — это библиотека на основе Python для создания нейронных сетей. Я просмотрел учебники на их сайте, но они, похоже, не очень мне помогают. Моделирование, которое я планирую сделать, это иметь автомобиль, который едет по трассе, оснащенный 5 дальномерами, показывающими текущее расстояние между ним и стенами, в диапазоне от 0.0 до 1.0. Фитнес основан на средней скорости. (Чем больше, тем лучше) На выходе будет одно число, сколько вы повернете в этот конкретный момент, где вправо будет 1.0, а влево будет либо -1.0, либо 0.0, в зависимости от того, что проще.

Я предполагаю, что при использовании этой настройки у меня будет 5 входных нейронов и 1 выходной нейрон. Например, я предположу, что у меня есть 4 скрытых нейрона. Давайте также предположим, что я создал функцию под названием runSimulation(), которая принимает нейронную сеть в качестве аргумента, ведет машину по курсу, используя эту нейронную сеть, и возвращает среднюю скорость (фитнес).

Как я могу обучить нейронную сеть на основе повторных результатов runSimulation()?


Я надеюсь, что объясняю это правильно (не говоря уже о том, что я даже немного знаю, что я делаю), но если я не прав, скажите мне, пожалуйста.


person Community    schedule 16.10.2011    source источник


Ответы (1)


Кажется, что это проблема контролируемого обучения. В этом типе задач вам НЕОБХОДИМО дать несколько ответов ПЕРЕД обучением вашей NN.

Вы можете попробовать следующий подход

  1. Создайте простой лабиринт для своей машины.
  2. Управляйте своим автомобилем вручную в этом лабиринте.
  3. Соберите информацию о токарной обработке

Предположим, у вас есть следующая машина.

  • рф = дальномер
  • 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.

После того, как вы передали такой обучающий набор данных своей NN, вы можете ее обучить.

person Atilla Ozgur    schedule 20.10.2011