强化学习入坑之路02
今天是强化学习开源代码学习活动第二次的打卡时间,经过了又三天的学习,自己对强化学习的了解又深了一步,下面来为大家进行介绍。
1.马尔可夫过程及相关概念
强化学习的相关概念与马尔可夫过程息息相关,而马尔可夫过程的核心概念就是当前状态下产生下一状态的概率只与当前状态有关,而与之前的状态无关。
1.1 马尔可夫链
马尔可夫过性质:如果一个状态的下一个状态只取决于它当前状态,而跟它当前状态之前的状态都没有关系。那我们就说这个状态转移符合马尔可夫性质
如上图所示,这里有一个包含之前的所有状态的
h
t
h_t
ht,对于
s
t
s_t
st转到
s
t
+
1
s_{t+1}
st+1来说,对
s
t
+
1
s_{t+1}
st+1状态的影响有且只与
s
t
s_t
st有关。如果某一个过程满足马尔可夫性质(Markov Property),就是说未来的转移跟过去是独立的,它只取决于现在。马尔可夫性质是所有马尔可夫过程的基础。
**马尔可夫链:**这里我的理解是马尔可夫链是一条符合马尔可夫过程的序列,这条序列可以是闭环的或是其他结构的。
如上图所示,这是一条含有四个状态的马尔可夫链,状态为
s
1
s_1
s1、
s
2
s_2
s2、
s
3
s_3
s3、
s
4
s_4
s4,每一个状态都有向其他状态或本状态的转移概率,将这些概率总结并写成矩阵形式就构成了下面的状态转移矩阵。
1.2 马尔可夫奖励过程
马尔可夫奖励过程是在马尔可夫链的基础上加入了奖励函数,具体形式如下图所示:
其中P函数的含义可以参考我们上一节中定义状态转移矩阵,而R函数就是对当前状态s的奖励的期望。上述公式组合构成了马尔科夫奖励过程。
然而对于奖励函数我们通常要加入随时间变化的折扣系数γ,主要是由于在强化学习中我们希望得到更多奖励的时间尽可能的短,所以要对较远状态获得的奖励采用折扣系数的形式进行衰减。
上图中horizon 可理解为走的步数总长度,return为状态为s时的奖励加上s后奖励的折扣奖励,由此我们可以计算出价值函数
V
t
(
s
)
V_t(s)
Vt(s)
计算价值函数
V
t
(
s
)
V_t(s)
Vt(s)的方法
法1:对当前状态s,选取若干条从s出发的轨迹,取其价值平均线
法2:通过Bellman Equation(贝尔曼等式)定义未来状态与当前状态的关系
按贝尔曼等式的形式将上述公式拆分,可拆分为当前奖励和折扣奖励两部分,然后进一步用矩阵形式计算。
其矩阵形式可以表示为:
V
=
R
+
γ
P
V
V = R +γPV
V=R+γPV
V可被解为:
V
=
(
I
−
γ
P
)
−
1
R
V = (I-γP)^{-1}R
V=(I−γP)−1R
然而,在实际情况下,矩阵求逆的过程在状态特别多时会造成很大的时间及空间复杂度,不利于应用。在这种情况下,可以通过迭代的方法来解这种MDP。
迭代的解法可以有:动态规划法、蒙特卡罗法、Temporal-Difference Learning法(前两者相结合)
蒙特卡罗法:以当前路径出发,求多条路径价值求其平均。
动态规划法:一直迭代器贝尔曼等式,直至其收敛。
1.3 马尔可夫决策过程
马尔可夫决策过程与马尔可夫奖励过程类似,只是在其基础上加了策略。
如上图所示,状态转移函数的前提条件除了取决于上一状态外还添加了上一状态动作。而动作a则由策略π产生
这里是策略的公式,给出了状态与动作的关系。
加入策略后,奖励函数与状态转移函数变为以上形式。
2.表格型方法
2.1 Q-table
Q-table如上图所示,横轴为状态,纵轴为动作,表格中的值为价值,计算方法如下所示:
2.2 Sarsa算法
我们直接看这个框框里面的更新公式, 和之前的公式是一模一样的。S’就是 S t + 1 S_{t+1} St+1 。我们就是拿下一步的 Q 值 Q(S’,A’)来更新这一步的 Q 值 Q(S,A)Q(S,A),不断地强化每一个 Q值。
2.3 Q-learning算法
Sarsa 是一种 on-policy 策略。Sarsa 优化的是它实际执行的策略,它直接拿下一步会执行的 action 来去优化 Q 表格,所以 on-policy 在学习的过程中,只存在一种策略,它用一种策略去做 action 的选取,也用一种策略去做优化。而 Sarsa 知道它下一步的动作有可能会跑到悬崖那边去,所以它就会在优化它自己的策略的时候,会尽可能的离悬崖远一点。这样就可以保证,它下一步哪怕是有随机动作,它也还是在安全区域内。
Q-learning 的算法有两种 policy:behavior policy 和 target policy。
Target policy π 直接在 Q-table 上取 greedy,就取它下一步能得到的所有状态,如下式所示:
π
(
S
t
+
1
)
=
a
r
g
m
a
x
a
′
Q
(
S
t
+
1
,
a
′
)
π(S_{t+1})=argmax_{a'}Q(S_{t+1},a')
π(St+1)=argmaxa′Q(St+1,a′)
Behavior policy μ 可以是一个随机的 policy,但我们采取 ε-greedy,让 behavior policy 不至于是完全随机的,它是基于 Q-table 逐渐改进的。