1.Q-learning
- Q-learning属于off-policy,即它看着别人玩来学习。而Sara是走到哪一步就选哪一步,所以只能从自身的经验来学习。可以说成Sara比较胆小,尽量保存自身的安全。
1)两个状态两个动作的例子
2)Q-learing流程
- ϵ − g r e e d y \epsilon-greedy ϵ−greedy是用在决策上的策略,假如 ϵ − g r e e d y = 0.9 \epsilon-greedy=0.9 ϵ−greedy=0.9,说明有90%的概率根据Q-table的最优值来选择action,而10%的概率来随机选择。总之,在当前状态 s s s,可以根据自己设计的policy来做下一步动作 a a a,因此这是一个自己估计的 Q ( s , a ) Q(s, a) Q(s,a).
- 此外,在当前状态 s s s做动作 a a a后,环境会给一个反馈,该反馈包括下一个转态 s ′ s^{\prime} s′和对应的奖励 r r r。求出在状态 s ′ s^{\prime} s′时的最大 Q Q Q值,即 m a x a ′ ( s ′ , a ′ ) max_{a^{\prime}} (s^{\prime}, a^{\prime}) maxa′(s′,a′).
- α \alpha α是学习效率,来决定这一次的误差有多少要被学习,一般小于1.
-
γ
\gamma
γ是对未来奖励的衰减值.
- 例子:一维和二维的探索者游戏
视频源:https://www.bilibili.com/video/BV13W411Y75P?p=5
代码:https://github.com/MorvanZhou/Reinforcement-learning-with-tensorflow
2. Sarsa
1)Original Sarsa
- Sara属于off-policy,它看着别人玩来学习。而Sara是走到哪一步就选哪一步,所以只能从自身的经验来学习。可以说成Sara比较胆小,尽量保存自身的安全。
- Q-learning需要计算
m
a
x
a
′
Q
(
s
′
,
a
′
)
max_{a{\prime}} Q (s^{\prime}, a^{\prime})
maxa′Q(s′,a′),即选择当前转态
s
′
s^{\prime}
s′下的最大
Q
Q
Q值。而Sara计算的是
Q
(
s
′
,
a
′
)
Q(s^{\prime}, a^{\prime})
Q(s′,a′),即在下一状态
s
′
s^{\prime}
s′时,再执行一次选择action操作(即步骤S2)。
2)Sarsa( λ \lambda λ)
- Sarsa(
λ
\lambda
λ)同时更新路径上的
Q
Q
Q值。
视频:https://www.bilibili.com/video/BV13W411Y75P?p=5
源码:https://github.com/MorvanZhou/Reinforcement-learning-with-tensorflow