EasyRL强化学习算法入门与实践_第1页
EasyRL强化学习算法入门与实践_第2页
EasyRL强化学习算法入门与实践_第3页
EasyRL强化学习算法入门与实践_第4页
EasyRL强化学习算法入门与实践_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

EasyRL强化学习算法入门与实践技术创新,变革未来EasyRL简介01

马尔可夫决策过程马尔可夫决策过程定义与样例𝑆,

𝐴,

𝑇,

𝑅一个马尔可夫决策过程(MDP)是一个四元组𝑀

=状态空间𝑆:所有状态的集合动作空间𝐴:所有动作的集合状态转移𝑇:状态转移概率𝑃 𝑠′𝑠,

𝑎奖励函数𝑅:将𝑆

×

𝐴

×

𝑆中元素映射为实数信号的函数𝑅 𝑠,𝑎,

𝑠′一个简单的MDP样例(图片来源)状态空间𝑆

= 𝑠0,𝑠1,

𝑠2动作空间𝐴

= 𝑎0,

𝑎1状态转移𝑇:𝒔𝒂𝒔′𝑷 𝒔′𝒔,

𝒂𝑠0𝑎0𝑠00.5𝑠0𝑎0𝑠20.5𝑠0𝑎1𝑠21.0𝑠1𝑎0𝑠00.7𝑠1𝑎0𝑠10.1𝑠1𝑎0𝑠20.2⋯奖励函数𝑅:𝒔𝒂𝒔′𝑹 𝒔,𝒂,

𝒔′𝑠1𝑎0𝑠0+5𝑠2𝑎1𝑠0−1⋯注意𝑇定义的是条件概率∀𝑠,𝑎,

𝑠′∈𝑆𝑃𝑠′

𝑠,

𝑎 =

1马尔可夫决策过程求解MDP𝑆,

𝐴,

𝑇,

𝑅一个马尔可夫决策过程(MDP)是一个四元组𝑀

=状态空间𝑆:所有状态的集合动作空间𝐴:所有动作的集合状态转移𝑇:状态转移概率𝑃 𝑠′𝑠,

𝑎奖励函数𝑅:将𝑆

×

𝐴

×

𝑆中元素映射为实数信号的函数𝑅 𝑠,𝑎,

𝑠′求解MDP寻找最优策略𝑎

𝜋∗ 𝑎|𝑠 使得最大化期望的累积奖𝑡=0励

∞𝛾𝑡

𝑟𝑡,其中𝛾

∈ 0,1 是衰减因子不同策略交互产生的样本分布不同(vs监督学习)利用与探索的平衡智能体按照策略𝑎

𝜋 𝑎|𝑠

决策环境依照依据𝑇,

𝑅给出反馈状态𝑠𝑡动作𝑎𝑡奖励𝑟𝑡交互生成样本Finite-horizon:𝑠0,

𝑎0,

𝑟0,

,

𝑠𝑇−1,

𝑎𝑇−1,

𝑟𝐻−1,

𝑠𝐻例如围棋,Atari游戏等结束,迷宫走到出口Infinite-horizon:𝑠0,

𝑎0,

𝑟0,

𝑠1,

𝑎1,

𝑟1,

…可以将前者视为𝑟𝑡

=

0,

𝑠𝑡

=

𝑠𝐻

,

𝑡

𝐻马尔可夫决策过程更多样例围棋是一个典型的MDP状态空间𝑆:所有棋盘的状态

黑,白,空

19×19动作空间𝐴:以对手执黑为例,𝐴为所有合法的落白子位置(记作𝐴 𝑠 )状态转移𝑇:由己方和对方落子位置,确定性地按规则变化棋盘奖励函数𝑅:取值为0直至胜(+1)平(+0)负(−1)走迷宫是一个典型的MDP状态空间𝑆:所有合法位置动作空间𝐴:东南西北四个方向状态转移𝑇:(例如图示)往北走会分别有0.1的概率往东或西走如果动作的目标是黑色网格则停留在原网格奖励函数𝑅:每进入一个网格取得网格上所示分数(图片来源)(图片来源)马尔可夫决策过程gym环境样例Classiccontrol

