强化学习入门算法

Posted Bupt_Luke

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了强化学习入门算法相关的知识,希望对你有一定的参考价值。

Q − L e a r n i n g Q -\\mathrmLearning QLearning 算法介绍

Q − L e a r n i n g Q- \\mathrmLearning QLearning是强化学习的算法之一, Q − L e a r n i n g Q- \\mathrmLearning QLearning的主要目的就是学习状态动作价值函数的 Q ( s , a ) Q(s,a) Q(s,a),其中 Q ( s , a ) Q(s,a) Q(s,a)表示的是在给定当前状态s和采取动作a之后能够获得的收益期望。 Q − L e a r n i n g Q- \\mathrmLearning QLearning利用状态s和动作a张成一个Q表来储存Q值,然后根据Q值来选取能够获得最大收益的动作。 Q − L e a r n i n g Q- \\mathrmLearning QLearning采用是值迭代的方法进行求解,其核心的迭代公式为 Q k + 1 ( s , a ) = ∑ s ^ ∈ S p ( s ^ ∣ s , a ) [ R ( s , a ) + γ ⋅ max ⁡ a ^ ∈ A Q k ( s ^ , a ^ ) ] Q_k+1(s,a)=\\sum\\limits_\\hats\\in\\mathcalSp(\\hats|s,a)\\left[R(s,a)+\\gamma \\cdot \\max\\limits_\\hata\\in \\mathcalA\\Q_k(\\hats,\\hata)\\\\right] Qk+1(s,a)=s^Sp(s^s,a)[R(s,a)+γa^AmaxQk(s^,a^)] k + 1 k+1 k+1次迭代函数,s和a分别表示的是当前的状态和执行的动作并且它们分别属于状态空间 S \\mathcalS S和动作空间 A \\mathcalA A R ( s , a ) R(s,a) R(s,a)表示的是在状态s执行动作a后的即时奖励, s ^ \\hats s^ a ^ \\hata a^表示的是下一个的状态和行为, p ( s ^ ∣ s , a ) p(\\hats|s,a) p(s^s,a)表示的是状态转移概率, γ \\gamma γ 表示的是折扣系数。
当动作空间 A \\mathcalA A中的动作a划分的足够细时候,给定当前状态s和执行的动作a,就能够明确确定下一个状态 h a t s hats hats,进而则有 p ( s ^ ∣ s , a ) = 1 p(\\hats|s,a)=1 p(s^s,a)=1,对上迭代公式进一步化简则有 Q k + 1 ( s , a ) = R ( s , a ) + γ ⋅ max ⁡ a ^ ∈ A Q k ( s ^ , a ^ ) Q_k+1(s,a)=R(s,a)+\\gamma \\cdot \\max\\limits_\\hata\\in \\mathcalA\\Q_k(\\hats,\\hata)\\ Qk+1(s,a)=R(s,a)+γa^AmaxQk(s^,a^)一般情况下 Q − L e a r n i n g Q- \\mathrmLearning QLearning算法用到的都是以上的迭代公式。

Q − L e a r n i n g Q -\\mathrmLearning QLearning 具体实例

如下左半图显示,该图共有六个状态,五个房间分别是状态 0 , 1 , 2 , 3 0,1,2,3 01,23 4 4 4,以及房间外状态 5 5 5,右半图为左半图的状态转移过程的抽象示意图。现在的问题是如果有一个人在任意的一个房间里,给他支个招让他走出房间外。我们就可以通过强化学习中的 Q − L e a r n i n g Q- \\mathrmLearning QLearning方法来解决这个问题。

在解决这个问题之前需要先确定奖励矩阵 R R R,其元素表示的是当一个给定一个状态s,当执行某个动作a后,它的即时奖励 R ( s , a ) R(s,a) R(s,a)的取值。规定当走出房间外到达状态 5 5 5的动作奖励为 100 100 100,如果没有走出房间外但在房间内可以走通的是奖励为 0 0 0,如果房间内也不能走通的动作奖励为 − 1 -1 1。奖励矩阵 R R R具体取值如下所示。
R = [ − 1 − 1 − 1 − 1 0 − 1 − 1 − 1 − 1 0 − 1 100 − 1 − 1 − 1 0 − 1 − 1 − 1 0 0 − 1 0 − 1 0 − 1 − 1 0 − 1 100 − 1 0 − 1 − 1 0 100 ] R=\\left[\\beginarrayrrrrrr-1&-1&-1&-1&0&-1\\\\-1&-1&-1&0&-1&100\\\\-1&-1&-1&0&-1&-1\\\\-1&0&0&-1&0&-1\\\\0&-1&-1&0&-1&100\\\\-1&0&-1&-1&0&100\\endarray\\right] R=111101111010111011100101011010110011100100