深度Q神经网络(DQN)

发布时间 2023-12-27 17:32:57作者: 糖子哥

有了上节课值函数近似的铺垫,这节课就来到了DQN,推开了深度强化学习的大门

为什么要学习DQN呢,为什么一定要有神经网络的参与呢,AI的发展肯定是为了帮助人类去完成一些事情,而人类的世界是很复杂的,很抽象的,不可能你几个数据就能训练出一个很厉害的模型,所以你需要上百万甚至不止的数据,那么,你从哪得到那么多数据不说,你就算得到了,你有办法储存吗,效率高吗,精确度怎么样?(比如我步长是1,我的状态是1,2,3,4,5,6,7,但是我的最佳状态是被夹在1和2之间的怎么办)那么就需要神经网络给我们提供的黑盒子函数,现在说说区别,逼入我是用表格训练的,我想得到Q(s1,s1),Q(s1,a2)....Q(s1,an),我是用表格肯定得一直输入什么,s1,a1;s1,a2.....s1,an;烦死了,但是我交给神经网络来做,我只需要给它输入s1,它就可以给我Q(s1,s1),Q(s1,a2)....Q(s1,an),多方便啊,这就是深度强化学习的魅力,然后就是老套路,运用Q-learning,时序差分那些东西一直更新参数就ok了,函数的话参数更新了,Q value也会更新 

 但是呢,但是,DQN尽管使用了神经网络,也会啊,有它的一点弊端,什么弊端呢,我用通俗的话举个例子,比如啊,你遇到了一个女孩子或男孩子,你们还不熟(state),就是说你很少和她(他)聊天(action),但是啊,她/他对你很是热情,不把你当外人,啥都和你说,和你很暧昧很亲密(Q(s,a)),这是啊,假如说你是那个神经网络,你就被骗了,被渣女/男给骗了,因为正常的女/男孩子不会这样,那要怎么解决呢,DQN有两个很重要的东西,第一个就是经验回放池,第二个就是目标网络,先讲讲第一个,就是你每次遇到一个女孩子,你肯定要和她相处对不对,然后你和她相处之后肯定会留下记忆(你和她熟不熟(s),你对她做了什么(action),她给你的反馈(Q(s,a))),把这些美好回忆放在经验回放池里面,接着有时候啊,你无聊的时候随机回忆几个女孩子,回忆(你和她熟不熟(s),你对她做了什么(action),她给你的反馈(Q(s,a)))然后学习,充分利用你们的美好记忆,哪怕你和这个女孩子最后只是路人,你们的回忆也是对你人生发展有帮助的,这就是经验回放池,没有它,你可能会觉得,这个女/男孩子太坏了,或者我和他/她不熟,不去回忆学习,最后被下一个渣男/女给骗了

接着就是目标网络,目标网络就是emmm.....比如你想谈一段美好的恋爱,目标网络可以是教练网络,就是你学的那些“高情商”课程,有时候啊,你发现这个女/男孩子不对劲,她给你的Q(s,a)很奇怪啊,很像是遇到渣女/男了,你就会看看你的“高情商”课程,嗯嗯确认过眼神。。。。懂了,然后就去更新这个你的一些做法想法避免遇到渣女/男,然后就是,有时候你会觉得,这个“高情商”课程很不贴近日常生活,你就会去结合实际更新这个高情商课程,然后毕竟这个课程是比你厉害的,所以他更新的速度肯定比你慢,你要做的就是和它一起前进,就是课程走个两步,你要走五步去追他,往这个方向去更新,这个就是double DQN