港科大博士生李思毅:深度强化学习——从原理到应用

港科大博士生李思毅:深度强化学习——从原理到应用
看都看了,还是要记录一下我得到了什么知识的
是我自己记录的,算是原创还是转载(⊙o⊙)…
不想整理…

如果训练数据和测试数据不是独立同分布,那么训练出来的结果不会有好的泛化性能
很多问题与环境持续交互,数据有很强相关性,不符合独立

agent:最终想要实现的AI
environment:
action:
state:
reward:来评估当前选取的action的好坏
environment接收到action之后,会返回state和reward
最终目标选取一系列action最大化奖励
传统 低维状态空间、手工设计特征
通过RL定义目标,通过机器学习来学到好的表达

深度学习的好处是不同层次的函数会学到数据不同层次的表达
足够多的层数可以实现从低层次数据到高层次表达的很好的映射
s:状态空间
在MDP中,environment可观测,只要知道当前时间点状态,之前的状态不重要,未来状态值和当前状态相关
action space
f: system dynamics,s和a,下一个状态会是什么,采用概率分布来描述
reward function:agent收到的反馈

agent的行为:Policy,用π来表示
如果是stochastic policy,π表示一个概率分布
如果是deterministic policy,从状态到动作的映射

expected return
如何定义future reward
expected return:j衡量关于reward 某个函数G在当前policy下的期望值,一般采取两种形式的G函数
discounted reward,γ 衡量未来的时间点得到的reward的重要性,当前时间点得到的一般收益大,未来小
average reward,极限形式

value function:
对于当前state expected return的预测
两种定义
state value function v 只依赖于s
state action function q 依赖于s和action
条件期望的依赖不一样
性质:满足某种递归关系,bellman equation,展示了value function可以分解为immediate reward+下一步的discounted value,dp中的递推公式
RL算法的理论基础。value function为policy提供了一组排序依据,如果value function是optimal的话(得到的expected return的最大值),同样optimal value function也满足递推归关系,称为bellman optimality xxx ?

RL的主体:policy和value function
常用算法:
critic-only 只用参数model一个value function,只去优化vf 没有显示policy,由vf隐式推断得到
actor-only 优化参数化的policy
actor-critic: 参数化policy,参数化value function

critic-only:
vf定义了一组optimal policy,只要policy可以达到optimal value f,policy就是optimal policy
隐式policy,policyYou贪心策略得到。
q function和v function推导optimal policy难度不同
q action离散,对于当前state,所有的action的q计算一遍,选最优的action
v 要知道system dynamics
model free的一般选q function
给定q v 推断policy
重点:如何估计想要的value function
三种方法:
DP:需要已知f model-based 方法
两个阶段
policy evaluation 根据bellman equation来更新当前policy的value function的估计
policy improvement根据更新得到的value function去选取新的policy
交叉进行直至value function和policy都收敛
两种方法
policy iteration : 刚刚两个过程交叉进行直至value function和policy都收敛
value iteration:不显示sauna policy,而直接更新value function

蒙特卡罗方法基于sample的方法
从agent和environment交互的一个episodes学习value function
一个episodes:agent必须一直和environment交互直至environment停止
小蜜蜂例子,飞机全被击毁,那么一个episodes结束
model free
缺点:只能从完整的episodes总学习value function
核心:sample很多个episodes,取这些的empirical mean return作为当前state下value function的估计,估计无偏,需要去sample很多数据。数据不足会有很高的variance

Temporal Difference Learning 方法
TD直接从agent和environment交互的experience里学习value function
model free
优点:从不完整的episodes中学习value function,根据bellman equation,使用 temporal error来更新value function,每交互一步,都可以更新对value function 的 估计收敛更快
没有理论保证,估计有偏差,效果可以,因为variance比价小

去诶单:action维度特别高,或者action是连续的
贪心策略选最优action会特别慢
Actor-only
直接对policy有参数化表达,产生action会很直接
优点:很好的收敛保证,高维action 连续 选取action非常快,因为可以参数化表达,所以可学随机的policy
缺点:没有value function去估计,评判policy在environment里不断sample,evaluation policy效率低,variance高

参数化policy,找到最好参数,expected return j最大化,梯度下降来解决
更为直接
关键怎么求解梯度?policy gradient
估计policy gradient

  1. 有限差分法近似梯度,给参数很小的扰动,sample估计
    不可微的policy 函数
    缺点:参数数量太多,效率低,梯度噪声大
  2. reinforce likelihood ratio methods
    policy gradient重新表述成某形式,计算梯度时候不需要已知dynamics
    trajectory return是一个agent从最开始temple state已知交互到 终止状态下reward的和
    可以由q function 代替,算出来的梯度variance更小
    实际中,从q function中减去一个baseline,对算法的收敛有很好的改善

港科大博士生李思毅:深度强化学习——从原理到应用_第1张图片
variance
连续action的问题

actor-critic 方法的基础
policy gradient 定理:把policy gradient和value function ,q function联系到一起

要求q function 必须exact,必须真实的估计,state也是连续的,没办法得到exact q func,只能用approximate去近似q
定理在这里插入图片描述
满足某些条件,即使是估计的,也可以用近似的h函数(同时依赖于state和action)
条件:1. 和policy compatible,梯度可以表示成policy function的形式
2. minimize 和q之间的mean squared error(用regression实现,但这样的实现效率比较低)
h减掉只依赖于state的函数,最终得到的是对policy gradient的估计,因此可以减去baseline
一个很好的baseline是state value function v,
可以用qfunction 去表述,也可以advantage function来表述 q和v的 差
定理的要求比较严格,h,算法等价于actor-only 的reinforce算
实际上用的时候回放松条件2,实际上会用TD learning方法去更新h,效率高,效果好
TD error去更新对value function的更新,根据policy gradient对policy进行更新

