【强化学习笔记】二.价值学习

文章目录

  • Q&A
  • 1.DQN工作原理
  • 2.如何训练DQN
    • 2.1.如何更新模型参数
      • 3.2.1.完整走完流程,再更新模型参数。
      • 3.2.2.无需走完流程,即可更新模型参数。
  • 3.如何将TD算法应用到DQN网络

Q&A

问:强化学习的目标是什么?

  • 最大化累计奖励(或者说得到最多的奖励)

问:用什么办法实现最大化累计奖励?

  • 如果我们有一个最优动作价值函数 Q ⋆ ( s , a ) Q^\star(s,a) Q(s,a),就可以实现最大化累计奖励。 这个最优动作价值函数 Q ⋆ ( s , a ) Q^\star(s,a) Q(s,a) 可以告诉我们在当前状态 s s s 时,选择什么样的动作可以获得最多的奖励期望。

问:最优动作价值函数是怎么获得的?

  • 用神经网络 Q ( s , a ; w ) Q(s,a;w) Q(s,a;w) 来近似的一个最优动作价值函数 Q ⋆ ( s , a ) Q^\star(s,a) Q(s,a)

1.DQN工作原理

DQN(Deep Q-Network, DQN)的原理: 用神经网络 Q ( s , a ; w ) Q(s,a;w) Q(s,a;w) 来近似一个价值函数 Q ⋆ ( s , a ) Q^\star(s,a) Q(s,a)

【强化学习笔记】二.价值学习_第1张图片

Q ⋆ ( s , a ) Q^\star(s,a) Q(s,a) 相当于一个“先知”,他可以告诉我们“未来”的事情(注意,实际上它是告诉了价值函数的期望值)。假如我们有一个 Q ⋆ ( s , a ) Q^\star(s,a) Q(s,a) 了,做决策我们就可以根据 Q ⋆ ( s , a ) Q^\star(s,a) Q(s,a) 选择最佳的动作了,最佳的动作 a ⋆ = a r g m a x a Q ⋆ ( s , a ) a^\star=argmax_a Q^\star(s,a) a=argmaxaQ(s,a) 就是使价值函数 Q ⋆ ( s , a ) Q^\star(s,a) Q(s,a) 值最大的那个动作 a ⋆ a^\star a

【强化学习笔记】二.价值学习_第2张图片
当DQN网络训练好以后,在状态 s t s_t st 时,DQN会知道向左会得到2000分,向右会得到1000分,向上会得到3000分,因此DQN就会选择得分最大的动作,即 Q ⋆ ( s t , a ) = Q ( s t , u p ) Q^\star(s_t,a) = Q(s_t,up) Q(st,a)=Q(st,up)

【强化学习笔记】二.价值学习_第3张图片

2.如何训练DQN

TD(Temporal Difference, TD)Learning 算法来训练DQN网络。

2.1.如何更新模型参数

3.2.1.完整走完流程,再更新模型参数。

【强化学习笔记】二.价值学习_第4张图片

场景: 开车从纽约(NYC)去亚特兰大(Atlanta)。

现状: 构建了一个模型 Q ( w ) Q(w) Q(w) ,参数 w w w (注意参数 w w w 是未知的,需要学习),可以预测开车出行花费的时间。

步骤:

  • 1)获取预测值: 出发前随机做一次预测(初始化预测),模型 Q ( w ) Q(w) Q(w) 的值 q = 1000 q=1000 q=1000 分钟(预测值)。

  • 2)获取真实值: 到亚特兰大以后看一下手表,发现只用了 y = 860 y=860 y=860 分钟(真实值)。

  • 3)构建损失函数,利用梯度下降法计算 w w w 的值:

    • 3.1)损失函数公式: L = 1 2 ( 预测值 − 真实值 ) 2 = 1 2 ( q − y ) 2 L = \frac 1 2(预测值-真实值)^2=\frac 1 2(q-y)^2 L=21(预测值真实值)2=21(qy)2

    • 3.2)梯度公式: G r a d i e n t = ∂ L ∂ w = ∂ L ∂ q ⋅ ∂ q ∂ w = ( q − y ) ⋅ ∂ Q ( w ) ∂ w Gradient=\frac{\partial L}{\partial w} = \frac{\partial L}{\partial q} \cdot \frac{\partial q}{\partial w} = (q-y) \cdot \frac{\partial Q(w)}{\partial w} Gradient=wL=qLwq=(qy)wQ(w)

    • 3.3)梯度下降法更新模型参数:
      w t + 1 = w t − α ⋅ ∂ L ∂ w ∣ w = w t w_{t+1} = w_t - \alpha \cdot \frac{\partial L}{\partial w} | _{w=w_t} wt+1=wtαwLw=wt
      梯度下降法减少了损失Loss,使预测值更接近真实值。

3.2.2.无需走完流程,即可更新模型参数。

场景: 开车从纽约(NYC)去亚特兰大(Atlanta)。

步骤:

  • 1)获取预测值: 出发前随机做一次预测(初始化预测),模型 Q ( w ) Q(w) Q(w) 的值 q = 1000 q=1000 q=1000 分钟(预测值)。

  • 2)获取真实值: 现在已经从纽约到华盛顿了,看了一下手表,只花费了300分钟(真实值),同时预测从华盛顿到亚特兰大还有600分钟(预测值)。
    于是,将300分钟(真实值)+600分钟(预测值)= 900分钟作为真实值(不完全真实,但也不完全虚假,起码有真实值的成分再里面),这个特殊的值叫做 TD target 。将 TD target 作为真实值计算损失函数,利用梯度下降法求解参数 w w w

【强化学习笔记】二.价值学习_第5张图片

3.如何将TD算法应用到DQN网络

【强化学习笔记】二.价值学习_第6张图片

  • 左侧 Q ( s t , a t ; w ) Q(s_t, a_t;w) Q(st,at;w) t t t 时刻做的估计,是从 t t t 时刻开始到结束,未来奖励总和的期望,这是一个预测值(注意:期望本来就是一个预测的值
  • 右侧的 r t r_t rt t t t 时刻获得的奖励值,是真实值
  • 右侧的 Q ( s t + 1 , a t + 1 ; w ) Q(s_{t+1}, a_{t+1};w) Q(st+1,at+1;w) t + 1 t+1 t+1 时刻做的估计,是从 t + 1 t+1 t+1 时刻开始到结束,是未来奖励总和的期望,也是一个预测值。

【强化学习笔记】二.价值学习_第7张图片

【强化学习笔记】二.价值学习_第8张图片

【强化学习笔记】二.价值学习_第9张图片

一次TD target算法迭代过程:
【强化学习笔记】二.价值学习_第10张图片

你可能感兴趣的:(强化学习RL,深度学习,人工智能,强化学习,DQN)