Pendulum状态空间𝑆:ℜ3其中每个分量表示木棍角度𝜃相关的信息动作空间𝐴:

−2,2 表示作用给木棍的力状态转移𝑇:环境内部物理引擎模拟木棍运动奖励函数𝑅:根据木棍偏离正上方直立的角度惩罚Atari

Pong状态空间𝑆:210

×

160

×

3的图片动作空间𝐴:['NOOP',

'FIRE',

'RIGHT',

'LEFT',

'RIGHTFIRE',

'LEFTFIRE']状态转移𝑇:环境内部物理引擎模拟乒乓球运动奖励函数𝑅:球落在对方/己方底线+1/−1马尔可夫决策过程从贪心策略到动态规划贪心策略给定任意𝑠,选取动作𝑎

=

𝑎𝑟𝑔𝑚𝑎𝑥𝑎𝑅

𝑠,

𝑎如上图贪心策略并不是最优策略动态规划求解最长公共子序列状态空间𝑆:当前𝐴串与𝐵串下标

𝑖,

𝑗动作空间𝐴:

𝑖

1,

𝑗

1,

𝑖

1

𝑗

1

三种动作状态转移𝑇:下标按动作更新奖励函数𝑅:若𝐴

𝑖 ==

𝐵[𝑗]且动作为𝑖

1

𝑗

1则得到+1否则为0从后往前根据表格中数值贪心地做决策,求解出最长公共子序列“MJAU”𝑠0𝑠1𝑠2𝑎0,

+1𝑎1,

+10𝑎0,

+1𝑎1,

+1𝑎0,

0𝑎1,

0这张表格是什么含义?为什么在任意状态对该表贪心地决策能求出最优解?有一般性吗?为什么计算表格与推理决策的方向相反?马尔可夫决策过程这张表是𝑉∗函数计算出𝑉∗/𝑄∗,贪心地根据𝑄∗决策对应最优策略𝜋∗∗因为T,

𝑅已知,根据𝑉

的方程,易于从后往前计算𝑉∗𝑉∗0,0 =

0𝑉∗

𝑖,

𝑗 =max0

+

𝑉∗ 𝑖−

1,

𝑗 ,0

+

𝑉∗ 𝑖,𝑗

1 ,

𝐴

𝑖 ==值函数与贝尔曼方程状态值函数𝑉𝜋

𝑠=

𝜋

𝑎|𝑠 𝑃𝑠′|𝑠,

𝑎𝑎∈𝐴 𝑠′∈𝑆𝑅𝑠,

𝑎,

𝑠′ +𝛾𝑉𝜋

𝑠′动作值函数𝑄𝜋𝑠,

𝑎=𝑃𝑠′|𝑠,

𝑎𝑠′∈𝑆𝑅𝑠,

𝑎,

𝑠′ +𝛾𝑉𝜋

𝑠′=𝑃𝑠′|𝑠,

𝑎𝑠′∈𝑆𝜋≥𝜋′↔∀𝑠∈𝑆,𝑉𝜋

𝑠𝑅𝑠,

𝑎,

𝑠′ +𝛾𝜋𝑎′|𝑠′𝑄𝜋𝑠′,

𝑎′𝑎′∈𝐴≥𝑉𝜋′

𝑠𝜋最优状态值函数满足∀𝑠

𝑆,

𝑉∗

=

max

𝑉𝜋

𝑠状态值函数的最优贝尔曼方程𝑎∈𝐴𝑠′∈𝑆𝑉∗

𝑠 =max𝑃𝑠′|𝑠,

𝑎𝑅𝑠,

𝑎,

𝑠′ +𝛾𝑉∗

𝑠′动作值函数的最优贝尔曼方程𝑄∗𝑠,𝑎=𝑃𝑠′|𝑠,

𝑎𝑠′∈𝑆𝑎′∈𝐴𝑅𝑠,

𝑎,

𝑠′ +𝛾max𝑄∗𝑠′,

