赞
踩
强化学习(Reinforcement Learning,RL),是指一类从(与环境)交互中不断学习的问题以及解决这类问题的方法. 强化学习问题可以描述为一个智能体从与环境的交互中不断学习以完成特定目标(比如取得最大奖励值). 和深度学习类似,强化学习中的关键问题也是贡献度分配问题,每一个动作并不能直接得到监督信息,需要通过整个模型的最终监督信息(奖励)得到,并且有一定的延时性.
例子:
两个对象:
五个基本元素:
交互序列:
s0,a0,s1,r1,a1,⋯,st−1,rt−1,at−1,st,rt,⋯
其中rt=r(st−1,at−1,st)是第t 时刻的即时奖励
马尔可夫决策过程(Markov Decision Process,MDP)在马尔可夫过程中加入一个额外的变量:动作a,即下一个时刻的状态st+1 和当前时刻的状态st 以及动作at 相关(一阶马尔可夫),
p(st+1|st,at,⋯,s0,a0)=p(st+1|st,at)
其中p(st+1|st,at)为状态转移概率.
给定策略π(a|s),马尔可夫决策过程的一个轨迹(Trajectory):
τ=s0,a0,s1,γ1,a1,⋯,sT−1,aT−1,sT,γT
其概率为:
p(τ)=p(s0)∏T−1t=0π(at|st)p(st+1|st,at).
轨迹τ 一个回合(Episode)或试验(Trial)所收到的累积奖励:
G(τ)=∑T−1t=0γ(st,at,st+1)
引入一个折扣率来降低远期回报的权重. 折扣回报(Discounted Return):
G(τ)=∑T−1t=0γtγt+1
γ∈[0,1] 是折扣率. 当γ 接近于0 时,智能体更在意短期回报;而当γ 接近于1 时,长期回报变得更重要.
最大化期望回报(Expected Return):
J(θ)=Eτ∼pθ(τ)[G(τ)]=Eτ∼pθ(τ)[∑T−1t=0γtγt+1]
状态值函数(V函数)
Vπ(s) 称为状态值函数(State Value Function),表示从状态s 开始(到结束),执行策略π 得到的期望总回报
Vπ(s)=Eτ∼p(τ)[∑T−1t=0γtγt+1|τs0=s]
贝尔曼方程(Bellman Equation)(动态规划),表示当前状态的值函数可以通过下个状态的值函数来计算.
递推公式:
如果给定策略π(a|s),状态转移概率p(s′|s,a) 和奖励γ(s,a,s′),我们就可以通过迭代的方式来计算Vπ(s). 由于存在折扣率,迭代一定步数后,每个状态的值函数就会固定不变.
状态-动作值函数(Q 函数)
Qπ(s,a)=Es′∼p(s′|s,a)[γ(s,a,s′)+γVπ(s′)]
状态值函数Vπ(s) 是Q 函数Qπ(s,a) 关于动作a 的期望,
Vπ(s)=Ea∼π(a|s)[Qπ(s,a)]
Q函数的贝尔曼方程:
值函数的作用→优化:
假设在状态s,有一个动作a∗使得Qπ(s,a∗)>Vπ(s),说明执行动作a∗的回报比当前的策略π(a|s) 要高,我们就可以调整参数使得策略中执行动作a∗的概率p(a∗|s) 增加.
神经网络建模策略π(a|s) 和值函数Vπ(s),Qπ(s,a)
先随机初始化一个策略,计算该策略的值函数,并根据值函数来设置新的策略,然后一直反复迭代直到收敛.
基于值函数的策略学习方法中最关键的是如何计算策略π的值函数,有动态规划或蒙特卡罗两种计算方式.
通过贝尔曼方程来迭代计算其值函数. 这种模型已知的强化学习算法也称为基于模型的强化学习(Model-Based Reinforcement Learning)算法,这里的模型就是指马尔可夫决策过程.
限制:
基于采样的学习算法也称为模型无关的强化学习(Model-Free Reinforcement Learning)算法.
方法
Q 函数Qπ(s,a) 为初始状态为s,并执行动作a 后所能得到的期望总回报,可以写为:
Qπ(s,a)=Eτ∼p(τ)[G(τs0=s,a0=a)]
其中τs0=s,a0=a 表示轨迹τ 的起始状态和动作为s, a.
如果模型未知,Q 函数可以通过采样来进行计算,这就是蒙特卡罗方法.
假设我们进行N 次试验,得到N 个轨迹τ(1),τ(2),⋯,τ(N),其总回报分别为G(τ(1)),G(τ(2)),⋯,G(τ(N)). Q 函数可以近似为
Qπ(s,a)≈ˆQπ(s,a)=1N∑Nn=1G(τ(n)s0=s,a0=a)
在近似估计出Q 函数之后,就可以进行策略改进. 然后在新的策略下重新通过采样来估计Q 函数,并不断重复,直至收敛.
Exploitation and Exploration
每次选择动作π(s) 的概率为1−ϵ+ϵ|A|,其他动作的概率为 ϵ|A|.
同策略(on-policy)和异策略(off-policy)
同策略:
在蒙特卡罗方法中,如果采样策略是πϵ(s),即ϵ−Greedy,不断改进策略也是πϵ(s) 而不是目标策略π(s). 这种采样与改进策略相同(即都是πϵ(s))的强化学习方法叫做同策略(On-Policy)方法.
异策略:
如果采样策略是πϵ(s),而优化目标是策略π,可以通过重要性采样,引入重要性权重来实现对目标策略π 的优化这种采样与改进分别使用不同策略的强化学习方法叫做异策略(Off-Policy)方法.
蒙特卡罗方法一般需要拿到完整的轨迹,才能对策略进行评估并更新模型,因此效率也比较低.
时序差分学习(Temporal-Difference Learning)方法是蒙特卡罗方法的一种改进,通过引入动态规划算法来提高学习效率. 时序差分学习方法是模拟一段轨迹,每行动一步(或者几步),就利用贝尔曼方程来评估行动前状态的价值. 当时序差分学习方法中每次更新的动作数为最大步数时,就等价于蒙特卡罗方法.
将蒙特卡罗方法中Q 函数ˆQπ(s,a)的估计改为增量计算的方式,假设第N 次试验后值函数ˆQπN(s,a) 的平均为:
ˆQπN(s,a)=1N∑Nn=1G(τ(n)s0=s,a0=a)
.
值函数ˆQπ(s,a) 在第N 试验后的平均等于第N − 1 试验后的平均加上一个增量. 更一般性地,我们将权重系数1N改为一个比较小的正数α.
Q函数更新:
时序差分学习是强化学习的主要学习方法,其关键步骤就是在每次迭代中优化Q 函数来减少现实γ+γQ(s′,a′) 和预期Q(s, a) 的差距.
时序差分学习方法和蒙特卡罗方法的主要不同为:
- 蒙特卡罗方法需要一条完整的路径才能知道其总回报,也不依赖马尔可夫性质,较大方差;
- 而时序差分学习方法只需要一步,其总回报需要通过马尔可夫性质来进行近似估计,小方差,不精确.
SARSA (On-Policy)算法(State Action Reward State Action)
由于Bellman方程:
更新ˆQπ(s,a) 只需要知道当前状态s 和动作a、奖励γ(s,a,s′)、下一步的状态s’ 和动作a’.
其采样和优化的策略都是πϵ,即ϵ−Greedy方法,所以为On-Policy算法.
Q-Learning
相当于让Q(s, a) 直接去估计最优状态值函数Q∗(s,a).
与SARSA 算法不同,Q 学习算法不通过πϵ,即ϵ−Greedy来选下一步的动作a′,而是直接贪婪选最优的Q 函数,因此更新后的Q 函数是关于策略π 的,而不是策略πϵ 的.
为了在连续的状态和动作空间中计算值函数Qπ(s,a),我们可以用一个函数Qϕ(s,a) 来表示近似计算,称为值函数近似(Value Function Approximation).
函数Qϕ(s,a)通常是一个参数为ϕ的函数,比如神经网络,输出为一个实数,称为Q 网络(Q-network).
目标函数:
这个目标函数存在两个问题:
深度Q 网络采取两个措施:
Q Learning连续Action Space
强化学习的目标是学习到一个策略πθ(a|s) 来最大化期望回报.
一种直接的方法是在策略空间直接搜索来得到最佳策略,称为策略搜索(Policy Search).
策略搜索本质是一个优化问题,可以分为基于梯度的优化和无梯度优化.
策略搜索和基于值函数的方法相比,策略搜索可以不需要值函数,直接优化策略. 参数化的策略能够处理连续状态和动作,可以直接学出随机性策略.
具体推导——梯度上升最大化目标函数:
结合随机梯度上升算法,可以每次采集一条轨迹,计算每个时刻的梯度并更新参数,这称为REINFORCE 算法
带基准线的 REINFORCE 算法:
REINFORCE 算法的一个主要缺点是不同路径之间的方差很大,导致训练不稳定,这是在高维空间中使用蒙特卡罗方法的通病.
当Reward一直为正数时,可能会因采样出现问题。假设有三个action,a,b,c采取的结果得到的reward都是正的,这个正有大有小,假设a和c的Reward比较大,b的Reward比较小,经过update之后,还是会让b出现的几率变小,a、c出现的几率变大。但是sampling时,有可能只sample b和c,这样b、c几率都会增加,a没有sample到,即使其Reward较大,其采样到的概率就自动减少。
固定的Baseline:
可学习的Baseline:
为了减小策略梯度的方差,我们引入一个和动作at无关的基准函数
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。