强化学习——价值学习

价值学习

首先引入折扣回报的概念, U t = R t + γ R t + 1 + γ 2 R t + 2 + . . . U_t=R_t+\gamma R_{t+1}+\gamma^2R_{t+2}+... Ut=Rt+γRt+1+γ2Rt+2+...,因此它依赖于action序列 A t , A t + 1 , A t + 2 , . . . A_t,A_{t+1},A_{t+2},... At,At+1,At+2,...以及状态序列 S t , S t + 1 , S t + 2 , . . . S_t,S_{t+1},S_{t+2},... St,St+1,St+2,...,而这两个都是随机变量满足

P [ A = a ∣ S = s ] = π ( a ∣ s ) , P [ S ′ = s ′ ∣ S = s , A = a ] = p ( s ′ ∣ s , a ) P[A=a|S=s]=\pi(a|s),P[S'=s'|S=s,A=a]=p(s'|s,a) P[A=aS=s]=π(as),P[S=sS=s,A=a]=p(ss,a)

其实际产生方式都是从分布中采样得到,所以折扣回报也是随机变量。

为了确定化折扣回报,引入其期望,动作价值函数:

Q π ( s t , a t ) = E [ U t ∣ S t = s t , A t = a t ] Q_{\pi}(s_t,a_t)=E[U_t|S_t=s_t,A_t=a_t] Qπ(st,at)=E[UtSt=st,At=at]

它衡量了出在 s t s_t st下做出动作 a t a_t at的回报(收益)。

Deep Q-Network(DQN)

不同的策略对应不同的动作价值函数,可以理解为策略的一种表现形式,最优者定义为 Q ∗ ( s , a ) Q^*(s,a) Q(s,a),据此最优的动作为

a ∗ = a r g m a x a Q ∗ ( s , a ) a^*=\mathop{argmax}\limits_{a}Q^*(s,a) a=aargmaxQ(s,a)

DQN的想法就是通过一个神经网络 Q ( s , a ; w ) Q(s,a;w) Q(s,a;w)去拟合这个最优的动作价值函数 Q ∗ ( s , a ) Q^*(s,a) Q(s,a)

训练方法:Temporal Difference (TD) learning

根据折扣回报的定义可以得到 U t = R t + γ U t + 1 U_t=R_t+\gamma U_{t+1} Ut=Rt+γUt+1

对上式两边求期望: E [ U t ] = E [ R t + γ U t + 1 ] E[U_t]=E[R_t+\gamma U_{t+1}] E[Ut]=E[Rt+γUt+1]

DQN的输出 Q ( s t , a t ; w ) Q(s_t,a_t;w) Q(st,at;w) Q ( s t + 1 , a t + 1 ; w ) Q(s_{t+1},a_{t+1};w) Q(st+1,at+1;w)是对 E [ U t ] E[U_t] E[Ut] E [ U t + 1 ] E[U_{t+1}] E[Ut+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对象,记为 y t y_t yt

t t t时刻做出预测 Q ( s t , a t ; w t ) Q(s_t,a_t;w_t) Q(st,at;wt),TD对象可以这样计算:

y t = r t + γ ⋅ Q ( s t + 1 , a t + 1 ; w t ) = r t + γ ⋅ m a x a Q ( s t + 1 , a ; w t ) y_t=r_t+\gamma \cdot Q(s_{t+1},a_{t+1};w_t)=r_t+\gamma \cdot \mathop{max}\limits_{a}Q(s_{t+1},a;w_t) yt=rt+γQ(st+1,at+1;wt)=rt+γamaxQ(st+1,a;wt)

定义损失为 L t = 1 2 [ Q ( s t , a t ; w ) − y t ] 2 L_t=\frac{1}{2}[Q(s_t,a_t;w)-y_t]^2 Lt=21[Q(st,at;w)yt]2

用梯度算法更新模型参数: w t + 1 = w t − α ⋅ ∂ L t ∂ w ∣ w = w t w_{t+1}=w_t-\alpha\cdot \frac{\partial L_t}{\partial w}|_{w=w_t} wt+1=wtαwLtw=wt

整个学习流程如下:
  1. 观测到状态 S t = s t S_t=s_t St=st以及行动 A t = a t A_t=a_t At=at
  2. 进行预测: q t = Q ( s t , a t ; w ) q_t=Q(s_t,a_t;w) qt=Q(st,at;w)
  3. 对价值网络求导: d t = ∂ Q ( s t , a t ; w ) ∂ w ∣ w = w t d_t=\frac{\partial Q(s_t,a_t;w)}{\partial w}|_{w=w_t} dt=wQ(st,at;w)w=wt
  4. 环境给出新状态 s t + 1 s_{t+1} st+1和奖励 r t r_t rt
  5. 计算TD对象: 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)
  6. 梯度下降: w t + 1 = w t − α ⋅ ( q t − y t ) ⋅ d t w_{t+1}=w_t-\alpha\cdot (q_t-y_t)\cdot d_t wt+1=wtα(qtyt)dt

思考与体会

强化学习和监督学习最大的区别是有没有显式的ground truth可以对训练进行监督。这里DL通过折扣回报关联了前后两个时刻,而且预测未来越短的时间动作序列具有越高的准确率,据此构造了一个隐式的ground truth,在TD算法中是TD对象,对模型参数进行更新。

reference
【王树森】深度强化学习(DRL):https://www.bilibili.com/video/BV12o4y197US

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

u小鬼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值