知识六:强化学习-价值函数的近似

知识六:强化学习-价值函数的近似

6.1 介绍

6.1.1 大规模强化学习

  • 我们希望用强化学习来解决一些大型问题,例如:
    • Backgammon: 1 0 20 10^{20} 1020个状态
    • Computer Go: 1 0 170 10^{170} 10170个状态
    • Helicopter:连续状态空间
  • 如何将强化学习应用到这类大型问题种,实现预测和控制呢?

6.1.2 价值函数逼近

  • 大型 MDPs 的问题:

    • 状态或者行动太多,无法全部存储在内存中
    • 针对每一个状态学习得到价值也是一个很慢的过程
  • 所以Q表方法用在大型 MDPs 方法是有问题的。

  • 解决大型MDPs的方法:

    • 用函数逼近来评估每个价值函数

    • v ^ ( s , w ) ≈ v π ( s ) o r   q ^ ( s , a , w ) ≈ q π ( s , a ) \begin{aligned}\hat{v}(s,\mathbf{w})&\approx v_\pi(s)\\\mathrm{or~}\hat{q}(s,a,\mathbf{w})&\approx q_\pi(s,a)\end{aligned} v^(s,w)or q^(s,a,w)vπ(s)qπ(s,a)

    • 可以用已知状态学到的价值函数插值出未见过状态的价值

    • 用 MC 或 TD 学习来更新函数参数 w w w

    • 解决了两个问题,是Q表过大的问题和所有状态和动作可见的问题。

6.1.3 价值函数逼近的类型

请添加图片描述

  • 很多函数逼近方法可以被考虑,例如:
    • 特征的线性组合
    • 神经网络
    • 决策树
    • 最近邻法
    • 傅里叶基/小波基

6.1.4 函数逼近器

  • 考虑可微分函数逼近器,例如:
    • 特征的线性组合
    • 神经网络
    • 决策树
    • 最近邻法
    • 傅里叶基/小波基
  • 此外,我们需要一种适用于非平稳非独立同分布数据的训练方法

6.2 增量式方法

  • 一般使用梯度下降法求解非线性的最小二乘问题

6.2.1 用随机梯度下降进行价值函数逼近

  • 目标:找到参数向量 w w w,最小化近似价值函数 v ^ ( S , W ) \hat{v}(S,W) v^(S,W)与真实价值函数 ν π ( s ) \nu_{\pi}(s) νπ(s)的均方差

J ( w ) = E π [ ( v π ( S ) − v ^ ( S , w ) ) 2 ] J(\mathbf{w})=\mathbb{E}_\pi\left[(v_\pi(S)-\hat{v}(S,\mathbf{w}))^2\right] J(w)=Eπ[(vπ(S)v^(S,w))2]

  • 通过梯度下降能够找到局部最小值

Δ w = − 1 2 α ∇ w J ( w ) = α E π [ ( v π ( S ) − v ^ ( S , w ) ) ∇ w v ^ ( S , w ) ] \begin{aligned} \Delta w& =-\frac12\alpha\nabla_\mathbf{w}J(\mathbf{w}) \\ &=\alpha\mathbb{E}_\pi\left[(v_\pi(S)-\hat{v}(S,\mathbf{w}))\nabla_\mathbf{w}\hat{v}(S,\mathbf{w})\right] \end{aligned} Δw=21αwJ(w)=αEπ[(vπ(S)v^(S,w))wv^(S,w)]

  • 使用随机梯度下降对梯度进行采样

Δ w = α ( v π ( S ) − v ^ ( S , w ) ) ∇ w v ^ ( S , w ) \Delta\mathbf{w}=\alpha(v_\pi(S)-\hat{v}(S,\mathbf{w}))\nabla_\mathbf{w}\hat{v}(S,\mathbf{w}) Δw=α(vπ(S)v^(S,w))wv^(S,w)

  • 期望更新等于全部梯度更新

6.2.2 特征向量

  • 用特征向量表示状态

x ( S ) = ( x 1 ( S ) ⋮ x n ( S ) ) \mathbf{x}(S)=\begin{pmatrix}\mathbf{x}_1(S)\\\vdots\\\mathbf{x}_n(S)\end{pmatrix} x(S)= x1(S)xn(S)

  • 以直升机控制问题为例:
    • 3D位置
    • 3D速度(位置的变化量)
    • 3D加速度(速度的变化量)

6.2.3 线性价值函数逼近

  • 通过特征的线性组合表示值函数

