标签:target 动作 算法 SARSA TD pi gamma
- TD算法
-
SARSA算法:
- SARSA名字由来:SARSA每次用一个五元组来更新动作价值表(Q表):\((s_t,a_t,r_t,s_{t+1},a_{t+1})\),SARSA的每一个字母对应元组里的一个元素。
- 表格版本。状态和动作都是有限的,以状态为行,动作为列建表,表中的每个元素表示动作价值\(Q_\pi(s,a)\):
- 观测到一个状态转移:\((s_t,a_t,r_t,s_{t+1})\);
- 依据策略函数抽样一个动作\(a_{t+1}\);
- TD target:\(y_t = r_t + \gamma \cdot Q(s_{t+1},a_{t+1})\);
- TD error:\(\delta_t = Q(s_t,a_t) - y_t\);
- 更新表格:\(Q_\pi(s_t,a_t) \leftarrow Q_\pi(s_t,a_t) - \lambda \delta_t\)。
- 神经网络版本。状态空间非常大,用神经网络\(q(s,a;w)\)来近似动作价值函数\(Q_\pi(s,a)\)。
- 神经网络的输入是状态,输出是n维向量,向量每个元素表示某一个动作的价值。(与actor-critic中的critic一致)
- 与上同求得TD target;
- 使用TD target与网络输出的均方误差作为loss对网络参数做梯度下降优化。
-
Q-learning(DQN):
-
Q-learning用来学习最优动作价值函数\(Q^*(s,a)\)。(SARSA学习的是\(Q_\pi(s,a)\))
-
Q-learning的TD target:\(y_t = t_t + \mathop {max}\limits_a Q^*(s_{t+1},a)\);(SARSA没有对动作价值函数求最大化)
-
表格版本:
- 表格中行代表状态,列代表动作,值代表动作价值。
- 观测到四元组transition\((s_t,a_t,r_t,s_{t+1})\);
- TD target:\(y_t = r_t + \gamma \cdot \mathop {max}\limits_ a Q^*(s_{t+1},a)\);(表格中对应行中最大的值)
- TD error:\(\delta_t = Q^*(s_t,a_t) - y_t\);
- 更新:\(Q^*(s_t,a_t) \leftarrow Q^*(s_t,a_t) + \lambda \delta_t\);
-
-
DQN版本:
- 同上,使用神经网络近似最优动作价值。
-
-
Multi-step TD
- 标准TD算法使用一步真实奖励来优化,multi-step使用多个多步奖励进行优化。
- multi-step target for sarsa:\(y_t = \sum_{i=0}^{m - 1} \gamma^i r_{t+1} + \gamma^m Q(s_{t+m,a_{t+m}})\);
- multi-step target for Q-learning:\(y_t = \sum_{i=0}^{m - 1} \gamma^i r_{t+1} + \gamma^m Q^*(s_{t+m,a})\);
标签:target,动作,算法,SARSA,TD,pi,gamma 来源: https://www.cnblogs.com/strolling-leisurely/p/15081159.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。