𝑎′最优策略𝜋∗是最优贝尔曼方程的唯一解!马尔可夫决策过程动态规划框架---策略评估与策略提升策略评估(policy

evaluation):已知T,

𝑅,

𝜋,根据值函数的贝尔曼方程计算𝑉𝜋状态值函数𝑉𝜋

𝑠=

𝜋

𝑎|𝑠 𝑃𝑠′|𝑠,

𝑎𝑎∈𝐴 𝑠′∈𝑆𝑅𝑠,

𝑎,

𝑠′ +𝛾𝑉𝜋

𝑠′动作值函数𝑄𝜋𝑠,

𝑎=𝑃𝑠′|𝑠,

𝑎𝑠′∈𝑆𝑅𝑠,

𝑎,

𝑠′ +𝛾𝑉𝜋

𝑠′=𝑃𝑠′|𝑠,

𝑎𝑠′∈𝑆𝑅𝑠,

𝑎,

𝑠′ +𝛾𝜋𝑎′|𝑠′𝑄𝜋𝑠′,

𝑎′𝑎′∈𝐴策略提升(policy

improvement):已知𝑣𝜋,将策略𝜋更新为相对于𝑉𝜋贪心地决策状态值函数的最优贝尔曼方程𝑎∈𝐴𝑉∗

𝑠 =max𝑃𝑠′|𝑠,

𝑎𝑅𝑠,

𝑎,

𝑠′ +𝛾𝑉∗

𝑠′𝑠′∈𝑆动作值函数的最优贝尔曼方程𝑄∗𝑠,𝑎=𝑃𝑠′|𝑠,

𝑎𝑠′∈𝑆𝑎′∈𝐴𝑅𝑠,

𝑎,

𝑠′ +𝛾max𝑄∗𝑠′,

𝑎′图片来源:<Reinforcement

learning:an

introduction>02

强化学习算法强化学习算法免模型(model-free)设定策略评估(policy

evaluation):已知T,

𝑅,

𝜋,根据值函数的贝尔曼方程计算𝑉𝜋状态值函数𝑉𝜋

𝑠=𝜋𝑎|𝑠𝑃𝑠′|𝑠,

𝑎𝑎∈𝐴

𝑠′∈𝑆𝑅𝑠,

𝑎,

𝑠′ +𝛾𝑉𝜋

𝑠′动作值函数𝑄𝜋𝑠,

𝑎=𝑃𝑠′|𝑠,

𝑎𝑠′∈𝑆𝑅𝑠,

𝑎,

𝑠′ +𝛾𝑉𝜋

𝑠′=𝑃𝑠′|𝑠,

𝑎𝑠′∈𝑆𝑅𝑠,

𝑎,

𝑠′ +𝛾𝜋𝑎′|𝑠′′′𝑄𝜋𝑠′,

𝑎′𝑎′∈𝐴策略提升(policy

improvement):已知𝑣𝜋,将策略𝜋更新为相对于𝑉𝜋贪心地决策状态值函数的最优贝尔曼方程𝑎∈𝐴𝑉∗

𝑠 =max𝑃𝑠′|𝑠,

𝑎𝑅𝑠,

𝑎,

𝑠′ +𝛾𝑉∗

𝑠′𝑠′∈𝑆动作值函数的最优贝尔曼方程𝑄∗𝑠,𝑎=𝑃𝑠′|𝑠,

𝑎𝑠′∈𝑆𝑎′∈𝐴𝑅𝑠,

𝑎,

𝑠′ +𝛾max𝑄∗𝑠′,

𝑎′Q:

如果对MDP未知(即对𝑇,

𝑅未知),如何实现策略评估和策略提升的计算?A:

基于采样。智能体与环境交互产生的样本

𝑠,

𝑎,

𝑟,

𝑠′

是对𝑇,

𝑅的采样。智能体按照策略𝑎

𝜋 𝑎|𝑠

决策环境依照依据𝑇,

𝑅给出反馈状态𝑠𝑡动作𝑎𝑡奖励𝑟𝑡强化学习算法基于值(value-based)的方法---SARSA,

Q-learning,

