强化学习入门算法
Posted Bupt_Luke
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了强化学习入门算法相关的知识,希望对你有一定的参考价值。
Q − L e a r n i n g Q -\\mathrmLearning Q−Learning 算法介绍
Q
−
L
e
a
r
n
i
n
g
Q- \\mathrmLearning
Q−Learning是强化学习的算法之一,
Q
−
L
e
a
r
n
i
n
g
Q- \\mathrmLearning
Q−Learning的主要目的就是学习状态动作价值函数的
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
Q−Learning利用状态s和动作a张成一个Q表来储存Q值,然后根据Q值来选取能够获得最大收益的动作。
Q
−
L
e
a
r
n
i
n
g
Q- \\mathrmLearning
Q−Learning采用是值迭代的方法进行求解,其核心的迭代公式为
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^∈S∑p(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
Q−Learning算法用到的都是以上的迭代公式。
Q − L e a r n i n g Q -\\mathrmLearning Q−Learning 具体实例
如下左半图显示,该图共有六个状态,五个房间分别是状态
0
,
1
,
2
,
3
0,1,2,3
0,1,2,3和
4
4
4,以及房间外状态
5
5
5,右半图为左半图的状态转移过程的抽象示意图。现在的问题是如果有一个人在任意的一个房间里,给他支个招让他走出房间外。我们就可以通过强化学习中的
Q
−
L
e
a
r
n
i
n
g
Q- \\mathrmLearning
Q−Learning方法来解决这个问题。
在解决这个问题之前需要先确定奖励矩阵
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=⎣⎢⎢⎢⎢⎢⎢⎡−1−1−1−10−1−1−1−10−10−1−1−10−1−1−100−10−10−1−10−10−1100−1−1100100⎦⎥⎥⎥⎥⎥⎥⎤
- 首先确定折扣系数γ = 0.8 \\gamma=0.8 γ=0 .8,并将Q初始化为一个零矩阵:
Q = [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ] Q=\\left[\\beginarraycccccc0&0&0&0&0&0\\\\0&0&0&0&0&0\\\\0&0&0&0&0&0\\\\0&0&0&0&0&0\\\\0&0&0&0&0&0\\\\0&0&0&0&0&0\\endarray\\right] Q=⎣⎢强化学习入门级实践教学