pybrain神经网络不学习

时间:2012-12-15 03:17:14

标签: python machine-learning neural-network pybrain

我正在使用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进行实验(梯度下降计算无变化)
  • 使用Reinforce / ENAC进行ContinuousExperiment(见上文)
  • 使用HillClimber的EpisodicExperiment(网络权重不会改变)

我决定尝试使用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

0 个答案:

没有答案