reinforce learning课程笔记

一、Crossentropy method

场景1:平衡游戏

问题:已知在一组status下,进行对应一组action时,最终的reward。

解决方案1:

  1. 创建一个初始的policy表,表示每一个status下选择某一个action的概率
  2. 找1000组status,根据policy表,得到对应的action组;
  3. 根据status:action组,带入模型场景,得到对应的reward
  4. 找其中reward最好的200组
  5. 计算其中status:action组合,在对应status下的出现概率
  6. 按一定的alpha值,更新原始的policy表
  7. 利用新的policy表,获取新的1000组status对应的action值

解决方案2:

  1. 使用一个神经网络/分类算法代替原来的policy,输入status,得到action。

二、Reward价值衰减和转换

1、怎么计算价值:

空调持续恒温问题,reward的结果是无限的

方案:f = ax + a^2 x + a^3 x.........,其中0<a<1,reward在当前的价值最大,在未来逐渐衰减

2、价值概念:

价值模型可以进行特定的变形(除于某个不为0的正数,减去一个基于新旧status的结构数据),并不影响模型的应用结果

三、Bellman equation贝尔曼方程

1、status_value function:

给定status对应的value的函数

变量说明:s-status、r-return、π-policy、a-action

backup diagram

2、action_value function:

给定status下进行某个action对应的value的函数

四、policy iteration 策略模型迭代进化

1、policy evaluation策略评估过程:

已知policy,计算v(s)

计算过程:初始化所有状态的v(s)=0,然后按照bellman expectation公式逐个更新每一个v(s)值

直到每一个v(s)都稳定不再变化

数组计算方法:

2、policy improvement策略进化过程:

计算过程:根据已知的v(s),获得action_value function;使用贪婪算法找到可以让action_value最大的action,以此调整policy值

3、iteration

基本流程:评估policy(status value),通过action贪婪算法提升policy

根据评估policy的方法,分为policy iteration(一直更新v(s)直到不再变化)和value iteration(只更新一遍v(s))

policy iteration

value iteration

一般来说,如果status比较多,建议采用vi,减少每次迭代的复杂度;相反,采用pi会减少迭代次数

五、Model-free Learning

