我们知道,td-learning时序差分是结合了动态规划dp和蒙特卡洛mc(请参见人工智能(31))方法,并兼具两种算法的优点,是强化学习的中心。
td-learning时序差分大概分了6类。其中,策略行动价值qπ的off-policy时序差分学习方法: q-learning(单步),double q-learning(单步)。今天重点介绍q-learning算法。
q learning算法是由watkins于1989年在其博士论文中提出,是强化学习发展的里程碑,也是目前应用最为广泛的强化学习算法。
q learning算法概念:
q learning算法是一种off-policy的强化学习算法,一种典型的与模型无关的算法,即其q表的更新不同于选取动作时所遵循的策略,换句化说,q表在更新的时候计算了下一个状态的最大价值,但是取那个最大值的时候所对应的行动不依赖于当前策略。
q learning始终是选择最优价值的行动,在实际项目中,q learning充满了冒险性,倾向于大胆尝试。
q learning算法下,目标是达到目标状态(goal state)并获取最高收益,一旦到达目标状态,最终收益保持不变。因此,目标状态又称之为吸收态。
q learning算法下的agent,不知道整体的环境,知道当前状态下可以选择哪些动作。通常,需要构建一个即时奖励矩阵r,用于表示从状态s到下一个状态s’的动作奖励值。由即时奖励矩阵r计算得出指导agent行动的q矩阵。
q矩阵是agent的大脑。
q learning算法本质:
qlearning属于td-learning时序差分学习。同样,该算法结合了动态规划和蒙特卡罗mc算法,模拟(或者经历)一个情节,每行动一步(或多步)后,根据新状态的价值,来估计执行前的状态价值。
下面提到的q-learning是单步更新算法。
q learning算法描述:
q-learning是一个突破性的算法。
利用下面公式进行off-policy学习,即用公式来表示q-learning中q表的更新:
q(st,at)←q(st,at)+α[rt+1+γmax q(st+1,a)?q(st,at)]
其中:
st: 当前状态state
at: 从当前状态下,采取的行动action
st+1:本次行动所产生的新一轮state
at+1: 次回action
rt: 本次行动的奖励reward
γ为折扣因子,0<= γ<1,γ=0表示立即回报,γ趋于1表示将来回报,γ决定时间的远近对回报的影响程度,表示牺牲当前收益,换取长远收益的程度。将累计回报作为评价策略优劣的评估函数。当前的回报值以及以前的回报值都可以得到,但是后续状态的回报很难得到,因此累计回报就难以计算。而q-learning用q函数来代替累计回报作为评估函数,正好解决这个问题。
α为控制收敛的学习率,0< α<1。通过不断的尝试搜索空间,q值会逐步趋近最佳值q*。
1)q-learning单步时序差分学习方法算法描述
initialize q(s,a),s∈s,a∈a(s) arbitrarily, and q(terminal, ˙)=0
repeat (for each episode):
initialize s
choose a from s using policy derived from q (e.g. greedy)
repeat (for each step of episode):
take action a, observe r,s′
q(s,a)←q(s,a)+α[r+γmaxa q(s‘,a)q(s,a)]
s←s′;
until s is terminal
每个episode是一个training session,且每一轮训练意义就是加强大脑,表现形式是agent的q矩阵元素更新。当q习得后,可以用q矩阵来指引agent的行动。
q-learning使用了max,会引起一个最大化偏差(maximization bias)问题。
可以使用double q-learning可以消除这个问题。
2)double q-learning单步时序差分学习方法算法描述
initialize q1(s,a) and q2(s,a),s∈s,a∈a(s) arbitrarily
initialize q1(terminal, ˙)=q2(terminal, ˙)=0
repeat (for each episode):
initialize s
repeat (for each step of episode):
choose a from s using policy derived from q1 and q2 (e.g. greedy)
take action a, observe r,s′
with 0.5 probability:
q1(s,a)←q1(s,a)+α[r+γq2(s′,argmax q1(s′,a))q1(s,a)]
else:
q2(s,a)←q2(s,a)+α[r+γq1(s′,argmax q2(s′,a))q2(s,a)]
s←s′;
until s is terminal
double q learning算法本质上是将计算q函数进行延迟,并不是得到一条样本就可以更新价值函数,而是一定的概率才可以更新。由原来的1条样本做到影响决策变为多条(至少两条)样本影响决策。
q learning理论基础:
qlearning理论基础如下:
1)蒙特卡罗方法
2)动态规划
3)信号系统
4)随机逼近
5)优化控制
q learning算法优点:
1)所需的参数少;
2)不需要环境的模型;
3)不局限于episode task;
4)可以采用离线的实现方式;
5)可以保证收敛到 qπ。
q learning算法缺点:
1) q-learning使用了max,会引起一个最大化偏差问题;
2) 可能会出现更新速度慢;
3) 可能会出现预见能力不强。
注:使用double q-learning可以消除问题1);使用多步q -learning可以消除问题2)和3)。
q learning算法应用:
从应用角度看,q learning应用领域与应用前景都是非常广阔的,目前主要应用于动态系统、机器人控制、工厂中学习最优操作工序以及学习棋类对弈等领域。
结语:
q learning是一种典型的与模型无关的算法,它是由watkins于1989年在其博士论文中提出,是强化学习发展的里程碑,也是目前应用最为广泛的强化学习算法。q learning始终是选择最优价值的行动,在实际项目中,q learning充满了冒险性,倾向于大胆尝试,属于td-learning时序差分学习。q learning算法已经被广泛应用于动态系统、机器人控制、工厂中学习最优操作工序以及学习棋类对弈等领域。
『本文转载自网络,皇冠最新app版本的版权归原作者所有,如有侵权请联系删除』