DQNSARSA用对于当前𝑄函数𝜖-greedy的策略𝜋进行交互收集一批样本 𝑠,

𝑎,

𝑟,

𝑠′,

𝑎′更新动作值函数𝑄

𝑠,

𝑎 ←𝑄

𝑠,

𝑎 +𝛼𝑟+𝛾𝑄

𝑠′,

𝑎′ −𝑄𝑠,

𝑎𝑠,

𝑎,

𝑟,

𝑠′Q-learning用对于当前𝑄函数𝜖-greedy的策略𝜋进行交互收集一批样本更新动作值函数𝑎′∈𝐴Q

𝑠,

𝑎 =𝑄

𝑠,

𝑎 +𝛼𝑟+𝛾max𝑄

𝑠′,

𝑎′ −𝑄𝑠,

𝑎𝑎利用

vs

探索对于当前𝑄函数贪心的策略𝜋

𝑠 =𝑎𝑟𝑔max𝑄𝑠,

𝑎利用𝑄,即“策略提升”步骤,保证了𝜋𝑘+1

𝜋𝑘缺少探索,无法收集到其他动作的结果对于当前𝑄函数𝜖-greedy的策略𝜋

𝑠 =

𝑎′𝑎𝑟𝑔max𝑄

𝑠,

𝑎′ 以概率

1

𝜖𝑢𝑛𝑖𝑓𝑜𝑟𝑚

𝐴

以概率𝜖其中𝜖往往从开始的1.0随训练过程衰减到较小值(例如0.02)逐渐从完全探索趋向于完全利用保证了在利用当前𝑄函数的同时,收集其他动作的样本on-policyvs

off-policy用于交互的策略与正在更新的策略(或值函数对应的策略)是否是同一个。SARSA是on-policy算法因为更新公式源于贝尔曼方程𝑄𝜋𝑠,

𝑎=𝑃

𝑠′|𝑠,

𝑎 𝑅𝑠,

𝑎,

𝑠′ +𝛾𝑉𝜋

𝑠′𝑠′∈𝑆=𝑃𝑠′|𝑠,

𝑎𝑠′∈𝑆𝑅𝑠,

𝑎,

𝑠′ +𝛾𝜋𝑎′|𝑠′𝑄𝜋𝑠′,

𝑎′𝑎′∈𝐴Q-learning是off-policy算法因为更新公式源于最优贝尔曼方程𝑠′∈𝑆𝑎′∈𝐴𝑄∗

𝑠,

𝑎 =𝑃

𝑠′|𝑠,

𝑎 𝑅𝑠,

𝑎,

𝑠′ +𝛾max𝑄∗𝑠′,

𝑎′Deep

Q-learning用深度神经网络表示𝑄函数,记为𝑄𝜃

𝑠,

𝑎Replaybuffer,

target

Q-net,

以及其他技巧强化学习算法策略梯度(policy

gradient)的方法𝑡=0强化学习的目标是最大化期望的累积奖励𝐸𝜏∼𝜋,𝑇,𝑅

𝐻−1

𝛾𝑡𝑟𝑡当策略为参数化的𝜋𝜃

𝑎|𝑠

,一个直接的想法是目标函数对𝜃求导来更新𝜃𝛻𝜃𝐸𝜏∼𝜋𝜃,𝑇,𝑅𝐻−1

𝛾𝑡𝑟𝑡𝑡=0考虑其中第𝑡项𝐸𝜏𝑡∼𝜋,𝑇,𝑅

𝛾𝑡𝑟𝑡=𝛾𝑡𝑟𝑡𝑃

𝜏𝑡𝜏𝑡由策略梯度定理可知=𝛾𝑡𝑟𝑡𝛻𝜃log𝑃

𝜏𝑡𝜏𝑡𝑡=𝛾𝑡𝑟𝑡

𝛻𝜃log𝜋𝜃

𝑎𝑖|𝑠𝑖𝜏𝑡 𝑖=0𝛻𝜃𝐸𝜏𝑡∼𝜋,𝑇,𝑅

𝛾𝑡𝑟𝑡进而原目标的策略梯度为𝛻𝜃𝐸𝜏∼𝜋,𝑇,𝑅𝐻−1

