强化学习论文精读书(1)Deep Dyna-Q: Integrating Planning for Task-Completion Dialogue Policy Learning

1. 前情提要

虽然这个算法号称的是Deep Dyna-Q网络。但是其实其核心思想用的是DQN网络。特别是在更新策略函数 Q ( s , a ; θ Q ) Q(s,a;θ_Q) Q(s,a;θQ)时,使用的就是DQN的训练思想。每C步更新一次策略函数 Q ( s , a ; θ Q ) Q(s,a;θ_Q) Q(s,a;θQ)的参数 θ Q θ_Q θQ。如第2行和第42行, θ Q ’ = θ Q θ_{Q’ }= θ_Q θQ=θQ。其中θ_Q是DQN种的预测网络, θ Q ’ θ_{Q’ } θQ是DQN中的target 网络。 Q ( s , a ; θ Q ) Q(s,a;θ_Q) Q(s,a;θQ)是一个神经网络

与DQN不同的是,DDQ有一个直接学习阶段和一个世界模型,以及两个Reply Buffer,一个是 D u D^u Du,用于存储人与agent交互的transition,一个是 D s D_s Ds,用于存储世界模型 M ( s , a ; θ M ) M(s,a;θ_M) M(s,a;θM)与agent交互的transition。世界模型是一个多任务的神经网络。

DDQ的创新之处是在Direct RL使用随机初始化的 Q ’ Q’ Q Q Q Q与人类进行对话,从而得到接近真实的交互数据。

agent每与人类完成一次对话,便将对话生成的transition保存在 D u D^u Du中。直到出现终止状态便结束对话,并使用Q-learning方法更新一次 θ Q θ_Q θQ。至此,完成第一步的Direct RL,然后进行世界模型的学习。

世界模型 M ( s , a ; θ M ) M(s,a;θ_M) M(s,a;θM) D u D^u Du提取transition,并训练和更新 θ M θ_M θM。世界模型输入是当前状态 s s s和动作 a a a。输出的是 a u a^u au r r r t t t t t t用于判断当前状态是否是终止状态。

更新好世界模型的参数后,开始Planning阶段。

在分析Planning阶段,需要注意2.2节中的一句话” The first user action au (line 27) can be either a request or an inform dialogueact.”。翻译成中文就是:第一个用户动作au(第27行)可以是请求或通知对话动作。也就是说第一个动作是给定的。然后给定动作 a u a^u au后,得到一个状态 s s s,首先判断该状态是否是终止状态,如果是则结束,不是则在该状态 s s s下随机选择一个动作或者使用argmax选则一个最优动作 a a a。然后将 ( a , s ) (a,s) (a,s)输入到世界模型M中,并生成 a u a^u au r r r t t t。并得到新的状态 s ’ s’ s,并将 ( s , a , r , s ’ ) (s, a, r, s’) (s,a,r,s)存储到 D s D^s Ds中。

当出现终止状态,则世界模型M的Planning过程结束。

然后再从 D s D^s Ds中按批次提取数据,训练策略函数 Q ( s , a ; θ Q ) Q(s,a;θ_Q) Q(s,a;θQ),并更新参数 θ Q θ_Q θQ

然后查看C的值,当满足次数要求,则执行θQ’ = θQ。否则返回下一个大循环for(1)。

2. 分析算法的四个大循环

具体分析算法的四个循环,两个for循环和两个while循环。
我们将这四个循环的名称命名为:for(1), While(1), for(2),While(2)。下面开始逐个分析:

  • for(1)是个大循环,控制算法的训练次数。
    • While(1)是直接强化学习的主体部分,是人与智能体进行一次对话,直到对话结束。并保存对话的transition到 D u D^u Du
    • While(1) end
    • 对话结束使用中 D u D^u Du的transition更新策略函数 Q ( s , a ; θ Q ) Q(s,a;θ_Q) Q(s,a;θQ)
    • 世界模型也通过 D u D^u Du更新。
    • for(2)是对世界模型进行规划。规划次数取决于世界模型M的精度。
      • While(2)同样用于对话。是世界模型与agent进行对话。并将对话数据保存到 D s D^s Ds中。
      • While(2) end
    • 对话结束使用中Ds的transition更新策略函数 Q ( s , a ; θ Q ) Q(s,a;θ_Q) Q(s,a;θQ)
    • for(2) end
  • 判断C的值,是否更新 θ Q ’ = θ Q θ_{Q’} = θ_Q θQ=θQ
  • for(1) end

3. 下面是算法的步骤

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值