强化学习p2-价值学习

基本概念

折扣回报(Discounted Return)

在 MDP 中,通常使用折扣回报 (discounted return),给未来的奖励做折扣。折扣回报的定义如下:
U t = R t + γ R t + 1 + γ 2 R t + 2 + γ 3 R t + 3 + . . . U_t = R_t+\gamma R_{t+1}+\gamma ^2R_{t+2}+\gamma ^3R_{t+3}+... Ut=Rt+γRt+1+γ2Rt+2+γ3Rt+3+...
这里的 γ ∈ [ 0 , 1 ] \gamma \in [0,1] γ[0,1]叫折扣率。对待越久远的未来,给奖励打的折扣越大。
U t U_t Ut是一个随机变量,随机性来自于t时刻之后的所有状态和动作

动作价值函数(Action-value function)
假设我们已经观测到状态 s t s_t st,而且做完决策,选中动作 a t a_t at。那么 U t U_t Ut中的随机性来自于 t + 1 t+1 t+1时刻起的所有的状态和动作: S t + 1 , A t + 1 , S t + 2 , A t + 2 , . . . , S n , A n S_{t+1},A_{t+1},S_{t+2},A_{t+2},...,S_{n},A_{n} St+1,At+1,St+2,At+2,...,Sn,An
Q π ( s t , a t ) = E S t + 1 , A t + 1 , S t + 2 , A t + 2 , . . . , S n , A n [ U t ∣ S t = s t , A t = a t ] Q_\pi(s_t,a_t)=E_{{S_{t+1},A_{t+1},S_{t+2},A_{t+2},...,S_{n},A_{n}}}[U_t | St=s_t,A_t=a_t] Qπ(st,at)=ESt+1,At+1,St+2,At+2,...,Sn,An[UtSt=st,At=at]
期望中的 S t = s t S_t=s_t St=st A t = a t A_t=a_t At=at是条件,意思是已经观测到 S t S_t St A t A_t At的值。条件期望的结果 Q π ( s t , a t ) Q_\pi(s_t,a_t) Qπ(st,at)被称作动作价值函数 (action-value function)。

作用:根据策略 π , Q π ( s , a ) \pi,Q_\pi(s,a) π,Qπ(s,a)来估计当前状态 s s s对于智能体选择动作 a a a是否明智,得到好的效果

最优动作价值函数(Optimal action-value function)

最优动作价值函数 Q ∗ ( s t , a t ) Q^*(s_t,a_t) Q(st,at)用最大化消除策略 π \pi π:
Q ∗ ( s t , a t ) = m a x π Q π ( s t , a t ) Q^*(s_t,a_t)= \mathop{max}\limits_{\pi} Q_\pi(s_t,a_t) Q(st,at)=πmaxQπ(st,at)
Q ∗ Q^* Q可以对当前状态 s s s对执行动作 a a a做评测,得到好坏程度
可以这样理解 Q ∗ Q^* Q: 已知 s t s_t st a t a_t at,不论未来采取什么样的策略 π \pi π,回报 U t U_t Ut的期望不可能超过 Q ∗ Q* Q

最优动作价值函数的用途:假如我们知道 Q ∗ Q^* Q ,我们就能用它做控制。

Deep Q-Network(DQN)

我们希望知道最优动作价值函数 Q ∗ Q^* Q ,因为 Q ∗ Q^* Q 就像先知一样,可以在 t t t时刻就预见 t t t n n n时刻之间的累计奖励的期望。假如我们知道 Q ∗ Q^* Q ,我们就可以根据 Q ∗ Q^* Q 的值选择最优动作(best action) a ∗ = a r g m a x x a Q ∗ ( s , a ) a^*=\mathop{argmax}x_aQ^*(s,a) a=argmaxxaQ(s,a),然后就可以最大化未来的累计奖励。

我们不知道 Q ∗ Q^* Q 的函数,我们希望用神经网络 Q ( s , a ; w ) Q(s,a;w) Q(s,a;w)去近似学习 Q ∗ Q^* Q

我们观测到 t t t 时刻的状态 s t s_t st,然后根据 DQN 选出能够使 t t t时刻 Q 值最大的动作 a t a_t at,执行动作 a t a_t at,得到奖励 r t r_t rt,再根据环境状态转移的概率函数得到下一个状态 s t + 1 s_{t+1} st+1,依次进行,直到这一回合结束。如下图所示:
在这里插入图片描述

时间差分算法(Temporal Difference Learning)

我们有一个模型 Q ( s , d ; w ) Q(s,d;w) Q(s,d;w),其中 s是起点,d 是终点,w 是参数。
假如s和d直接有一地点c
模型估计 Q ( s , d , w ) = 1000 m i n Q(s,d,w) = 1000min Q(s,d,w)=1000min
实际s到c花费300min Q ( c , d , w ) = 600 m i n Q(c,d,w) = 600min Q(c,d,w)=600min
更新估计 300+600 = 900min
我们把y = 900min称为TD target 这样的估计更准确,也不用跑完全程。

用 TD 算法训练 DQN(TD Learning for DQN)

折扣回报
U t = R t + γ R t + 1 + γ 2 R t + 2 + γ 3 R t + 3 + . . . U_t = R_t+\gamma R_{t+1}+\gamma ^2R_{t+2}+\gamma ^3R_{t+3}+... Ut=Rt+γRt+1+γ2Rt+2+γ3Rt+3+...
U t = R t + γ ⋅ U t + 1 U_t = R_t+\gamma \cdot U_{t+1} Ut=Rt+γUt+1
DQN 在 t t t时刻的输出: Q ( s t , a t ; w ) Q(s_t,a_t;w) Q(st,at;w) ,是对 U t U_t Ut的估计;在 t + 1 t+1 t+1时刻的输出 Q ( s t + 1 , a t + 1 ; w ) Q(s_{t+1},a_{t+1};w) Q(st+1at+1;w),是对U_{t+1}的估计。因此,我们可以得到如下等式:
Q ( s t , a t ; w ) ≈ r t + γ ⋅ Q ( s t + 1 , a t + 1 ; w ) Q(s_t,a_t;w) \approx r_t+\gamma \cdot Q(s_{t+1},a_{t+1};w) Q(st,at;w)rt+γQ(st+1,at+1;w)
使用 TD learning 训练 DQN 流程:
1、在 t t t时刻做预测 Prediction: Q ( s t , a t ; w t ) Q(s_t,a_t;w_t) Q(st,at;wt)
2、计算 TD target: y t = r t + γ ⋅ m a x a Q ( s t + 1 , a ; w t ) y_t=r_t+\gamma \cdot \mathop{max}\limits_{a} Q(s_{t+1},a;w_t) yt=rt+γamaxQ(st+1,a;wt)
3、计算损失函数 Loss(TD error): L t = 1 2 [ Q ( s t , a t ; w t ) − y t ] 2 L_t=\frac{1}{2}[Q(s_t,a_t;w_t)-y_t]^2 Lt=21[Q(st,at;wt)yt]2

4、做梯度下降更新参数 w w w:# w t + 1 = w t − α ⋅ ∂ L t ∂ w ∣ w = w t w_{t+1}=w_t-\alpha \cdot \frac{\mathrm{\partial}L_t}{\mathrm{\partial}w}|_{w=w_t} wt+1=wtαwLtw=wt
.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值