Value-Based Reinforcement Learning


Action-Value Functions

image.png
公式 Value-Based Reinforcement Learning - 图2 中的 Value-Based Reinforcement Learning - 图3 都是环境 environment 给的奖励 reward ,每当 agent 做出一个 actionenvironment 就会更新状态 state ,并且会给 agent 一个奖励Value-Based Reinforcement Learning - 图4 。每一个奖励Value-Based Reinforcement Learning - 图5 都依赖于前一个状态和动作。所以 Return Value-Based Reinforcement Learning - 图6 依赖于从Value-Based Reinforcement Learning - 图7时刻开始所有的动作 action 和所有的状态 state

未来的状态 Value-Based Reinforcement Learning - 图8和 未来的动作Value-Based Reinforcement Learning - 图9 都是随机变量,动作 action 的随机性来自 policy 函数Value-Based Reinforcement Learning - 图10,动作 action 是根据 Value-Based Reinforcement Learning - 图11函数计算得到的每个动作的概率值,随机抽样得到的。状态 state 的随机性来自于状态转移函数 Value-Based Reinforcement Learning - 图12,新的状态是根据状态转移函数 Value-Based Reinforcement Learning - 图13 随机抽样得到的。

未来的状态 Value-Based Reinforcement Learning - 图14 和 未来的动作Value-Based Reinforcement Learning - 图15都是随机的。Value-Based Reinforcement Learning - 图16 依赖于这些动作和状态,所以 Value-Based Reinforcement Learning - 图17 也是随机变量。Value-Based Reinforcement Learning - 图18 的值反映了未来奖励的总和。
image.png
所以想了解Value-Based Reinforcement Learning - 图20 的大小,Value-Based Reinforcement Learning - 图21 是随机变量,在 Value-Based Reinforcement Learning - 图22 时刻并不知道Value-Based Reinforcement Learning - 图23 的值。所以要对Value-Based Reinforcement Learning - 图24 求期望,消除Value-Based Reinforcement Learning - 图25 中的随机性。期望是对未来的状态 Value-Based Reinforcement Learning - 图26 和 未来的动作Value-Based Reinforcement Learning - 图27求取的,期望消除了这些随机变量,只剩下当前 Value-Based Reinforcement Learning - 图28时刻的状态和动作。通过求取期望我得到了 Value-Based Reinforcement Learning - 图29函数,被称为 action-value functionValue-Based Reinforcement Learning - 图30函数跟 policy函数 Value-Based Reinforcement Learning - 图31、变量Value-Based Reinforcement Learning - 图32Value-Based Reinforcement Learning - 图33 有关,未来的随机性都被期望消除了,Value-Based Reinforcement Learning - 图34函数可以反映出当前状态Value-Based Reinforcement Learning - 图35 下,做动作Value-Based Reinforcement Learning - 图36的好坏程度。
image.png
我们想进一步消除 policy函数 Value-Based Reinforcement Learning - 图38 的影响,对Value-Based Reinforcement Learning - 图39函数关于 Value-Based Reinforcement Learning - 图40 求最大化,得到 optimal action-value function 最优动作价值函数 Value-Based Reinforcement Learning - 图41Value-Based Reinforcement Learning - 图42可以告诉我们,不管用什么 policy函数 Value-Based Reinforcement Learning - 图43,要使 agent 在当前状态Value-Based Reinforcement Learning - 图44下做动作Value-Based Reinforcement Learning - 图45,回报Value-Based Reinforcement Learning - 图46 的期望最大就是Value-Based Reinforcement Learning - 图47,不会更好。

Value-Based Reinforcement Learning - 图48跟策略函数无关,只要 agent 在当前状态Value-Based Reinforcement Learning - 图49下做动作Value-Based Reinforcement Learning - 图50Value-Based Reinforcement Learning - 图51就是最好的结果了,哪怕之后policy函数 Value-Based Reinforcement Learning - 图52改进的更好,获得的期望回报也不可能Value-Based Reinforcement Learning - 图53更好。

