Update chapter3_questions&keywords.md

This commit is contained in:
David Young
2020-10-22 10:26:43 +08:00
committed by GitHub
parent 4da0c02197
commit 6a17fdcb96

View File

@@ -2,15 +2,15 @@
## 1 Keywords
- **P函数和R函数**P函数是状态转移的概率,其就是反应的环境的随机性R函数就是Reward function。但是我们通常处于一个未知的环境即P函数和R函数是未知的
- **Q表格型表示方法** 表示形式是一种表格形式其中横坐标为actionagent的行为纵坐标是环境的state其对应着每一个时刻agent和环境的情况并通过对应的reward反馈去做选择。一般情况下Q表格是一个已经训练好的表格不过我们也可以每进行一步就更新一下Q表格然后用下一个状态的Q值来更新这个状态的Q值即时序差分方法
- **P函数和R函数** P函数反应的是状态转移的概率,反应的环境的随机性R函数就是Reward function。但是我们通常处于一个未知的环境即P函数和R函数是未知的
- **Q表格型表示方法** 表示形式是一种表格形式,其中横坐标为 actionagent的行为纵坐标是环境的state其对应着每一个时刻agent和环境的情况并通过对应的reward反馈去做选择。一般情况下Q表格是一个已经训练好的表格不过我们也可以每进行一步就更新一下Q表格然后用下一个状态的Q值来更新这个状态的Q值即时序差分方法
- **时序差分Temporal Difference** 一种Q函数Q值的更新方式也就是可以拿下一步的 Q 值 $Q(S_{t+_1},A_{t+1})$ 来更新我这一步的 Q 值 $Q(S_t,A_t)$ 。完整的计算公式如下:$Q(S_t,A_t) \larr Q(S_t,A_t) + \alpha [R_{t+1}+\gamma Q(S_{t+1},A_{t+1})-Q(S_t,A_t)]$
- **SARSA算法** 一种更新前一时刻状态的单步更新的强化学习算法也是一种on-policy策略。该算法由于每次更新值函数需要知道前一步的状态(state),前一步的动作(action)、奖励(reward)、当前状态(state)、将要执行的动作(action),即 $(S_{t}, A_{t}, R_{t+1}, S_{t+1}, A_{t+1})$ 这几个值所以被称为SARSA算法。agent进行一次循环,都会用 $(S_{t}, A_{t}, R_{t+1}, S_{t+1}, A_{t+1})$ 对于前一步的Q值函数进行一次更新。
- **SARSA算法** 一种更新前一时刻状态的单步更新的强化学习算法也是一种on-policy策略。该算法由于每次更新值函数需要知道前一步的状态(state),前一步的动作(action)、奖励(reward)、当前状态(state)、将要执行的动作(action),即 $(S_{t}, A_{t}, R_{t+1}, S_{t+1}, A_{t+1})$ 这几个值所以被称为SARSA算法。agent进行一次循环,都会用 $(S_{t}, A_{t}, R_{t+1}, S_{t+1}, A_{t+1})$ 对于前一步的Q值函数进行一次更新。
## 2 Questions
- 构成强化学习MDP的四元组
- 构成强化学习MDP的四元组有哪些变量
状态、动作、状态转移概率和奖励分别对应SAPR后面有可能会加上个衰减因子构成五元组。
@@ -20,11 +20,15 @@
- 基于SARSA算法的agent的学习过程。
我们现在有环境有agent。每交互一次以后我们的agent会向环境输出action接着环境会反馈给agent当前时刻的state和reward。那么agent此时会实现两个方法1. 使用已经训练好的Q表格对应环境反馈的state和reward选取对应的action并输出。2.我们已经拥有了$(S_{t}, A_{t}, R_{t+1}, S_{t+1}, A_{t+1})$ 这几个值,并世界使用 $A_{t+1}$ 去更新我们的Q表格。
我们现在有环境有agent。每交互一次以后我们的agent会向环境输出action接着环境会反馈给agent当前时刻的state和reward。那么agent此时会实现两个方法
1. 使用已经训练好的Q表格对应环境反馈的state和reward选取对应的action进行输出。
2.我们已经拥有了$(S_{t}, A_{t}, R_{t+1}, S_{t+1}, A_{t+1})$ 这几个值,并直接使用 $A_{t+1}$ 去更新我们的Q表格。
- Q-learning和Sarsa的区别
Sarsa算法是Q-learning算法的改进。
Sarsa算法是Q-learning算法的改进。(这句话出自「神经网络与深度学习」的第 342 页可参考SARSA「on-line q-learning using connectionist systems」的 abstract 部分)
1. 首先Q-learning 是 off-policy 的时序差分学习方法Sarsa 是 on-policy 的时序差分学习方法。
@@ -37,7 +41,7 @@
- Sarsa的公式 $R_{t+1}+\gamma Q(S_{t+1}, A_{t+1})$
- Q-learning的公式$R_{t+1}+\gamma \underset{a}{\max} Q\left(S_{t+1}, a\right)$
Sarsa 实际上都是用自己的策略产生了 S,A,R,S',A' 这一条轨迹。然后拿着 $Q(S_{t+1},A_{t+1})$ 去更新原本的 Q 值 $Q(S_t,A_t)$。 但是 Q-learning 并不需要知道,我实际上选择哪一个 action ,它默认下一个动作就是 Q 最大的那个动作。
Sarsa 实际上都是用自己的策略产生了 S,A,R,S',A' 这一条轨迹。然后拿着 $Q(S_{t+1},A_{t+1})$ 去更新原本的 Q 值 $Q(S_t,A_t)$。 但是 Q-learning 并不需要知道,我实际上选择哪一个 action ,它默认下一个动作就是 Q 最大的那个动作。所以基于此Sarsa的action通常会更加“保守”、“胆小”而对应的Q-Learning的action会更加“莽撞”、“激进”。
- On-policy和 off-policy 的区别?