知识四:无模型强化学习

知识四:强化学习-无模型强化学习

4.1 介绍

  • Model-free方法

    • 蒙特卡罗学习(A方法)
    • 时序差分学习(B方法)
    • TD(λ\lambdaλ)(A+B混合)、
  • 为了评估和优化一个未知 MDP 价值函数

4.2 蒙特卡罗强化学习

  • MC方法可直接从分幕(游戏回和,可能是一个游戏回合)的经验中学习
  • MC是无模型的算法:不需要了解状态转移矩阵/奖励
  • MC要求需要完整的episodes(回合)中学习(不是用在不能结束的游戏上)
  • MC使用最简单的思想:价值(value)= 平均回报(mean return),一个状态的价值,就是在这个状态行不断重复的进行游戏,最后取平均就是这个状态的价值。

4.2.1 MC策略评估

  • 目标:在给定策略π\piπ下,从一系列的episodes经验中学习价值函数vπv_\pivπ
  • MC策略评估使用每个状态的平均回报,来代替期望的回报。(很多次回报的平均值作为对应状态的价值。)

4.2.2 首次访问型MC策略评估

  • 目标:评估状态sss,就是计算状态sss的价值。

  • 每幕中,状态sss 第一次出现进行如下操作

    • 增加计数个数 N(s)←N(s)+1N(s)\leftarrow N(s)+1N(s)N(s)+1
    • 增加回报总和 S(s)←S(s)+GtS(s)\leftarrow S(s)+G_tS(s)S(s)+Gt
    • 价值由平均回报估算 V(s)=S(s)/N(s)V(s)=S(s)/N(s)V(s)=S(s)/N(s)
  • 根据大数定律:$V(s)\to V_\pi(s) as N(s)\to\infty $

  • 如下图所示只计算第一次出现的状态的价值,蓝色框的回报不进行计算,只计算第一次出现的状态的回报。

    请添加图片描述

4.2.3 每次访问型MC策略评估

  • 目标:评估状态sss,就是计算状态sss的价值。
  • 每幕中,状态sss 每次出现一次进行如下操作
    • 增加计数个数 N(s)←N(s)+1N(s)\leftarrow N(s)+1N(s)N(s)+1
    • 增加回报总和 S(s)←S(s)+GtS(s)\leftarrow S(s)+G_tS(s)S(s)+Gt
    • 价值由平均回报估算 V(s)=S(s)/N(s)V(s)=S(s)/N(s)V(s)=S(s)/N(s)
  • 根据大数定律:V(s)→Vπ(s)asN(s)→∞V(s)\to V_\pi(s) as N(s)\to\infty V(s)Vπ(s)asN(s)
  • 如下图所示,每一个回和,把要评估状态的所有回报全都要计算,最后求平均,如下图所示,所有的红色和蓝色框的回报都要算出来。

请添加图片描述

4.2.4 累进式均值更新

  • 只存储当前的回报和进行了多少轮,就行了,不用记以前的回报。

  • 只要知道,上一次的价值函数(也就是均值),和这一次的回报就行了。如下所示:

μk=1k∑j=1kxj=1k(xk+∑j=1k−1xj)=1k(xk+(k−1)μk−1)=μk−1+1k(xk−μk−1) \begin{aligned} \mu_{k}& =\frac1k\sum_{j=1}^kx_j \\ &=\frac1k\left(x_k+\sum_{j=1}^{k-1}x_j\right) \\ &=\frac1k\left(x_k+(k-1)\mu_{k-1}\right) \\ &=\mu_{k-1}+\frac{1}{k}\left(x_{k}-\mu_{k-1}\right) \end{aligned} μk=k1j=1kxj=k1(xk+j=1k1xj)=k1(xk+(k1)μk1)=μk1+k1(xkμk1)

4.2.5 累进式蒙特卡罗更新

  • 对于每个具有回报GtG_tGt的状态StS_tSt,公式如下:

