我已经实施了 Q-Learning,如中所述,
http://web.cs.swarthmore.edu/~meeden/cs81/s12/papers/MarkStevePaper.pdf
为了大约。Q(S,A) 我使用如下的神经网络结构,
- 激活乙状结肠
- 输入,输入数量 + 1 用于动作神经元(所有输入缩放 0-1)
- 输出,单输出。Q值
- N 个 M 隐藏层。
- 探索方法 random 0 < rand() < propExplore
在使用以下公式的每次学习迭代中,
我计算一个 Q-Target 值,然后使用计算错误,
error = QTarget - LastQValueReturnedFromNN
并通过神经网络反向传播误差。
Q1,我在正确的轨道上吗?我看过一些论文,它们实现了一个神经网络,每个动作都有一个输出神经元。
Q2,我的reward function返回一个-1到1之间的数字,激活函数是sigmoid(0 1)的时候返回一个-1到1之间的数字可以吗
Q3,根据我对这种方法的理解,给定足够的训练实例,是否应该隔离它以找到最佳策略?在进行 XOR 训练时,有时它会在 2k 次迭代后学习,有时甚至在 40k 50k 次迭代后也不会学习。