v ^ ( S , w ) = x ( S ) ⊤ w = ∑ i = 1 n x j ( S ) w j \hat{v}(S,\mathbf{w})=\mathbf{x}(S)^\top\mathbf{w}=\sum_{i=1}^n\mathbf{x}_j(S)\mathbf{w}_j v^(S,w)=x(S)w=i=1nxj(S)wj

  • 参数为 w w w的目标函数是二次函数

J ( w ) = E π [ ( v π ( S ) − x ( S ) ⊤ w ) 2 ] J(\mathbf{w})=\mathbb{E}_\pi\left[(v_\pi(S)-\mathbf{x}(S)^\top\mathbf{w})^2\right] J(w)=Eπ[(vπ(S)x(S)w)2]

  • 随机梯度下降收敛于全局最优
  • 更新规则

∇ w v ^ ( S , w ) = x ( S ) Δ w = α ( v π ( S ) − v ^ ( S , w ) ) x ( S ) \begin{aligned}\nabla_{\mathbf{w}}\hat{v}(S,\mathbf{w})&=\mathbf{x}(S)\\\Delta\mathbf{w}&=\alpha(v_{\pi}(S)-\hat{v}(S,\mathbf{w}))\mathbf{x}(S)\end{aligned} wv^(S,w)Δw=x(S)=α(vπ(S)v^(S,w))x(S)

​ 更新=步长 × \times ×预测误差 × \times ×特征

6.2.4 查表法

  • 查表法是线性函数逼近的一种特殊情况

  • 使用表查找特征
    x t a b l e ( S ) = ( 1 ( S = s 1 ) ⋮ 1 ( S = s n ) ) \mathbf{x}^{table}(S)=\begin{pmatrix}\mathbf{1}(S=s_1)\\\vdots\\\mathbf{1}(S=s_n)\end{pmatrix} xtable(S)= 1(S=s1)1(S=sn)

  • 参数向量 w w w给出每个状态的值

v ^ ( S , w ) = ( 1 ( S = s 1 ) ⋮ 1 ( S = s n ) ) ⋅ ( w 1 ⋮ w n ) \hat v(S,\mathbf{w})=\begin{pmatrix}\mathbf{1}(S=s_1)\\\vdots\\\mathbf{1}(S=s_n)\end{pmatrix}\cdot\begin{pmatrix}\mathbf{w}_1\\\vdots\\\mathbf{w}_n\end{pmatrix} v^(S,w)= 1(S=s1)1(S=sn) w1wn

6.2.5 增量式预测算法

  • 给定了真正的值函数 V π ( s ) V_\pi (s) Vπ(s) ,该问题可以建模为一个典型的有监督学习问题

  • 但是在 RL 中没有监督,只有奖励

  • 实际计算时,使用target代替 V π ( s ) V_\pi (s) Vπ(s)

    • 在 MC 中,target是回报 G t G_{t} Gt(梯度更新方法)

    • Δ w = α ( G t − v ^ ( S t , w ) ) ∇ w v ^ ( S t , w ) \Delta\mathbf{w}=\alpha(G_t-\hat{v}(S_t,\mathbf{w}))\nabla_\mathbf{w}\hat{v}(S_t,\mathbf{w}) Δw=α(Gtv^(St,w))wv^(St,w)

    • 在TD(0)中target是TD target(半梯度更新方法)

    • Δ w = α ( R t + 1 + γ v ^ ( S t + 1 , w ) − v ^ ( S t , w ) ) ∇ w v ^ ( S t , w ) \Delta\mathbf{w}=\alpha(R_{t+1}+\gamma\hat{v}(S_{t+1},\mathbf{w})-\hat{v}(S_t,\mathbf{w}))\nabla_\mathbf{w}\hat{v}(S_t,\mathbf{w}) Δw=α(Rt+1+γv^(St+1,w)v^(St,w))wv^(St,w)

6.2.6 蒙特卡洛学习的价值函数逼近

  • 回报 G t G_{t} Gt实对真实价值 V π ( s ) V_\pi (s) Vπ(s)的无偏估计
  • 因此,可以采用监督学习的方式使用“训练数据”

⟨ S 1 , G 1 ⟩ , ⟨ S 2 , G 2 ⟩ , . . . , ⟨ S T , G T ⟩ \langle S_1,G_1\rangle,\langle S_2,G_2\rangle,...,\langle S_T,G_T\rangle S1,G1,S2,G2,...,ST,GT

  • 例如,使用线性蒙特卡洛策略评估

