奖励函数
Reward Function入门必知强化学习里给智能体每一步行为打分的规则,告诉它什么算做得好。
奖励函数是强化学习的核心组成部分:智能体每做一个动作,环境根据当前状态、所做动作和到达的下一状态给出一个标量分数,常写作 r = R(s, a, s')。智能体的目标是让累计奖励(回报)最大,所以奖励函数实际上定义了「任务是什么」。机器人任务的奖励往往要人手写:只在成功时给分(稀疏奖励)很难学起来,写得不周全又容易被策略钻空子,分数刷高了任务却没完成(奖励黑客)。因此出现了奖励塑形(额外加中间奖励来引导)、学习型奖励模型、让大模型自动写奖励代码等做法。
例子训练四足机器人行走时,奖励通常由「跟上目标速度加分」「关节力矩过大扣分」「摔倒扣分」等多项加权组成。英伟达等提出的 Eureka 让 GPT-4 直接写奖励函数代码,在 29 个环境中有 83% 的任务超过了人类专家写的奖励。
- 也叫
- 奖励、奖赏函数
- 相关
- 强化学习、回报、奖励塑形、稀疏奖励、奖励黑客、Eureka
- 来源
- OpenAI Spinning Up: Key Concepts in RL
Eureka: Human-Level Reward Design via Coding Large Language Models (arXiv 2310.12931)