2014-09-06 4 views
1

Я пытаюсь обучить нейронную сеть для управления простым объектом в моделируемой 2D-среде, в настоящее время с использованием генетического алгоритма.Оценка работоспособности и обучение в режиме реального времени нейроэволюция

Возможно, из-за недостаточного знакомства с правильными словами, мои поиски не дали много информации о том, как относиться к пригодности и профессиональной подготовки в тех случаях, когда выполняются все следующие условия:

  • Там есть нет доступных данных по правильные выходы для данных входов.
  • Оценка эффективности может быть выполнена только после длительного периода взаимодействия с окружающей средой (с вызовом ввода/вывода непрерывного контроллера).
  • Существует случайность, присущая системе.

В настоящее время мой подход заключается в следующем:

  • Входы NN мгновенные показания датчиков о состоянии объекта и окружающей среды.
  • Выходы представляют собой мгновенные уровни активации его исполнителей, например уровень тяги для привода.
  • Я генерирую значение производительности, запустив симуляцию для данного контроллера NN либо для заданного периода времени моделирования, либо до достижения определенного состояния системы. Затем значение производительности присваивается соответствующим образом на основе наблюдений за поведением/конечным состоянием.
  • Чтобы предотвратить чрезмерную установку, я повторяю это несколько раз с различными случайными семенами генератора для системы и назначаю фитнес, используя некоторую метрику, такую ​​как среднее/низкое значение производительности.
  • Это делается для каждого человека в каждом поколении. В рамках данного поколения для справедливости каждый человек будет использовать один и тот же набор случайных семян.

У меня есть пара вопросов.

  1. Является ли это разумным, стандартным подходом к решению такой проблемы? Неудивительно, что все это связано с очень дорогостоящим процессом. Мне интересно, есть ли какие-либо методы, чтобы избежать повторного запуска моделирования с нуля каждый раз, когда я создаю значение пригодности.

  2. Как указано, такой же набор случайных семян используется для моделирования для каждого человека в поколении. От одного поколения к другому, должен ли этот набор оставаться статичным, или он должен быть другим? Мой инстинкт заключался в том, чтобы использовать разные семена в каждом поколении, чтобы избежать переуплотнения, и это не повлияло бы на селективную силу. Однако, по моим результатам, я не уверен в этом.

ответ

2

Это разумный подход, но генетические алгоритмы не известны как очень быстрые/эффективные. Попробуйте подняться на холм и посмотрите, быстрее ли это. Существует множество других методов оптимизации, но ничего не стоит, если вы предполагаете, что функция представляет собой черный ящик, из которого вы можете только выбирать. Усиление обучения может работать.

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

+0

Спасибо за предложения.Там действительно очень много методов, и не имея четкого представления о том, связаны ли и как они соотносятся друг с другом, половина проблемы для меня в настоящий момент. Я немного читал о RL и думал, что идея вознаграждений, предоставляемых на каждом временном шаге, по-видимому, не соответствует моей проблемной области, но, возможно, я не считал ее достаточно. – kamrann

+0

Любой шанс, который вы могли бы разработать немного в комментарии к черному ящику? Я подозреваю, что это, вероятно, ключ, но я не уверен, что вы имеете в виду. – kamrann

+0

@kamrann В обучении подкрепления вы относитесь к нему как к проблеме машинного обучения. Вы берете входные данные, а затем предсказываете, какая конечная пригодность будет для каждого вашего действия. Например. «Движение влево имеет 10% -ный шанс выиграть против правильного движения». Преимущество в том, что вы можете хранить данные, а затем тренироваться на некоторое время в автономном режиме, не выполняя симуляции. Вы также можете использовать градиентный спуск и методы быстрого обучения. У меня нет большого опыта в этом, поэтому я не могу сказать вам, насколько хорошо он будет работать на практике. – Houshalter

Смежные вопросы