1
本文作者: AI科技评论 | 2016-06-28 09:23 |
今年8月,雷锋网将在深圳举办盛况空前的“全球人工智能与机器人峰会”,届时雷锋网(搜索“雷锋网”公众号关注)将发布“人工智能&机器人Top25创新企业榜”榜单。目前,我们正在拜访人工智能、机器人领域的相关公司,从中筛选最终入选榜单的公司名单。
如果你也想加入我们的榜单之中,请联系:2020@leiphone.com。
担心 AI “副作用”的马斯克创立了非盈利机构OpenAI,最近 OpenAI 安全性与技术巨头谷歌共同提出了五条 AI 安全的具体准则。图片来源:TC。
最近,谷歌和OpenAI的博客宣布了一条由谷歌、OpenAI、伯克利和斯坦福的学者共同进行的研究,其目的旨在为AI提供一个有效的行为约束,以使其不会在有意或无意中做出危害人类的事情。
人们对AI技术的担心可以追溯到“AI”这个名词诞生之前。1950年著名科幻作家阿西莫夫的《我,机器人》出版,在书中阿西莫夫提出了举世闻名的机器人三定律:第一定律:机器人不得伤害人类,或坐视人类受到伤害;第二定律:机器人必须服从人类的命令,除非与第一定律冲突;第三定律:在不违背第一定律和第二定律的情况下,机器人必须保护自己。虽然阿西莫夫的作品预言了科技发展的趋势,但是机器人三定律毕竟只属于文学。
如今,AI 技术已经深入影响我们的生活,霍金和马斯克等科技界名人也预警了 AI 可能造成的危害,不过,宽泛空洞的 AI 威胁论也许并不能带来实质性的帮助。非盈利研究机构 OpenAI 正是在马斯克等人的推动下建立,宗旨是让人工智能为人类发挥积极的作用。之前 AI 科技巨头谷歌就发布过一篇论文,设计了一个用于紧急停止算法运行的开关,并且确保开关的效果不会被算法阻止,这个开关属于事后防范的应急措施(点击链接,查看雷锋网编译分享的论文全文)。此次,OpenAI 与谷歌等学者共同为AI系统设计划出了五条准则,讨论哪些具体的工程设计方法可以预防 AI“暴走”对人类带来危害,与缺乏可操作性的机器人三定律相比更加实用。在此,我们为大家分享名为《AI 安全中的具体问题》论文全文(上篇)。
概况
机器学习和人工智能(AI)领域中的快速进展让人们越来越关注 AI 技术对社会的潜在影响。这篇论文中,我们讨论其中一个潜在影响:机器学习系统中的“意外”问题,定义为可能从真实世界 AI 系统的不良设计中而来的、不符合设计者初衷的有害行为。我们呈现五项与意外风险有关的实践研究问题,问题分类是基于它们是否源于错误的目标函数(“避免副作用”和“避免奖励的黑客行为“)、是否其基于的目标太过昂贵以至于无法经常评估(”可扩展的监督“)、或者是否在学习过程中出现不良行为(“安全探索”和“分配转变”)。我们回顾这些领域的过往研究,并建议未来的研究方向,重点在与尖端 AI 系统的相关性。最后我们考虑一个高等级的问题,如何最有成效地思考 AI 前瞻性应用的安全问题。
1. 简介
最近几年,我们见证了机器学习和人工智能(AI)中最顽固、困难的一些问题出现了快速进展,包括在计算机视觉、电子游戏、自动驾驶和围棋等广泛领域。这让我们很激动地看到 AI 有潜力带来积极影响,能够改变医学、科学和交通等领域,同时,这也让我们对于自动系统在隐私、安全、公平、经济和军事方面的影响感到了担忧,并且担心强大 AI 的长期影响。
本文的作者们相信,AI 科技可能对于人类来说非常有益,但是我们也相信,有必要对潜在的挑战和风险给予严肃思考。我们积极支持隐私、安全、公平、经济和政策方面的研究,但是在这篇论文中我们讨论另一个类别的问题,我们相信对于 AI 的社会影响也有关:机器学习系统中意外的问题。我们将意外定义为:如果我们定义错误的目标函数、在学习过程中不够小心或者犯下其他机器学习相关的执行错误时,机器学习系统中出现的不符合设计者初衷的有害行为。
在机器学习学术圈有许多关于意外问题的各种文献,包括关于强度、风险敏感性和安全探索,我们以下会回顾这些文献。然而,随着机器学习系统应用在越来越大型、自动化和开放的领域中,我们需要反思类似方法的可扩展性,以及要减少现代机器学习系统中的意外风险,还有哪些挑战。总体来说,我们相信预防机器学习系统中的意外,有许多相关的具体、开放的技术问题。
围绕意外话题已有许多公共讨论。目前,很多此类讨论围绕极端情景,例如在超智能代理(Agent)中出现错误目标函数的风险。然而,我们认为有成效地讨论意外问题不需要渲染这些极端情景,实际上这只会带来没必要的推测性讨论,正如一些批评者所说的那样,缺少精确度。我们相信,最有成效的做法是从现代机器学习技术的实际问题(虽然经常比较笼统)来描述意外风险。随着 AI 能力进步以及 AI 系统承担越来越重要的社会功能,我们期望这篇论文中讨论的基本挑战也变得越来越重要。AI 和机器学习圈中的人对这类基本技术挑战的预期和理解越是成功,我们最终开发的 AI 系统就越是有用、相关和重要。
我们在这篇论文中的目标是重点呈现以下这些具体的安全问题,并且回顾关于这些问题的现有文献,这些问题现在就已经可以进行实验、并且与尖端的 AI 系统相关。在第2部分,我们就机器学习中的经典方(例如监督分类和强化学习)来描述如何减轻意外风险(在公众讨论中被称作“AI 安全”)。我们会解释,为何我们感觉机器学习最近的方向——例如深度强化学习、以及代理在更广阔环境中的行动——让关于意外的研究相关性越来越强。在第3-7部分,我们探索五个 AI 安全中的具体问题。每一个部分都包含相关实验的提案。第8部分讨论相关的研究,第9部分为结论。
2. 研究问题概况
广义来说,意外可以描述为:当一个人类设计者构想一个具体的目标或者任务(可能是非形式化的说明的),但是实际上设计和应用的系统没有完成那项任务,并在完成中带来了有害的结果。这项问题在几乎任何工程领域都会出现,但是可能在打造 AI 系统时尤为重要。我们可以根据过程中哪个部分出现了问题来分类安全问题。
首先,设计者可能描述了错误的形式化目标函数,使得该目标的最大化导致了有害结果,即便是在完美学习和无线数据的限制下也是一样。不良副作用(第3部分)和奖励的黑客行为(第4部分)描述两种普遍机制,让人容易产生错误的目标函数。在“不良副作用”中,设计者描述的目标函数专注于在环境中完成某个具体任务,但是忽视了(可能很大的)环境中的其他方面,因而相当于潜在表示了自己不关心其他一旦改变会带来害处的环境变量。在“奖励的黑客行为”中,设计者写下的目标函数可能允许一些聪明的“简单”方法,从形式上可以最大化奖励,但是让设计者的初衷变了味(例如,目标函数可以被“钻空子”)。
第二,设计者可能知道正确的目标函数,或者至少有方法来评估(例如在一个既定情况下明确咨询人类),但是经常这样操作成本会过于昂贵,因此有限的样本带来不良推断,从而可能导致有害行为。“可扩展的忽视”(第5部分)讨论如何在即便对真正的目标函数接触有限的情况下,也能确保安全行为的办法。
第三,设计者可能描述了正确的形式化目标,这样如果系统有完美的信念我们就会得到正确的行为,但是由于训练数据不足、编辑不良或者模型没有充分表达,以此为基础的决策会导致不良结果。“安全探索”(第6部分)讨论,如何确保强化学习(RL)代理的探索行为不会导致负面、或者不可弥补的结果,抵消探索的长期价值。“分配转变的鲁棒性”(第7部分)讨论当输入与训练输入非常不同时,如何避免机器学习系统进行不良决策(尤其是无声的、不可预测的不良决策)。
为了更加具体,我们会参考一个虚拟机器人来描述许多意外风险,这个机器人的任务是使用普通清洁工具来打扫办公室。我们在论文中会回到清洁机器人的例子,但是在这里我们首先描述如果他的设计遇到以下几种可能的失败模式,会出现什么不良行为:
1、回避不良副作用:
我们如何确保清洁机器人不会在完成自己目标的过程中干扰环境,例如把花瓶打碎了可以清洁地快一点?我们能否避免手动说明所有机器人不该做的事?
2、避免奖励的黑客行为
我们如何确保机器人不会在奖励中钻空子?例如,如果我们奖励机器人的依据是环境中没有任何杂物,机器人可能会让自己的视觉功能失效,这样它就不会发现任何杂物,或者用它不能透视的材料将杂物覆盖起来,或者干脆在有人的时候躲起来,这样人们就没法告诉机器人有什么新的杂物出现了。
3、可扩展的忽视
如果训练中的一些部分由于过于昂贵而没法经常经常评估,我们如何确保机器人会尊重这些部分?举个例子,机器人应该扔掉不属于任何人的物品,而把属于某人的物品放在一边。机器人可以问问人类是否丢了东西作为一个确认环节,但是这个确认相对不太频繁——机器人能否找到一种方式,即便信息有限也能做出正确的事呢?
4、安全探索
我们如何确保清洁机器人不会做出有负面影响的探索行动?例如,机器人可以试验各种拖地策略,但是将湿布放在电器插座上就不太好。
5、分配转变强度
我们如何确保清洁机器人在与其训练环境不同的环境中,也能良好识别和行动?例如,它针对清洁工厂车间而学的启发式方法,可能用在办公室环境里就不安全。
有一些趋势让我们相信,解决这些(和其他)安全问题的需求越来越高。首先,强化学习(RL)让我们看到越来越多的希望,它允许代理与环境有高度互动。我们一些研究问题只能在 RL 的情况下说得通,而其他(例如分配转变和可扩展的监管)在 RL 设定中有更高的复杂度。第二,更复杂的代理是目前的趋势。“副作用”更有可能在复杂环境中出现,代理可能需要更复杂、更危险的办法才能入侵奖励功能。这也许能解释为什么这些问题过去没有进行过什么研究,同时也意味着它们在未来的重要性。第三, AI 系统中的自动化越来越高。仅仅为人类用户输出推荐的系统,例如给照片自动写标题的APP,通常没有什么进行有害行为的潜力。然而,对世界具有直接控制的系统,例如控制工业流程的系统,可能会有人类不一定能预见或修复的危害。
虽然在这四项趋势之外安全问题也可能存在,我们认为这四项趋势可能会放大危险性。我们相信这些趋势共同说明了研究意外的必要性。
论文的其余部分我们将专注在 RL 代理和监督学习系统中的具体问题。这不是 AI 或 ML 系统唯一的范式,但是我们相信它们足够说明问题,类似的问题也会在其他类型的 AI 系统中出现。
最后,我们每一部分的讨论重点会有所不同。当讨论学习过程(分配转变和安全探索)中出现的问题时,过往研究有大量的文献,我们将很多精力放在回顾过往研究上,虽然我们还建议开放特别关于新兴 ML 系统的问题。当讨论错误目标函数所带来的问题时,过往研究较少,我们的目标是更多探索——我们想更明确地定义问题,并建议可能的解决方法,不过这些方法还是为发展成熟的初期概念。
3、避免不良副作用
假设设计者希望一个 RL 代理(例如我们的清洁机器人)实现某些目标,例如将一个盒子从房间的一头搬到另一头。有时候最高效的办法会涉及做一些无关的事情,并对环境有不良影响,例如打翻路线中的花瓶或者杯子。如果代理的奖励只与搬运箱子有关,那它就会去打翻花瓶。
如果我们事先考虑到花瓶,我们可以在代理打翻花瓶时给它负激励。但是,如果环境中有很多种不同的“花瓶”——很多种代理可能对环境造成的干扰——我们可能没法将所有可能的情况一一列举并规定出惩罚。
更普遍来说,要让代理在一个大的、多层面的环境中进行操作,如果目标函数只关注环境的一方面,可能向代理潜在表示了设计者不关注环境的其他方面。换句话说,将“进行 X 任务”形式化的目标函数可能经常带来不符合初衷的结果,因为设计者本应将目标描述为“进行 X 任务,同时在常识的限制内行动”,或者“进行 X 任务,但是尽可能避免副作用”。而且,我们有理由相信通常副作用都是负面的,因为他们可能会改变现状,而现状可能反应了人类的偏好。
对于其他在后文讨论的错误描述的目标函数,我们可以选择将副作用视为每个人在进行任务时的个人风格——作为每一个个人设计者在设计正确的目标函数中承担的责任。然而,副作用即便在高度多元的任务中都可能在概念上非常相近,所以,从普遍层面来解决问题是有价值的。成功的方法应该可以在不同任务之间通用,这样可以帮助抵消其中一个会带来错误目标函数的总体机制。我们现在讨论几个解决问题的总体方法:
定义影响常规化机制:
如果我们不希望出现副作用,我们自然可以惩罚“对环境的改变”。这个办法不会让代理完全无法行动,而是给予其一种偏好,在完成目标的过程中将影响最小化,或者给代理有限的影响“预算”。困难之处是我们需要将“对环境的改变”形式化。
一种天真的方法是惩罚目前状态 si 和初始状态 s0 之间的状态距离 d (si,s0)。可惜的是,这样的代理没法只避免改变环境——它会抗拒任何改变,包括环境正常的进化以及其他代理的任何行动。
一种稍复杂一些的方法可能需要在代理比较目前的策略下的未来状态,以及一个假设策略 πnull 下的未来状态(或者未来状态的分布),在假设策略中代理行为非常被动(例如,代理站着不动,不使用任何促动器)。这会分离出环境在自然进化中出现的改变,只留下由于代理干预而发生的变化。然而,我们不一定能简单明了地定义基准策略 πnull ,因为突然停止行动本身就会对环境造成影响,例如正在搬运箱子的过程中。因此,另一种方法可以代替无效行为,使用一种安全(副作用低)但是次优的)已知策略,然后努力提高策略,与可达性分析或者稳健策略提升类似。
这些方法可能对状态的表征和用来计算距离的度量非常敏感。例如,表征的选择和距离度量可以决定一个转动的风扇是否是一个环境常量,还是一个一直变化的量。
学习影响常规化机制:
我们可以选择一种更灵活的方法,通过在许多任务上训练来习得(而非定义)一个普遍的影响常规化机制。这会是一种迁移学习的例子。当然,我们可以直接在任务中应用迁移学习而不担心副作用,但是关键是,不同任务中副作用比主要目标更加相似。例如,画画机器人、清洁机器人甚至更加不同的工厂控制机器人可能都想避免打翻东西。通过用不同参数训练、从任务中分离出副作用部分,可以在合理保留某个部分的时候极大加速转移学习。这与基于模型的 RL 方法相似,转移一个习得的动态模型而非价值函数,新奇之处是分离副作用而非状态动态来作为迁移部件。一个附加优势是,在一个任务中已知或者已证明带来安全行为的常规化机制,在别的任务中更容易被视作安全。
惩罚改变:
除了不要进行有副作用的行为,我们还希望代理不要进入容易产生副作用的区域,即便是那样更加方便。例如,我们希望清洁机器人不要讲水桶带入到处都是敏感电器的房间,即便是它不打算在房间内用水。
有几个信息理论度量来测量代理对环境的潜在影响,经常用作内在奖励。也许最著名的此类度量是授权,将代理的潜在未来行为与潜在未来状态(或者代理行为与环境之间渠道的香农容量)之间的最大可能的信息。授权作为一种内在奖励的来源,经常是最大化、而非最小化。这会导致代理在没有任何外界回报的情况下出现有趣的行为,例如避免走路、或者捡起钥匙。总体来说,最大化授权的代理让自己位于对环境有很大影响的位置上。例如,关在一个小房间内出不来的代理有很低的授权,而持有钥匙的代理会具有更高的授权,因为只要几个时间步就能走入外界带来影响。在目前的情境下,为了减少潜在的影响我们要惩罚(最小化)授权,作为常规化的条款。
这个办法行不通,因为授权测量对环境控制的精度,多于对环境的总体影响。举个例子,如果有一个代理可以通过按钮来切断全国人民家中的电源,虽然这会造成很大的影响,这只算做一比特授权,由于行为空间只有一比特,它与空间的共有信息最多一比特。与之相反,如果环境中有人正在记录代理的行为,这虽然没有什么影响,也算是一种最大化授权。而且,单纯惩罚授权还会造成相反的动机,例如打破花瓶,这样在未来就没有可能打破花瓶了。
即便是有这些问题,授权的例子还是体现了一个概念,即简单测量(即便是纯粹信息理论的测量)可以体现对环境的影响。探索那些能够精确体现避免影响这一概念的授权惩罚的变量,是未来研究的一个潜在挑战。
多代理方法:
避免副作用可以视为我们真正目的的替身:避免负面的外界影响。我们想要理解所有其他代理(包括人类),并确保我们的行为不损害他们的利益。
有一种方法是协同反向强化学习,其中一个代理和一个人类一起合作,共同实现人类的目标。当我们想确认当代理出现不良行为时,代理不会阻止人类将其关闭,此时就可以应用这种概念。但是,我们还没有一个实用的系统,可以打造足够强大的模型来从总体上避免不良副作用。
另一个概念是“奖励的自动编码器”,鼓励一种“目标透明性”,外部观察者可以很容易推断出代理要做的是什么。特别是代理的行为会解读为一种奖励功能的编码,我们可以应用标准的自动编码技术来确保这可以精确解码。
有很多副作用的行为可能会更难根据他们的原始目标来解码,创造出一种惩罚副作用的潜在常规化机制。
奖励不确定性:
我们希望避免未预见的副作用,因为环境对于我们的偏好来说已经挺好了——一个随机改变更可能是坏的改变,而非好的。这与给代理单一的奖励功能不同,代理可能不确定奖励功能,预先有一个反映出随机变化更可能是坏的概率分布。这会激励代理避免对环境有很大的影响。找一种针对副作用的好办法还不如进行大量的测试,或者系统设计者考虑得更仔细。但是,这些方法可以抵消一些能预计到的副作用,副作用倾向于在复杂环境中扩散。
下面,我们讨论一些非常简单的实验,可以作为研究这个问题的起点。
潜在实验:
一个可能的实验是创造一个玩具环境,带有一个简单目标(例如移动一个积木)和非常多的困难(例如很多花瓶),并测试代理能否学会避开这些障碍,即便是没有明确告诉它得避开。为确保我们没有过度调整,我们可能需要在每个时段加入不同的随机障碍,同时保持同一个目标,看看常规化的代理能否学会系统性地避开这些障碍。一些环境包括熔岩流、房间和钥匙,可能很适合这类实验。如果我们能在玩具环境中成功将代理常规化,下一步可能就是移动到真实环境,会有更高的复杂度和更多种类的不良副作用。最终,我们希望副作用常规化机制(或者多代理策略)能成功迁移至新应用上。
4、避免奖励的黑客行为
我们来设想一下,一个代理在其奖励函数中发现了一个缓存溢出:它可以利用这一点,以违背设计者初衷的方式获得极高的奖励。从代理的角度来看这并不是一个漏洞,只是环境的运作机制而已,因此与其他能获得奖励的策略一样,是一项有效策略。例如,如果我们给清洁机器人设定的奖励机制是,看不见任何杂物时可以获得奖励,它可能会直接闭上眼睛,而不是去整理杂物。或者,机器人可能会故意创造杂物,这样它能获得更多的工作和奖励。更普遍地来说,形式奖励或者目标函数是为了体现设计者非形式化的目的,但是有时候这些目标函数或者其实施过程可以被一些方法“钻空子”,这些方法在形式上看来没什么问题,但是不符合设计者的初衷。沉迷这种“钻空子”行为可以带来连贯的、但是预计之外的行为,有可能在真实世界系统中带来有害影响。例如,遗传算法已被证明经常输出意料之外的正确解决方案,例如一个记录时间的电路变成了一个收音机,收到了附近一台 PC 的 RF 信号。
已有人从理论角度进行了研究了一些版本的奖励中的黑客行为,重点在一些可以在模型环境中出现黑客行为的强化学习的变种。该问题的一种形式在机器学习系统(尤其是广告投放)的反馈回路情境下,已有过基于虚拟学习和语境强盗的研究。奖励的黑客行为在如此众多领域内扩散,说明这是一个普遍问题,我们相信随着代理和环境变得越来越复杂,这个问题也会越来越普遍。这个问题可能通过几个方式出现:
部分观察的目标:
在大部分现代 RL 系统中,奖励默认为直接体验的,即便是环境的其他方面只能部分观察到。然而在真实世界,任务经常需要将外部世界带入一些目标状态,其中代理只能通过不完美的感官来确认。例如,对于我们的清洁机器人来说,任务是实现一个干净的办公室,但是机器人的视觉感官可能只能提供办公室不完美部分的画面。因为代理没有对于任务表现的完美测量,设计者经常得设计奖励系统,奖励代表了部分的或者不完美的测量。例如,机器人的奖励可能基于它看到多少杂物。但是,这些不完美的目标函数可能被钻空子——机器人可以直接闭上眼,就觉得办公室干净了。虽然可以证明总是存在基于行动和观察的奖励,等同于将真正的目标函数最优化(这需要将 POMPD 分解为一个信念状态 MDP),但是,这种奖励功能经常需要复杂的长期依存性,并且太困难,在实践中没法使用。
复杂系统:
任何强大的代理都将是一个复杂系统,其中目标函数只是一个部分。就像在计算机代码中,程序复杂度越高、漏洞就越多,奖励系统中,代理及其可用的策略越复杂、可以钻的空子也越多。例如原则上,代理可以从超级马里奥中执行任意代码。
抽象奖励:
复杂奖励还需要参考抽象概念(例如评估一个概念目标是否实现了)。这些概念可能会需要通过类似神经网络的模型习得,可能会受到对抗反例的影响。更普遍地来说,通过高维度空间习得的奖励功能可能会被钻空子,如果它在至少一个维度上具有极高的值。
古德哈特定律:
如果设计者选择了一种看起来与实现任务高度相关的奖励功能,奖励功能就会有另一种空子可钻,但是当目标函数强力优化时,那种相关性就会分解。例如,设计者可能会发现,在平常情况下,清洁机器人的成功率与其消耗漂白剂等清洁用品的频率成正比。但是,如果我们使用这种方式来测量机器人的奖励,它可能会故意使用更多的漂白剂。在经济学文献中,这被称为古德哈特定律:“当测量方式被当做目标时,就不再是好的测量方式了。”
反馈回路:
有时候目标函数有一个可以自我增强的组成部分,最终放大到足以破坏或者扭曲设计者期望目标函数所表征的内容。例如,一个广告投放算法可能用更大的字体显示人气更旺的广告,这类广告可能会进一步推广这些广告的人气,形成一种积极反馈回路,暂时人气爆发的广告会上升至永久的主导地位。目标函数最初的目标(利用点击来评估哪些广告更加有用)被实施策略内的积极反馈回路破坏了。这可以看做是古德哈特定律中的特例,相关性被破坏正是因为目标函数有一个自我放大的组成部分。
环境嵌入:
在强化学习的形式中,奖励被认为是来源于环境。的确,即便奖励是一个抽象形式(例如棋类游戏中的分数),也需要在某地进行计算,例如一个传感器或者一组晶体管。行动足够广的代理原则上能够篡改奖励的实施,自己给自己“颁发”高的奖励。例如,棋类游戏中的代理可以篡改计分的传感器。这意味着我们没法为一个抽象目标函数打造一个完全忠诚的执行,因为目标函数的物理替代中,行为有特定的顺序。在人类可以包含奖励回路中的时候,这尤其让人担心,基于代理的动机是强迫或伤害人类从而获得奖励。这也是一种看起来很难避免的空子。
在如今相对简单的系统中,这些问题可能还没出现,或者可以在造成很多危害之前,作为迭代开发过程的一部分将其修正。例如,广告投放系统的反馈回路如果有明显破损的话,可以在测试中检测到,或者可以在出现不良结果时被代替,只会造成暂时的收入损失。但是,随着奖励功能越来越复杂、代理行动的时间越来越长,问题也会更加严重。现代 RL 代理已经能发现和利用环境中的漏洞,例如电子游戏中的小故障。而且,即便针对现有系统,这些问题会需要花费额外的工程精力来实现好的性能表现,并且在大的系统中经常没有被监测到。最后,一旦代理“黑”进了奖励系统,找到了办法获得高额奖励,它就不会停止,这对长时间操作的代理来说会产生额外问题。
奖励中的黑客行为可能被认为在个例之间没有什么共同点,而补救办法就是在每一个个例中避免选择错误的目标函数——那些错误的目标函数体现的是设计者能力的不足,而不是机器学习研究的不足。但是以上的例子显示,我们应该将错误目标函数看作由于一些总体原因(例如部分观察的目标),让选择正确目标具有困难。如果真是这样,那么解决或减轻这些问题就对于安全问题就很有价值。这里我们建议一些基本的基于机器学习的方法,来预防奖励中的黑客行为。
对抗奖励功能:
从某些意义上来说,我们的问题是 ML 系统与其奖励函数有一种对抗性关系——它会利用一切可以的方法来获得高奖励,无论是否符合设计者的初衷。在典型的设定中,机器学习系统是一个潜在能力很强的代理,而奖励函数是一个静态目标,没法对系统钻空子的行为做出任何回应。如果奖励函数是其代理本身,可以采取行动来探索环境,它可能就更难被钻空子。例如,奖励代理可以试图寻找这样的一种情况:当 ML 系统认为奖励很高,而人类标记为低奖励的时候;这与生成式对抗网络相似。当然,我们必须确保奖励确认代理比试图获得奖励的代理更强(从某些微妙的意义上来说)。更普遍地来说,也可能有一些有趣的设定中,系统有多个以非端到端方式训练的代理,可以用来互相监督。
模型先行:
在基于 RL 的模型中,代理使用一个模型来计划其未来行动,考虑一系列行动可能带来什么样的未来状态。在一些设定中,我们可以基于预期未来状态、而非目前状态而给出奖励。这可以帮助预防模型将其奖励函数重写:一旦它代替了奖励函数,你就没法控制奖励。
对抗性致盲
对抗性技术可以用来让模型看不见某些特定变量。这项技术可以用来让代理无法理解环境的某些部分,或者甚至与环境有共享信息(或者至少惩罚这种共享信息)。特别是,它可以防止代理理解奖励如何生成,使其很难钻空子。这种办法可以被称为“代理的交叉确认”。
谨慎工程:
谨慎的工程可以避免一些奖励中的黑客行为,例如缓存溢出的例子。特别是系统部分的形式确认或者实践测试(也许在其他机器学习系统的帮助之下)可能很有用。还可以考虑一种的计算机安全方法,通过沙箱将代理与其奖励信号分离开。对于软件工程,我们没法期望这能抓住每一个可能的漏洞。但是,这可能创造一些高度可靠的“核心”代理,可以确保其他代理的合理行为。
奖励上限:
在一些情况下,给最高奖励设置一个上限可能是一个好办法。但是,虽然上限可以预防概率极低、回报极高的策略,它没法预防清洁机器人“眼不见为净”。另外,正确的上限策略可能很微妙,因为我们需要对总体奖励设置上限,而非对每一个时间步。
反例抵抗:
如果我们担心系统中习得的部分会受到对抗性反例的影响,我们可以看看如何抵抗它们的现有研究,例如对抗性训练。架构决策和权重不确定性也有帮助。当然,对抗性反例只是奖励中黑客行为的一种表现,因此反例抵抗只能解决一部分的潜在问题。
多种奖励:
多种奖励的结合可能更强、更难钻空子。这可能是因为同一个数学函数不同的物理执行、或者同一个形式化目标不同的代理服务器。我们可以通过平均、取最小值、取分位数或者其他值来结合奖励函数。当然,还是会有不良行为通过一种关联性的方式影响所有奖励函数。
奖励预训练:
针对代理可以影响自己奖励功能的情况(例如反馈或环境嵌入),一种可能的防御措施是提前训练一个固定奖励函数,作为从与环境互动中分离出来的监督学习过程。这可能包括从状态-奖励配对的样本中、或者在反向强化学习中从路径中学习一个奖励函数。但是,这放弃了在预训练完成后进一步学习奖励函数的能力,可能造成别的隐患。
变量无差异:
我们经常希望代理能优化环境中的特定变量、同时不优化其他变量。例如,我们希望代理最大化奖励,而不优化代理函数、也不试图操控人类行为。我们凭直觉想到一种方式,让强大算法的优化压力绕过其环境。如果能真正解决这个问题,就会有安全问题的各种应用——它与避免副作用和反事实推理有关。当然,这里的一项挑战是,确保为无差别而选的变量真的是我们在现实中关注的变量,而非它们化名的或者部分观察到的版本。
警戒线:
如果代理真的试图“黑”掉自己的奖励函数,我们还是能知悉才好。我们可以特意引入一些行得通的隐患(代理有能力钻这些空子,但是如果其值函数正确的话就应该不去利用这些空子),并监控这些隐患,如果代理试图钻空子的话可以提醒我们并即刻阻止代理。这样的“警戒线”不解决黑客行为本身,但是可以减少风险,至少提供了诊断。当然,足够强大的代理有风险“看透”警戒线,特意绕过警戒线并进行不那么明显的有害行为。
完全解决这个问题看起来很难,但是我们相信以上的方法有能力缓解这些问题,并可能扩展或结合起来,带来更强的解决办法。基于这个问题目前的高关注度,设计实验来引发问题、并测试解决办法可以提升这个话题的相关性和明确度。
潜在实验:
一种很有潜能的方法是“妄想箱”环境的现实版本,其中一个标准 RL 代理扭曲自己的感官从而看起来获得更高的奖励,而非根据奖励信号本来鼓励的那样去优化外界的目标。妄想箱很容易附加到任何 RL 环境中,但是更有价值的是创建一种环境,其中妄想箱是动态中的一个自然组成部分。例如,在足够丰富的物理环境中,代理可能改变其周围的光波来扭曲自己的感官。目标是开发一种普遍学习策略,可以成功优化各种环境中的外部目标,同时避免以各种方式出现的妄想箱捉弄我们。
via OpenAI
雷峰网原创文章,未经授权禁止转载。详情见转载须知。