3.5 蒙特卡洛方法
统计每一个状态s出现的总次数和总回报,用大数定律,总回报/总次数≈状态s的期望回报
第4章 动态规划算法
策略迭代中的策略评估使用贝尔曼期望方程来得到一个策略的状态价值函数,这是一个动 态规划的过程;而价值迭代直接使用贝尔曼最优方程来进行动态规划,得到最终的最优状态价值函数。
基于动态规划的这两种强化学习算法要求事先知道环境的状态转移函数和奖励函数,也就是需要知道整个马尔可夫决策过程。在这样一个白盒环境中,不需要通过智能体和环境的大量交互来学习,可以直接用动态规划求解状态价值函数。但是现实中的白盒环境很少,这也是动态规划算法的局限之处,我们无法将其运用到很多实际场景中。
动态规划不是使用的时序差分思想,计算每一个状态S的最大Q作为下一个动作,当误差最大的那个状态S的误差小于阙值时停止。因为要计算所有状态 s 下的所有 Q(s,a)价值,所以需要对全部状态迭代多次完成收敛
策略迭代是策略评估和策略提升不断循环交替,直至最后得到最优策略的过程
1. 策略评估
2. 策略提升
如果只在策略评估中进行一轮价值更新,然后直接根据更新后的价值进行策略提升, 这样是否可以呢?答案是肯定的,这其实就是本节将要讲解的价值迭代算法,它可以被认为是 一种策略评估只进行了一轮更新的策略迭代算法。
价值迭代
1. 如果只在策略评估中进行一轮价值更新,然后直接根据更新后的价值进行策略提升, 这样是否可以呢?答案是肯定的,这其实就是本节将要讲解的价值迭代算法,它可以被认为是 一种策略评估只进行了一轮更新的策略迭代算法
5.3 Sarsa算法
Q_table记录每一个表格位置的所有动作价值,初始值都等于0
根据公式计算Q(S,a),状态和动作必须配对,更新Q是更新的Q(S,a),不同Q(S,a)对应迭代公式中不同动作a的值
5.4 多步Sarsa算法
多步时序差分的意思是使用n步的奖励,然后使用之后状态的价值估计
当前在s,当采集够n步(s,a,r,s',a')时,计算一次当前s的Q_table
5.5 Q-learning 算法
用S‘最大Q的动作a所在状态作为目标值,取未来状态的最大Q值,不依赖当前策略的动作选择
后面计算的时候取所有动作中的maxQ作为目标target,而Sarsa是(s,a)匹配的
Sarsa和Q-learing区别
Sarsa更保守而Q-learing更激进,因为前者会考虑不利动作的风险,而后者只盲目选择最大Q的动作,不考虑会以epsilon概率选择其他动作的风险,在悬崖漫步问题中,Q-learing绕远会降低收益,而紧靠悬崖走收益最大,而Sarsa会考虑到掉进悬崖的风险。