作者:禅与计算机程序设计艺术
1.简介
Q-learning算法是强化学习领域中非常经典的一类算法。它能够从离散或连续状态空间,用最优策略解决最优控制问题。其核心思想就是用收益函数(reward function)指导agent在每一个状态下做出动作的选择。但是,Q-learning存在着严重的不稳定性,即环境的变化会导致Q值的跳跃甚至完全崩溃,导致学习过程的困难。因此,如何保证Q值更新的稳定性是当今研究的一个重要课题。目前已有的一些方法主要包括四种,即vanilla Q-learning, Double Q-learning, N-step Q-learning 和 Sarsa Lambda。其中,vanilla Q-learning是一个非常基本的方法,只利用了当前观察到的状态价值函数V和动作价值函数Q的近似关系,不考虑未来的收益(intrinsic reward)。而Double Q-learning则通过采样正例和反例并对比学习更新Q值的方式,解决了vanilla Q-learning过分依赖单一Q网络的问题。N-step Q-learning是在vanilla Q-learning基础上引入了一个多步预测机制,使得模型能够考虑到长期影响,增强了Q值的鲁棒性。Sarsa Lambda同样是一种改进的TD方法,同样是用于TD(λ)算法的一种方式。但与前三者不同的是,Sarsa Lambda采用了bootstrapping技术ÿ