赞
踩
AI = RL + DL
强化学习的任务就是寻找function(observation), 使得reward最大;
场景1:围棋博弈
此种场景机器学习的难点是,大多数的action reward 是0;而只有少数的action是有reward的。那机器如何寻找最优action呢?机器采取的方式是通过调整决定action选择的function,使得reward期望max;
对于该场景,监督学习与强化学习处理的区别如下:
场景2: chat-bot
让两个robot对话训练聊天技能,但是如何评价他们的聊天水平呢?是否类人呢?不同于围棋的是,围棋有明确的规则判断输赢。对于聊天评价方式有两种,一种是通过人类设定的规则来打分;另外一种是通过GAN的方式打分评价;
综述,强化学习适合人类都不知道最优解的任务,比如围棋,游戏等;
A3C(Asynchronous Advantage Actor Critic):是一种值函数为中心和以策略为中心算法的结合体,它合并了以值函数为基础 (比如 Q learning) 和 以动作概率为基础 (比如 Policy Gradients) 的两类强化学习算法。需要注意这里的策略一般指的都是随机策略。
见图1,此处的actor(policy)就是透过reward找到一个function实现state到action的最优映射。
function(actor) 的定义,比如neural network,输入environment state, 输出对应与输出层每个神经元的action,基于概率最大,选择目标action;此处为何不用查找表来映射呢?因为输入的图像image是穷举不完的,会导致查找表爆炸!
如何判决function的优劣:使actor π θ ( s ) \pi_{\theta}(s) πθ(s)进行一轮推理,得到总的reward R θ = ∑ t = 1 T r t R_{\theta} = \sum_{t = 1}^{T}r_t Rθ=∑t=1Trt,这里有一个问题是每轮推理的环境和actor都有随机性存在,因此这个reward是会变化的。因此这里通过评价多轮奖励的期望 R ˉ θ \bar{R}_\theta Rˉθ来进行评价而不是评价某一轮的reward R θ R_\theta Rθ,来隔离概率的影响。 R ˉ θ = ∑ τ R ( τ ) P ( τ / θ ) \bar{R}_{\theta}= \sum_{\tau}R(\tau)P(\tau/\theta) Rˉθ=∑τR(τ)P(τ/θ),其中 θ \theta θ表示选定的某种actor, τ \tau τ表示actor执行一轮的trajectory。 P ( τ / θ ) P(\tau/\theta) P(τ/θ)表示actor执行 τ \tau τ轨迹的概率, R ( τ ) R(\tau) R(τ)表示执行trajectory τ \tau τ的奖励。使用 π θ \pi_\theta πθ玩N轮推理后获得 { τ 1 , τ 2 , . . . . . . , τ n } \{\tau^1, \tau^2, ......,\tau^n\} {τ1,τ2,......,τn},即可获取到reward的期望 R ˉ θ \bar{R}_{\theta} Rˉθ。
如何选择最好的policy,即:
θ
∗
=
a
r
g
m
a
x
θ
R
ˉ
θ
\theta^{*}=arg max_{\theta} \bar{R}_{\theta}
θ∗=argmaxθRˉθ。
$$\bar{R}\theta = \sum{\tau}R(\tau)P(\tau|\theta) \
\triangle\bar{R}\theta = \sum{\tau}R(\tau)\triangle P(\tau|\theta) \
= \sum_{\tau}R(\tau)P(\tau|\theta)\frac{\triangle P(\tau|\theta)}{P(\tau|\theta)} \
= \sum_{\tau}R(\tau)P(\tau|\theta)\triangle logP(\tau|\theta) \Leftarrow \frac{dlog(f(x))}{dx} = \frac{1}{f(x)}\frac{df(x)}{dx}\
= \frac{1}{N}\sum_{n=1}{N}R(\taun)\triangle logP(\tau^n|\theta)\$$
采样N次trajectory后,轨迹出现的频次已经包含了概率信息,即
P
(
τ
n
∣
θ
)
P(\tau^n|\theta)
P(τn∣θ),因此该项可以从上述公式中移除。
接下来任务就变成了如何计算
△
l
o
g
P
(
τ
n
∣
θ
)
\triangle logP(\tau^n|\theta)
△logP(τn∣θ):
对于trajectory
τ
:
{
s
1
,
a
1
,
r
1
,
s
2
,
a
2
,
r
2
,
.
.
.
.
.
.
,
s
T
,
a
T
,
r
T
}
\tau: \{ s_1, a_1, r_1, s_2, a_2, r_2, ......, s_T, a_T, r_T \}
τ:{s1,a1,r1,s2,a2,r2,......,sT,aT,rT}
P
(
τ
∣
θ
)
=
p
(
s
1
)
p
(
a
1
∣
s
1
,
θ
)
p
(
r
1
,
s
2
∣
s
1
,
a
1
)
p
(
a
2
∣
s
2
,
θ
)
p
(
r
2
,
s
3
∣
s
2
,
a
2
)
.
.
.
.
.
.
=
p
(
s
1
)
∏
t
=
1
τ
p
(
a
t
∣
s
t
,
θ
)
p
(
r
t
,
s
t
+
1
∣
s
t
,
a
t
)
l
o
g
P
(
τ
∣
θ
)
=
l
o
g
p
(
s
1
)
+
∑
t
=
1
T
l
o
g
p
(
a
t
∣
s
t
,
θ
)
+
l
o
g
p
(
r
t
,
s
t
+
1
∣
s
t
,
a
t
)
P(\tau|\theta) = p(s_1)p(a_1|s_1,\theta)p(r_1, s_2|s_1, a_1)p(a_2|s_2, \theta)p(r2,s_3|s_2,a_2)......\\ =p(s_1)\prod_{t=1}^{\tau}p(a_t|s_t, \theta)p(r_t,s_{t+1}|s_t, a_t)\\ logP(\tau|\theta) = logp(s_1) + \sum_{t=1}^{T}logp(a_t|s_t, \theta)+logp(r_t,s_{t+1}|s_t, a_t)
P(τ∣θ)=p(s1)p(a1∣s1,θ)p(r1,s2∣s1,a1)p(a2∣s2,θ)p(r2,s3∣s2,a2)......=p(s1)t=1∏τp(at∣st,θ)p(rt,st+1∣st,at)logP(τ∣θ)=logp(s1)+t=1∑Tlogp(at∣st,θ)+logp(rt,st+1∣st,at)
△ l o g P ( τ ∣ θ ) = ∑ t = 1 T △ l o g p ( a t ∣ s t , θ ) \triangle logP(\tau|\theta) = \sum_{t=1}^{T}\triangle logp(a_t|s_t, \theta) △logP(τ∣θ)=t=1∑T△logp(at∣st,θ)
△
R
ˉ
θ
=
1
N
∑
n
=
1
N
R
(
τ
n
)
△
l
o
g
P
(
τ
n
∣
θ
)
=
1
N
∑
n
=
1
N
R
(
τ
n
)
∑
t
=
1
T
△
l
o
g
p
(
a
t
∣
s
t
,
θ
)
=
1
N
∑
n
=
1
N
∑
t
=
1
T
R
(
τ
n
)
△
l
o
g
p
(
a
t
∣
s
t
,
θ
)
\triangle\bar{R}_\theta = \frac{1}{N}\sum_{n=1}^{N}R(\tau^n)\triangle logP(\tau^n|\theta)\\ =\frac{1}{N}\sum_{n=1}^{N}R(\tau^n)\sum_{t=1}^{T}\triangle logp(a_t|s_t, \theta)\\ =\frac{1}{N}\sum_{n=1}^{N}\sum_{t=1}^{T}R(\tau^n)\triangle logp(a_t|s_t, \theta)
△Rˉθ=N1n=1∑NR(τn)△logP(τn∣θ)=N1n=1∑NR(τn)t=1∑T△logp(at∣st,θ)=N1n=1∑Nt=1∑TR(τn)△logp(at∣st,θ)
如何理解上式呢?
需要特别指出这里reward是整个trajectory的而不是某个action。如果是某个action就会导致仅得分的action概率最大,不得分的动作概率最小,就会导致下棋时以吃子为第一优先级,而忽略全盘的输赢,显然是不合理的。
第二个问题此处
△
l
o
g
p
(
a
t
∣
s
t
,
θ
)
=
△
P
(
a
t
∣
s
t
,
θ
)
P
(
a
t
∣
s
t
,
θ
)
\triangle logp(a_t|s_t,\theta)=\frac{\triangle P(a_t|s_t,\theta)}{P(a_t|s_t,\theta)}
△logp(at∣st,θ)=P(at∣st,θ)△P(at∣st,θ)起到什么作用?
比如在多个trajectory中我们都经过了状态s,而在该s执行某一动作a时的奖励如下:
R
1
(
a
∣
s
)
=
3
,
R
2
(
b
∣
s
)
=
1
,
R
3
(
b
∣
s
)
=
1
,
R
4
(
b
∣
s
)
=
1
,
R
5
(
b
∣
s
)
=
1
R_1(a|s) = 3,R_2(b|s) = 1,R_3(b|s) = 1,R_4(b|s) = 1,R_5(b|s) = 1
R1(a∣s)=3,R2(b∣s)=1,R3(b∣s)=1,R4(b∣s)=1,R5(b∣s)=1。此时虽然trajectory 1的奖励比较高,但是出现的概率很低,而执行action b反而概率很高,此时actor反而学习到执行b action的
θ
\theta
θ能够得到max的期望reward。显然这并不是我们希望actor学习的效果,我们希望actor此时在状态s时执行action a。因此通过
P
(
a
t
∣
s
t
,
θ
)
P(a_t|s_t,\theta)
P(at∣st,θ)做分母,就能抑制学习到的
θ
\theta
θ偏向那些低质量的高概率的action。
第三个问题reward总是正的,如上图第一行,每个备选action均被采样到,因为权重是相对的,可以正常分配权值。而对于第二行,如果此时reward比较高的action a没有采样到,此时因为reward是正的,就会不合理的提高b和c的概率,而抑制真正高reward a的概率,这显然是不想看到。如果我们的reward有正有负,那对于低质量的action因为对应的负reward,就会在学习时抑制采用此action的概率,从而为未采样的高质量action预留概率。这里通过引入bias来保证reward有正有负,则公式形式变为:
△
R
ˉ
θ
=
1
N
∑
n
=
1
N
∑
t
=
1
T
(
R
(
τ
n
)
−
b
)
△
l
o
g
p
(
a
t
∣
s
t
,
θ
)
\triangle\bar{R}_\theta =\frac{1}{N}\sum_{n=1}^{N}\sum_{t=1}^{T}(R(\tau^n) -b)\triangle logp(a_t|s_t, \theta)
△Rˉθ=N1n=1∑Nt=1∑T(R(τn)−b)△logp(at∣st,θ)
首先观察policy学习的式子:
△
R
ˉ
θ
=
1
N
∑
n
=
1
N
∑
t
=
1
T
R
(
τ
n
)
△
l
o
g
p
(
a
t
∣
s
t
,
θ
)
\triangle\bar{R}_\theta =\frac{1}{N}\sum_{n=1}^{N}\sum_{t=1}^{T}R(\tau^n)\triangle logp(a_t|s_t, \theta)
△Rˉθ=N1n=1∑Nt=1∑TR(τn)△logp(at∣st,θ)
观察两种任务后可以发现,当R=1时,policy的强化学习任务就变成分类任务。或者说policy是权值为R的加权分类任务。
critic 不直接决定执行那个action,而是用来评价在给定状态s的情况下actor
π
\pi
π的优劣,其数学表达:
V
π
(
s
)
V^{\pi}(s)
Vπ(s)
上式表示actor
π
\pi
π从状态s开始,一直到整个episode结束。这一过程奖励累加和的期望。
评论: r是存在随机性的,而G是multi-step R的累加,因此相比之前G的方差远大于R;此外,TD是监督的delta量,因此V function的绝对量可能不是特别准确。MC方法只有episode结束才能更新critic,而TD则每执行一步就可以更新critic。
上边介绍的critic函数的参数只有state,并没有考虑action a,因此下边介绍一种critic的变形
Q
π
(
s
,
a
)
Q^\pi(s, a)
Qπ(s,a),
对于actor
π
\pi
π,给定状态
s
s
s并执行action a,得到episode结束的累计奖励
G
G
G的期望值;
Q learning的任务:给定
Q
π
(
s
,
a
)
Q^\pi(s, a)
Qπ(s,a),找到更优的新actor
π
′
\pi^{\prime}
π′,即
Q
π
′
(
s
,
a
)
>
Q
π
(
s
,
a
)
Q^{\pi^{\prime}}(s,a) > Q^{\pi}(s,a)
Qπ′(s,a)>Qπ(s,a)。则:
π
′
=
a
r
g
m
a
x
a
Q
π
(
s
,
a
)
\pi^{\prime}=arg max_{a}Q^{\pi}(s,a)
π′=argmaxaQπ(s,a)
可以很直观的看出,对于离散的action空间,通过穷举方式可以找到actor
π
\pi
π reward最到的action,那么新的actor
π
′
\pi^{\prime}
π′就会在该state下执行获取最大reward的action。显然穷举法并不适用action为连续空间的任务,这个问题下文会给出来解决方法。
那么接下来寻找最优actor的问题就变成了寻找最优Q function问题。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。