N(St)←N(St)+1V(St)←V(St)+1N(St)(Gt−V(St)) \begin{aligned}&N(S_{t})\leftarrow N(S_{t})+1\\&V(S_{t})\leftarrow V(S_{t})+\frac{1}{N(S_{t})}(G_{t}-V(S_{t}))\end{aligned} N(St)N(St)+1V(St)V(St)+N(St)1(GtV(St))

  • 在非平稳问题中(环境也在变),跟踪连续平均值(即忘掉旧幕)

V(St)←V(St)+α(Gt−V(St)) V(S_t)\leftarrow V(S_t)+\alpha\left(G_t-V(S_t)\right) V(St)V(St)+α(GtV(St))

  • 就最近的几次的起作用,远的就不起作用了。

4.3 时序差分学习(TD)

  • 现在很多的方法都是基于TD的思想来做的。(很少用MC的,因为MC每次游戏都要打完不好)
  • TD方法直接从经验中学习
  • TD是无模型的:不需要了解 MDP 转移矩阵/奖励
  • TD通过自举,从不完全的幕中学习
  • 自举的意思就是用猜测的结果去更新猜测。
  • 注:在很多复杂的情况下,不是严格的MDP的时候,收敛性都无法证明。这也是强化学习遇到的问题之一。

4.3.1 MC和TD

  • 目标:根据策略π\piπ得到的经验学习价值函数vπv_\pivπ

  • 增量式every-visit MC

    • 朝着实际回报GtG_tGt的方向更新价值V(St)V(S_t)V(St)

    V(St)←V(St)+α(Gt−V(St)) V(S_t)\leftarrow V(S_t)+\alpha\left(G_t-V(S_t)\right) V(St)V(St)+α(GtV(St))

  • 最简单的时序差分算法:TD(0)

    • 朝着估计回报Rt+1+γV(St+1)R_{t+1}+\gamma V(S_{t+1})Rt+1+γV(St+1)的方向更新价值V(St)V(S_t)V(St)

    V(St)←V(St)+α(Rt+1+γV(St+1)−V(St)) V(S_t)\leftarrow V(S_t)+\alpha\left(R_{t+1}+\gamma V(S_{t+1})-V(S_t)\right) V(St)V(St)+α(Rt+1+γV(St+1)V(St))

    • Rt+1+γV(St+1)R_{t+1}+\gamma V(S_{t+1})Rt+1+γV(St+1)被称为TD target
    • δt=Rt+1+γV(St+1)−V(St)\delta_{t}=R_{t+1}+\gamma V(S_{t+1})-V(S_{t})δt=Rt+1+γV(St+1)V(St)被称为TD error
  • 用下一个状态预测的状态价值+动作奖励作为目标。然后去预测新的状态价值。(也就是用估计的价值去更新估计价值)依赖于下一个状态的价值,也就是依赖于下一个动作(注,他也依赖于转移概率)

  • 算TD的时候其实隐含了计算状态转移矩阵。

4.3.2 MC和TD的优点缺点

  • TD可以在知道最终结果之前学习
    • TD可以在每一步之后在线学习
    • MC必须等到episode结束才能知道回报
  • TD可以在没有最终结果的情况下学习
    • TD可以从不完整的序列中学习
    • MC只能从完整序列中学习
    • TD在连续(非终止)环境中工作
    • MC仅适用于episode(终止)环境

