首先放视频链接:李宏毅老师深度强化学习课程——Q-Learning

Q-Learning简介

Q-Learning是一种value-based的方法,在这种方法中,不是直接学习policy,而是利用值函数评价现在行为的好坏,即AC算法中的critic。比如state value function【深度强化学习 一】Q-Learning初识(1)(李宏毅老师学习视频笔记),表示在当前策略【深度强化学习 一】Q-Learning初识(1)(李宏毅老师学习视频笔记)下,到了某一状态s,之后能获得的累计收益。

两种更新方法(MC和TD)

  • Monte-Carlo方法

让actor和环境交互,计算状态后的累计收益,需要episode结束后才能计算。现在的DRL融合了深度神经网络,所以不需要每个s都经历过,也能给出大概的V值。

  • Temporal-difference方法

这种方法不需要游戏玩到结束。只要获得某一个transition,【深度强化学习 一】Q-Learning初识(1)(李宏毅老师学习视频笔记),就可以根据公式【深度强化学习 一】Q-Learning初识(1)(李宏毅老师学习视频笔记)进行更新。其实就是两个state之间相差一个【深度强化学习 一】Q-Learning初识(1)(李宏毅老师学习视频笔记)。也就是【深度强化学习 一】Q-Learning初识(1)(李宏毅老师学习视频笔记)【深度强化学习 一】Q-Learning初识(1)(李宏毅老师学习视频笔记)的差可以作为loss。

  • MC和TD的优缺点

MC需要推演完整个episode,而且由于【深度强化学习 一】Q-Learning初识(1)(李宏毅老师学习视频笔记)直接计算的累计收益【深度强化学习 一】Q-Learning初识(1)(李宏毅老师学习视频笔记),由于随机性,不同时候得到的【深度强化学习 一】Q-Learning初识(1)(李宏毅老师学习视频笔记)可能会有很大差别,这样的随机变量方差很大。TD方法的随机性在于【深度强化学习 一】Q-Learning初识(1)(李宏毅老师学习视频笔记),所以方差会小。但是V值本身可能不准,所以是有偏估计。

接下来放一个示例,Sutton课程里采用的,能后比较好的理解MC和TD

【深度强化学习 一】Q-Learning初识(1)(李宏毅老师学习视频笔记)

由状态值函数到动作值函数

state-action value function 【深度强化学习 一】Q-Learning初识(1)(李宏毅老师学习视频笔记),表示状态s时采取动作a后的累计收益。

接下来是Q-Learning的更新原理,为什么Q值能够变大。

                               【深度强化学习 一】Q-Learning初识(1)(李宏毅老师学习视频笔记) for all state s

                               【深度强化学习 一】Q-Learning初识(1)(李宏毅老师学习视频笔记)

                               【深度强化学习 一】Q-Learning初识(1)(李宏毅老师学习视频笔记)

感觉不需要太多关注上面的式子,只需要直观的去理解一下就好。

DRL框架设计(target network好神奇的想法)

【深度强化学习 一】Q-Learning初识(1)(李宏毅老师学习视频笔记)

loss的设计和之前一样,只不过targe network delay了一下,牛批。

explore 问题

  • epsilon greedy (【深度强化学习 一】Q-Learning初识(1)(李宏毅老师学习视频笔记)的概率随机,随着训练进行而递减)

                                       【深度强化学习 一】Q-Learning初识(1)(李宏毅老师学习视频笔记)

  • ​​​​​​​​​​​​​​Boltzmann exploration(指数后求概率)

​​​​​​​                                        【深度强化学习 一】Q-Learning初识(1)(李宏毅老师学习视频笔记)

Replay buffer

简单来讲就是把过程中的transition存到replay buffer中,然后每次取出一个batch,取出的transition其实是不同policy下的。这种方法和深度学习中常见技巧比较类似。这里有一个问题,mc的方法可以用replay buffer吗?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

相关文章: