Update chapter3_questions&keywords.md

This commit is contained in:
David Young
2021-02-04 15:18:30 +08:00
committed by GitHub
parent ddee7c6472
commit 4d8c1886d4

View File

@@ -50,3 +50,45 @@
1. Sarsa 就是一个典型的 on-policy 策略,它只用一个 $\pi$ ,为了兼顾探索和利用,所以它训练的时候会显得有点胆小怕事。它在解决悬崖问题的时候,会尽可能地离悬崖边上远远的,确保说哪怕自己不小心探索了一点了,也还是在安全区域内不不至于跳进悬崖。
2. Q-learning 是一个比较典型的 off-policy 的策略,它有目标策略 target policy一般用 $\pi$ 来表示。然后还有行为策略 behavior policy用 $\mu$ 来表示。它分离了目标策略跟行为策略。Q-learning 就可以大胆地用 behavior policy 去探索得到的经验轨迹来去优化我的目标策略。这样子我更有可能去探索到最优的策略。
3. 比较 Q-learning 和 Sarsa 的更新公式可以发现Sarsa 并没有选取最大值的 max 操作。因此Q-learning 是一个非常激进的算法,希望每一步都获得最大的利益;而 Sarsa 则相对非常保守,会选择一条相对安全的迭代路线。
## 3 Something About Interview
- 高冷的面试官同学你能否简述on-policy和off-policy的区别
答: off-policy和on-policy的根本区别在于生成样本的policy和参数更新时的policy是否相同。对于on-policy行为策略和要优化的策略是一个策略更新了策略后就用该策略的最新版本对于数据进行采样对于off-policy使用任意的一个行为策略来对于数据进行采样并利用其更新目标策略。如果举例来说Q-learning在计算下一状态的预期收益时使用了max操作直接选择最优动作而当前policy并不一定能选择到最优的action因此这里生成样本的policy和学习时的policy不同所以Q-learning为off-policy算法相对应的SARAS则是基于当前的policy直接执行一次动作选择然后用这个样本更新当前的policy因此生成样本的policy和学习时的policy相同所以SARAS算法为on-policy算法。
- 高冷的面试官小同学能否讲一下Q-Learning最好可以写出其 $Q(s,a)$ 的更新公式。另外它是on-policy还是off-policy为什么
答: Q-learning是通过计算最优动作值函数来求策略的一种时序差分的学习方法其更新公式为
$$
Q(s, a) \larr Q(s, a) + \alpha [r(s,a) + \gamma \max_{a'} Q(s', a') - Q(s, a)]
$$
其是off-policy的由于是Q更新使用了下一个时刻的最大值所以我们只关心哪个动作使得 $Q(s_{t+1}, a)$ 取得最大值,而实际到底采取了哪个动作(行为策略),并不关心。这表明优化策略并没有用到行为策略的数据,所以说它是 off-policy 的。
- 高冷的面试官小朋友能否讲一下SARSA最好可以写出其Q(s,a)的更新公式。另外它是on-policy还是off-policy为什么
SARSA可以算是Q-learning的改进这句话出自「神经网络与深度学习」的第 342 页可参考SARSA「on-line q-learning using connectionist systems」的 abstract 部分),其更新公式为:
$$
Q(s, a) \larr Q(s, a) + \alpha [r(s,a) + \gamma Q(s', a') - Q(s, a)]
$$
其为on-policy的SARSA必须执行两次动作得到 $(s,a,r,s',a') $才可以更新一次;而且 $a'$ 是在特定策略 $\pi$ 的指导下执行的动作,因此估计出来的 $Q(s,a)$ 是在该策略 $\pi$ 之下的Q-value样本生成用的 $\pi$ 和估计的 $\pi$ 是同一个因此是on-policy。
- 高冷的面试官请问value-based和policy-based的区别是什么
答:
1. 生成policy上的差异前者随机后者确定。Value-Base中的 action-value估计值最终会收敛到对应的true values通常是不同的有限数可以转化为0到1之间的概率因此通常会获得一个确定的策略deterministic policy而Policy-Based不会收敛到一个确定性的值另外他们会趋向于生成optimal stochastic policy。如果optimal policy是deterministic的那么optimal action对应的性能函数将远大于suboptimal actions对应的性能函数性能函数的大小代表了概率的大小。
2. 动作空间是否连续前者离散后者连续。Value-Base对于连续动作空间问题虽然可以将动作空间离散化处理但离散间距的选取不易确定。过大的离散间距会导致算法取不到最优action会在这附近徘徊过小的离散间距会使得action的维度增大会和高维度动作空间一样导致维度灾难影响算法的速度而Policy-Based适用于连续的动作空间在连续的动作空间中可以不用计算每个动作的概率而是通过Gaussian distribution 正态分布选择action。
3. value-based例如Q-learning是通过求解最优值函数间接的求解最优策略policy-based例如REINFORCEMonte-Carlo Policy Gradient等方法直接将策略参数化通过策略搜索策略梯度或者进化方法来更新策略的参数以最大化回报。基于值函数的方法不易扩展到连续动作空间并且当同时采用非线性近似、自举和离策略时会有收敛性问题。策略梯度具有良好的收敛性证明。
4. 补充:对于值迭代和策略迭代:策略迭代。它有两个循环,一个是在策略估计的时候,为了求当前策略的值函数需要迭代很多次。另外一个是外面的大循环,就是策略评估,策略提升这个循环。值迭代算法则是一步到位,直接估计最优值函数,因此没有策略提升环节。
- 高冷的面试官:请简述以下时序差分(Temporal DifferenceTD)算法。
TD算法是使用广义策略迭代来更新Q函数的方法核心使用了自举bootstrapping即值函数的更新使用了下一个状态的值函数来估计当前状态的值。也就是使用下一步的 $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})]
$$