Нейронная сеть пираминов не изучает
Я использую pybrain для создания агента, который изучает хемотаксис (перемещение в сторону пищи на основе химического сигнала). Агент представлен нейронной сетью, которая должна корректировать свои веса в зависимости от расстояния от пищи. Входы представляют собой два сенсорных нейрона, а выходы представляют собой два моторных нейрона, которые перемещают агент. Поэтому у меня есть непрерывные состояния и действия. Награда является обратным расстоянию от пищи.
В этом суть моего основного цикла:
task = ChemotaxisTask(ChemotaxisEnv(), MAX_STEPS)
module = buildNetwork(2,2,2)
learner = HillClimber(task, module, maxEvaluations=MAX_TRIALS, mustMinimize=True, storeAllEvaluations=True, storeAllEvaluated=True, verbose=False)
learner.learn()
Подходы, которые я пробовал, следующие:
- Эксперимент с Q (не работает, потому что у меня есть непрерывные состояния/действия)
- Эксперимент с Reinforce/ENAC (спуск градиента не производит никаких изменений)
- ContinuousExperiment с Reinforce/ENAC (см. выше)
- Эпизодический эксперимент с HillClimber (сетевые веса не изменяются)
Я решил попробовать работать с EpisodicExperiment, так как он лучше всего подходит для моего эксперимента.
Я могу наконец увидеть изменение веса сети, но моя средняя пригодность с течением времени не увеличивается. Что я могу делать неправильно?
Вот репозиторий Gist всего моего кода: https://gist.github.com/4477624
Вот документация на pybrain: http://pybrain.org/docs/index.html Документация ученика (например, Q, Reinforce, HillClimber) находится в http://pybrain.org/docs/api/rl/learners.html.
Сам код находится в https://github.com/pybrain/pybrain. Учащиеся находятся в https://github.com/pybrain/pybrain/tree/master/pybrain/rl/learners, и эксперименты находятся в https://github.com/pybrain/pybrain/tree/master/pybrain/rl/experiments.
Тем не менее, я использую учеников по оптимизации с помощью EpisodicExperiment; они расположены в https://github.com/pybrain/pybrain/tree/master/pybrain/optimization.
Я уверен, что вы можете найти свой путь через документацию и код оттуда. Все, с чем я работаю, находится в https://github.com/pybrain/pybrain/tree/master/pybrain/rl.