Q&A
Q1: 什么是Q_Learning?
A1: 核心概念
Q_Learning 顾名思义就是学习Q表,Q表指的是由状态空间S 和 行动空间A形成的“笛卡尔积”表。对于每个状态s,每个行动a都对应着一个价值导向。其作用就是在和环境交互中学到Q表后对行动决策给予指导。
A2:应用范围
- 由前所述,Q表是个“笛卡尔积”,其中的状态空间和行动空间均为离散值。这也意味着计算机在存储、查找、修改数据时,数据范围不能过大。因此在状态空间较小的场景中应用是比较合适的。
- Q表收敛的证明:大数定律,说的是独立同分布情况下,只要试验超过一定次数,肯定能找到分布的近似函数。对于Q表就是每个状态s下采取行动a的收益情况。
- Q表收敛的条件:环境是稳定的,分布是确定的。
A3: 怎么求
重点在于:
- 行动选择:基于概率,e贪心得到行动(不论行动A和行动B对应的差距多大,就是以一定的概率选择最好的行动)
- 更新Q表:用s‘状态下最大收益进行更新,最大收益对应的行动不一定是下一轮采取的行动
A4: 在强化学习中的分类
【是否基于模型】+ 【行动选择】 + 【更新频率】 + 【在线/离线】:model free + 基于概率 + 单步更新 + 离线学习
Q2: Sarsa和Q_Learning的区别
A1: 直接看算法
Sarsa敢做敢当,用行动A更新Q表,就采取行动A;Q_Learning“表里不一”,用行动A更新Q表,却不一定采取行动A。
A2: 在强化学习中的分类
【是否基于模型】+ 【行动选择】 + 【更新频率】 + 【在线/离线】:model free + 基于概率 + 单步更新 + 在线学习
A3: 应用上的差别
什么情况下用Sarsa更好,什么情况下Q_Learning更好?
- 收敛速度:Q_Learning更快?
- 策略:sarsa不是拿最好的收益更新Q表,就可能将失败的情况反馈回去,从而使得对于失败的恐惧,该路径的分值会低
- 怎么选?
Q2: Sarsa和 Sarsa(lambda)的区别
A1: 直接看算法
- lambda = 1时,是回合更新;lambda = 0时,是单步更新
- 多了一个与Q表同样大小的E表,用于记录来时走过的路
- 更新Q表时,不再只更新s,a位置的奖励值,而是对所有状态,所有行动都进行遍历更新
- 至于更新哪些位置,是否需要进行刷新,则有不同的方法
A2: 应用上的差别
什么情况下用Sarsa更好,什么情况下Sarsa(lambda)更好?
- 收敛速度:Sarsa(lambda)找到一个好的策略后,则很快能加深对这个的偏好
- 策略:Sarsa(lambda)会不会陷入局部最优,跳不出去?
- 怎么选?