MDP
- (S, A, P, R,r)五元组
Model-based
- 当我们知道 P 函数和 R 函数时,我们就说这个 MDP 是已知的,可以通过 policy iteration 和 value iteration 来找最佳的策略。
- 如果知道这些状态转移概率和奖励函数的话,我们就说这个环境是已知的,因为我们是用这两个函数去描述环境的。我们其实可以用动态规划去计算,很多强化学习的经典算法都是 model-free 的,就是环境是未知的。
Model-free
- 我们是处在一个未知的环境里的,也就是这一系列的决策的 P 函数和 R 函数是未知的,这就是model-based 跟 model-free的一个最大的区别。
- 强化学习就是可以用来解决用完全未知的和随机的环境。强化学习要像人类一样去学习,一条路一条路地去尝试一下,先走一条路,慢慢地了解哪个状态会更好
- 我们用价值函数 V (s) 来代表这个状态是好的还是坏的。
- 用 Q 函数来判断说在什么状态下做什么动作能够拿到最大奖励,用 Q函数来表示这个状态-动作值。
- Policy iteration 和 value iteration 都需要得到环境的转移和奖励函数,在很多实际的问题中,MDP 的模型有可能是未知的,也有可能模型太大了,不能进行迭代的计算。比如 Atari游戏、围棋、控制直升飞机、股票交易等问题,这些问题的状态转移太复杂了。
- 在这种情况下,我们使用 model-free 强化学习的方法来解。Model-free 没有获取环境的状态转移和奖励函数,我们让 agent 跟环境进行交互,采集到很多的轨迹数据,agent 从轨迹中获取信息来改进策略,从而获得更多的奖励。
Q-table
- 在多次尝试和熊打交道之后,人类就可以对熊的不同的状态去做出判断,我 们可以用状态动作价值来表达说在某个状态下,为什么动作 1 会比动作 2好,因为动作 1 的价值比动作 2 要高,这个价值就叫 Q 函数。
- 这张表格里面 Q 函数的意义就是我选择了这个动作之后,最后面能不能成功,就是我需要去计算在这个状态下,我选择了这个动作,后续能够一共拿到多少总收益。
- 为什么强化学习需要去学习远期的收益,因为在现实世界中奖励往往是延迟的。所以我们一般会从当前状态开始,把后续有可能会收到所有收益加起来计算当前动作的 Q 的价值,让 Q 的价值可以真正地代表当前这个状态下,动作的真正的价值。
- 折扣因子:但有的时候把目光放得太长远不好,如果是一个持续的没有尽头的任务,即持续式任务,你把未来的收益全部相加,作为当前的状态价值就很不合理。
Model-free Prediction
我们可以通过以下两种方法来估计某个给定策略的价值:
- Monte Carlo policy evaluation (蒙特卡洛)
- Temporal Difference(TD) learning(时序差分)
蒙特卡洛
- MC 仿真:我们可以采样大量的轨迹,计算所有轨迹的真实回报,然后进行平均。
- MC 是用 经验平均回报 (empirical mean return) 的方法来估计。
- MC 方法不需要 MDP 的转移函数和奖励函数,并且不需要像动态规划那样用 bootstrapping 的方
法。 - MC 的局限性:只能用在有终止的 MDP 。
- 我们可以把经验均值转换成增量均值
- Gt–v(St)就是增值
DP和MC的区别
MC相比DP的优势
时序差分
TD和MC的区别
- TD 能够在知道结果之前就开始学习,相比 MC,其更快速、灵活。
- 通过调整步数,可以进行一个 MC 和 TD 之间的 trade-off,如果 n = ∞,即整个游戏
结束过后,再进行更新,TD 就变成了 MC。