dqn系列梳理_DQN是学习归纳出了策略,还是仅仅是"memorize"了大量的episodes?

想要回答这个问题,就得追究什么才称得上“策略”?什么是“学习、归纳”?学习归纳和“memorize”又有什么不同?

现在的我大概没办法直接回答这些问题。但我可以分享一点我对于DQN的理解,尤其是,比较以前的RL算法,DQN想要解决什么问题。

一言以蔽之: DQN exploits correlations between states.

还记得GridWorld么?假设有一个agent在3x3格子间行走,有时能得到奖励。用RL的角度来看,每个格子都是一个独立的state,运用最简单的Q Learning,我们可以学习每个格子的Value。假设这个小地图里,只有一格是有奖励10的。训练一个agent学习这份地图,需要用Q Learning来把这个奖励讯号传达给之前的state(credit assignment)。

如果我们给每个格子随意编号,那么Q learning的过程可能看上去就是:到达格子0!奖励10!好棒!再来一局!走,走,走,……到达格子1875!马上要到格子0要拿奖励了我好鸡冻,加分加分!这样,我们就把格子0处的奖励讯号传达给了之前的格子1875。最后,所有可能达到格子0的格子们都得到了一点加分,如果我们循着这个加分路径走下去,就能到达格子0。这条路径,简单来说,就是agent学习到的策略。

运用这样一个算法,我们可以discretize(离散化)很多可能的状态,比如,假设有100x100像素的画面,每个像素可能是黑(0)或者白(1),那么通过离散化,我们可以得到2^(100x100)=2^10000个状态。接着,我们可以运用Q learning来explore奖励讯号,并且把它credit assign到我们拿到奖励的路径上。

但这样做是有很大问题的。因为在agent的一局探索中,每一个格子/状态,只能把值传递给其最近的格子/状态。即使是在简单的10x10grid world上,agent也需要不断地探索、重启,才能把credit assign到之前的路径。推荐使用Stanford ReinforceJS 来visualize这个过程。当格子/状态的数量太多,所需要的训练时间也太多。

造成这个问题的原因是:我们arbitrary地将状态离散化了,我们忽略了states之间的关联。试想,假设我们用RL做自动驾驶。状态是6x10的像素图片,红灯是图像中间的一片1。现在agent刚刚得到一个经验,在以下状态(红灯),开车前行,会被惩罚。

0000000000

0000000000

0001110000

0000000000

0000000000

0000000000

那么我们希望,在相似的状态中(简单例子如下图),agent应该也能意识到,开车前行,会被惩罚。

0000000000

0000000000

0000111000

0000000000

0000000000

0000000000

如果我们使用了简单的Q Learning和离散化,那么上下两个状态完全不相关。想要得到这样的泛化能力,只有agent不断尝试、探索,直到它遇到这个新状态,被惩罚,才会得到教训。而使用Deep Learning架构,我们可以从raw state中抽取representation信息。比如在这个例子中,一个训练得当的DQN应该可以读入状态1,输出(1,0,0,……)。即使没见过状态2,神经网也应该能输出类似(0.8, 0.1,……)。某种意义上说,它能发现到上下两个状态的关联。因此,即使我们还没有到达过后面的状态,神经网络可以从一个见过的,类似的状态中generalize(泛化),给出一个稍微好一些的q estimation。

引入DQN的泛化能力,但也造成了一些的问题。比如,如果agent update gradient时光顾着自己上次一回的经历,有可能会造成agent bias towards explored states。因此有了experience replay。

另外,最近一些Deep RL的research专注于研究如何抽取很好的state representation。如何做到?简单来说,就是使神经网络抽取的representation可以被用来做些其他的活计(auxiliary task)。总的来说,这些研究都是希望神经网络可以从一个状态中抽取好的representation,来更好泛化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值