强化学习笔记汇报
强化学习模型
强化学习模型介绍
强化学习任务通常使用马尔可夫决策过程(Markov Decision Process,简称MDP)来描述,具体而言:智能体处在一个环境中,每个状态为智能体对当前环境的感知;智能体只能通过动作来影响环境,当智能体执行一个动作后,会使得环境按某种概率转移到另一个状态;同时,环境会根据潜在的奖赏函数反馈给智能体一个奖赏。综合而言,强化学习主要包含四个要素:状态、动作、转移概率以及奖赏函数。
![马尔科夫决策模型](https://i-blog.csdnimg.cn/direct/162db03c7e324fd1b2f7c9188f02b503.png)
马尔科夫决策模型
马尔科夫过程(Markov Process)
举例:
![马尔科夫决策模型](https://i-blog.csdnimg.cn/direct/e62da4b6b2bb41eb87a059c3d27fb2ea.png#pic_center)
马尔科夫决策过程举例
例子是一个学生学习考试的MDP。里面左下那个圆圈位置是起点,方框那个位置是终点。上面的动作有study, pub, facebook, quit, sleep,每个状态动作对应的即时奖励 R R R 已经标出来了。目标是找到最优的动作价值函数或者状态价值函数,进而找出最优的策略。
为了方便计算,假设衰减因子
γ
=
1
\gamma=1
γ=1, 每个状态有两种动作选择
π
(
a
∣
s
)
=
0.5
\quad \pi(a \mid s)=0.5
π(a∣s)=0.5
对于终点方框位置,由于其没有下一个状态,也没有当前状态的动作,因此其状态价值函数
v
π
(
s
5
)
v_{\pi}(s_5)
vπ(s5)为 0 。对于其余四个状态,依次定义其价值为
v
π
(
s
1
)
,
v
π
(
s
2
)
,
v
π
(
s
3
)
,
v
π
(
s
4
)
v_{\pi}(s_1), v_{\pi}(s_2), v_{\pi}(s_3), v_{\pi}(s_4)
vπ(s1),vπ(s2),vπ(s3),vπ(s4) 分别对应左上,左下,中下,右下位置的圆圈。基于
v
π
(
s
)
=
∑
a
∈
A
π
(
a
∣
s
)
(
R
(
s
,
a
)
+
γ
∑
s
′
∈
S
P
(
s
′
∣
s
,
a
)
⋅
v
π
(
s
′
)
)
v_\pi(s)=\sum_{a \in A} \pi(a \mid s)\left(R(s, a)+\gamma \sum_{s^{\prime} \in S} P_{\left(s^{\prime} \mid s, a\right)} \cdot v_\pi\left(s^{\prime}\right)\right)
vπ(s)=a∈A∑π(a∣s)(R(s,a)+γs′∈S∑P(s′∣s,a)⋅vπ(s′))
来计算所有状态的价值函数,可以得到如下方程组
- 对于 v π ( s 1 ) v_{\pi}(s_1) vπ(s1): v π ( s 1 ) = 0.5 ∗ ( − 1 + v π ( s 1 ) ) + 0.5 ∗ ( 0 + v π ( s 2 ) ) v_{\pi}(s_1)=0.5 *\left(-1+v_{\pi}(s_1)\right)+0.5 *\left(0+v_{\pi}(s_2)\right) vπ(s1)=0.5∗(−1+vπ(s1))+0.5∗(0+vπ(s2))
- 对于 v π ( s 2 ) v_{\pi}(s_2) vπ(s2): v π ( s 2 ) = 0.5 ∗ ( − 1 + v π ( s 1 ) ) + 0.5 ∗ ( − 2 + v π ( s 3 ) ) v_{\pi}(s_2)=0.5 *\left(-1+v_{\pi}(s_1)\right)+0.5 *\left(-2+v_{\pi}(s_3)\right) vπ(s2)=0.5∗(−1+vπ(s1))+0.5∗(−2+vπ(s3))
- 对于 v π ( s 3 ) v_{\pi}(s_3) vπ(s3): v π ( s 3 ) = 0.5 ∗ ( 0 + 0 ) + 0.5 ∗ ( − 2 + v π ( s 4 ) ) v_{\pi}(s_3)=0.5 *(0+0)+0.5 *\left(-2+v_{\pi}(s_4)\right) vπ(s3)=0.5∗(0+0)+0.5∗(−2+vπ(s4))
- 对于 v π ( s 4 ) v_{\pi}(s_4) vπ(s4): v π ( s 4 ) = 0.5 ∗ ( 10 + 0 ) + 0.5 ∗ ( 1 + 0.2 ∗ v π ( s 2 ) + 0.4 ∗ v π ( s 3 ) + 0.4 ∗ v π ( s 4 ) ) v_{\pi}(s_4)=0.5 *(10+0)+0.5 *\left(1+0.2 * v_{\pi}(s_2)+0.4 * v_{\pi}(s_3)+0.4 * v_{\pi}(s_4)\right) vπ(s4)=0.5∗(10+0)+0.5∗(1+0.2∗vπ(s2)+0.4∗vπ(s3)+0.4∗vπ(s4))
解这个方程组可得: v π ( s 1 ) = − 2.3 , v π ( s 2 ) = − 1.3 , v π ( s 3 ) = 2.7 , v π ( s 4 ) = 7.4 v_{\pi}(s_1)=-2.3, v_{\pi}(s_2)=-1.3, v_{\pi}(s_3)=2.7, v_{\pi}(s_4)=7.4 vπ(s1)=−2.3,vπ(s2)=−1.3,vπ(s3)=2.7,vπ(s4)=7.4 既是每个状态的价值函数,具体含义可以描述为在各种状态下理论上考试可以得到多少分。
上面固定了策略
π
(
a
∣
s
)
\pi(a \mid s)
π(a∣s), 虽然求出了每个状态的状态价值函数,但是却并不一定是最优价值函数
v
π
∗
(
s
)
=
v
∗
(
s
)
v_{\pi_*}(s) = v^*(s)
vπ∗(s)=v∗(s)。
首先我们需要一个最优策略策略
π
∗
(
a
∣
s
)
\pi_*(a \mid s)
π∗(a∣s),其次我们需要一个最优动作值函数
q
∗
(
s
,
a
)
q_*(s, a)
q∗(s,a),利用
v
∗
(
s
)
=
∑
a
∈
A
π
∗
(
a
∣
s
)
(
q
∗
(
s
,
a
)
)
v_*(s) = \sum_{a \in A} \pi_*(a \mid s)\left(q_*(s,a) \right)
v∗(s)=∑a∈Aπ∗(a∣s)(q∗(s,a)) 就可以求出所有的
v
∗
(
s
)
v_*(s)
v∗(s),这样我们可以求得理论上每个状态的最大价值函数,具体含义可以描述为在最佳策略与最精准的动作价值评价下,各种状态下理论上考试可以得到多少分。
现在带来了两个问题:1、如何求最优策略? 2、如何求最优动作价值函数?