𝛾𝑡𝑟𝑡𝑡=0𝐻−1=𝛾𝑡𝑟𝑡𝛻𝜃log𝑃

𝜏𝑡𝜏 𝑡=0𝐻−1 𝑡=𝛾𝑡𝑟𝑡

𝛻𝜃log𝜋𝜃

𝑎𝑖|𝑠𝑖𝜏 𝑡=0 𝑖=0𝐻−1=𝑅𝑡𝛻𝜃log𝜋𝜃

𝑎𝑡|𝑠𝑡𝜏 𝑡=0记从第𝑡时刻开始的累积奖励为𝑅𝑡

=

𝐻−1

𝛾

𝑖−𝑡

𝑟𝑖=𝑡

𝑖产生一条链路𝜏:

𝑠0,

𝑎0,

𝑟0,

,

𝑠𝐻−1,

𝑎𝐻−1,

𝑟𝐻−1,

𝑠𝐻的概率为P𝑠0𝜋𝜃𝑎0|𝑠0𝑃𝑠1|𝑠0,

𝑎0⋯𝜋𝜃𝑎𝐻−1|𝑠𝐻−1𝑃𝑠𝐻|𝑠𝐻−1,

𝑎𝐻−1对于𝛾𝑡𝑟𝑡,产生对应的链路𝜏𝑡:

𝑠0,

𝑎0,

𝑟0,

,

𝑠𝑡,

𝑎𝑡的概率为P𝑠0𝜋𝜃

𝑎0|𝑠0𝑃

𝑠1|𝑠0,

𝑎0 ⋯𝜋𝜃

𝑎𝑡|𝑠𝑡𝛾0𝑟0𝜋

𝑎0|𝑠0𝛾1𝑟1𝜋𝑎0|𝑠0,𝛾1𝑟1𝜋

𝑎1|𝑠1……

…𝛾𝐻−1𝑟𝐻−1𝜋𝑎0|𝑠0,𝛾𝐻−1𝑟𝐻−1𝜋𝑎1|𝑠1

,…,𝛾𝐻−1𝑟𝐻−1𝜋

𝑎𝐻−1|𝑠𝐻−1𝛻𝜃𝐸𝑃𝜃

𝑓

𝑥=𝛻𝜃

𝑓𝑥𝑃𝜃

𝑥𝑥=𝑓𝑥𝛻𝜃𝑃𝜃

𝑥𝑥𝐸𝑃𝜃𝑓𝑥𝛻𝜃log

𝑃𝜃𝑥 =

𝐸𝑃𝜃𝑓

𝑥 𝛻𝜃𝑃𝜃

𝑥𝑃𝜃

𝑥𝑥𝜃 𝜃=

𝑓

𝑥

𝛻

𝑃

𝑥策略梯度就是最大化根据累积奖励𝑅𝑡加权的动作𝑎𝑡的log-likelihood即能够得到更大累积奖励𝑅𝑡的动作𝑎𝑡得到更大的步长强化学习算法强化学习算法分类(图片来源)𝑡=0策略优化直接更新策略𝜋而不依赖值函数更新方向由目标函数对策略参数求导确定:

𝐻−1𝑅𝑡𝛻𝜃

log

𝜋𝜃

𝑎𝑡|𝑠𝑡𝑎′∈𝐴=𝑄

𝑠,

𝑎 +𝛼𝑟+𝛾max𝑄

𝑠′,

𝑎′ −𝑄𝑠,

𝑎演化算法等免求导的方法确定更新方向动态规划基于(最优)贝尔曼方程执行策略评估和策略提升,例如

Q

𝑠,

𝑎Actor-Critic

(AC)方法同时参数化策略𝜋𝜃和值函数𝑉𝛽/𝑄𝛽𝑡=0从PG的视角:

𝐻−1

𝐴𝛽

𝑠𝑡,

𝑎𝑡

𝛻𝜃

log

𝜋𝜃

𝑎𝑡|𝑠𝑡PG的累积奖励𝑅𝑡来源于采样,是无偏估计。AC的优势𝐴𝛽

