当前位置: 首页 > news >正文

强化学习RL系列 | 白话时序差分算法

0. 引言

小伙伴们,中秋节快乐。最近在学习强化学习,陆续会跟小伙伴们汇报下各项学习成果,今天主要介绍时序差分算法(Temporal-Difference Learning, 简称TD算法)。时序差分算法的核心思想可以简单理解成为"边走边学,随时修正"的学习方法。

1. 时序差分算法是解决什么问题的?

想象一下你在一个巨大的迷宫里探险,目标是找到出口的宝藏。你不知道这个迷宫的地图,只能一步一步地走。这时候,你需要解决一个核心问题:在不知道全局地图(专业术语叫“环境模型”)的情况下,如何评估你当前所在位置的好坏,并最终学会找到最优路线?

这就是时序差分算法要解决的问题。具体来说,它属于强化学习领域,专门用来处理那些没有现成说明书、只能通过不断尝试来学习的场景。

对比两种其他的学习方法,你就更能理解它的定位了:

  • 动态规划法 :这种方法相当于你一开始就拿到了一张完整的迷宫地图。你知道每个路口通向哪里,也知道哪里有陷阱。所以你可以直接在地图上规划出最佳路线。但现实中,我们往往没有这张“地图”。
  • 蒙特卡洛法 :这种方法是你每次都必须从起点走到终点(不管走到的是宝藏还是死胡同),然后回头总结这一整趟的经验,再来评估路上经过的每一个位置的好坏。 比如,你走了100步最终找到了宝藏,那么你可能会觉得这100步的每一步都有点功劳。这种方法的缺点是,你必须走完“全程”才能学习一次,如果迷宫非常大,可能要走很久很久,学习效率很低。

时序差分算法要解决的,正是在“没有地图”并且“不想走完全程才学习”的情况下,进行高效学习的问题。

2. 它是如何解决这个问题的?

TD算法的核心思想是“用当前的猜测去更新过去的猜测”,有点像“事后诸葛亮”和“不断修正主义”的结合体。

我们还用走迷宫的例子来解释它的步骤:

  1. 初始猜测:刚开始,你对迷宫里每个位置的“价值”有一个非常模糊的猜测。比如,你随便猜A点的价值是10分,B点的价值是20分。(价值越高,说明这个点离宝藏越近、越好)。

  2. 迈出一步,获得即时反馈:你从A点走到了B点。在走这一步的过程中,你可能什么都没捡到(奖励为0),或者踩到了一个加速带(奖励为+1),或者被小怪物咬了一口(奖励为-1)。我们假设你从A到B,奖励为+1。

  3. 产生“时序差分误差”:你现在站在了B点。你低头看了看自己对B点的价值猜测(20分),又回想了刚才从A到B的奖励(+1)。于是你有了一个对A点新的、更靠谱的认识:A点的价值,应该约等于“我从A到B拿到的奖励” + “B点的价值”。

    • 旧的猜测:A点的价值 = 10分
    • 新的现实估计:从A到B的奖励(1) + 对B点价值的猜测(20) = 21分

    这时,你的旧猜测(10分)和新的现实估计(21分)之间就产生了一个差值(21 - 10 = 11)。这个差值,就是大名鼎鼎的“时序差分误差(TD Error)”。 这个误差告诉你,你当初对A点的猜测可能太低了。

  4. 修正过去的猜测:现在你有了这个误差(11分),你就要用它来修正你对A点价值的最初猜测。你不会完全相信新的估计,而是只朝着新估计的方向更新一小步。

    • 更新公式(非严格):A点的新价值 = A点的旧价值 + 学习率 × (TD误差)
    • 比如,我们取一个0.1的学习率,那么A点更新后的价值就是:10 + 0.1 × 11 = 11.1分。

通过这样**“走一步,看一步,修正一步”**的方式,你不断地在迷宫里穿梭,用下一步的价值估计来更新上一步的价值估计,就像多米诺骨牌一样,价值会从终点(宝藏)一步步地传递到起点,最终你对每个点的价值评估都会越来越准。

著名的TD算法有两个流派:

  • Sarsa:一个比较“稳重”的算法,它更新价值时,会考虑自己下一步实际会走的那个动作。
  • Q-learning:一个比较“大胆”的算法,它更新价值时,总是假设自己下一步会选择价值最高的那个动作,不管自己实际会不会那么走。

