我正在尝试了解Q-Learning
基本更新公式:
Q(st, at) += a[rt+1, + d.max(Q(st+1, a)) - Q(st,at)]
我了解公式及其作用,但我的问题是:
代理如何知道选择 Q(st, at)?
我知道代理遵循一些策略 π,但是你首先如何创建这个策略?
- 我的代理人正在玩西洋跳棋,所以我专注于无模型算法。
- 代理所知道的只是它所处的当前状态。
- 我知道当它执行操作时,您会更新实用程序,但它如何知道首先要执行该操作。
目前我有:
- 检查你可以从那个状态做出的每一个动作。
- 选择具有最高效用的移动。
- 更新移动的实用程序。
但是,这并不能真正解决很多问题,您仍然会陷入局部最小值/最大值。
所以,为了圆满结束,我的主要问题是:
对于一个一无所知并且使用无模型算法的代理,你如何生成一个初始策略,以便它知道要采取什么行动?