4.3.3 偏差和方差的平衡

  • 回报Gt=Rt+1+γRt+2+⋯+γT−1Rt+2G_{t}=R_{t+1}+\gamma R_{t+2}+\cdots+\gamma^{T-1}R^{t+2}Gt=Rt+1+γRt+2++γT1Rt+2vπ(St)v_{\pi}(S_{t})vπ(St)的无偏估计
  • 真实的TD target Rt+1+γvπ(St+1)R_{t+1}+\gamma v_{\pi}(S_{t+1})Rt+1+γvπ(St+1)vπ(St)v_{\pi}(S_{t})vπ(St)的无偏估计
  • TD target Rt+1+γV(St+1)R_{t+1}+\gamma V(S_{t+1})Rt+1+γV(St+1)vπ(St)v_{\pi}(S_{t})vπ(St)的有偏估计
  • TD target Rt+1+γV(St+1)R_{t+1}+\gamma V(S_{t+1})Rt+1+γV(St+1)的方差比回报GtG_{t}Gt 低得多
    • 回报取决于一序列随机的动作、转移与奖励
    • TD target取决于一个动作及其对应的转移与奖励

4.3.4 MC和TD的优点缺点(2)

  • MC具有高方差,零偏差
    • 良好的收敛性
    • 对初始值不太敏感
    • 很容易理解和使用
  • TD方差低,但存在偏差
    • 通常比MC更高效,收敛更快
    • TD(0)收敛至vπ(St)v_{\pi}(S_{t})vπ(St)
    • 对初始值更敏感

4.3.5 Batch MC and TD

  • 在线是遍迭代遍评估,离线是都打完之后,一起读数据。
  • MC和TD收敛::V(s)→Vπ(s): V(s)\to V_{\pi} (s):V(s)Vπ(s)experience→∞experience\to\infty experience
  • 但是对于有限经验比如KKK条经验,如何计算呢?

s11,a11,r21,...,sT11⋮s1K,a1K,r2K,...,sTKK \begin{array}{c}s_1^1,a_1^1,r_2^1,...,s_{T_1}^1\\\vdots\\s_1^K,a_1^K,r_2^K,...,s_{T_K}^K\end{array} s11,a11,r21,...,sT11s1K,a1K,r2K,...,sTKK

  • 重复采样episode k∈[1,K]k\in[1,K]k[1,K]
  • 对episode 应用MC和TD(0)

4.3.6 MC和TD的优点缺点(3)

  • TD利用了马尔可夫性
    • 通常在马尔可夫环境中效率更高
  • MC没有利用马尔科夫性
    • 通常在非马尔可夫环境中更有效

4.3.7 MC,TD,DP的比较

  • Bootstrapping:更新涉及估计

    • MC不自举(采样完了,和深度优先一样)

    • DP自举

    • TD自举

  • Sampling:更新采样

    • MC采样
    • DP不采样
    • TD采样

请添加图片描述

4.3 TD(λ\lambdaλ)

4.3.1 n步TD

  • 让TD target 看更多步未来的状态

请添加图片描述

  • 考虑n步回报,其中$n=1,2,\infty $:

n=1(TD)Gt(1)=Rt+1+γV(St+1)n=2Gt(2)=Rt+1+γRt+2+γ2V(St+2)n=∞(MC)Gt(∞)=Rt+1+γRt+2+...+γT−1RT \begin{aligned}&n=1\quad(TD)\quad G_t^{(1)}=R_{t+1}+\gamma V(S_{t+1})\\&n=2\quad G_t^{(2)}=R_{t+1}+\gamma R_{t+2}+\gamma^2V(S_{t+2})\\&n=\infty\quad(MC)\quad G_t^{(\infty)}=R_{t+1}+\gamma R_{t+2}+...+\gamma^{T-1}R_T\end{aligned} n=1(TD)Gt(1)=Rt+1+γV(St+1)n=2Gt(2)=Rt+1+γRt+2+γ2V(St+2)n=(MC)Gt()=Rt+1+γRt+2+...+γT1RT

  • 定义n步回报为:

Gt(n)=Rt+1+γRt+2+...+γn−1Rt+n+γnV(St+n) G_t^{(n)}=R_{t+1}+\gamma R_{t+2}+...+\gamma^{n-1}R_{t+n}+\gamma^nV(S_{t+n}) Gt(n)=Rt+1+γRt+2+...+γn1Rt+n+γnV(St+n)

  • n步时序差分算法:

V(St)←V(St)+α(Gt(n)−V(St)) V(S_t)\leftarrow V(S_t)+\alpha\left(G_t^{(n)}-V(S_t)\right) V(St)V(St)+α(Gt(n)V(St))

4.3.2 TD(λ\lambdaλ)

  • $G_t^\lambda 整合了所有的n步回报整合了所有的n步回报整合了所有的n步回报G_t^{(n)}$

  • 加和时,使用权重(1−λ)λn−1(1-\lambda)\lambda^{n-1}(1λ)λn1

Gtλ=(1−λ)∑n=1∞λn−1Gt(n) G_{t}^{\lambda}=(1-\lambda)\sum_{n=1}^{\infty}\lambda^{n-1}G_{t}^{(n)} Gtλ=(1λ)n=1λn1Gt(n)

  • 得到TD(λ\lambdaλ)

V(St)←V(St)+α(Gtλ−V(St)) V(S_{t})\leftarrow V(S_{t})+\alpha\left(G_{t}^{\lambda}-V(S_{t})\right) V(St)V(St)+α(GtλV(St))

请添加图片描述

Gtλ=(1−λ)∑n=1∞λn−1Gt(n) G_{t}^{\lambda}=(1-\lambda)\sum_{n=1}^{\infty}\lambda^{n-1}G_{t}^{(n)} Gtλ=(1λ)n=1λn1Gt(n)

  • 得到TD(λ\lambdaλ)

V(St)←V(St)+α(Gtλ−V(St)) V(S_{t})\leftarrow V(S_{t})+\alpha\left(G_{t}^{\lambda}-V(S_{t})\right) V(St)V(St)+α(GtλV(St))