Value-Based Reinforcement Learning - 图54:基于当前状态Value-Based Reinforcement Learning - 图55,做出动作Value-Based Reinforcement Learning - 图56的好坏程度。所以Value-Based Reinforcement Learning - 图57函数可以指导 agent 做决策。 agent 观测到当前状态Value-Based Reinforcement Learning - 图58Value-Based Reinforcement Learning - 图59函数给所有的动作打分,比如:马里奥向上跳是3000分,←2000,→1000, agent 可以根据分数做决策,选择向上跳分数最高,这样才能达到期望和回报的最大化。

Deep Q-Network(DQN)

用神经网络近似Value-Based Reinforcement Learning - 图60函数。游戏中 agent 的目标是:打赢游戏,赢取更多的奖励。

目标订好, agent 就要努力实现目标。如果已知Value-Based Reinforcement Learning - 图61agent 该如何做决策呢?什么是最好的动作呢??
image.png
Value-Based Reinforcement Learning - 图63会给所有的动作打分,每个动作都有个分数。最好的动作是使得Value-Based Reinforcement Learning - 图64最大的 action

Value-Based Reinforcement Learning - 图65就是一个先知,能够预见未来的结果,比如有三只股票,问Value-Based Reinforcement Learning - 图66应该买哪一只股票。未来是充满随机性的,什么都可能发生。先知没有办法告诉确定的答案,只能告诉一个平均值。Value-Based Reinforcement Learning - 图67说平均来看,A股票涨了10倍,B涨了2倍,C跌了一半,先知还告诉你实际发生的情况和平均值并不一样。从期望来看,还是A股更好。

如何理解Value-Based Reinforcement Learning - 图68Value-Based Reinforcement Learning - 图69可以告诉我们每个动作带来的平均回报,我们应该选择平均回报更多的动作,我们希望有Value-Based Reinforcement Learning - 图70,指导 agent 做决策,但是实际上我们不知道Value-Based Reinforcement Learning - 图71的。
image.png
价值学习的基本思想就是:学习一个函数近似Value-Based Reinforcement Learning - 图73
DQN是一种价值学习方法,使用神经网络近似Value-Based Reinforcement Learning - 图74函数。该神经网络记做Value-Based Reinforcement Learning - 图75,其参数为Value-Based Reinforcement Learning - 图76,输入为状态Value-Based Reinforcement Learning - 图77,输出为很多数值(针对每个动作的打分)。通过奖励 reward 学习神经网络,神经网络对动作的打分也会越来越准确。
image.png
image.png
根据当前观测到的状态Value-Based Reinforcement Learning - 图80,用DQN把Value-Based Reinforcement Learning - 图81作为输入,对每个动作 action 进行打分,选出分数最高的动作作为Value-Based Reinforcement Learning - 图82agent 执行Value-Based Reinforcement Learning - 图83这个动作之后,环境会改变状态(使用状态转移函数Value-Based Reinforcement Learning - 图84随机抽样得到一个新的状态Value-Based Reinforcement Learning - 图85),环境还会给 agent 奖励Value-Based Reinforcement Learning - 图86。奖励 reward 就是强化学习中的监督信号,DQN要靠这些奖励来训练。有了新的状态Value-Based Reinforcement Learning - 图87,DQN再次对所有的动作进行打分,执行相同的流程,直到游戏结束。

Temporal Difference(TD) Learning

如何训练DQN呢,TD算法是常用的算法,TD算法不好理解,举个例子:
image.png
开车从纽约到亚特兰大,模型Value-Based Reinforcement Learning - 图89可以预测时间开销,模型一开始告诉我(预测)从纽约到亚特兰大需要1000mins,一开始模型预测的不准确,或者干脆就是随机的。但是随着数据越来越多,模型训练,其就会越来越准确。

我需要什么数据,得到数据之后如何更新模型?

  1. 出发之前,模型预测出一个值Value-Based Reinforcement Learning - 图90(模型预测)
  2. 我们真实的从NYC到亚特兰大,然后得到一个真实值 Value-Based Reinforcement Learning - 图91(真实的时间开销)
  3. Value-Based Reinforcement Learning - 图92 记做 targetValue-Based Reinforcement Learning - 图93Value-Based Reinforcement Learning - 图94 不同,这就说明预测有偏差,所以计算 loss ,进行梯度下降更新参数。

