我已经按照中所述实施了Q-Learning,
http://web.cs.swarthmore.edu/~meeden/cs81/s12/papers/MarkStevePaper.pdf
为了大约。Q(S,A)我使用如下的神经网络结构,
- 激活乙状结肠
- 输入,输入数量+动作神经元的1(所有输入按0-1比例缩放)
- 输出,单路输出。Q值
- N个M隐藏层。
- 探索方法随机0 <rand()<propExplore
在每次学习迭代中,使用以下公式,
我计算一个Q目标值,然后使用计算一个误差,
error = QTarget - LastQValueReturnedFromNN
然后通过神经网络传播错误。
Q1,我走对了吗?我已经看到了一些论文,这些论文的每个动作都实现了一个带有一个输出神经元的NN。
Q2,我的奖励函数返回-1和1之间的数字。当激活函数为S形(0 1)时,可以返回-1和1之间的数字吗?
问题3,根据我对这种方法的理解,给定足够的培训实例,应该对其进行隔离以找到最佳的政策依据?训练XOR有时会在2k次迭代后学习,有时甚至在40k 50k迭代后也不会学习。