来源:Medium-DeepMind
编辑: 三石
【新智元导读】近日,DeepMind设计了一个新的智能体奖励机制,避免了不必要的副作用(side effect),对优化智能体所在环境有着重要的意义。
我们先来考虑一个场景:
在强化学习过程中,有一个智能体的任务是把一个盒子从A点搬运到B点,若是它能在较短时间内完成这个任务,那么它就会得到一定奖励。
但在到达B点的最路径上有一个花瓶,智能体是没有任何动机绕着花瓶走的,因为奖励机制没有说明任何有关这个花瓶的事情。
由于智能体并不需要打破花瓶才能到达B点,所以在这个场景中,“打破花瓶”就是一个副作用,即破坏智能体所在的环境,这对于实现其目标是没有必要的。
副作用问题是设计规范问题中的一个例子:设计规范(只奖励到达B点的智能体)与理想规范(指定设计者对环境中所有事物的偏好,包括花瓶)不同。
理想的规范可能难以表达,特别是在有许多可能的副作用的复杂环境中。
解决这个问题的一个方法是让智能体学会避开这种副作用(通过人类反馈),例如可以通过奖励建模。这样做的一个好处是智能体不需要知道辅佐用的含义是什么,但同时也很难判断智能体是何时成功学会的避开这种副作用的。
另一个方法是定义一个适用于不同环境的副作用的一般概念。这可以与human-in-the-loop 方法相结合(如奖励建模),并将提高我们对副作用问题的理解,这有助于我们更广泛地理解智能体激励。
如果我们能够度量智能体对它所在环境的影响程度,我们就可以定义一个影响惩罚(impact penalty),它可以与任何特定于任务的奖励函数相结合(例如,一个“尽可能快地到达B点”的奖励)。
为了区分预期效果和副作用,我们可以在奖励和惩罚之间进行权衡。这就可以让智能体采取高影响力的行动,从而对它奖励产生巨大影响,例如:打破鸡蛋,以便做煎蛋卷。
影响惩罚包括两个部分:
例如,对于常用的可逆性准则(reversibility criterion),基线是环境的起始状态,偏差度量是起始状态基线的不可达性(unreachability)。这些组件可以单独选择。
选择一个基线
在选择基线的时候,很容易给智能体引入不良的激励。
起始状态基线似乎是一个自然的选择。但是,与起始状态的差异可能不是由智能体引起的,因此对智能体进行惩罚会使其有动机干扰其环境或其他智能体。 为了测试这种干扰行为,我们在AI Safety Gridworlds框架中引入了Conveyor Belt Sushi环境。
Conveyor Belt Sushi环境是一个寿司店。它包含一个传送带,在每个智能体操作之后,传送带向右移动一个方格。传送带上有一个寿司盘,当它到达传送带的末端时,饥饿的人会吃掉它。其中,干扰行为是智能体在行进过程当中,会把寿司从传送带上撞掉。
智能体的任务就是在有或者没有干扰的情况下,从上方区域抵达下方五角星的目标区域。
为了避免这种失败模式,基线需要隔离智能体负责的内容。
一种方法是比较一个反事实状态,如果智能体从初始状态(不作为基线)开始就没有做任何事情,那么环境就会处于上面GIF中右侧的状态,并且在Conveyor Belt Sushi环境中,寿司不会成为基线的一部分,因为我们默认“人会吃掉它”。但这就会引入一个不良的行为,即“抵消(offsetting)”。
我们在传送带环境的另一种变体——传送带花瓶上演示了这种行为。在这个变体中,传送带上的物体是一个花瓶,当它到达传送带的末端时就会打碎。
智能体的任务是拯救花瓶:从传送带上取下花瓶就会得到奖励。
"抵消行为"是在收到奖励后把花瓶放回传送带上。发生这种情况是因为花瓶在不作为基线的区域停止传送,所以一旦智能体将花瓶从传送带上取下,它将继续因为与基线的差异而受到惩罚。因此,它有一个动机,通过打破花瓶后收集奖励并回到基线。
为了避免这种失败模式,可以将不活动(inaction)的基线修改为先前状态的分支,而不是起始状态。这是stepwise inaction基线:如果智能体没有采取任何行动,只是采取了最后的行动,那么这就是环境的反事实状态。
选择偏差度量
一个常用的偏差度量是不可达性(unreachability,UR)度量:从当前状态到达基线的难度。不可达性的discounted变量考虑到达状态所需的时间,而不可达性的undiscounted变量只考虑是否可以到达状态。
不可达性度量的一个问题是,如果智能体采取不可逆的操作(因为基线变得不可达),它就会“最大化”。
除了不可逆转行为的严重程度之外,该智能体还会受到最大的惩罚,例如,该智能体是否打碎了1个花瓶或100个花瓶。这可能导致不安全的行为,正如AI Safety Gridworlds套件中的Box环境所示。
此处,智能体需要尽快抵达目标位置,但是路径中有一个盒子,它可以被推动,但是不能被拉。通往目标位置的最短路径需将盒子推到一个角落,这是一个不可恢复的位置。我们所需的行为是让智能体选择一条更长的路径,将框推到右边。
需要注意的是,GIF中两条通往目标位置的路径,都包含一个不可逆的动作。副作用惩罚必须区分这两条路径,对较短路径的惩罚更高——否则智能体没有动机避免将盒子放在角落。
为了避免这种失败模式,我们引入了一个相对可达性(RR)度量。对于每个状态,我们可以与基线状态做个比较,然后进行相应的惩罚。智能体向右推动盒子会让某些状态不可达,但是智能体向下推动盒子所接受的惩罚会更高。
引入另一种偏差度量也可以避免这种失败模式。可获得效用(AU)衡量方法考虑一组奖励函数(通常随机选择)。对于每个奖励函数,它比较智能体从当前状态开始和从基线开始可以获得多少奖励,并根据两者之间的差异惩罚智能体。相对可达性可以被视为该度量的特殊情况,如果达到某个状态则奖励1,否则给出0。
默认情况下,RR度量因可达性降低而惩罚智能体,而AU度量因可达效用的差异而惩罚智能体。
设计选择的影响
我们比较了三种基线(起始状态、inaction和stepwise inaction)与三种偏差度量(UR、RR和AU)的所有组合。
我们正在寻找一种在所有环境下都表现良好的设计选择组合:有效地惩罚盒子环境中的副作用,而不引入寿司和花瓶环境中的不良激励。
在寿司环境中,带有起始状态基线的RR和AU惩罚会产生干扰行为。由于起始状态永远不可达,所以UR值总是在其最大值处。因此,它等同于智能体的移动惩罚,并且不会激励干扰。 与其他基线的处罚可避免对此环境的干扰。
在花瓶环境中,inaction基线的discounted惩罚产生抵消行为。因为把花瓶从传送带上取下来是可逆的,所以undiscounted措施不会对它造成惩罚,所以没有什么可以抵消的。初始状态或stepwise inaction基准的惩罚不会激励补偿。
在盒子环境中,因为UR度量对大小不敏感,所以它对所有基线都产生副作用。RR和AU的措施激励正确的行为。
我们注意到干扰和抵消行为是由基线的特定选择引起的,尽管这些激励可以通过偏差度量的选择得到缓解。副作用行为(将方框放在角落)是由偏差度量的选择引起的,不能通过基线的选择来减轻。这样,偏差度量就像基线属性的过滤器。
总体而言,基线的最佳选择是stepwise inaction,偏差度量的最佳选择是RR或AU。
然而,这可能不是这些设计选择的最终结论,将来可以开发更好的选项或更好的实现。例如,我们当前对inaction的实现相当于关闭智能体。如果我们想象智能体驾驶一辆汽车在一条蜿蜒的道路上行驶,那么在任何时候,关闭智能体的结果都是撞车。
因此,stepwise inaction的基准不会惩罚在车里洒咖啡的行为者,因为它将结果与撞车进行了比较。可以通过更明智地实施无为来解决这个问题,比如遵循这条道路的故障保险政策。然而,这种故障安全很难以一种与环境无关的通用方式定义。
我们还研究了惩罚差异与降低可达性或可实现效用的效果。这不会影响这些环境的结果(除了花瓶环境的inactionn基线的惩罚)。
在这里,把花瓶从传送带上拿开增加了可达性和可实现的效用,这是通过差异而不是减少来捕获的。因此,undiscounted RR与inaction基线的差异惩罚变体会在此环境中产生抵消,而减少惩罚变量则不会。由于stepwise inaction无论如何都是更好的基线,因此这种影响并不显著。
在设计过程中,选择“差异”还是“减少”也会影响智能体的可中断性。
英文原文:
https://medium.com/@deepmindsafetyresearch/designing-agent-incentives-to-avoid-side-effects-e1ac80ea6107