1. 简介
时间差分法主要基于时间序列的差分数据进行学习,其分为固定策略和非固定策略两种。固定策略时间差分法以Sarsa算法为代表;非固定策略以Q-Learning算法为代表。
2. Sarsa算法
Sarsa(state-action-reward-state-action)算法的目的是估计动作值函数q(s,a),即估计在策略Π下对任意状态s上所有可能执行动作a的动作值函数qΠ(s,a)。其动作值函数表达式函数为:
式子中的Θ=rt+1+γq(st+1,at+1)——时间差分目标(Target);
Θ-q(st,at)——时间差分误差(Error)。
式子中的动作值函数的每一次更新都需要用到5个变量:当前状态s、当前动作a、环境反馈奖励r、下一时间步状态s’和下一时间步动作a’。这5个变量组合成(s,a,r,s’,a’),便是时间差分控制Sarsa算法的由来。其具体算法流程如下:
输入:随机状态s
输出:动作值函数q(s,a)
(1) 初始化:
(2)对于任意状态s,设置q(s,a)为任意值
(3)重复经验轨迹:
(4) 初始化状态s
(5) 根据动作值q,在状态s下执行动作a
(6) 重复经验轨迹中时间步t:
(7) 根据动作值q,在状