<think>好的,我现在需要回答用户关于有模型强化学习和无模型强化学习的区别和特点的问题。首先,我要回忆一下这两种方法的基本概念,确保自己理解正确。 有模型强化学习(Model-Based RL)应该是那种算法通过学习环境模型来进行决策的,而无模型(Model-Free RL)则不依赖环境模型,直接学习策略或价值函数。接下来,我需要详细说明两者的定义、区别、优缺点以及典型算法。 首先,用户可能需要知道两者的核心区别。有模型的方法利用环境模型,比如状态的转移概率和奖励函数,而无模型的方法则不需要这些信息。然后,我需要比较它们的优缺点。比如,有模型可能在样本效率上更高,因为可以利用模型进行规划,但可能因为模型不准确而表现不佳。无模型则更灵活,不需要建模,但可能需要更多数据。 然后,典型算法部分,有模型的可能包括动态规划、Dyna-Q等,无模型的则像Q学习、策略梯度、DQN这些。需要确认这些例子是否正确,比如Dyna-Q确实结合了真实经验和模型的经验,所以属于有模型类。 另外,应用场景方面,有模型的适用于环境容易建模或数据收集成本高的情况,比如机器人控制或者游戏AI。无模型的更适用于复杂或动态变化的环境,比如AlphaGo或者自动驾驶,这些情况下建模困难,直接学习策略更有效。 还要注意用户提到的格式要求,行内数学公式用$...$,独立公式用$$...$$,并且用中文回答。需要检查是否有需要插入公式的地方,比如贝尔曼方程,可能需要写成独立公式。 现在,需要组织语言,结构清晰,逐步解释。可能的结构是:定义、区别、优缺点对比、算法举例、应用场景,最后总结如何选择。同时确保每个部分的信息准确无误。 检查是否有遗漏点,比如是否提到两者的学习目标不同,有模型学习的是环境模型,而无模型直接学习策略或价值函数。另外,是否需要说明两者的训练过程差异,比如有模型可能先学模型再规划,而无模型直接通过试错学习。 还要注意术语的正确性,比如“价值函数”、“策略梯度”等术语的正确使用。确保没有混淆概念,比如模型基和模型自由的核心差异在于是否显式构建环境模型。 最后,确保回答符合用户要求的格式,没有使用Markdown,用自然的中文段落,分点清晰,数学公式正确使用$和$$符号,行内公式如$V(s)$,独立公式如贝尔曼方程可能需要单独成段。</think>有模型强化学习和无模型强化学习强化学习的两大核心范式,主要区别在于**是否显式构建环境模型**。以下是逐步对比分析: --- ### 1. **核心定义** - **有模型强化学习 (Model-Based RL)** 通过**显式学习环境模型**(即状态转移概率$P(s'|s,a)$和奖励函数$R(s,a)$),并基于模型进行规划或策略优化。例如:动态规划(DP)通过已知模型直接计算最优策略。 - **无模型强化学习 (Model-Free RL)** **不依赖环境模型**,直接通过试错学习策略(如策略梯度)或价值函数(如Q-learning)。例如:DQN通过采样经验直接更新Q值。 --- ### 2. **关键区别** | 特性 | 有模型 RL | 无模型 RL | |---------------------|-------------------------------|-------------------------------| | **依赖环境模型** | 必须显式建模$P$和$R$ | 无需建模环境 | | **样本效率** | 高(利用模型规划) | 低(需大量试错) | | **计算复杂度** | 高(需模型预测和规划) | 低(直接优化策略或价值) | | **模型误差影响** | 敏感(模型不准确导致策略失效) | 无影响(不依赖模型) | | **适用场景** | 环境稳定且易建模 | 环境复杂或动态变化 | --- ### 3. **典型算法** - **有模型 RL** - **动态规划(DP)**:基于贝尔曼方程直接求解: $$ V(s) = \max_a \sum_{s'} P(s'|s,a) [R(s,a) + \gamma V(s')] $$ - **Dyna-Q**:结合真实经验与模型生成的虚拟经验更新Q值。 - **蒙特卡洛树搜索(MCTS)**:如AlphaGo的规划阶段。 - **无模型 RL** - **Q-learning**:直接更新Q值: $$ Q(s,a) \leftarrow Q(s,a) + \alpha [r + \gamma \max_{a'} Q(s',a') - Q(s,a)] $$ - **策略梯度(Policy Gradient)**:通过梯度上升优化策略$\pi_\theta(a|s)$。 - **深度Q网络(DQN)**:用神经网络近似Q函数,结合经验回放。 --- ### 4. **优缺点对比** - **有模型 RL 优势** - **样本效率高**:通过模型生成虚拟数据,减少真实交互次数。 - **可解释性强**:模型提供环境动态的显式表达。 - **适合安全敏感场景**:可通过模型预测风险(如机器人避障)。 - **有模型 RL 劣势** - **模型误差累积**:学习模型不准确时,策略性能可能急剧下降。 - **计算成本高**:规划过程需反复模拟环境。 - **无模型 RL 优势** - **适用性广**:无需建模,直接处理复杂环境(如Atari游戏)。 - **鲁棒性强**:不依赖模型准确性。 - **无模型 RL 劣势** - **数据需求大**:需大量试错(如AlphaGo Zero训练需数百万局)。 - **探索效率低**:在稀疏奖励场景中表现较差。 --- ### 5. **如何选择?** - **选择有模型 RL**:当环境易建模(如棋盘游戏)、数据采集成本高(如机器人实验),或需要安全验证时。 - **选择无模型 RL**:当环境复杂(如图像输入)、模型难以构建(如自动驾驶),或需要端到端学习时。 --- ### 6. **总结** - **有模型 RL**:像“有地图的导航员”,依赖地图规划路径,但地图错误可能迷路。 - **无模型 RL**:像“盲人摸象的探索者”,通过试错积累经验,最终找到规律。 实际应用中,二者常结合使用(如AlphaGo用无模型RL训练策略网络,用有模型MCTS规划落子)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值