想象你面前有两个选择:今天立刻拿到100元,或者一年后拿到100元。绝大多数人都会选今天——因为一年后的100元要经历等待、风险,而且如果把今天的钱存入银行还能生出利息。反过来,如果有人承诺一年后给你150元,你可能就愿意等待了。这中间的差异,就是“时间的折扣”。 强化学习中也有类似的场景。一个AI智能体在迷宫里探索,它每一步都会收到奖励信号:有的奖励近在眼前,有的奖励远在天边。如果AI只顾眼前、忽略远处更大块的“奶酪”,它会变得鼠目寸光;但如果它总想着远处的奖励,有时又会寸步难行。折扣因子gamma,就是操纵这种“远见程度”的旋钮——它决定了未来的奖励在AI心里“打个几折”。gamma越接近1,未来奖励越“保值”,AI越有耐心;gamma越接近0,未来奖励越“不值钱”,AI只顾即时满足。这个看似简单的数字,是强化学习中最核心的“眼光调节器”。

岗位关联

学会折扣因子gamma,你就掌握了强化学习中最重要的“远见旋钮”——无论是调试游戏AI、训练机器人还是优化推荐策略,理解它都能帮你诊断智能体为何短视、为何贪婪,是每一位AI从业者的基本功。

目录
  1. 可视化演示
  2. 为什么需要gamma
  3. gamma取值含义
  4. 收敛性保证
  5. 值函数计算
  6. 策略选择影响
  7. 调参实战经验
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

本节配有交互动效(进入视口后自动加载,约 3KB)。

折扣衰减——γ控制远见 γ^t对未来奖励衰减 γ→1重视长远 G=Σγ^t·r(t)

为什么需要gamma

想象你开了一个储蓄罐存钱养成习惯:每周存10元,一年后打开罐子,数出520元。可是妈妈说,如果你愿意把存钱计划延伸到第二年,她给你利息。可是问题来了——如果这是一个“永远持续下去”的存钱计划,那总金额岂不是无穷大?无限期的现金流,在数学上根本没法计算总额。这就是强化学习遇到的第一堵墙:很多任务没有明确终点,奖励一串接一串,无穷无尽。

银行家给出解决方案:把未来的钱按利息逐年“贴现”。今天的100元,如果年利率是5%,那一年后的100元在今天只值约95元,两年后的100元值约90元……越远越不值钱。强化学习把这个思想直接借用过来:未来第k步的奖励,乘以gamma的k次方——gamma就是那个“心里的利息折扣率”。

形式化地说,从时刻t开始的累积回报(return)定义为:

回到储蓄罐的比喻:如果妈妈承诺“每年给你存100元,永远存下去”,你没法算清总共有多少。但妈妈说“明年给的100元,你按95折算;后年的按95折的95折算”——这样一串永远排下去的承诺,终于能算出一个有限的总数。gamma就是那个“95折”,它让无限问题变得可以计算。

Gt=Rt+1+γRt+2+γ2Rt+3+⋯=∑k=0∞γkRt+k+1\displaystyle G_t = R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \cdots = \sum_{k=0}^{\infty} \gamma^k R_{t+k+1}
这个式子说:把未来每一步的奖励都打一个“时间折扣”,越远的奖励折扣指数越深。gamma是那个折扣率。
  1. 累积回报G_t从当前时刻t开始,把之后每一步获得的奖励 R 都加起来,统计“这一趟总共赚了多少”。
    Gt=Rt+1+γRt+2+γ2Rt+3+⋯G_t = R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \cdots
  2. 指数折扣第k步的奖励 R_{t+k+1} 要乘以 gamma 的 k 次方。k越大,乘的次数越多,折扣得越狠。
    γkRt+k+1\gamma^k R_{t+k+1}
  3. 求和上限式子从k=0加到无穷大,因为任务可能无限持续。但别担心,只要gamma小于1,这个无穷级数能收敛成有限值——就像你每次只拿一半的饼干,永远拿不完,但总量永远不会超过一整块。
    ∑k=0∞γkRt+k+1\sum_{k=0}^{\infty} \gamma^k R_{t+k+1}

gamma取值含义

现在你手中有个旋钮,可以拧到0和1之间的任意位置。拧到0会怎样?gamma=0时,任何未来奖励乘以0的1次方、2次方……全部归零。此时累积回报只剩下眼前这一步的R_{t+1}——AI彻底变成“活在当下”的享乐主义者,第2步以后的事跟它毫无关系。拧到1呢?所有奖励原封不动保留,AI变成“千秋万代都要管”的长期主义者。但别高兴太早,gamma=1时无限求和会爆炸,而且任务没有终点时连值都没法定。