Δ w = α ( G t − v ^ ( S t , w ) ) ∇ w v ^ ( S t , w ) = α ( G t − v ^ ( S t , w ) ) x ( S t ) \Delta\mathbf{w}=\alpha(G_{t}-\hat{v}(S_{t},\mathbf{w}))\nabla_{\mathbf{w}}\hat{v}(S_{t},\mathbf{w})\\=\alpha(G_{t}-\hat{v}(S_{t},\mathbf{w}))\mathbf{x}(S_{t}) Δw=α(Gtv^(St,w))wv^(St,w)=α(Gtv^(St,w))x(St)

  • 蒙特卡洛评估收敛到局部最优(即使用非线性值函数逼近)

6.2.7 TD学习的价值函数逼近

  • TD-target R t + 1 + γ V ^ ( S t + 1 , w ) R_{t+1}+\gamma\hat{V}(S_{t+1},w) Rt+1+γV^(St+1,w)是对真实价值 V π ( S t ) V_\pi (S_t) Vπ(St)的有偏采样
  • 仍然可以将监督学习应用于“训练数据”

⟨ S 1 , R 2 + γ v ^ ( S 2 , w ) ⟩ , ⟨ S 2 , R 3 + γ v ^ ( S 3 , w ) ⟩ , . . . , ⟨ S T − 1 , R T ⟩ \langle S_1,R_2+\gamma\hat{v}(S_2,\mathbf{w})\rangle,\langle S_2,R_3+\gamma\hat{v}(S_3,\mathbf{w})\rangle,...,\langle S_{T-1},R_T\rangle S1,R2+γv^(S2,w)⟩,S2,R3+γv^(S3,w)⟩,...,ST1,RT

  • 例如,使用线性TD(0)

Δ w = α ( R + γ v ^ ( S ′ , w ) − v ^ ( S , w ) ) ∇ w v ^ ( S , w ) = α δ x ( S ) \begin{aligned} \Delta w& =\alpha(R+\gamma\hat{v}(S^{\prime},\mathbf{w})-\hat{v}(S,\mathbf{w}))\nabla_\mathbf{w}\hat{v}(S,\mathbf{w}) \\ &=\alpha\delta\mathbf{x}(S) \end{aligned} Δw=α(R+γv^(S,w)v^(S,w))wv^(S,w)=αδx(S)

  • 线性TD(0)收敛(close)到全局最优

6.2.8 价值函数近似的控制

请添加图片描述

  • 策略评估 近似策略评估, q ^ ( ⋅ , ⋅ , w ) ≈ q π \hat{q}(\cdot,\cdot,w)\approx q_\pi q^(,,w)qπ
  • 策略优化 ε − g r e e d y ε-greedy εgreedy 策略优化

6.2.9 Action-value函数逼近

  • 近似action-value函数

q ^ ( S , A , w ) ≈ q π ( S , A ) \hat{q}(S,A,\mathbf{w})\approx q_\pi(S,A) q^(S,A,w)qπ(S,A)

  • 最小化估计的动作价值函数 q ^ ( S , A , w ) \hat{q}(S,A,w) q^(S,A,w)与真实的动作价值函数 q π ( S , A ) q_{\pi}(S,A) qπ(S,A)之间的均方误差

J ( w ) = E π [ ( q π ( S , A ) − q ^ ( S , A , w ) ) 2 ] J(\mathbf{w})=\mathbb{E}_\pi\left[(q_\pi(S,A)-\hat{q}(S,A,\mathbf{w}))^2\right] J(w)=Eπ[(qπ(S,A)q^(S,A,w))2]

  • 用随机梯度下降方法找到局部最小值:

− 1 2 ∇ w J ( w ) = ( q π ( S , A ) − q ^ ( S , A , w ) ) ∇ w q ^ ( S , A , w ) Δ w = α ( q π ( S , A ) − q ^ ( S , A , w ) ) ∇ w q ^ ( S , A , w ) \begin{aligned} -\frac{1}{2}\nabla_{\mathbf{w}}J(\mathbf{w})& =(q_\pi(S,A)-\hat{q}(S,A,\mathbf{w}))\nabla_\mathbf{w}\hat{q}(S,A,\mathbf{w}) \\ \Delta w& =\alpha(q_\pi(S,A)-\hat{q}(S,A,\mathbf{w}))\nabla_\mathbf{w}\hat{q}(S,A,\mathbf{w}) \end{aligned} 21wJ(w)Δw=(qπ(S,A)q^(S,A,w))wq^(S,A,w)=α(qπ(S,A)q^(S,A,w))wq^(S,A,w)

