强化学习

折扣因子(discount factor)

/ DIS-kownt FAK-tur /

折扣因子是一个旋钮,通常写作伽马(γ),它设定智能体对「未来」相比「当下」有多在乎。一步之外的奖励算足额;两步之外的奖励要乘上 γ;三步之外,γ 乘 γ;如此类推,每延迟一步就缩水一分。它是「双鸟在林,不如一鸟在手」的数学表达——未来的奖励,比当下的奖励值得稍微少一点。

γ 落在 0 与 1 之间。把它设得接近 0,智能体就变得目光短浅,只抓眼前能立刻兑现的,无视长远后果。把它设得接近 1(比如 0.99),智能体就变得高瞻远瞩,肯为多步之后一份更大的奖励,放弃眼下一份小的。调 γ,实实在在就是在选择智能体的性格——它有多大耐性。

γ 之所以存在,还有一个不动声色的技术缘由。在那些可以永远跑下去的任务里,单纯把奖励一路相加会得到无穷大,这在比较策略时毫无用处。打折扣把那个无穷的总和驯成一个有限的数,于是「更好」与「更差」才仍有意义。难处在于,γ 是你设定的旋钮,而非世界告诉你的——设得太低,智能体不会向前谋划到足以解开任务;设得太高,学习又可能变得缓慢而不稳定。

面对「十步之后给+100」,当 γ 等于 0.9,智能体今天给它的估值是 100 × 0.9¹⁰ ≈ 35。当 γ 等于 0.99,它对同一份奖励的估值约为 90——几乎足额。同样的奖品、同样的延迟,却是两种截然不同的「等待胃口」。

每延迟一步,奖励就乘一个 γ。γ 低=没耐性;γ 高=看得远。

γ 是一个设计选择,而非关于任务的事实,它悄然塑造着智能体「甚至会去尝试什么」。太低,它就「看不见」一个遥远的目标,于是永远学不会抵达;太高,那些遥远而不确定的总和又会让学习更嘈杂、更慢才安定下来。

又称
gammaγ折现因子贴现因子