参考链接:https://morvanzhou.github.io/tutorials/machine-learning/reinforcement-learning/1-1-A-RL/

https://morvanzhou.github.io/tutorials/machine-learning/reinforcement-learning/1-1-B-RL-methods/

定义

强化学习是一类算法, 是让计算机实现从一开始什么都不知道, 通过不断地尝试, 从错误中学习, 最后找到规律, 学会了达到目的的方法. 这就是一个完整的强化学习过程. 实际中的强化学习例子有很多. 比如近期最有名的 Alpha go, 机器头一次在围棋场上战胜人类高手, 让计算机自己学着玩经典游戏 Atari, 这些都是让计算机在不断的尝试中更新自己的行为准则, 从而一步步学会如何下好围棋, 如何操控游戏得到高分。

Model-free和Model-based

Model-free在真实环境中学习,一步一步根据真实环境的反馈,并根据反馈采取下一步的行动。Model-based在前者的基础上可以对真实环境进行建模从而创建虚拟环境,模型可以在虚拟环境中进行强化。该模型M\mathcal{M}通过参数化η\eta来表示马尔科夫决策过程MDP<S,A,P,R>\mathcal{<S,A,P,R>}

  • S\mathcal{S}:状态空间
  • A\mathcal{A}:动作空间
  • P\mathcal{P}:状态转移概率P(st+1st,at)P(s_{t+1}|s_{t},a_{t})
  • R\mathcal{R}:奖励函数R(st,at)R(s_{t},a_{t})

模型M\mathcal{M}通过真实的experience{S1,A1,R1,...,RT}\{S_{1},A_{1},R_{1},...,R_{T}\}学习,这是一个有监督学习,所有的训练数据有如下表示:
S1,A1R2,S2S2,A2R3,S3......ST1,AT1RT,STS_{1},A_{1}\rightarrow R_{2},S_{2}\\ S_{2},A_{2}\rightarrow R_{3},S_{3}\\ ......\\ S_{T-1},A_{T-1}\rightarrow R_{T},S_{T}
学习s,ars,a \rightarrow r是一个回归问题,学习s,ass,a\rightarrow s'是一个概率密度估计问题,通过学习η\eta来减小误差。

  • 最简单的是查找表模型Table Lookup Model,是一个显式的MDP,根据真实经历组织一个查找表。 由此奖励和概率通过直接求平均和数数量可得到:
    P(ss,a)=1N(s,a)t=1T1(St,At,St+1=s,a,s)R(s,a)=1N(s,a)t=1T1(St,At=s,a)RtP(s'|s,a)=\frac{1}{N(s,a)}\sum_{t=1}^{T}1(S_{t},A_{t},S_{t+1}=s,a,s')\\ R(s,a)=\frac{1}{N(s,a)}\sum_{t=1}^{T}1(S_{t},A_{t}=s,a)R_{t}

Sample-based方法,使用model-free RL来抽样经历,这种方法更有效率。
强化学习概论2
model-based缺点:
model-based RL受限于近似的MDP,所以不能达到最优策略。当model不准确时,最终将是一个局部策略。解决方法:(1)当模型错误,使用model-free RL。(2)明确解释模型的不确定性。

Policy-based-RL与Value-based-RL

前者根据下一步所有行动的概率来选择应该采取的行动,即使概率最高的行动也未必会被选中;后者根据下一步所有行动产生的期望价值(Q)来选择采取的行动,选择Q值最高的行动执行。

Value-based-RL适合离散取值的行动,而连续取值的动作只能采取Policy-based-RL,可以基于概率密度函数取得概率。

基于概率有 Policy Gradients, 在基于价值有 Q learning, Sarsa 等

回合更新和单步更新

想象强化学习就是在玩游戏, 游戏回合有开始和结束. 回合更新指的是游戏开始后, 我们要等待游戏结束, 然后再总结这一回合中的所有转折点, 再更新我们的行为准则. 而单步更新则是在游戏进行中每一步都在更新, 不用等待游戏的结束, 这样就能边玩边学习。Monte-carlo learning 和基础版的 policy gradients 等 都是回合更新制, Qlearning, Sarsa, 升级版的 policy gradients 等都是单步更新制. 因为单步更新更有效率, 所以现在大多方法都是基于单步更新

在线学习和离线学习

在线学习, 就是指我必须本人在场, 并且一定是本人边玩边学习, 而离线学习是你可以选择自己玩, 也可以选择看着别人玩, 通过看别人玩来学习别人的行为准则,;离线学习 同样是从过往的经验中学习, 但是这些过往的经历没必要是自己的经历, 任何人的经历都能被学习. 或者也不必要边玩边学习, 可以白天先存储下来玩耍时的记忆, 然后晚上通过离线学习来学习白天的记忆。

在线学习比如Sarsa, 还有一种优化 Sarsa 的算法, 叫做 Sarsa lambda;最典型的离线学习就是 Q learning, 后来人也根据离线学习的属性, 开发了更强大的算法, 比如让计算机学会玩电动的 Deep-Q-Network.
强化学习概论2

相关文章: