文章目录
Reinforcement learning 综述
强化学习的分类
环境(Model-free,Model-based)
Model-free 的方法有很多, 像 Q learning, Sarsa, Policy Gradients 都是从环境中得到反馈然后从中学习. 而 model-based RL 只是多了一道程序, 为真实世界建模, 也可以说他们都是 model-free 的强化学习, 只是 model-based 多出了一个虚拟环境, 我们不仅可以像 model-free 那样在现实中玩耍,还能在游戏中玩耍, 而玩耍的方式也都是 model-free 中那些玩耍方式, 最终 model-based 还有一个杀手锏是 model-free 超级羡慕的. 那就是想象力。
Based(Policy-Based RL & Value-Based RL)
我们现在说的动作都是一个一个不连续的动作, 而对于选取连续的动作, 基于价值的方法是无能为力的. 我们却能用一个概率分布在连续动作中选取特定动作, 这也是基于概率的方法的优点之一. 那么这两类使用的方法又有哪些呢?基于概率这边, 有 Policy Gradients, 在基于价值这边有 Q learning, Sarsa 等. 而且我们还能结合这两类方法的优势之处, 创造更牛逼的一种方法, 叫做 Actor-Critic, actor 会基于概率做出动作, 而 critic 会对做出的动作给出动作的价值, 这样就在原有的 policy gradients 上加速了学习过程.
回合更新和单步更新
Monte-carlo learning 和基础版的 policy gradients 等 都是回合更新制, Qlearning, Sarsa, 升级版的 policy gradients 等都是单步更新制. 因为单步更新更有效率, 所以现在大多方法都是基于单步更新. 比如有的强化学习问题并不属于回合问题.
在线学习和离线学习
最典型的在线学习就是 Sarsa 了, 还有一种优化 Sarsa 的算法, 叫做 Sarsa lambda, 最典型的离线学习就是 Q learning, 后来人也根据离线学习的属性, 开发了更强大的算法, 比如让计算机学会玩电动的 Deep-Q-Network.
强化学习理论基础
马尔可夫决策过程(Markov Decision Processes,MDPs)
MDPs 简单说就是一个智能体(Agent)采取行动(Action)从而改变自己的状态(State)获得奖励(Reward)与环境(Environment)发生交互的循环过程。
MDP 的策略完全取决于当前状态(Only present matters),这也是它马尔可夫性质的体现。
其可以简单表示为 M = < S , A , P s , a , R > M = <S,A,P_{s,a},R> M=<S,A,Ps,a,R>
基本概念
1. s ∈ S s \in S s∈S:有限状态state集合,s表示某个特定状态
2. a ∈ A a \in A a∈A:有限动作action集合,a表示某个特定动作
3.Transition Model T ( S , a , S ′ ) ∼ P τ ( s ′ ∣ s , a ) T(S,a,S') \sim P_\tau(s'|s,a) T(S,a,S′)∼Pτ(s′∣s,a): Transition Model, 根据当前状态 s 和动作 a 预测下一个状态 s’,这里的 P τ P_\tau Pτ表示从 s 采取行动 a 转移到 s’ 的概率
4.Reward R ( s , a ) = E [ R t + 1 ∣ s , a ] R(s,a)=E[R_{t+1}|s,a] R(s,a)=E[Rt+1∣s,a] :表示 agent 采取某个动作后的即时奖励,它还有 R ( s , a , s ’ ) R(s, a, s’) R(s,a,s’), R ( s ) R(s) R(s) 等表现形式,采用不同的形式,其意义略有不同
5.Policy π ( s ) → a \pi(s) \rightarrow a π(s)→a: 根据当前 state 来产生 action,可表现为 a = π ( s ) a=\pi(s) a=π(s) 或 π ( a ∣ s ) = P [ a ∣ s ] \pi(a|s)=P[a|s] π(a∣s)=P[a∣s],后者表示某种状态下执行某个动作的概率
回报(Return):
U ( s o s 1 s 2 . . . ) U(s_o s_1 s_2 ...) U(sos1s2...) 与 折扣率(discount) γ ∈ [ 0 , 1 ] \gamma \in [0,1] γ∈[0,1]: U U U 代表执行一组 action 后所有状态累计的 reward 之和,但由于直接的 reward 相加在无限时间序列中会导致无偏向,而且会产生状态的无限循环。因此在这个 Utility 函数里引入 γ \gamma γ 折扣率这一概念,令往后的状态所反馈回来的 reward 乘上这个 discount 系数,这样意味着当下的 reward 比未来反馈的 reward 更重要,这也比较符合直觉。定义
U ( s o s 1 s 2 . . . ) = ∑ t = 0 ∞ γ t R ( s t ) 0 ≤ γ < 1 ≤ ∑ t = 0 ∞ γ t R m a x = R m a x 1 − γ U(s_o s_1 s_2 ...) = \sum_{t=0}^\infty \gamma^tR(s_t) \quad 0 \leq \gamma<1 \\ \qquad \qquad \leq \sum_{t=0}^\infty \gamma^tR_{max}= {R_{max} \over {1-\gamma}} U(sos1s2...)=t=0∑∞γtR(st)0≤γ<1≤t=0∑∞γtRmax=1−γRmax
由于我们引入了 discount,可以看到我们把一个无限长度的问题转换成了一个拥有最大值上限的问题。
强化学习的目的是 最大化长期未来奖励,即寻找最大的 U。(注:回报也作 G 表示)
基于回报(return),我们再引入两个函数
状态价值函数: v ( s ) = E [ U t ∣ S t = s ] v(s) = E[U_t|S_t=s] v(s)=E[Ut∣St=s],意义为基于 t 时刻的状态 s 能获得的未来回报(return)的期望,加入动作选择策略后可表示为 v π ( s ) = E π [ U t ∣ S t = s ] v_{\pi}(s) = E_{\pi}[U_t|S_t=s] vπ(s)=Eπ[Ut∣St=s]( U t = R t + 1 + γ R t + 2 + . . . + γ T − t − 1 R T U_t = R_{t+1}+\gamma R_{t+2} + ... + \gamma ^{T-t-1} R_T Ut=Rt+1+γRt+2+...+γT−t−1RT)
动作价值函数: q π = E π [ U t ∣ S t = s , A t = a ] q_\pi = E_\pi[U_t|S_t=s,A_t=a] qπ=Eπ[Ut∣St=s,At=a],意义为基于 t 时刻的状态 s,选择一个 action 后能获得的未来回报(return)的期望。价值函数用来衡量某一状态或动作-状态的优劣,即对智能体来说是否值得选择某一状态或在某一状态下执行某一动作。
MDP 求解
我们需要找到最优的策略使未来回报最大化,求解过程大致可分为两步,具体内容会在后面展开
1.预测:给定策略,评估相应的状态价值函数和状态-动作价值函数
2.行动:根据价值函数得到当前状态对应的最优动作
Bellman期望方程
Bellman方程的分析
为了更加了解方程中期望的具体形式,可以见下图,第一层的空心圆代表当前状态(state),向下连接的实心圆代表当前状态可以执行两个动作,第三层代表执行完某个动作后可能到达的状态 s’。
根据上图得出状态价值函数公式:
v π ( s ) = E [ U t ∣ S t = s ] = ∑ a ∈ A π ( a ∣ s ) ( R s a + γ ∑ s ′ ∈ S P s s ′ a v π ( s ′ ) ) v_\pi(s)=E[U_t|S_t=s]= \sum_{a \in A}\pi(a|s)(R_s^a+\gamma\sum_{s' \in S}P_{ss'}^av_\pi(s')) vπ(s)=E[Ut∣St=s]=∑a∈Aπ(a∣s)(Rsa+γ∑s′∈SPss′avπ(s′))
其中, P s s ′ a = P ( S t + 1 = s ′ ∣ S t = s , A t = a ) P_{ss'}^a=P(S_{t+1}=s'|S_t=s,A_t=a) Pss′a=P(St+1=s′∣St=s,At=a)
上式中策略 π \pi π 是指给定状态 s 的情况下,动作 a 的概率分布,即 π ( a ∣ s ) = P ( a ∣ s ) \pi(a|s)=P(a|s) π(a∣s)=P(a