一、定义
** 是将强化学习和深度学习结合在一起,用强化学习来定义问题和优化目标,用深度学习来解决策略和值函数的建模问题,然后使用误差反向传播算法来优化目标函数。深度强化学习在一定程度上具备解决复杂问题的通用智能,并在很多任务上都取得了很大的成功。学习方法有基于值函数的学习方法和基于策略函数的学习方法。 **
二、基于值函数的策略学习方法
** 一个策略π对应一个状态和该状态下的一个动作,可表示为条件概率形式π(a|s),值函数是对策略Π的评估,如果策略有限(即状态数和动作数都有限)时,可以对所有的策略进行评估选出最优策略π*。为求出最优策略,一个可行的方式是通过迭代不断优化策略,对于一个状态s,有许多候选动作,其Q函数对应为Q(s,a),则可以设置一个新的策略,使其等于:**
如果执行π’,会有:
根据以上公式,我们可以通过下面方式来学习最优策略:先随机初始化一个策略,计算该策略的值函数,并根据值函数来设置新的策略,然后一直反复迭代直到收敛。此方法的关键是如何计算策略的值,一般有动态规划和蒙特卡罗两种计算方式。
三、动态规划算法
从贝尔曼方程可知,如果知道马尔可夫决策过程的状态转移概率p(s'|s,a)和奖励r(s,a,s'),则可以直接通过贝尔曼方程来迭代计算值函数。这种模型已知的强化学习算法也称基于模型的强化学习算法,这里的模型就是指马尔可夫决策过程。模型已知的强化学习按照方法主要有策略迭代算法和值迭代算法。 3.1 策略迭代(Policy Iteration) 在本算法中,每次迭代可以分为两步: 策略评估: 计算当前状态的值函数。策略评估可以通过贝尔曼方程进行迭代计算值函数V(s)。 策略改进:根据值函数来更新策略。 策略迭代算法:
四、值迭代方法
策略迭代中的策略评估和策略改进是交替轮流进行,其中策略评估也是通过一个内部迭代来进行计算,其计算量比较大。事实上,我们不需要每次计算出每次策略对应的精确的值函数,也就是说内部迭代不需要执行到完全收敛。假设最优策略π对应的值函数称为最优值函数,那么最优状态值函数V(s) 和最优状态-动作值函数Q*(s,a)的关系为:
根据贝尔曼方程可知,最优状态值函数V*(s) 和最优状态-动作值函数Q*(s,a),也可以进行迭代计算:
值迭代方法通过直接优化贝尔曼最优方程(公式14.27),迭代计算最优值函数。值迭代方法如14.2 所示:
在策略迭代中,最大迭代次数为|A|的|S|次方。而在值迭代中,但迭代次数要比策略迭代算法更多。策略迭代是根据贝尔曼方程来更新值函数,并根据当前的值函数来改进策略。而值迭代算法是直接使用贝尔曼最优方程来更新值函数,收敛时的值函数就是最优的值函数,其对应的策略也就是最优的策略。值迭代和策略迭代都需要经过非常多的迭代次数才能完全收敛。在实际应用中,可以不必等到完全收敛。这样,当状态和动作数量有限时,经过有限次迭代就可以能收敛到近似最优策略。