以上流程,必须完成整个旅途,才能对整个模型参数做更新。但是又有一个问题,如果我的目标是从纽约到亚特兰大,但是跑到华盛顿,汽车就坏了,到不了终点,那应该是怎么办呢?
image.png
我开车从纽约到DC,发现实际用时300mins,模型进行预测从DC到亚特兰大用时600mins,模型Q(w)=1000,但是根据模型新的预测,从NYC到Atlanta总共花费900mins,在TD算法中,900mins就是TD Target,TD Target虽然也是个估计值(但是有真实值,有事实成分),但是要比纯粹估计的1000mins更加精确可靠。越接近Atlanta,TD Target越准确,越接近真实值。
image.png
TD算法的目标:尽可能使得 TD error 接近0,预计时间等于实际时间(最理想情况)

TD Learning for DQN

image.png
想要使用TD算法,必须使用上图中相同的格式:等式左边有一项:DQN在 Value-Based Reinforcement Learning - 图98 时刻做的估计,未来奖励总和的期望;等式右边有两项:真实观测值奖励Value-Based Reinforcement Learning - 图99 + DQN在 Value-Based Reinforcement Learning - 图100 时刻做的估计
image.png
image.png
image.png
image.png

Summary

image.png
本节主要讲解了 Value-Based Reinforcement Learning ,用到了 optimal action-value function 最优动作价值函数,首先对回报Value-Based Reinforcement Learning - 图106求期望,消除未来状态Value-Based Reinforcement Learning - 图107和未来动作Value-Based Reinforcement Learning - 图108的随机性,然后再关于 policy 函数Value-Based Reinforcement Learning - 图109 求最大化,去掉了Value-Based Reinforcement Learning - 图110 函数的影响,得到了Value-Based Reinforcement Learning - 图111函数,基于Value-Based Reinforcement Learning - 图112函数,可以得到基于当前状态Value-Based Reinforcement Learning - 图113,对所有动作打分,分数就能反映出每个动作Value-Based Reinforcement Learning - 图114的好坏。只要有了Value-Based Reinforcement Learning - 图115函数,就能根据Value-Based Reinforcement Learning - 图116函数来控制 agent 的动作,获得最高的回报。

然而实际上,我们并没有Value-Based Reinforcement Learning - 图117函数,价值学习的目标:就是学习一个函数来近似出Value-Based Reinforcement Learning - 图118函数。

DQN就是使用神经网络来近似Value-Based Reinforcement Learning - 图119函数,DQN的输入是状态Value-Based Reinforcement Learning - 图120,输出就是对每个动作Value-Based Reinforcement Learning - 图121的打分,如果拿超级玛丽来说, agent 只会做三个动作,所以输出就是一个Value-Based Reinforcement Learning - 图122向量,
image.png
一开始参数都是随机的, agent 会根据DQN的指导,不断的尝试动作,并获得奖励。强化学习就是根据奖励来更新模型参数的。

TD算法是学习DQN最常用的方法:

  1. 观测当前的状态Value-Based Reinforcement Learning - 图124 和已经执行的动作Value-Based Reinforcement Learning - 图125
  2. 用DQN做计算,输入是状态Value-Based Reinforcement Learning - 图126,输出是对Value-Based Reinforcement Learning - 图127的打分,输出记做Value-Based Reinforcement Learning - 图128
  3. 反向传播对DQN求导。
  4. 由于 agent 已经执行了动作Value-Based Reinforcement Learning - 图129,环境据此改变状态Value-Based Reinforcement Learning - 图130,并给 agent 做出奖励Value-Based Reinforcement Learning - 图131
  5. 有了奖励Value-Based Reinforcement Learning - 图132,和状态Value-Based Reinforcement Learning - 图133,就可以计算出 TD Target Value-Based Reinforcement Learning - 图134
  6. 做梯度下降,更新模型参数w