• RL强化学习总结(四)——DQN算法


    DQN算法引言

    DQN算法,英文全称为Deep Q Network,简称DQN
    在这里插入图片描述
    我们以小鸟飞行的这个小游戏为例,这个游戏中的state是什么呢?
    我们定义每四帧画面为一个state,也就是说:四张图片为一个state。每个图片的大小假设为84*84,只要一个图片中的一个像素值发生改变,state就会发生改变。
    每个像素值的范围为[0,255],所以每个像素值会有256种可能。那么这个小游戏中的一个state有256^(84 * 84 *4)种可能。这样state的情况就太多了!!!
    面临的问题是:
    我们Q-Learning算法最终想要构造一个state数量行的矩阵(或者叫Q表),像这个小游戏要是构造Q表的话,Q表的行数就是256^(84 * 84 *4),那么计算机中没有这么大的存储空间,怎么办???
    解决方法:
    我们可以结合神经网络来解决这个问题,我们将state和action作为神经网络的输入,最终通过神经网络输出对应的Q值即可!
    在这里插入图片描述
    核心:将构造庞大规模的Q表(Q矩阵)转化为构造神经网络

    Exploration and Exploitation

    Exploration and Exploitation翻译过来是探索与利用。在强化学习中,探索与利用是一个非常重要的问题。
    在这里插入图片描述
    如上图所示,我们从状态2出来,根据Q表,第一次选择的是状态3,到达状态3之后,我们选择的下一个状态是状态1,最终选择的是状态5.
    但是我们发现在状态3的时候,我们既可以选择状态1也可以选择状态4。我们没有尝试走状态4这条路径!!!
    其实我们尝试一下,走状态4,最终也可以到达状态5。效果是一样的
    2->3->1->5
    2->3->4->5
    我们其实每次采取的都是局部最优的“贪心策略”,保证了每步Q值最大。
    在强化学习中叫做Exploitation。
    但是很多时候吧,局部最优不代表全局最优!!!
    我们引入了Exploration,通过探索新的状态,从而达到全局最优!!!
    在这里插入图片描述
    探索与利用同等重要!!!
    解释一下ε-greedy exploration,假设ε=10%,那么我们当面对问题的时候,90%是采取当前的最优选择(也就是Q值最大的那个),10%的概率去随机选取一个可走的状态,从而保证探索与利用并重!!!!

  • 相关阅读:
    算法-合并 K 个升序链表
    做自动化测试选择Python还是Java?
    【Vue学习之从入门到神经】
    Kakao账号注册全流程,如何Kakao多开?
    【数据库与事务系列】分库分表中间件
    【MogDB/openGauss如何实现自增主键】
    获取线上手机App日志
    没睡醒就来上班的程序员解决BUG
    如何判断一个js对象是否存在循环引用
    isomap降维算法--学习笔记
  • 原文地址:https://blog.csdn.net/Elon15/article/details/126199241