如何简单理解Q-learning强化学习算法

一、引言

        引言部分可以直接跳过,写这部分主要是为了避免CSDN的发文助手检测。

        强化学习(Reinforcement Learning),是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题。强化学习的常见模型是标准的马尔可夫决策过程(Markov Decision Process)。按给定条件,强化学习可分为有模型的强化学习和无模式的强化学习,以及主动强化学习和被动强化学习。强化学习的变体包括逆向强化学习、阶层强化学习和部分可观测系统的强化学习。求解强化学习问题所使用的算法可分为策略搜索算法和值函数算法两类。深度学习模型可以在强化学习中得到使用,形成深度强化学习。 强化学习理论受到行为主义心理学启发,侧重在线学习并试图在探索-利用间保持平衡。不同于监督学习和非监督学习,强化学习不要求预先给定任何数据,而是通过接收环境对动作的奖励(反馈)获得学习信息并更新模型参数。 强化学习问题在信息论、博弈论、自动控制等领域有得到讨论,被用于解释有限理性条件下的平衡态、设计推荐系统和机器人交互系统。一些复杂的强化学习算法在一定程度上具备解决复杂问题的通用智能,可以在围棋和电子游戏中达到人类水平。----来源于百度百科。

二、强化学习基本概念

        一个强化学习任务可以这么描述,

如何简单理解Q-learning强化学习算法_第1张图片

        其中,当P是已知时,那么这个强化学习任务就是有模型的;当P是未知时,这个强化学习任务就是免模型的。

        那么,强化学习和Q-learning之间的关系是什么呢?请见下图,Q-learning是一种免模型的强化学习算法。也就是说,在Q-learning之中,状态转移概率P是未知的。

如何简单理解Q-learning强化学习算法_第2张图片

三、Q-learning强化学习算法

        Q-learning就是一个通用的强化学习算法,旨在学习一个近似的最优策略π。而在这个π下,智能体预期获得的累积奖赏是最大的或者接近最大的。

        Q-learning算法的输入是环境(包括状态空间、动作空间、奖赏函数)、起始状态、奖赏折扣γ和更新步长α;输出是一个确定性策略π。π的数学形式是一个离散的函数,即π(x)=a,其中x是一个状态,a是一个动作。核心中间变量Q(x,a),可以简称为Q表(主要用于学习确定性策略π,即更新策略π),表示在状态x下,智能体选择动作a所获得的期望累积奖赏。整个算法如下图所示(来源于周志华,《机器学习》)

如何简单理解Q-learning强化学习算法_第3张图片

四、个人理解

        算法的各个步骤的解读。

        第1步:对Q(x,a)进行初始化,同时设置默认均匀概率选取动作。对π(x,a)设置一个均匀的概率,是为了实现训练时用的策略\pi^\epsilon (x)。但是,π(x,a)不是最终要得到的策略,而\pi^\epsilon (x)也不是最终要得到的策略,只有π(x)才是训练中需要学习的策略、最终想要得到策略。

        第2步:初始化一个状态(人为指定),x=x0。

        第3步:循环迭代(需要人为设定步数t的上限,或者人为设定循环终止的条件)。

        第4步:在状态x下利用\pi^\epsilon (x)选择一个动作a,执行动作a,得到奖赏r和下一状态x'。

        第5步:利用策略π在x'的状态下得到a的下一个动作a'。

        第6步:更新Q(x,a)表(策略学习的依据)。更新原则:计算Q(x,a)的平均奖赏。而对于平均奖赏n,《机器学习》有这样的描述:

如何简单理解Q-learning强化学习算法_第4张图片

        Q-learning计算Q(x,a)的平均奖赏在也采取了类似于公式(16.3)这样的方式。 在上图中,\frac{1}{n}被替换成了α。值得注意的是,v_n不是n时刻的所获得的奖赏,而是1到n时刻的累积奖赏。这样,可以得到以下的Q(x,a)更新公式(主要看公式16.31):

如何简单理解Q-learning强化学习算法_第5张图片

        在上图中,用红色框框圈起来的那一项就是t+1时刻得到的累积奖赏,对应公式16.3中的v_n。这么更新之后,算法学习到的Q(x,a)就会更能体现环境E中,在状态x下,智能体选择动作a所可能带来的奖赏究竟有多少。更具体地,在算法初始化时,Q(x,a)全为0,在状态x下选择a的可能得到的奖赏是极其不准确的;但是随着t的增加,Q(x,a)会越来越准确并收敛于一个具体数值,最终体现了在状态x下选择a真正的累积奖赏。为什么会这样呢?我粗略的见解是,智能体通过与环境进行互动,\pi^\epsilon (x)策略对于随机动作的探索和最优动作的利用导致了这样的结果。

        第7步:更新策略π在状态x下的最优动作(策略学习)。

        第8步:当前状态x转移至x',下一个即将执行的动作设置为a'(但不一定会执行)。

        整个算法的思想:随着训练迭代步数的增加,更新Q(x,a),同时更新策略π,使得Q(x,a)的值收敛。为什么要更新Q(x,a)呢?因为Q(x,a)中的值一开始是随机初始化的,或者全部设为0。因此,Q(x,a)是不准确的。当训练迭代步数t趋近于无穷大时,Q(x,a)就会收敛到一个值,这个值是准确的,能够真正地体现智能体在状态x下选择动作a能够得到的累积奖赏Q(x,a)。此时,通过比较Q(x,a1)、Q(x,a2)、Q(x,a3)等这些Q值,智能体能够知道,在x状态下,哪个动作能够得到的累积奖赏最大,然后智能体就选择哪个动作作为最佳动作,而这一动作决策被保存于π中。

        算法的缺点:这个算法受限于有限的状态空间和动作空间,当状态空间和动作空间很大时,计算机内存无法保存巨大的Q(x,a)表。为了解决这个问题,DQN强化学习应运而生,感兴趣的人可以浏览“Playing atari with deep reinforcement learning”这一发表在Nature上面的论文。

        不管怎么样,以上仅仅是我的个人见解,可能会存在一定的理解偏差。如果大家有更好的理解,欢迎提出来在留言区中共同探讨!

五、参考文献

        机器学习,周志华,清华大学出版社

        强化学习词条,百度百科

你可能感兴趣的:(机器学习,强化学习)