参考链接: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} M通过参数化 η \eta η来表示马尔科夫决策过程MDP < S , A , P , R > \mathcal{<S,A,P,R>} <S,A,P,R>
- S \mathcal{S} S:状态空间
- A \mathcal{A} A:动作空间
- P \mathcal{P} P:状态转移概率 P ( s t + 1 ∣ s t , a t ) P(s_{t+1}|s_{t},a_{t}) P(st+1∣st,at)
- R \mathcal{R} R:奖励函数 R ( s t , a t ) R(s_{t},a_{t}) R(st,at)
模型
M
\mathcal{M}
M通过真实的experience
{
S
1
,
A
1
,
R
1
,
.
.
.
,
R
T
}
\{S_{1},A_{1},R_{1},...,R_{T}\}
{S1,A1,R1,...,RT}学习,这是一个有监督学习,所有的训练数据有如下表示:
S
1
,
A
1
→
R
2
,
S
2
S
2
,
A
2
→
R
3
,
S
3
.
.
.
.
.
.
S
T
−
1
,
A
T
−
1
→
R
T
,
S
T
S_{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}
S1,A1→R2,S2S2,A2→R3,S3......ST−1,AT−1→RT,ST
学习
s
,
a
→
r
s,a \rightarrow r
s,a→r是一个回归问题,学习
s
,
a
→
s
′
s,a\rightarrow s'
s,a→s′是一个概率密度估计问题,通过学习
η
\eta
η来减小误差。
- 最简单的是查找表模型Table Lookup Model,是一个显式的MDP,根据真实经历组织一个查找表。 由此奖励和概率通过直接求平均和数数量可得到:
P ( s ′ ∣ s , a ) = 1 N ( s , a ) ∑ t = 1 T 1 ( S t , A t , S t + 1 = s , a , s ′ ) R ( s , a ) = 1 N ( s , a ) ∑ t = 1 T 1 ( S t , A t = s , a ) R t P(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} P(s′∣s,a)=N(s,a)1t=1∑T1(St,At,St+1=s,a,s′)R(s,a)=N(s,a)1t=1∑T1(St,At=s,a)Rt
Sample-based方法,使用model-free RL来抽样经历,这种方法更有效率。
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.