作为一个新手,写这个强化学习-基础知识专栏是想和大家分享一下自己学习强化学习的学习历程,希望对大家能有所帮助。这个系列后面会不断更新,希望自己在2021年能保证平均每日一更的更新速度,主要是介绍强化学习的基础知识,后面也会更新强化学习的论文阅读专栏。本来是想每一篇多更新一点内容的,后面发现大家上CSDN主要是来提问的,就把很多拆分开来了(而且这样每天任务量也小一点哈哈哈哈偷懒大法)。但是我还是希望知识点能成系统,所以我在目录里面都好按章节系统地写的,而且在github上写成了书籍的形式,如果大家觉得有帮助,希望从头看的话欢迎关注我的github啊,谢谢大家!另外我还会分享深度学习-基础知识专栏以及深度学习-论文阅读专栏,很早以前就和小伙伴们花了很多精力写的,如果有对深度学习感兴趣的小伙伴也欢迎大家关注啊。大家一起互相学习啊!可能会有很多错漏,希望大家批评指正!不要高估一年的努力,也不要低估十年的积累,与君共勉!
Markov Decision Process
Markov Property
State
s
t
s_{t}
st is Markovian if and only if:
p
(
s
t
+
1
∣
s
t
)
=
p
(
s
t
+
1
∣
h
t
)
p
(
s
t
+
1
∣
s
t
,
a
t
)
=
p
(
s
t
+
1
∣
h
t
,
a
t
)
\begin{aligned} p\left(s_{t+1} \mid s_{t}\right) &=p\left(s_{t+1} \mid h_{t}\right) \\ p\left(s_{t+1} \mid s_{t}, a_{t}\right) &=p\left(s_{t+1} \mid h_{t}, a_{t}\right) \end{aligned}
p(st+1∣st)p(st+1∣st,at)=p(st+1∣ht)=p(st+1∣ht,at)
The future is independent of the past given the present. 未来只和当前状态有关,和再之前的状态无关。
Markov Reward Process
Return and Value function
- Horizon的定义:一个回合内的最大时间步
- Return的定义: G t = R t + 1 + γ R t + 2 + γ 2 R t + 3 + γ 3 R t + 4 + … + γ T − t − 1 R T G_{t}=R_{t+1}+\gamma R_{t+2}+\gamma^{2} R_{t+3}+\gamma^{3} R_{t+4}+\ldots+\gamma^{T-t-1} R_{T} Gt=Rt+1+γRt+2+γ2Rt+3+γ3Rt+4+…+γT−t−1RT
- Value function的定义(表示未来奖励的值): V t ( s ) = E [ G t ∣ s t = s ] = E [ R t + 1 + γ R t + 2 + γ 2 R t + 3 + … + γ T − t − 1 R T ∣ s t = s ] \begin{aligned} V_{t}(s) &=\mathbb{E}\left[G_{t} \mid s_{t}=s\right] \\ &=\mathbb{E}\left[R_{t+1}+\gamma R_{t+2}+\gamma^{2} R_{t+3}+\ldots+\gamma^{T-t-1} R_{T} \mid s_{t}=s\right] \end{aligned} Vt(s)=E[Gt∣st=s]=E[Rt+1+γRt+2+γ2Rt+3+…+γT−t−1RT∣st=s]
为什么要有 γ \gamma γ
- 避免在循环的马尔可夫过程中有无限的return
- 关于未来的不确定性不能完全地展示,那这个 γ \gamma γ其实就表征了一定的不确定性
- 比起未来的奖励人类更偏爱即时奖励
- 如果 γ = 0 \gamma=0 γ=0,表示我们只关心立即奖励而不关心未来的奖励;如果 γ = 1 \gamma=1 γ=1,表示我们觉得未来的奖励和现在的即时奖励一样重要,所以就可以把 γ \gamma γ作为超参数来得到不同行为的agent
Markov Descion Process
MDP中的重要定义
-
在有限MDP中, 状态、动作和奖励 ( S , A \quad(\mathcal{S}, \mathcal{A} (S,A 和 R ) \mathcal{R}) R) 的集合都具有有限数量的元素。 在这种情况下,随机变量 R t R_{t} Rt 和 S t S_{t} St 具有明确定义的离散概率分布, 仅取决于先前的状态和动作。 也就是说 对于这些随机变量的特定值, s ′ ∈ S s^{\prime} \in \mathcal{S} s′∈S 和 r ∈ R , r \in \mathcal{R}, \quad r∈R, 在给定前一状态和动作的特定值的情况下,存在 这些值在时间t发生的概率:
p ( s ′ , r ∣ s , a ) ≐ Pr { S t = s ′ , R t = r ∣ S t − 1 = s , A t − 1 = a } p\left(s^{\prime}, r \mid s, a\right) \doteq \operatorname{Pr}\left\{S_{t}=s^{\prime}, R_{t}=r \mid S_{t-1}=s, A_{t-1}=a\right\} p(s′,r∣s,a)≐Pr{St=s′,Rt=r∣St−1=s,At−1=a} -
p : S × R × S × A → [ 0 , 1 ] p: \mathcal{S} \times \mathcal{R} \times \mathcal{S} \times \mathcal{A} \rightarrow[0,1] p:S×R×S×A→[0,1] 是四个参数的普通确定性函数。但这里只是提醒我们 p p p 指定 s s s 和 a a a 的每个选择的概率分布, 即对所有 s ∈ S , a ∈ A ( s ) s \in \mathcal{S}, a \in \mathcal{A}(s) s∈S,a∈A(s)
∑ s ′ ∈ S ∑ r ∈ R p ( s ′ , r ∣ s , a ) = 1 \sum_{s^{\prime} \in \mathcal{S}} \sum_{r \in \mathcal{R}} p\left(s^{\prime}, r \mid s, a\right)=1 ∑s′∈S∑r∈Rp(s′,r∣s,a)=1。 -
从四参数动力学函数p中,可以计算出人们可能想知道的关于环境的任何其他信息,例如状态转移 概率 (我们将其略微滥用符号表示为三参数函数 p : S × S × A → [ 0 , 1 ] ) p: \mathcal{S} \times \mathcal{S} \times \mathcal{A} \rightarrow[0,1]) p:S×S×A→[0,1]),
p ( s ′ ∣ s , a ) ≐ Pr { S t = s ′ ∣ S t − 1 = s , A t − 1 = a } = ∑ r ∈ R p ( s ′ , r ∣ s , a ) p\left(s^{\prime} \mid s, a\right) \doteq \operatorname{Pr}\left\{S_{t}=s^{\prime} \mid S_{t-1}=s, A_{t-1}=a\right\}=\sum_{r \in \mathcal{R}} p\left(s^{\prime}, r \mid s, a\right) p(s′∣s,a)≐Pr{St=s′∣St−1=s,At−1=a}=r∈R∑p(s′,r∣s,a) -
我们还可以将状态 - 动作对的预期奖励计算为双参数函数 r : S × A → R r: \mathcal{S} \times \mathcal{A} \rightarrow \mathbb{R} r:S×A→R
r ( s , a ) ≐ E [ R t ∣ S t − 1 = s , A t − 1 = a ] = ∑ r ∈ R r ∑ s ′ ∈ S p ( s ′ , r ∣ s , a ) r(s, a) \doteq \mathbb{E}\left[R_{t} \mid S_{t-1}=s, A_{t-1}=a\right]=\sum_{r \in \mathcal{R}} r \sum_{s^{\prime} \in \mathcal{S}} p\left(s^{\prime}, r \mid s, a\right) r(s,a)≐E[Rt∣St−1=s,At−1=a]=r∈R∑rs′∈S∑p(s′,r∣s,a) -
以及状态 - 行动 - 下一状态三元组的预期奖励作为三个参数函数 r : S × A × S → R r: \mathcal{S} \times \mathcal{A} \times \mathcal{S} \rightarrow \mathbb{R} r:S×A×S→R
r ( s , a , s ′ ) ≐ E [ R t ∣ S t − 1 = s , A t − 1 = a , S t = s ′ ] = ∑ r ∈ R r p ( s ′ , r ∣ s , a ) p ( s ′ ∣ s , a ) r\left(s, a, s^{\prime}\right) \doteq \mathbb{E}\left[R_{t} \mid S_{t-1}=s, A_{t-1}=a, S_{t}=s^{\prime}\right]=\sum_{r \in \mathcal{R}} r \frac{p\left(s^{\prime}, r \mid s, a\right)}{p\left(s^{\prime} \mid s, a\right)} r(s,a,s′)≐E[Rt∣St−1=s,At−1=a,St=s′]=r∈R∑rp(s′∣s,a)p(s′,r∣s,a)
MRP和MDP的对比
相当于中间加了一层决策层,相当于MRP是一个随波逐流的过程但是MDP是一个有agent在掌舵的过程。