𝑠,

𝑎

以不同形式依赖于对值函数的估计𝑉𝛽/𝑄𝛽从value-based的视角:值函数指导策略的更新,但是策略提升步骤并非对于值函数贪心地更新策略EasyRL提供的深度强化学习算法:03

强化学习实践Demo详解Box(3,)Box(1,)交互产生:𝑠0,

𝑎0,

𝑟0,

𝑠1,

,

𝑠𝐻−1,

𝑎𝐻−1,

𝑟𝐻−1,

𝑠𝐻-752.6264199258989EasyRL提供必要的预处理:OpenAI

Gym简介统一的接口Spaces,

Envmake(),reset(),step(),

close()丰富的游戏集合classiccontrol,

Atari,

绝大多数开源模拟器的基类典型的交互样例:Demo详解前向推理接受当前状态𝑠𝑡及若干参数返回选取的动作𝑎𝑡以及若干策略给出的辅助信号缓存交互产生的样本FIFO或Prioritized(图片来源)/demo/run_dqn_on_pong.py定义智能体根据状态和动作空间的类型及若干超参数构建TensorFlow计算图等对于当前𝑄函数𝜖-greedy的策略𝜋

𝑠 =

𝑎𝑟𝑔max𝑄

𝑠,

𝑎′ 以概率

1

𝜖𝑎′𝑢𝑛𝑖𝑓𝑜𝑟𝑚

𝐴

以概率𝜖Demo详解更新接受样本 𝑠,𝑎,𝑟,

𝑠′更新Q网络并返回时序差分误差(可选)𝑎′∈𝐴Q-learning更新方式Q

𝑠,

𝑎 =𝑄

𝑠,

𝑎 +𝛼𝑟+𝛾max𝑄

𝑠′,

𝑎′ −𝑄𝑠,

𝑎Priority根据时序差分误差(TD

error)计算/demo/run_dqn_on_pong.py接收样本从缓存中获取训练样本DQN更新方式𝑎′∈𝐴𝛻𝜃𝑟+𝛾max𝑄𝜃′

𝑠′,

𝑎′ −𝑄𝜃𝑠,

𝑎2间隔性地同步当前Q函数与目标Q函数𝜃′←

𝜃观察训练过程最近若干个链路的累计奖励等的基本统计量EasyRL的设计类层次关系与类方法属性基类AgentBase暴露了统一的方法各子类主要在_init()方法中特化self.modelModel类实例,描述强化学习算法的计算图self.executor封装了TF

session相关的接口和属性self._buffer根据配置的算法实例化对应的缓存类_build_ph_op()方法根据状态和动作空间的定义自动构建输入placeholder等_build_graph()方法描述计算图表达强化学习算法EasyRL二次开发自定义模型与开发者注意事项继承DQNModel,重载涉及的类方法文档风格检查https://alibabapai.github.io/easy_rl_doc/contributors.html根据注释基于sphinx自动生成(见doc/目录)提交前运行scripts/format.sh单元和回归测试提交前运行test/目录下个脚本贡献代码/alibaba/EasyRL/pulls04

分布式强化学习算法强化学习Actor-learner架构LearnerPolicy𝑎∼𝜋𝑎|𝑠;

𝜃ActorReplicatedpolicyEnv𝑎𝑠,𝑟,

𝑠′ActorReplicatedpolicyEnv𝑎𝑠,𝑟,

𝑠′𝜃𝑠,

𝑎,

𝑟,

𝑠′EasyRL细化为4种角色:PS:

存放值网络或策略网络的权重等Actor:

与环境交互产生样本ReplayBuffer:

存放和预处理样本Learner:

消费样本进行训练监督学习的PS-Worker架构:交换的参数𝜃和梯度𝛻𝜃

𝐿 𝑥,

𝑦;

𝜃 是同质的V.S.强化学习的Actor-learner架构:交换参数𝜃和样本𝑠,

𝑎,

𝑟,

𝑠′强化学习On/Off-policy分布式强化学习算法D-PPO

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论