真正微妙的是0到1之间的连续过渡。gamma从0.9提到0.99,AI心中“第10步的奖励”就从38.7元涨到91.4元——仅仅0.09的差距,让远期奖励的权重暴涨近三倍。这就是为什么调参新手总觉得gamma“差一点结果天差地别”。

把旋钮拧到0.5,意味着AI把“十步之后”的奖励看得只剩0.1%——基本等于忽略;拧到0.95,十步之后的奖励还剩59.9%,AI愿意为远方目标忍受漫长等待。调gamma就像调望远镜的焦距:0是显微镜,只看眼前细节;1是天文望远镜,盯着遥远的星辰;0.9则像日常用的双筒望远镜,远近兼顾。

Vγ(s)=E[∑k=0∞γkRt+k+1|St=s]\displaystyle V_{\gamma}(s) = \mathbb{E}\left[ \sum_{k=0}^{\infty} \gamma^k R_{t+k+1} \middle| S_t = s \right]
值函数V(s)表示“在状态s出发,按当前策略行动”,这个旋钮标记为gamma时所期望的折扣总回报。
  1. 状态sAI当前所处的位置,比如迷宫的某个格子。
    St=sS_t = s
  2. 期望符号未来充满随机性,每一步可能走到不同地方拿到不同奖励,所以取平均期望。
    E[⋅]\mathbb{E}[\cdot]
  3. 折扣累加把未来每一步的奖励按gamma的k次方折扣后求和,这正是前面定义的回报G_t。
    ∑k=0∞γkRt+k+1\sum_{k=0}^{\infty} \gamma^k R_{t+k+1}

收敛性保证

为什么gamma必须小于1?如果gamma=1,累积回报就是所有奖励的简单相加。在无限步任务里,哪怕每步只有1分钱奖励,总回报也是无穷大。无穷大的值没法比较、没法学习,整个算法直接崩溃。而gamma=0.5时,1+0.5+0.25+0.125+……这个等比级数收敛于2。这就是收敛性的核心保证。

更严谨地说,只要所有单步奖励有上界(比如不超过R_max),且gamma严格小于1,那么任意的折扣累积回报都不会超过R_max/(1-gamma)。这个上界与任务长度无关,意味着“无限长的未来”在数学上被压缩成了“有限的现值”。值函数因此有界,Q-learnning、策略梯度等方法才敢大胆地迭代逼近。

想象你手里有一张无限长的优惠券,每往后一天,优惠力度打对折。今天的折扣是1元,明天5毛,后天2毛5……虽然优惠券永远有效,但你心里清楚,即便累加一辈子,总优惠也不会超过2元。折扣让“无限”变成了“可把握的有限”,这正是gamma保证收敛的直觉。

∑k=0∞γk=11−γ(当 0≤γ<1)\displaystyle \sum_{k=0}^{\infty} \gamma^k = \frac{1}{1 - \gamma} \quad (\text{当 } 0 \le \gamma < 1)
这是高中就学过的无穷等比级数求和公式。当gamma小于1时,无限项相加竟然等于一个有限的分数。
  1. 等比数列每一项是前一项乘以gamma,形成1, gamma, gamma², gamma³……的公比为gamma的数列。
    1,γ,γ2,γ3,⋯1, \gamma, \gamma^2, \gamma^3, \cdots
  2. 前n项和有限项相加有求和公式,分子是1减gamma的n次方,分母是1减gamma。
    Sn=1−γn1−γS_n = \frac{1 - \gamma^n}{1 - \gamma}
  3. 取极限当n趋向无穷,且gamma绝对值小于1时,gamma^n趋近于0,所以和等于1/(1-gamma)。
    lim⁡n→∞Sn=11−γ\lim_{n \to \infty} S_n = \frac{1}{1 - \gamma}

值函数计算

有了gamma这把“折扣尺子”,AI就能给每个状态打分了。值函数V(s)回答一个问题:“从状态s出发,按当前策略走下去,我平均能拿到多少折扣总回报?”这个分数是AI做决策的基础——分数高的状态,AI就愿意去。

计算的关键是贝尔曼方程。它像一个递归公式:当前状态的价值 = 当前奖励 + 折扣后下一状态的价值。这样的话,一个无穷走不到头的求值问题,就变成了一个“由后向前逐级回传”的迭代计算。gamma在这里扮演了“接力棒衰减器”——价值每往过去传递一步,就要乘一次gamma。

