Skip to content
Jambity's Blog

Lecture 8: Value Function Approximation

强化学习中的数学原理 | 第八课 | 待完善

RL,强化学习中的数学原理3min read...

学这一章主要是很想学 DQN,上学期学校的人工智能导论课里有让自学,但显然没有真正学会,我很想实际看到如何把神经网络结合进Q learning里

上一章介绍的是TD learning,这一章实际上也是TD learning,不过上一张使用的是tabular representation,而这一章我们会使用的是function representation,从表格到函数会有一个想法上的跳跃需要理解

这一章还会第一次把神经网络引入强化学习

也会讲 DQN

目前为止,我们一直都使用表格来表示state values和action values

1788957188450

以state和action为维度的这种表格好处是很直观

但坏处是当动作和状态空间太大是不方便存储

那我们何尝不使用一个曲线把拟合所有数据,从而只需要存储曲线的参数,因为一个曲线的参数显然是比把所有数据都存储下来要少的

假设我们能用一条直线来拟合这些点,那么方程就是:

where

  • is the parameter vector
  • is the feature vector 特征向量 of
  • is linear in (只是说这种情况)

我们可以从直线升级成second-order curve 二阶曲线:

  • 尽管是一个的非线性函数但是对来说是线性的,他的非线性都包含在了里,当然,我也可以用一个神经网络来拟合,这时就是非线性的了

1788960095344

重点提到了他的泛化能力增强,因为改变参数不止会改变一个点的数值,多个点都会改变

非常重要!!!!!!!思想、概念、细节

Introduce in a more formal way:

  • 是真的state value,是要估计的函数
  • 我们的目标就是找到最优的让对所有都最拟合
  • 那么这实际上就是一个policy evaluation的问题(后续我们还会涉及到如何接近他真实的state value,以及如何找到 optimal policy,后面都会讲到)
  • 找 optimal ,有两步:
    1. 定义一个 objective function 目标函数
    2. 优化目标函数

先直接给出目标函数是什么,这个目标函数看起来很合理

  • 我们要 minimize
  • 式子里的是一个随机变量,那么的概率分布是什么?
    • 这个问题我们之前从未遇到过
    • 有很多种方法来定义的概率分布,下面会介绍两种

The first way is to use a uniform distribution 平均分布

那么,就可以把上面的期望拆了

这是最简单的做法了,但我们肯定更希望能给一些更重要的状态更大的权重

The second way is to use the stationary distribution

  • stationary distribution 平稳分布,他描述了马尔科夫过程中的一段long-run behavior(长期、稳态行为)
  • Let denote the stationary distribution of the Markov process under policy . and
  • 给出目标函数(这回出现概率大的情况就分到大的权重)

关于 stationary distribution 更多讲解

  • 是状态的分布
  • 是 long-run behavior,跑了很多步,接近平稳
  • 可以叫做:steady-state distribution/limiting distribution
  • 他对理解 value function approximation method 很重要
  • 也对理解下章的 policy gradient method 很重要

经过长期的 long-run behavior,是会收敛、可估计的

我们也可以通过另一个方程来估计:

  • 是状态转移矩阵,里面每个元素是
  • 是的特征向量

有了刚才的目标函数,现在我们要优化这个目标函数

  • 梯度下降算法:

  • 梯度公式是

把期望替换成随机梯度

where is a sample of . Here, is merged to

  • 这个算法实际还不能使用,因为算法里用到了true state value ,我们还不知道,因此我们要把用一个估计替换掉

1789211160471

跳过了,有点看不懂

把上面讲的整体思路捋一下,我上面有些没看懂的没有记上去

  1. The story started from the objective function:

从一个目标函数出发,要减小估计的和真实的之间的差距(不要急,真实的确实是没有的)

  1. 然后就用梯度下降的公式

  1. 别忘了上面的我们是不知道的,所以我们要用一个估计来替代:

这条故事线有些不严谨的地方,但先别管了

直接上 Sarsa 和 value function approximation 结合的算法

和前面那个算法的区别就是把换成了

给出把上面的公式(policy evaluation) 和 policy improvement 结合的伪代码:

1789215403838

直接先上算法

和上面的Sarsa唯一区别在把变成了

1789215638371

  • 神经网络在这里的作用就是一个 nonlinear function

给出DQN的loss/objective function:

where are random variables.

1789216728203

讲一下 DQN 中使用到的两个小技巧:

First technique:

使用了两个 network,a main network and a target network。 因为计算的时候非常复杂,所以计算的时候先固定一个再计算另一个

Another technique:

Experience replay 经验回放

我们按顺序收集完经验后,不一定就要按同样顺序使用这些经验,我们会把经验存储在一个集合里 replay buffer

然后每轮训练我们就可以从replay buffer里拿出一个 mini-batch

1789219456961

  • 把 off-policy 的产生的samples放入replay buffer
    • 在每个iteration下:
      • 从replay buffer中均匀采出一个 mini-batch
      • 对每个sample ,计算 target value , where is the parameter of the target network
      • 把 全都送到神经网络里去训练,minimize (y_T - \hat q(s,a,w))^2
    • 每 个iteration把更新成

注:

  • 这里没有policy update,因为这里是off-policy的

Comments

© Jambity. All rights reserved.......