强化学习(2):价值学习

1、回顾

 R_{t}是t时刻的奖励,Return U_{t}依赖于从t时刻开始所有的动作A和状态S,动作A和状态S都是随机变量,动作A的随机性来自于policy函数\pi,动作是根据policy函数随机抽样得到的,状态S的随机性来自于状态转移函数p,新的状态是根据状态转移函数p随机抽样得到的。

U_{t}的值可以反映未来奖励的总和,对U_{t}求未来t+1时刻开始所有的动作和状态的期望从而排除掉随机性,得到的函数为action value function,动作价值函数Q_{\pi },它与s_{t}a_{t}以及\pi有关。Q_{\pi }可以反映出当前状态s_{t}下做动作a_{t}的好坏程度

Q_{\pi }关于\pi求最大化从而消除\pi的影响,得到optimal action-value function,最优动作价值函数Q^{*}(s_{t},a_{t}),它可以反映出不管用什么样的策略函数,要是agent在当前状态s_{t}下做出动作a_{t},回报 U_{t}的期望最大是Q^{*}(s_{t},a_{t}),它告诉我们基于当前状态s_{t}做出动作a_{t}的好坏程度,所以可以指导agent做决策。

2、Deep Q-Network(DQN)

2.1 DQN简介

使用神经网络Q(s,a;w)来拟合Q^{*}(s_{t},a_{t})函数。该神经网络的参数是w,输入是状态s,输出是对所有动作的打分。

例如,超级玛丽游戏中,可以把屏幕画面作为输入,用卷积网络将输入映射成一个特征向量,再通过全连接层将特征映射成输出向量(即对动作的打分),从结果可知,此时Mario应该向上跳。

此时,可以用DQN来操作agent玩游戏。当前观测到状态s_{t},DQN以s_{t}为输入对所有动作打分,选出分数最高的动作a_{t},agent做出a_{t}这个动作后,环境用状态转移函数来随机生成状态s_{t+1},同时环境也会告知当前动作对应的r_{t}(奖励是强化学习当中的监督信号,DQN靠奖励来训练),有了新的状态s_{t+1},DQN再对所有动作打分,agent选择分数最高的动作a_{t+1},如此一直重复这样的过程一直到游戏结束。

2.2 DQN训练——Temporal Difference(TD) Learning

先举例理解。

想要开车从纽约到亚特兰大。模型Q(w)可以预测出行的时间开销。

假设一开始模型预测为1000分钟。

此时如何训练模型Q呢?首先,出发前用模型做一次预测q=Q(w),模型预测的结果为q=1000;到亚特兰大之后可以知道实际的时间开销y,y=860。于是可以求得损失Loss,从而用梯度下降法更新模型参数w。这个方法比较naive,只有完成一次旅途才能对模型进行一次更新。

此时问题来了,假如不完成旅行,走到中途就不继续前行,这种情况下能不能对模型进行更新呢?

答案是:可以。

从纽约去往亚特兰大会途径华盛顿。

出发时,模型预测从纽约到亚特兰大会花1000;到达华盛顿时,发现实际已经消耗300(真实观测);此时模型再次预测从华盛顿到亚特兰大会花600。

此时,新的估计TD target y=300+600=900比一开始的估计1000更可靠,1000-900为TD error。可以把TD target y与模型最开始的估计计算损失,并采用梯度下降法更新模型参数w。

回归到使用TD算法来训练模型。

在深度强化学习中有如下公式:

式子中,式子左边是DQN在t时刻的估计,即未来奖励总和的期望;r_{t}是真实观测到的奖励;式子右边第二项是DQN在t+1时刻的估计。

简单理解上述公式的来历(并非严格证明)。

已知:

 可以得到:

 

那么:

E(U_{t})=E(R_{t}+\gamma U_{t+1})

于是:

其中: Q(s_{t},a_{t};w)是对E[U_{t}]的预测值(相当于从纽约到亚特兰大所预测的时间),Q(s_{t+1},a_{t+1};w)是对E[U_{t+1}]的预测值(相当于从华盛顿到亚特兰大所预测的时间)。

进一步:

所以,整体思路:在t时刻,模型预测值为Q(s_{t},a_{t};w);在t+1时刻,观测到了真实的奖励r_{t},观测到了状态s_{t+1},DQN可以预测在当前状态下最优动作a_{t+1}带来的回报,即求Q关于a的最大化;此时y_{t}就是TD target。于是可以得到损失函数,从而通过梯度下降法进行参数更新。

3. TD算法总结

TD算法迭代一次完成:

1. 观察当前状态S_{t}=s_{t}和已经执行的动作A_{t}=a_{t}

2. 使用DQN进行一次预测:q_{t}=Q(s_{t},a_{t};w_{t}),其中输入是当前状态,输出是动作a_{t}的打分;

3. 通过反向传播对DQN求导:d_{t}=\frac{\partial Q(s_{t},a_{t};w)}{\partial w}|_{w=w_{t}}

4. (agent已经做出动作)环境更新状态得到s_{t+1},并给出奖励r_{t}

5. 计算TD target:

 

 6. 通过梯度下降法更新模型参数w:

参考:北大王树森视频

  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值