我正在使用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()
我尝试的方法是:
我决定尝试使用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。