百度PARL强化学习入门7日营
笔记
强化学习初探
强化学习(Reinforcement Learning) 是机器学习的一个子领域,与监督学习以及非监督学习是平行的概念。与监督学习和非监督学习不同,强化学习并没有一个已经获得到的数据集,而是需要通过自身(agent)与环境(environment)的不停交互获得一种最佳的决策方案(policy)。强化学习通常应用在序列化决策问题上。以下是一个对于监督学习与强化学习framework的异同的对比1。




除了agent以及environment,强化学习包含4个子要素:策略(policy),收益(reward),价值函数(value function) 以及对于环境的建模(model)。基于对这些子要素的不同估测方法,我们通常可以把强化学习分为Model-Based以及Model-Free。这两种方法的区别在于是否对于环境进行建模。这里贴一段Sutton书里面对于这两个概念的区分的解释:
The fourth and final element of some reinforcement learning systems is a model of the environment. This is something that mimics the behavior of the environment, or more generally, that allows inferences to be made about how the environment will behave. For example, given a state and action, the model might predict the resultant next state and next reward. Models are used for planning, by which we mean any way of deciding on a course of action by considering possible future situations before they are actually experienced. Methods for solving reinforcement learning problems that use models and planning are called model-based methods, as opposed to simpler model-free methods that are explicitly trial-and-error learners—viewed as almost the opposite of planning.
可以看到,Model-Free的优势在于可以生成极为大量的数据,而通过这些 ( s , a , r , s ′ , a ′ ) (s, a, r, s', a') (s,a,r,s′,a′) 的数据,我们就可以采用深度学习模型来进行训练,这一领域的研究也是目前大多数基于神经网络深度学习的深度强化模型的关注点。但是DRL由于数据的奖励通常非常稀疏(low data efficiency),目前来看还只能局限在环境模型比较简单的问题中,比如打游戏,控制机械手等。在一些更为复杂的问题上,比如在线推荐系统,很多时候还是需要借助Model-Based的模型。如何能够基于数据来构建更好的simulator来模拟环境从而帮助模型能够更好的适应更为复杂的环境是目前的一个研究热点。
另外一种划分强化学习模型的方式是基于价值的(Value-Based)和基于策略的(Policy-Based)。这两类方法里面的典型模型分别是DQN和Policy Gradient(其中我们通常使用的是REINFORCE模型)。Value-Based方法通常是对于一个 ( s , a ) (s, a) (s,a) 对估计其对应的value,再根据这个估测得到的value值进行决策。Policy-Based的方法省去了对于value的估计,每次直接对于目标函数(长期回报值Return)求其策略并使得参数沿着梯度上升的方向更新,就可以提升策略了,通过数学推导我们可以发现,Policy Gradient其实是一种最大化似然的思想,对于输入的状态( s s s)直接预测其对应的动作( a a a)。Value-Based的方法一般用在离散的动作空间上,Policy-Based的方法一般用在连续的动作空间上。
在本次的百度PARL的强化学习训练营中,主要覆盖了Sarsa,Q-learning,Monte-Carlo Policy-Gradient(REINFORCE),DQN 以及 DDPG。通过简单的理论讲解搭配相应的环境并利用PARL2框架训练模型。

表格型方法 (Tabular Solution Methods)
作为一开始研究的强化学习算法,我们尽量压缩不必要的干扰。我们考虑状态空间和动作空间都很小的时候的情况。此时我们可以建立一个 ∣ S ∣ × ∣ A ∣ |S| \times |A| ∣S∣×∣A∣ 的表格来记录每个 ( s , a ) (s, a) (s,a) 对应的我们估计的价值。通过不断的在训练过程中迭代更新这些对于value的估计值,最终我们理论上可以获得确切的value function和最优策略。这类方法最简单的例子是多臂老虎机问题(Multi-armed Bandits)。这种模型在许多场景下是有实际应用价值的,比如在推荐系统中。不过这里我们并没有涉及这个模型。这里我们首先讨论一下MDP (finite Markov decision process),其次讨论一下两种最为基本的方法Sarsa以及Q-learning。这两种算法的基本思想上非常相似,去别只在于on-policy和off-policy。
MDP和TD方法
一般情况下我们研究的问题是一种序列性决策问题。这类问题的一个最重要的假设就是马尔科夫性。

简单来说,MDP通过P函数(probability function)和R函数(reward function)刻画了状态转移概率以及每个 ( s , a ) (s, a) (s,a) 对应的value和每个状态( s s s) 对应的最优value。如果P函数和R函数已知的话,那么就可以采用Model-Based的方法(如 Dynamic Programming)来解。如果P函数和R函数未知,那么通过在训练过程中不断的迭代更新Q value,我们也可以进行决策。
对于Q-value,它是一种长期回报的期望,也就是说我们不仅仅需要考虑当前立即可以获得到的reward,同时也要考虑一定时间间隔之后的远期可以收获到的reward。为了将注意力放在更近的位置,以防难以收敛,我们还需要引入衰减因子 γ \gamma γ。
那么如何更新这些Q-value? 在强化学习中我们采用时序差分法(Temporal Difference, 简称TD法) 以及Bellman公式,利用下一状态的Q-value来更新这一步的Q-value。首先我们来看状态-行动值函数(state-action value function)的Bellman方程的形式:
q π ( s , a ) = ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ ∑ a ′ π ( a ′ ∣ s ′ ) q π ( s ′ , a ′ ) ] = ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ v π ( s ′ ) ] q_{\pi}(s,a) = \sum_{s',r}{p(s',r | s, a)[r + \gamma \sum_{a'}{\pi(a'|s')q_{\pi}(s',a')}]} = \sum_{s',r} {p(s',r|s,a)[r+\gamma v_{\pi}(s')]} qπ(s,a)=s′,r∑p(s′,r∣s,a)[r+γa′∑π(a′∣s′)qπ(s′,a′)]=s′,r∑p(s′,r∣s,a)[r+γvπ(s′)]
可以看到,当前状态 ( s , a ) (s,a) (s,a)下的 q q q 值可以与下一个状态 ( s ′ , a ′ ) (s',a') (s′,a′)下的 q q q 值建立递推联系。类似的,当前状态的value也可以与下一时刻的value建立联系。结合蒙特卡洛的思想,我们可以把这种递推联系写成一种单步更新的形式,这样也就得到了TD learning(时序差分学习)的最基本形式:
q ( s t , a t ) ← q ( s t , a t ) + α [ r t + 1 + γ q ( s t + 1 , a t + 1 ) − q ( s t , a t ) ) ] q(s_t, a_t) \leftarrow q(s_t, a_t) + \alpha [r_{t+1} + \gamma q(s_{t+1}, a_{t+1}) - q(s_t, a_t))] q(st

最低0.47元/天 解锁文章
533

被折叠的 条评论
为什么被折叠?



