强化学习组成部分:
- 状态/观测值(state/observation):当前情况;
- 动作(action):当前采取的动作以及下一步的动作;
- 奖励(reward):基于当前的state和action会获得的奖励;
- 策略(policy):如何做决策;
- 动态环境(environment dynamics):包括转移矩阵或者环境的核函数
强化学习有以下特点:
-
无监督
-
反馈滞后
-
时间重要,顺序进程
-
无独立同分布假设,agent根据环境影响采取行动
即通过积累求最大化的问题
记录历史参数:
H
t
=
A
1
,
O
1
,
R
1
,
A
t
,
O
t
,
R
t
H_t = A_1,O_1,R_1,A_t,O_t,R_t
Ht=A1,O1,R1,At,Ot,Rt
agent的作用:H到A的合理映射,不过在强化学习中,通常使用state来取代history
S
t
a
=
f
(
H
t
)
S_t^a = f(H_t)
Sta=f(Ht)
state($ S_t^e $)以observation的形式来影响agent,在强化学习中,当agent获取全部状态信息时
O
t
=
S
t
a
=
S
t
e
O_t = S_t^a = S_t^e
Ot=Sta=Ste
而某些时候,无法获取全部的环境状态信息,一种
S
T
a
S_T^a
STa获取方法,
O
t
=
S
t
a
=
H
t
<
S
t
e
O_t = S_t^a = H_t < S_t^e
Ot=Sta=Ht<Ste,还可以通过概率向量决定
S
t
a
=
p
[
S
1
e
=
S
1
]
,
…
…
,
p
[
S
t
e
=
S
t
]
S_t^a = {p[S_1^e = S^1],……,p[S_t^e = S^t]}
Sta=p[S1e=S1],……,p[Ste=St],旧状态线性组合
S
t
a
=
σ
(
S
t
−
1
a
W
S
+
O
t
W
o
)
S_t^a = \sigma(S_{t-1}^aW_S+O_tW_o)
Sta=σ(St−1aWS+OtWo)得到。
Markov性质:
P
[
S
t
+
1
∣
S
t
]
=
P
[
S
t
+
1
∣
S
1
,
…
…
,
S
t
]
P[S_{t+1}|S_t]=P[S_{t+1}|S_1,……,S_t]
P[St+1∣St]=P[St+1∣S1,……,St]
在强化学习中反映为:
H
1
:
t
→
S
t
→
H
t
+
1
:
∞
H_{1:t}\to S_t \to H_{t+1:\infty}
H1:t→St→Ht+1:∞
环境的状态变化具有Markov性。
强化学习agent的元素构成:
- policy: a map from state to action 固定策略: a = π ( s ) a = \pi(s) a=π(s) 随机策略 π [ a ∣ s ] = P [ A = a ∣ S = s ] \pi[a|s]=P[A=a|S=s] π[a∣s]=P[A=a∣S=s]
- value function: prediction of future reward, v π ( s ) = E π [ R t + γ R t + 1 + γ 2 R t + 2 + … … ∣ S t = s ] v_{\pi}(s) = E_{\pi}[R_t+\gamma R_{t+1}+\gamma^2 R_{t+2}+……|S_t = s] vπ(s)=Eπ[Rt+γRt+1+γ2Rt+2+……∣St=s],向前看的程度反映在折扣因子$\gamma $中。
- model:分为transitions model:预测下个状态 输出概率 P s s ′ a = P [ S ′ = s ′ ∣ S = s , A = a ] P_{ss'}^a = P[S'=s'|S=s,A=a] Pss′a=P[S′=s′∣S=s,A=a] and reward model :预测下个奖励 R s a = E [ R ∣ S = s , A = a ] R^a_s = E[R|S=s,A=a] Rsa=E[R∣S=s,A=a]
agent 分类
- Value Based 根据奖励
- Policy Based 指明策略 通过某种数据结构记录策略
- Actor Critic 上两种策略结合
- Model Free 不理解环境 不知道状态转移概率 利用 Policy /Value 指定策略 求转移求策略
- Model Based 知道状态转移概率 建立关于环境的动态模型 求策略
两类问题
- 强化学习:环境未知 与环境交互 获得最大奖励
- 规划:完全了解环境 环境可以被确切地表达
预测和控制
- 预测prediction:奖励是多少
- 控制control:最优policy/action是啥
Markov Decision Processes
introduction
环境完全被观测;
P
[
S
t
+
1
∣
S
t
]
=
P
[
S
t
+
1
∣
S
1
,
…
…
,
S
t
]
P[S_{t+1}|S_t]=P[S_{t+1}|S_1,……,S_t]
P[St+1∣St]=P[St+1∣S1,……,St] 定义一个MDP只需要状态集合S和状态转移概率(矩阵)P
状态转移概率:
P
s
s
′
=
P
[
S
t
+
1
=
s
′
∣
S
t
=
s
]
P_{ss'} = P[S_{t+1} = s' | S_t = s]
Pss′=P[St+1=s′∣St=s]
→
\to
→ 状态转移概率矩阵
贝尔曼方程
递归分解价值函数
KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ v(s) &= E(G(t)…
当前状态决定
R
t
+
1
R_{t+1}
Rt+1
矩阵形式 :
KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ v = R+\gamma …
需要明确知道所有状态集合
求解MDP的方式,矩阵求逆运算复杂度过高
MDP组成
<
S
,
A
,
P
,
R
,
γ
>
<S,A,P,R,\gamma>
<S,A,P,R,γ>
-
S S S 状态集合
-
A A A 动作集合
-
P P P 状态转移概率矩阵 P s s ′ a = P [ S t + 1 = s ′ ∣ S t = s , A t = a ] P_{ss'}^a=P[S_{t+1}=s'|S_t=s,A_t=a] Pss′a=P[St+1=s′∣St=s,At=a]
-
R R R 奖励函数 R s a = E [ S t + 1 ∣ S t = s , A t = a ] R_s^a=E[S_{t+1}|S_t=s,A_t=a] Rsa=E[St+1∣St=s,At=a]
-
γ \gamma γ 折扣系数 ∈ [ 0 , 1 ] \in[0,1] ∈[0,1]
策略函数 policy function:
π
(
a
∣
s
)
=
P
[
A
t
=
a
∣
S
t
=
s
]
\pi(a|s)=P[A_t=a|S_t=s]
π(a∣s)=P[At=a∣St=s] 概率矩阵
π
s
s
′
π
=
∑
a
∈
A
π
(
a
∣
s
)
P
s
,
s
a
R
s
π
=
∑
a
∈
A
π
(
a
∣
s
)
R
s
a
\pi_{ss'}^\pi = \sum_{a\in A}\pi(a|s)P_{s,s}^a\\ \R_s^\pi = \sum_{a\in A}\pi(a|s)R_s^a
πss′π=a∈A∑π(a∣s)Ps,saRsπ=a∈A∑π(a∣s)Rsa
value function
- state-value function v π ( s ) = E π [ G t ∣ S t = s ] v_\pi(s) = E_\pi[G_t|S_t=s] vπ(s)=Eπ[Gt∣St=s]
- action-value function
q
π
(
s
,
a
)
=
E
p
i
[
G
t
∣
S
t
=
s
,
A
t
=
a
]
q_\pi(s,a) = E_pi[G_t|S_t=s,A_t=a]
qπ(s,a)=Epi[Gt∣St=s,At=a]
均值求解两种方式 - 状态转移概率
- 动作概率
课程链接
[1]https://www.bilibili.com/video/BV1kt411D76e