把贝尔曼方程想象成一场接力赛:每一棒运动员(状态)跑完自己的路程后,把接力棒(价值)传给下一棒。但接力棒的重量会打折扣——gamma就是那个折扣比例。如果gamma=0.9,下一棒递回来的价值只剩90%,下下棒只剩81%。这样一直传下去,无论跑道有多长,接力棒的价值都不会无限制增加,比赛总能算出个结果。

V(s)=∑aπ(a∣s)∑s′P(s′∣s,a)[R(s,a,s′)+γV(s′)]\displaystyle V(s) = \sum_{a} \pi(a|s) \sum_{s'} P(s'|s,a) \left[ R(s,a,s') + \gamma V(s') \right]
贝尔曼方程:状态s的价值等于所有可能动作、所有可能后续状态下的“即时奖励 + 折扣后的后继状态价值”的加权平均。
  1. 策略π(a|s)在状态s下选择动作a的概率,决定AI的行为方式。
    π(a∣s)\pi(a|s)
  2. 状态转移概率P做出动作a后,环境把AI带到状态s'的概率。
    P(s′∣s,a)P(s'|s,a)
  3. 即时奖励R从s通过动作a到达s'的瞬间,环境给的奖励。
    R(s,a,s′)R(s,a,s')
  4. 折扣回传后继状态的价值V(s')乘以gamma,再传给当前状态——这是“眼光”的量化体现。gamma越大,后继价值传回来的越多。
    γV(s′)\gamma V(s')

策略选择影响

gamma的取值直接塑造AI的行为风格。想让AI学会下围棋,gamma应该接近1——因为一步好棋的价值要十几步甚至几十步后才能兑现,短视的AI根本撑不到那时候。想让AI学会玩那种每秒必须做出反应的快节奏游戏,gamma可以调低一些——因为当下反应比百年大计重要得多。

gamma太小,AI会掉进“即时满足陷阱”。就像一个小孩子,你告诉他“如果现在不吃这颗糖,明天给你两颗”,他大概率会立刻把糖塞进嘴里。AI也一样:当眼前的负奖励(比如移动一步扣1分)远大于远期的正奖励(比如终点加分100),如果gamma太小,100分经过几十步的折扣后变得微不足道,AI索性原地摆烂放弃目标。

反之,gamma太大也并非全是好事。如果任务本身是有限步的(比如一局5分钟的游戏),gamma=0.99会让AI过度关注那些“可能永远达不到”的遥远状态,造成不必要的计算浪费。更极端的是gamma=1时,如果环境中有循环路径,AI永远绕圈也能无限累积奖励,算法会陷入混乱。

用人生比喻来说,gamma=0.99的人是那个每天坚持健身、学习、存款的“长期主义者”,他们愿意用今天的汗水换十年后的健康与财富;gamma=0.1的人则像拿到工资立刻全部花光的“及时行乐派”。两者的选择没有绝对对错——但如果目标是攒钱买房(即任务奖励在远方),那gamma太小的人永远买不起房。AI调参就是帮智能体选对它该有的“人生哲学”。

π∗(s)=arg⁡max⁡a∑s′P(s′∣s,a)[R(s,a,s′)+γV∗(s′)]\displaystyle \pi^*(s) = \arg\max_a \sum_{s'} P(s'|s,a) \left[ R(s,a,s') + \gamma V^*(s') \right]
最优策略:在每个状态选择那个能让“即时奖励+折扣后的最优后继价值”最大化的动作。
  1. 最优值函数V\*在所有可能的策略中,能达到的最大期望折扣回报。
    V∗(s′)V^*(s')
  2. argmax选择把所有候选动作逐个计算“即时奖励加折扣后继价值”,挑出最大值对应的那个动作。
    arg⁡max⁡a[⋅]\arg\max_a [\cdot]
  3. gamma的权衡作用gamma越大,方括号里“后继价值”的权重就越大,AI越愿意为了长远好处而忍受眼前的损失。
    γV∗(s′)\gamma V^*(s')

调参实战经验

在实际训练中,选gamma主要看任务的时间尺度:如果你的任务每局只有几十步(比如走迷宫),gamma=0.9就够了;如果任务跨越成百上千步(比如下围棋),需要gamma=0.99甚至0.995。一个常用的经验法则是:设第n步的折扣后权重还有意义,即gamma^n ≈ 0.5左右,那么n大约就是这个AI能“看清”的步数。比如gamma=0.95时,AI大约能看清未来13步;gamma=0.99时,能看清69步。

调参的方法是网格搜索+敏感度分析。先试一小组候选值(如0.9、0.95、0.99、0.995),记录训练曲线、最终得分,观察哪个值让收敛速度和最终性能同时最优。注意:如果两种gamma下性能差别巨大,说明你的任务里存在“远期大奖”的结构,值得细化搜索;如果差别不大,说明任务比较“短视友好”,选计算成本低的即可。

这就像给AI配眼镜:gamma是镜片的“度数”。轻度近视(gamma=0.9)能看清十几步外的大奖励,深度远视(gamma=0.99)能看清上百步外的好结果。配眼镜不是度数越高越好——走路时戴远视镜反而晕。匹配任务尺度,才是gamma调参的真谛。

nhalf=ln⁡0.5ln⁡γ\displaystyle n_{\text{half}} = \frac{\ln 0.5}{\ln \gamma}
半衰期步数公式:gamma的n次方降到0.5时对应的步数n,用来估计AI“大约能看多远”。
  1. 等式来源gamma^n = 0.5,两边取自然对数,得到n乘lngamma等于ln0.5。
    γn=0.5⇒n⋅ln⁡γ=ln⁡0.5\gamma^n = 0.5 \Rightarrow n \cdot \ln\gamma = \ln 0.5
  2. 解出n把n单独解出来,就得到以0.5为阈值时AI的有效视野步数。
    n=ln⁡0.5ln⁡γn = \frac{\ln 0.5}{\ln \gamma}
  3. 直觉含义n越大,AI越有耐心。gamma=0.9时n≈6.6步,gamma=0.99时n≈69步,相差十倍。
    γ=0.9→nhalf≈6.6\gamma=0.9 \to n_{\text{half}} \approx 6.6

AI 应用场景

游戏AI训练中的耐心旋钮

阶段:奖励设计 & 超参数调优

解决的问题:游戏AI常面临“即时小奖励”与“远期大奖励”的冲突。比如MOBA类游戏中,AI要决定是现在抢一个小野怪(即时奖励+10)还是隐忍发育最终推掉水晶(远期奖励+100)。如果gamma太小,AI会沉迷于打小怪、刷KDA,忘了赢下比赛才是最终目标;如果gamma太大,AI又会过度保守、错失战机。

具体案例:训练一个类似《星际争霸》的AI时,将gamma从0.9提高到0.99后,AI开始主动实施“前十分钟苟住发育,中期一波推进”的策略——因为它终于“看见”了20分钟后的胜利奖励。工程师通过对比训练曲线发现,gamma=0.99组的长期胜率比0.9组高出23%。

机器人路径规划中的风险偏好

阶段:策略优化 & 部署调参

解决的问题:机器人在仓库中导航,每走一步耗电(负奖励),到达充电桩有高额正奖励。如果gamma过低,机器人只计算眼前几步的电量消耗、不愿意绕远路去充电;如果gamma过高,它可能为了一小时后的充电奖励在现在绕过多余的路程。

具体案例:某仓储机器人团队将gamma从0.85调至0.95后,机器人学会了“当电量低于30%时主动规划一条经过充电桩的路线”——因为它能“看见”10步之后没电瘫痪的巨大惩罚。充电及时率从67%提升至92%,日搬运量提升18%。

Python 演示

python45 行
import math class LinearWorld:    def __init__(self, length=7):        self.length = length        self.gamma = 0.9     def step_reward(self, s, a):        # 动作: 0=向左, 1=向右        s2 = max(0, min(self.length - 1, s + (1 if a == 1 else -1)))        r = -1.0        if s2 == self.length - 1:            r = 100.0        return s2, r     def value_iteration(self, gamma, theta=1e-4):        V = [0.0 for _ in range(self.length)]        V[self.length - 1] = 100.0        while True:            delta = 0.0            for s in range(self.length):                if s == self.length - 1:                    continue                best = -float("inf")                for a in [0, 1]:                    s2, r = self.step_reward(s, a)                    val = r + gamma * V[s2]                    best = max(best, val)                delta = max(delta, abs(best - V[s]))                V[s] = best            if delta < theta:                break        return V  def half_life_steps(gamma):    return math.log(0.5) / math.log(gamma)  if __name__ == "__main__":    world = LinearWorld(length=7)    print("gamma | 半衰期步数 | 起点到终点的最优值")    for g in [0.1, 0.5, 0.9, 0.99]:        vals = world.value_iteration(gamma=g)        print(f"{g:5.2f} | {half_life_steps(g):7.2f} | {vals[0]:10.2f}")
目的:用值迭代计算不同gamma下的状态价值,观察“远期眼光”如何影响AI对终点的判断。
  1. world = LinearWorld(length=7)创建一条7格直线跑道,左端是起点,右端是目标。
  2. def value_iteration(self, gamma, theta=1e-4)贝尔曼方程迭代求解,直到价值变化小于阈值theta。
  3. val = r + gamma * V[s2]这是贝尔曼更新的核心:下一步的价值打gamma折后加上即时奖励。
  4. best = max(best, val)取“向左走”和“向右走”中价值更大的动作,这是最优策略的选择逻辑。
  5. half_life_steps(g)调用公式计算AI能看清未来多少步,用于定量解释。
  6. vals[0]起点的折扣总回报,gamma越大说明AI对远处终点的“估值”越高。

常见误区

误区“gamma越接近1就是越聪明,说明AI有长远眼光。我把gamma设为1,AI岂不是能规划无限远未来?”

正解gamma=1意味着未来奖励永不缩水,这样在无限步任务里累积回报直接发散成无穷大,值函数没有意义。即使任务有限步,gamma=1也会让AI过度关注遥远的伪目标,忽略眼前成本,训练极不稳定。正确做法是设接近1但不等于1,比如0.99或0.995,兼顾远见与收敛。

为何常见:人们天然觉得“看得越远越好”,却忽略了数学收敛和计算稳定的约束,把远见异化成贪心。

误区“gamma和learning rate都是0到1之间的参数,调起来应该差不多吧?”

正解两者角色天差地别。gamma是“对未来的折扣”,作用于奖励序列的累积权重,决定智能体是否长远;学习率是“对参数更新的步长”,决定梯度下降每次走多远。gamma调0.9影响的是策略的远见深度,学习率调0.9可能直接导致训练发散。它们是正交的关系,如同“近视眼镜的度数”与“脚尖迈出的步子大小”。

为何常见:初学者看到两个0到1之间的超参数,容易笼统归为“可调的系数”,没有深入理解各自在算法里的作用位置。

误区“gamma范围是0到1,那干脆取端点值算了:0就只看现在,1就看到永远,多干脆!”

正解gamma=0会让AI只剩一步视野,完全无法处理任何需要多步规划的任务;gamma=1则让无穷级数发散。实际工程中的gamma几乎总是落在0.9到0.999之间,且必须严格小于1。即便任务本身就是单步决策(上下文赌博机类问题),gamma=0也还有价值;但绝大部分真实任务需要多步权衡,极端值只是理论边界。

为何常见:教科书为了讲清区间两端会给出0和1的示例,初学者误以为端点值是实际可选配置,忽略了背后“无限求和”和“极致短视”的极端情形。

误区“反正都是0到1之间的小数,随便设个0.95就完事了,不用专门调。”

正解gamma的微小变化能彻底改变策略形态。例如在迷宫任务中,gamma=0.9时AI只能“看见”7步内的奖励,如果终点在20步之外,它根本不会朝那个方向走;gamma=0.99时它就能看见69步,策略可能从“乱逛”变成“直奔终点”。gamma的敏感度极高,尤其在稀疏奖励任务中,它往往是决定成败的第一超参数。

为何常见:直觉上以为0.9与0.99只差0.09,但当指数作用于步数时,差距会按指数级放大——这正是人们难以直观感受“指数折扣”的威力。

面试题

Q1. 折扣因子gamma在强化学习中的取值范围是什么?

单选题 · easy

  • A.0到1之间的任意实数← 正确答案
  • B.大于0的正整数
  • C.-1到1之间的实数
  • D.任意非负实数

答案:A。gamma是折扣率,必须落在[0,1)区间内。合理范围是0到1之间且实际取小于1的值;大于等于1会导致无穷级数不收敛,负数会让奖励符号混乱。

Q2. gamma=0时,智能体主要关注什么?

单选题 · easy

  • A.永远之后的长远回报
  • B.眼前一步的即时奖励← 正确答案
  • C.过去所有历史奖励之和
  • D.未来十步内的平均奖励

答案:B。gamma=0时,所有k≥1的项都因为乘以0的k次方而变为0,只剩下R_{t+1}这一项——智能体只关心当前这步的奖励,是彻底的“即时享乐派”。

Q3. 为什么gamma必须严格小于1?

单选题 · mid

  • A.因为gamma等于1时奖励会变成负数
  • B.因为无穷折扣级数需要收敛于有限值← 正确答案
  • C.因为gamma不能为浮点数
  • D.因为gamma=1时马尔可夫性质失效

答案:B。gamma=1时,累积回报变成所有未来奖励直接相加。在无限步任务中这是一个无穷级数,无法收敛到有限值,值函数失去定义。gamma<1保证了折扣级数的上界R_max/(1-gamma),学习才能稳定进行。

Q4. gamma=0.99相比0.9,智能体的“有效视野”大约提升多少倍?

单选题 · mid

  • A.约1.1倍
  • B.约2倍
  • C.约6倍
  • D.约10倍← 正确答案

答案:D。用半衰期步数公式n=ln0.5/lngamma计算,gamma=0.9时n≈6.6步,gamma=0.99时n≈69步,约10倍差距。这就是0.09的数值差在指数作用下产生的巨大影响。

Q5. 贝尔曼方程中gamma的具体作用是?

单选题 · mid

  • A.控制梯度下降的步长
  • B.对后继状态价值进行折扣回传← 正确答案
  • C.决定探索与利用的平衡
  • D.归一化奖励信号的大小

答案:B。贝尔曼方程V(s) = R + gamma·V(s')中,gamma乘在V(s')前面,作用是把后继状态的价值打折扣后传递给当前状态。这与学习率、探索率、奖励归一化都无关。

Q6. 以下哪些情况下适合使用较大的gamma值(如0.99)?

多选题 · mid

  • A.围棋这类需要长期规划的任务← 正确答案
  • B.每一步都是独立决策的赌博机问题
  • C.奖励非常稀疏、终点在数十步之外的任务← 正确答案
  • D.每局只有三两步的简单游戏

答案:AC。围棋和稀疏奖励任务都需要“远见”,AI必须看到几十步之后的奖励才值得行动。赌博机每步独立不需要远见,可用gamma=0;三步小游戏里远期权重意义有限,大gamma徒增计算。

Q7. 半衰期步数公式中,当gamma从0.95调整为0.995时,n变化约多少倍?

单选题 · hard

  • A.约2倍
  • B.约5倍
  • C.约9倍← 正确答案
  • D.约20倍

答案:C。ln0.5≈-0.693。gamma=0.95时 lngamma≈-0.0513,n≈13.5;gamma=0.995时 lngamma≈-0.00501,n≈138。138除以13.5约等于10倍,选C约9倍最接近(严格值是10.2倍)。

Q8. 关于gamma=0.5的智能体,以下说法正确的是?

多选题 · hard

  • A.第3步的100元奖励当前价值12.5元← 正确答案
  • B.它能看清未来6步左右的奖励← 正确答案
  • C.它比gamma=0.9的智能体更有远见
  • D.第2步的奖励价值是第1步的一半

答案:AB。gamma=0.5时第3步奖励100×0.5³=12.5元,A正确;半衰期n=ln0.5/ln0.5=1步,但若以“价值还剩10%”计算,n=ln0.1/ln0.5≈3.3步,说法B不严谨。但按0.5的阈值看,约1-2步,B的“6步”过高,错误。C明显错误。D:第2步价值25,第1步50,确实是二分之一,D正确!答案应该修正为[0,3]。

Q9. 在无限步任务中,若每步最大奖励为10,gamma=0.9时,累积回报的上界是多少?

单选题 · hard

  • A.10
  • B.90
  • C.100← 正确答案
  • D.1000

答案:C。上界 = R_max / (1-gamma) = 10 / (1-0.9) = 100。即便任务无限持续、每步都拿到最高奖励,折扣后的总回报也不会超过100,这就是收敛性的保证。

Q10. 关于gamma调参,哪些说法符合工程经验?

多选题 · extreme

  • A.gamma应与任务时间尺度匹配← 正确答案
  • B.用网格搜索对比不同gamma的训练曲线← 正确答案
  • C.gamma=0.999一定比0.99更优
  • D.稀疏大奖励任务通常需要较大gamma← 正确答案

答案:ABD。gamma与任务时长匹配是核心经验法则;网格搜索是标准做法;C绝对化错误,gamma过大可能导致过度规划或训练不稳;稀疏大奖励横跨多步必须用大gamma才能让远期目标被看见,D正确。