之前的计算中,我们都默认假设 P(s',r|s,a) 也就是模型本身是可以被观察和获取到的(如下图);

但在实际现实当中,很多情况下,模型对我们来说是黑箱的。我们并不能预先知道在当前status下进行某个action,模型给我们的反馈结果是怎么样的。

通常,我们也不能充分测试模型中的所有场景,只能获取到某个status-action-reward的序列片段

最终,问题转换为了:如何通过以上序列片段,得到Q(s,a)的问题,其中Q(s,a) = r(s,a)+\gamma*v(a')

(因为知道了Q(s,a),就可以根据使得Q最大的a,来得到最终的行动策略)

1、Q-learning基础算法

2、进阶算法-增加变化

只有当机器可以不拘泥现有的最佳方案,而尝试去采用新的action去测试是否带来更好结果,这样,算法才有意义。

我们需要在采用当前最佳方案和尝试探索新方案之间的平衡。

如果采用以上 greedy的方法,可以逐迭代的收敛 greedy到一个最小值(每个迭代*0.99),这样,模型才能最终收敛到一个稳定的状态。(除非模型环境本身是不断动态变化的,如互联网广告)

3、SARSA-用期望取代MAX

防止,算法会为了获得最高奖励,不顾风险。

4、SARSA和Q-Learning的区别

Q-Learning假设环境是稳定不变的,适用于稳定的环境,不用担心环境变化产生的风险,只需要最求最优结果。

SARSA适用于变化中的环境,需要考虑到环境变化带来的潜在风险,选择期望最佳的结果。

5、两种模型训练方式:on-policy和off-policy

on-policy:类似在线学习,在环境中边尝试边训练(sarsa)

off-policy:类似迁移学习,把专家的操作record预训练模型,再进行自我训练(q-learning)

6、模型优化Experience Replay

The catch is that you can train Q-learning and EV-SARSA on <s,a,r,s'> tuples even if they aren't sampled under current agent's policy. So here's what we're gonna do:

提升迁移学习的训练效率;基于<s,a,r,s'>与当前的策略policy无关,只与环境本身有关(即是说<s,a,r,s'>在训练p的过程中永远是对的);所以,可以反复使用<s,a,r,s'>在不同的p值下来计算新的p

六、Approximate Value Based Methods近似价值模型算法

之前描述的都是tabular method,就是会有一个p矩阵,我们的核心工作就是优化这个p策略矩阵;但在现实情况下,因为status存在无限多的可能性(video game),导致tabular method并不适用。

另一个问题在于,在tabular method中,我们认为每一个p(s,a)都是相互独立的,没有关联性;但在现实场景下,其内在都必然有着相关性。

所以,在这些需求场景下,我们选择优化q(s,a,w)神经网络模型,将问题转化为一个机器学习问题(有监督学习)。

1、先介绍2种算法

  • Monte-carlo update:游戏开始后, 要等待游戏结束, 然后再总结这一回合中的所有转折点, 再更新行为准则。(offline)

  • Temporal-difference update:在游戏进行中每一步都在更新, 不用等待游戏的结束, 这样就能边玩边学习了。(方差较小,online)

  • online and offline policy

2、基于以上两种算法,需要计算q,类比一般的机器学习方法(有监督学习):

1、input:s,a

2、output:q(s,a,w)

3、target:

方案1:MC,所有进程结束后,通过抽样近似获取的q(s,a),q(s);但是通过抽样近似的方法获取target存在需要大量抽样的情况,且一旦环境比较复杂,抽样的结果方差性会很大。

方案2:TD,每进行一步,就计算更新一次q(s,a),q(s);

4、loss function: mean-square error

不同status的权重不一样,重点优化比较好/成功相关的status,因为我们并不想经历那些bad status;计算权重p(s,a)的方法也是采用抽样近似的形式

5、强化学习的loss计算方法,是在sgd随机梯度下降发的基础上,采用semi-gradient decent的算法

特点是:将上式种的g(s,a)也就是goals视为固定值(实际上环境是一直变化的)

è¿éåå¾çæè¿°

4、semi-gradient decent梯度计算:

SARSA is based on Bellman expectation equation

Q-learning is based on Bellman optimality equation

3、强化学习和一般的有监督学习的差异

很难有合适的训练数据集,因为强化学习的模型,比如玩一个游戏,你遇到的场景(status)是受你进行的操作(policy)影响而动态变化的。训练集是无法有效覆盖到所有可能的场景的,因为他没办法尝试所有的操作序列

有监督学习中,x的细微差异一般不会很大影响到y值的结果。但是在强化学习中,status的一些微小差异,比如多了一颗子弹,就会极大的影响到q(s,a)的结果

4、DQN Deep Q-learning Network

1、数据预处理

1)initial image:210*160*3

2)色彩灰度和压缩:110*84*1

3)切片:84*84*1

4)stack4frames:84*84*4

2、神经网络

1)input layer:84*84*4

2)卷积1:20*20*32,relu

3)卷积2:9*9*64,relu

4)卷积3:7*7*64,relu

5)dense:512,liner

6)输出层(q-values):18

3、注意点

1)不使用池化层:节约运算时间

2)使用4个frame:因为当前的action判断应该基于多张recent image,单一图片无法有效决策(例如判断小球飞行轨迹)

4、优化方案

1)通过reply池来处理存在相互关系的序列数据源

优劣势

2)policy oscillation 波动:target network

分成2个神经网络,一个target network,一个q-learning神经网络。其中前者的w是后者的移动平均值、

3)reward标准化(可选,因为这样不利于区分好和特别好)

5、double Q-learning

以上方法使用的max方法,会导致最终生成的q(s,a)的分布比正常的更大,为了解决这个问题,

提出了独立训练两个q模型的方法

并进一步用target model (老的q)做为另一个独立模型的方法,模型演变如下:

6、Dueling DQN

7、Bootstrap DQN

七、Police-Based Method

1、value-based method(model-based)存在的问题

1)现实中,需要一个很长的序列之后,才能知道当前的决策好不好(即无法准确判断当前action的reward)

2)在DQN中计算误差的方法是计算平均方差,这种计算方式,会导致部分方差很大的q值影响最终的结果

2、随机策略梯度算法(stochastic-policy-gradient)

police-based 是基于已知π(s,a)出现的分布,来更新策略模型π(a|s)

value-based 是基于价值模型q(s,a),来更新策略模型 π(a|s)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值