实用的AC方法及其变种
区别:期望公式最后的变量,直接用Vt表示trajectory return,是reinforce算法,用q q-actor-critic,用advantage function就是advantage-actor-critic, TD error TD actor-critic

另一类 Natural policy gradient
解决standard对不同参数化形式比较敏感的问题
在standard左边乘以 feature Information matrix
比standard收敛快,去estimate fm如果用的参数化形式复杂,那么这个过程特别慢
特殊情况natural actor-critic 特别简单 xxx approximate advantage function形式满足这个形式
可以写成xxx

框架和一系列问题的方法

深度学习和RL结合起来
用深度神经网络参数化表达 value function和policy
深度增强学习
基于value function:
用神经网络参数化表达 value function,推断action,对应于critic-only方法
如何参数化表达,两种方式

  1. 输入又有state又有action,只有state(通过一次计算,所有action对应的q函数值算出来)
    q-learning更新依赖于bellman,给定transition sample,给定当前state和action,下一个state和获取的reward,去优化q函数参数最小化TD error。
    state和action离散形式下可以收敛,直接把q-learningyouhua神经网络无法收敛,原因:交互时数据相关性太强,优化目标本身由q算,优化目标会变,导致序列不稳定,甚至发散
    DQN:
    experience replay agent和environment交互过程中,agent收集到的transition sample存在数据集,从数据集随机取样,去更新q网络,降低数据相关性
    额外的网络target network,去生成TD learning中需要的目标值,序列目标不经常变动,和主体network更新频率不一致,target隔一段时间更新一次,更新间隔内保持不变
    DQN成功训练大型非线性函数作为value function的approximate
    DQN 后续工作:
    Double DQN
    DQN过高估计value function的值,归结于max操作符,用同样的q函数评估action,会导致比原始值更高一点的估计,把挑选action和评估action分隔开来。target network去评估,主体network去更新
    Prioritized replay
    DQN完全随机采样,未考虑到sample重要性不同。
    使用temporal difference error来作为sample重要性的依据。TD error越大,sample对学习q function的贡献越大,采集概率更大,随机不损失sample多样性
    Dueling
    q f 看作vf 和advantage function的和
    q网络分成两个分支 输出value function估计,只依赖于state,另一个advantage function,前面共享卷积参数层,后面全连接层分开,最后合起来得到q function 的估计
    好处:每次都更新value function,更快去更新到每个state vf的估计

DQN局限性:
固定数目的过去几帧的图像来近似表示当前的state,远远不够,POMDP
把RNN加入DQN框架,用RNN学习过去所有观测到的state
以上是减少数据相关性
异步框架RL
或者用多CPU多线程并行共享网络参数的agent,来减小数据相关性
不同agent并行执行,与环境交互到很多不同的地方,可以减小数据之间的相关性

异步q-learning
N-step q-learning:未来N步return来更新value function,考虑到的数据量更多,更新更快。
value-based

policy-based深度学习方法
神经网络参数化policy
异步advantage actor-critic A3C
advantage actor-critic在异步框架下的扩展,很多paper使用这个算法作为baseline
baseline是什么
TRPO
用什么标准去限制模型参数更新前后的距离
每次更新强制满足限制条件,保证每次更新不会太大(可能会陷入local optimal,通过line search实现,提高稳定性)

on-policy
每次用来更新模型的数据一定是当前执行的policy产生的,之前提到的A3C,TRPO都是on-policy的算法
off-policy
用来更新模型的数据可以不是当前执行的policy产生的
DQN(off-policy replay buffer)
DDPG Deep Deterministic policy gradient
实际上吧DQN 扩展到continuous action的设定下

1、experience replay
2、target network

另外一个network参数化policy,Deep Deterministic policy gradient更新得到
优点:可以处理连续的action

上面是model free

下面是model based
continuous q-learning
连续action 贪心non-trivial
提出一种特殊的q-learning的参数化形式,最大化action有解析解μ
model-based 方法提高在数据使用上的效率
基于Q-learning产生的policy的agent在和环境交互时,加入model-based的controller也去和环境交互,存储transition sample不仅存q-learning收集的数据,也存储q-learning network数据,然后取合集。由于数据分布太不一样,因此无什么效果
imagination ruleout,根据收集到的sample,额外学到dynamics model,agent在真实环境中交互,也会在学习到的dynamics下去交互,两者数据结合起来,优化q函数,实验中提高data efficiency

guided policy search
modelbased方法和深度学习结合
寻找policy这个问题转化成有监督学习问题
xxx数据分布不一样,误差会越来越大
GPS好处是训练非常快。

RL天生适合打游戏
Atari game
MineCraft 导航任务

FPS games 射击游戏,

强化学习任务通常使用马尔可夫决策过程(Markov Decision Process,简称MDP)来描述,具体而言:机器处在一个环境中,每个状态为机器对当前环境的感知;机器只能通过动作来影响环境,当机器执行一个动作后,会使得环境按某种概率转移到另一个状态;同时,环境会根据潜在的奖赏函数反馈给机器一个奖赏。综合而言,强化学习主要包含四个要素:状态、动作、转移概率以及奖赏函数。

你可能感兴趣的:(深度增强学习)