6.2.10 线性Action-Value函数逼近

  • 状态行为可以用特征向量表示:

x ( S , A ) = ( x 1 ( S , A ) ⋮ x n ( S , A ) ) \mathbf{x}(S,A)=\begin{pmatrix}\mathbf{x}_1(S,A)\\\vdots\\\mathbf{x}_n(S,A)\end{pmatrix} x(S,A)= x1(S,A)xn(S,A)

  • 通过特征的线性组合表示动作价值函数

q ^ ( S , A , w ) = x ( S , A ) ⊤ w = ∑ j = 1 n x j ( S , A ) w j \hat{q}(S,A,\mathbf{w})=\mathbf{x}(S,A)^\top\mathbf{w}=\sum_{j=1}^n\mathbf{x}_j(S,A)\mathbf{w}_j q^(S,A,w)=x(S,A)w=j=1nxj(S,A)wj

  • 用随机梯度下降方法进行更新

∇ w q ^ ( S , A , w ) = x ( S , A ) Δ w = α ( q π ( S , A ) − q ^ ( S , A , w ) ) x ( S , A ) \begin{aligned} \nabla_{\mathbf{w}}\hat{q}(S,A,\mathbf{w})& =\mathbf{x}(S,A) \\ \Delta w& =\alpha(q_{\pi}(S,A)-\hat{q}(S,A,\mathbf{w}))\mathbf{x}(S,A) \end{aligned} wq^(S,A,w)Δw=x(S,A)=α(qπ(S,A)q^(S,A,w))x(S,A)

6.2.11 增量式控制算法

  • 与预测算法类似,我们找到一个替代动作价值 q π ( S , A ) q_{\pi}(S,A) qπ(S,A)的target

    • 对于MC,target是回报 G t G_t Gt

    • Δ w = α ( G t − q ^ ( S t , A t , w ) ) ∇ w q ^ ( S t , A t , w ) \Delta\mathbf{w}=\alpha(G_t-\hat q(S_t,A_t,\mathbf{w}))\nabla_\mathbf{w}\hat q(S_t,A_t,\mathbf{w}) Δw=α(Gtq^(St,At,w))wq^(St,At,w)

    • 对于TD(0),target是TD target R t + 1 + γ Q ( S t + 1 , A t + 1 ) R_{t+1}+\gamma Q(S_{t+1},A_{t+1}) Rt+1+γQ(St+1,At+1)

    • Δ w = α ( R t + 1 + γ q ^ ( S t + 1 , A t + 1 , w ) − q ^ ( S t , A t , w ) ) ∇ w q ^ ( S t , A t , w ) \Delta\mathbf{w}=\alpha(R_{t+1}+\gamma\hat{q}(S_{t+1},A_{t+1},\mathbf{w})-\hat{q}(S_t,A_t,\mathbf{w}))\nabla_\mathbf{w}\hat{q}(S_t,A_t,\mathbf{w}) Δw=α(Rt+1+γq^(St+1,At+1,w)q^(St,At,w))wq^(St,At,w)

6.3 批量方法

  • 梯度下降很简单而且很吸引人
  • 但是样本使用效率不高
  • 批量方法找寻满足这批数据的最佳价值函数
  • 根据智能体的经验(“ 训练数据 ”)

6.3.1 最小二乘预测

  • 假设存在一个价值函数的近似 v ^ ( s , w ) ≈ v π \hat{v}(s,w)\approx v_\pi v^(s,w)vπ
  • 以及一段时期的、包含<状态、价值>的经验 D D D

D = { ⟨ s 1 , v 1 π ⟩ , ⟨ s 2 , v 2 π ⟩ , . . . , ⟨ s T , v T π ⟩ } \mathcal{D}=\{\langle s_1,v_1^\pi\rangle,\langle s_2,v_2^\pi\rangle,...,\langle s_T,v_T^\pi\rangle\} D={⟨s1,v1π,s2,v2π,...,sT,vTπ⟩}

  • 最小二乘算法要求找到参数 w w w,使得目标值为 v t π v_{t}^{\pi} vtπ和近似值$ \hat{v}(s,w)$之间的平方和误差最小:

L S ( w ) = ∑ t = 1 T ( v t π − v ^ ( s t , w ) ) 2 = E D [ ( v π − v ^ ( s , w ) ) 2 ] \begin{aligned} LS(\mathbf{w})& =\sum_{t=1}^{T}(v_{t}^{\pi}-\hat{v}(s_{t},\mathbf{w}))^{2} \\ &=\mathbb{E}_{\mathcal{D}}\left[(v^{\pi}-\hat{v}(s,\mathbf{w}))^{2}\right] \end{aligned} LS(w)=t=1T(vtπv^(st,w))2=ED[(vπv^(s,w))2]

6.3.2 带有经验回放的随机梯度下降

  • 给出包含<状态、价值>的经验D

D = { ⟨ s 1 , v 1 π ⟩ , ⟨ s 2 , v 2 π ⟩ , . . . , ⟨ s T , v T π ⟩ } \mathcal{D}=\{\langle s_1,v_1^\pi\rangle,\langle s_2,v_2^\pi\rangle,...,\langle s_T,v_T^\pi\rangle\} D={⟨s1,v1π,s2,v2π,...,sT,vTπ⟩}

  • Repeat:

    • 从经验中采样状态、价值

    • ⟨ s , v π ⟩ ∼ D \langle s,v^{\pi}\rangle\sim\mathcal{D} s,vπD

    • 应用随机梯度下降更新

    • Δ w = α ( v π − v ^ ( s , w ) ) ∇ w v ^ ( s , w ) \Delta\mathbf{w}=\alpha(v^\pi-\hat{v}(s,\mathbf{w}))\nabla_\mathbf{w}\hat{v}(s,\mathbf{w}) Δw=α(vπv^(s,w))wv^(s,w)

  • 收敛至针对这段经历最小平方差的参数:

w π = argmin ⁡ w L S ( w ) \mathbf{w}^\pi=\underset{\mathbf{w}}{\operatorname*{argmin}}LS(\mathbf{w}) wπ=wargminLS(w)

6.3 Deep Q-Networks(DQN)经验回放

  • DQN采用经验回放固定的Q-targets
  • 根据 ε − g r e e d y ε-greedy εgreedy 执行行为 a t a_t at
  • 将经验以 ( s t , a t , r t + 1 , s t + 1 ) (s_{t},a_{t},r_{t+1},s_{t+1}) (st,at,rt+1,st+1)的形式存储到replay memery D D D
  • D D D中随机抽样-个mini-batch的经验 ( s , a , r , s ′ ) (s,a,r,s^{\prime}) (s,a,r,s)
  • 用旧的、固定的参数 w − w^{-} w计算Q-learning target
  • 在Q-network和 Q-learning targets之间优化MSE

L i ( w i ) = E s , a , r , s ′ ∼ D i [ ( r + γ max ⁡ a ′ Q ( s ′ , a ′ ; w i − ) − Q ( s , a ; w i ) ) 2 ] \mathcal{L}_i(w_i)=\mathbb{E}_{s,a,r,s'\sim\mathcal{D}_i}\left[\left(r+\gamma\max_{a'}Q(s',a';w_i^-)-Q(s,a;w_i)\right)^2\right] Li(wi)=Es,a,r,sDi[(r+γamaxQ(s,a;wi)Q(s,a;wi))2]

  • 使用随机梯度下降的方式更新参数。

6.3.1 DQN应用于Atari

  • 从像素s端到端学习值函数 Q ( s , a ) Q(s,a) Q(s,a)
  • 输入状态 s s s是最后4帧的原始像素堆栈
  • 输出为 Q ( s , a ) Q(s,a) Q(s,a),用于18个操纵杆/按钮的控制
  • 奖励是该步骤的分数变化

请添加图片描述

  • 所有游戏的网络架构和超参数都是固定的。

thcal{L}i(w_i)=\mathbb{E}{s,a,r,s’\sim\mathcal{D}i}\left[\left(r+\gamma\max{a’}Q(s’,a’;w_i-)-Q(s,a;w_i)\right)2\right]
$$

  • 使用随机梯度下降的方式更新参数。

6.3.1 DQN应用于Atari

  • 从像素s端到端学习值函数 Q ( s , a ) Q(s,a) Q(s,a)
  • 输入状态 s s s是最后4帧的原始像素堆栈
  • 输出为 Q ( s , a ) Q(s,a) Q(s,a),用于18个操纵杆/按钮的控制
  • 奖励是该步骤的分数变化
  • 所有游戏的网络架构和超参数都是固定的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值