3. 解决这个问题的效果如何?(优点)

  1. 学习效率高,可以在线学习:TD算法不需要等到一回合游戏结束才学习,每走一步都可以更新一次认知。 这让它在很多持续时间长或者根本没有终点的任务中(比如机器人控制、实时推荐系统)非常有效。
  2. 不依赖环境模型:和“有地图”的动态规划不同,TD算法是“无模型的”,它能直接从与环境的交互经验中学习,适用范围非常广泛。
  3. 方差比蒙特卡洛法低:蒙特卡洛法因为要考虑一整个回合的所有随机奖励,所以结果的波动(方差)会很大。而TD算法只考虑了一步的奖励和下一个状态的估计值,所以更新过程更加平稳。

4. 还有哪些不足?(缺点)

  1. 存在偏差(Bias):TD算法最大的特点是“用猜测更新猜测”(专业术语叫自举 Bootstrap)。 如果你一开始对下一个状态价值的猜测就是错的,那么这次学习就会被带偏。它就像一个听信了错误情报的侦察兵,可能会在一段时间内做出错误的判断。虽然随着学习的深入这个偏差会逐渐减小,但在学习初期可能会导致路径不稳定。
  2. 对初始值敏感:因为后面的学习都是在初始值的基础上不断修正,一个糟糕的初始猜测可能会让算法需要更长的时间才能收敛到正确的结果。
  3. 调参是个技术活:算法中“学习率”这类参数的选择对最终效果影响很大,需要经验和实验来调整。
  4. 难以处理大规模问题:对于最基础的TD算法,你需要为每一个“状态-动作”组合都记录一个价值(存在一个巨大的Q表里)。如果状态和动作的数量极其庞大(比如围棋),这张表就会变得无法想象的大,从而难以应用。 当然,后来人们把它和神经网络结合(比如DQN),就很好地解决了这个问题。

5. 总结

总的来说,时序差分(TD)算法是一种非常强大和核心的强化学习方法。它通过“边走边学,小步快跑,不断修正”的策略,解决了在未知环境中高效学习决策的问题。它虽然有“容易被自己的错误猜测带偏”的缺点,但其高效、灵活的特性使其成为了强化学习领域的基石之一。

http://www.dtcms.com/a/450807.html

相关文章:

  • 视频网站 外链wordpress++xml
  • 福州企业网站维护价格低专题页是什么
  • 网站建设的目的与意义是什么意思ii6创建网站
  • Arduino uno板
  • 北京网站建设可选兴田德润网络官网
  • 网页设计旅游网站做网站公司需要什么资质
  • 绍兴专门做网站的公司玉门市住房和城乡建设局网站
  • 阜阳手机网站开发小程序开发平台有哪些公司
  • 推客分销系统数据驱动运营:推广效果分析、佣金优化与转化路径追踪
  • 织梦系统做的网站打开慢商务电商网站建设
  • 简述seo和sem的区别与联系网站seo的优化怎么做
  • 网站做的最好的网站有哪些最新实时新闻
  • 数据驱动AI时代:大规模数据分发平台的架构演进与实践方法论
  • 管理网络的网站收到短信说备案被退回但工信部网站上正常啊
  • 如何在360做网站SEO凡科小程序模板
  • Java “线程池(1)”面试清单(含超通俗生活案例与深度理解)
  • 大公司的网站是怎么建的绍兴微网站建设
  • 网站的icp是什么意思产品备案号查询官网
  • 上海做网站要多少钱云虚拟主机怎么做2个网站
  • 量化方案中预测波动率的一些经验
  • 无锡设计网站公司网站建设系统开发
  • Python - 100天从新手到大师:第四十四Python接入MySQL数据库
  • 俱乐部网站方案前程无忧做网站多少钱
  • 视频号视频下载助手appwordpress seo.php
  • 中国建设银行信用卡网站首页网站空间可以通过什么获取
  • Transformer(三)---编码器部分实现
  • DevEco Studio安装
  • C51-指针函数(返回指针的函数)
  • 遵义网站建设公司电话多少网站域名变更怎么查询
  • 上海网站设计建设wordpress的交叉表单