谷歌、OpenAI合著论文,研究人工智能安全问题
人工智能是善还是召唤恶魔?如今,对人工智能砸以重金的谷歌正试着走出一条中间道路。谷歌大脑、斯坦福、伯克利以及 Open AI 研究人员合做并发布了一篇新论文,首次描述了研究人员必须予以研究的五个问题,让未来的智能软件更加安全。如果说之前大部分研究都是假设和推断性的,那么,这篇论文表明对人工智能安全性的争论可以更加具体化,也更富建设性。
今天,谷歌大脑、斯坦福、伯克利以及 Open AI 研究人员合作的新论文与大家见面了。文章首次探讨了为了让未来智能软件更安全,研究人员必须研究的五个问题。论文作者之一,谷歌研究人员 Chris Olah 说,之前大部分研究都是假设和推断性的,但是,我们相信,将注意力锚定在真实的机器学习研究中,对于研发切实可行的方案来打造安全可靠的人工智能系统来说,必不可少。
之前谷歌已经承诺会确保人工智能软件不会造成意外后果。谷歌的第一篇相关论文,出自 DeepMind。 Demis Hassabis 也召集了一个道德委员会来考虑人工智能可能的不利一面,不过没有公布委员会名单。
艾伦人工智能研究所的 Oren Etzioni 对谷歌新论文所列举的解决方法表示欢迎。之前,他曾批评过人工智能危险论的讨论过于抽象。他说,谷歌列举出的各种情况足够具体,可以进行真实的研究,即使我们仍然不清楚这些实验是否切实有用。「这是正确的人问了正确的问题,至于正确的答案,由时间来揭晓。」
以下是这篇论文主要内容:
摘要
机器学习和人工智能(AI)领域的快速进步已经引起了社会对人工智能潜在影响的广泛关注。在这篇论文中,我们讨论了这样一种潜在的影响:机器学习系统出现事故的问题,具体定义为因真实世界人工智能系统的糟糕设计而导致的无意的伤害性行为。我们提出了与事故风险相关的五个实用的研究问题列表,它们的分类根据问题是否有错误的目标函数(「避免副作用」和「避免奖励黑客行为」)、经常评估目标函数的成本实在太高了(「可扩展的监督」、或在学习过程中的不良行为(「安全探索」和「分布变化」)。我们还回顾了这些领域之前的工作,并建议了侧重于与前沿人工智能系统相关的研究方向。最后,我们考虑了这样一个高层次问题:如何最高效地思考人工智能未来应用的安全。
1. 导语
过去几年,人工智能飞速发展,并已经在游戏、医学、经济、科学和交通等许多领域取得了长足的发展,但随之而来也出现了安全、隐私、公平、经济和军事应用上的担忧。
本论文作者相信,人工智能技术很有可能将会给人类带来整体的颠覆性好处,但我们也相信,严肃对待其可能带来的风险和挑战是非常值得的。我们强烈支持在隐私、安全、经济和政治方面的研究,但本论文关注的是另一种我们相信与人工智能的社会影响有关的问题:机器学习系统的事故问题。这里的事故定义为:当我们指定了错误的目标函数时,机器学习系统可能无意产生的有害行为。这里没有考虑学习过程或其它机器学习相关的实现错误。
随着人工智能能力的进步和人工智能系统在社会功能上重要性的不断增长,我们预计本论文所讨论的难题和挑战将变得越来越重要。人工智能和机器学习界在预测和理解这些挑战上做得越成功,在开发越来越有用、重要的人工智能系统方面,我们就能做得越成功。
2. 研究问题概述
从广义上讲,可将「事故」描述成:人类设计者心里想的特定目标或任务在系统实际的设计或实施中失败,并最终导致了某种有害结果的情况。我们可以将人工智能系统的安全问题根据其出错的位置进行分类。
第一,当设计者定义了错误的目标函数时,例如最大化了导致有害结果的目标函数,我们有「不良副作用(第 3 节)」和「奖励黑客行为(第 4 节)」的问题。「不良副作用」通常是因为设计者在某个环境中设计实现某个特定目标时忽略(通常忽略了很多)了环境中其它因素。「奖励黑客行为」则是由于设计者为了最大化系统的使用而写下了「简单的」目标函数,但系统却滥用了设计者的意图(即:目标函数可能会被耍花招)。
第二,设计者可能知道正确的目标函数,或至少有方法评估它,但频繁进行这样的操作具有很高的成本,而有限样本的推断可能会导致有害行为。「可扩展的监督(第 5 节)」讨论了这个问题。
第三,就算上面的问题得到了解决,设计者得到了合适的目标,但因为决策所基于的训练数据不充分或很糟糕或所使用的模型不能充分表达实际情况。「安全探索(第 6 节)」讨论了如何确保强化学习代理的探索行为不会导致负面或无法挽回的结果。「分布变化(第 7 节)」讨论了如何在给出可能和训练数据非常不同的输入时避免机器学习系统做出糟糕的决策(尤其是沉默和不可预知的错误决策)。
为了将研究问题具体化,本论文引入了一个假想的清洁机器人,它的主要工作是使用常用的清洁工具打扫办公室。下面我们应用这个实例提出对上述挑战的问题。
避免不良负面影响:我们如何确保我们的清洁机器人在追求自己的目标时不会以一种负面的方式扰乱周围环境,比如打翻一个花瓶,这样它就能更快地清洁?如果不能用人工的方式确定机器人不应该做的事情,我们能做到避免不良影响吗?
避免奖励黑客行为:怎么确保清洁机器人不会在它的奖励函数上「耍花招」?比如,如果我们的奖励函数是当该机器人清除了脏乱就获得奖励,它可能就会关闭其视觉部件,这样它就看不见任何脏乱了;或者用它无法看穿的材料将脏乱部分盖住;又或者当有人类在周围时躲起来,这样人类就不能告诉它哪里脏乱了。
可扩展的监督:我们可以怎样确保该清洁机器人会考虑因为成本太高而难以在训练过程中反复评估的目标的各个方面?比如,它应该扔掉不可能属于任何人的东西,而放过那些可能属于某人的东西(它应该区别对待乱放的糖果包装和乱放的手机)。询问人类他们是否丢掉了什么可以对其进行检查,但这种检查必须要相对不那么频繁――这个机器人能在有限的信息下找到正确做事的方法吗?
安全探索:我们怎么确保该清洁机器人不会做出有非常负面影响的探索?比如,该机器人应该实验拖地策略,但将湿拖布放到电插头上是件糟糕的事。
针对分布变化的稳健性:当使用环境不同于训练环境时,我们如何确保该清洁机器人能稳健地识别和行为?比如,其从清洁工厂车间中学到的启发,可能对办公室环境来说可能是相当危险的。
在解决这些安全问题上,有一些很重要的趋势。
一是强化学习,其能与环境产生高度交织的相互作用。我们的一些研究问题可在强化学习中受益,另一些(分布变化和可扩展监督)则在强化学习的设置中会引起复杂度的上升。
二是代理和环境的复杂度都在上升。「副作用」更可能在复杂环境中出现,应对这样的环境的代理也必然需要相当复杂。这方面的研究还较少,但未来必然会越来越多,也越来越重要。
三是人工智能系统实现自动化的大趋势。只存在于软件层面的人工智能(做推荐或识别照片)造成潜在危害的可能性较小,随着人工智能开始进入物理世界,例如工业过程中的机器人,它们就可能会以某种人类无法纠正或监管的方式带来伤害。
3. 避免不良副作用
对于在大型的多特性环境中工作的代理而言,只关注环境某一方面的目标函数可能会让其忽视环境的其它方面。代理会优化自己的目标函数,从而可能导致对更大的环境产生重大的影响,而这样做也许甚至只能为当前任务提供一点微小的优势。换言之,描述「执行任务 X」的目标函数可能会常常给出意料之外的结果,因为设计者的真正意思往往是「在环境的常识性限制条件下执行任务 X」或「执行任务 X 但尽可能地避免副作用」。
我们现在讨论一些广泛的应对这个问题的方法:
定义一个影响正则化矩阵(Regularizer):如果你不想要副作用,惩罚「对环境的改变」似乎是个很自然的方法。这个方法不能阻止代理产生影响,但能让它以一种倾向于最小副作用的方式来实现目标。这个方法的难点在于如何形式化「对环境的改变」。一个非常朴素的方法是惩罚当前状态 si 和某个初始状态 s0 之间的状态距离 d(si,s0). 但这种方法也会影响到有益的变化。
稍微复杂一点的方法可能涉及到代理当前策略下的未来状态和行为非常被动的假设策略 πnull(如,机器人只是站着不动)下的未来状态(或状态分布)的比较。这种方法尝试剔除环境演化的自然过程,仅留下来自代理的干预的变化。
学习一个影响正则化矩阵:通过许多任务进行学习比直接定义的方式更灵活。这是迁移学习( transfer learning)的一个实例。我们可以将副作用组分和任务组分分开,并用分别的参数训练它们。
惩罚影响(Penalize Influence):除了避免做会产生副作用的事,我们也许更倾向于不让代理处在容易那些有副作用的事的位置上。比如,我们可能希望清洁机器人不要把水带进满是敏感电子器件的房间里,即使它从未打算在那个房间里使用水。
有一些信息论的方法尝试获取一个代理潜在的对环境的影响,这常被用作内在奖励( intrinsic rewards)。也许这种方法中最好的是授权(empowerment)――代理的潜在未来动作和其潜在的未来状态之间的最大可能的相互信息。作为内部奖励的授权通常是最大化的。通常情况下,授权最大化(empowerment-maximizing)的代理将它们放在对环境有最大影响的位置上。
尽管还存在一些问题,授权(empowerment)的例子说明简单的方法(甚至纯粹的信息论方法)就能够获取对环境的影响的非常普遍的概念。探索能更精确获取避免影响的概念的授权惩罚(empowerment penalization)的变体是未来研究的一个潜在挑战。
多代理方法:我们要做的是了解其他代理(包括人类),并确保我们的行为不会伤害到它们。我们对此的一种方法是合作逆强化学习(Cooperative Inverse Reinforcement Learning),其中代理和人类合作以实现人类的目标。但我们还远不能够打造可以产生能避免意外的副作用的足够丰富的模型的系统。
另一种方法可能是奖励自编码器(reward autoencoder),这种方式尝试推动某种形式的「目标透明」,让外部观察者可以轻松推断该代理想要做什么。
奖励不确定性:我们尝试避免预料之外的副作用,因为我们的环境已经相当好了――随机的改变很可能会更糟。不是给代理一个单一的奖励函数,而是给其不确定的奖励函数,其带有一个先验的概率分布,该分布反映了随机改变更可能会是糟糕的,而不是更好的。
可能的实验:
一个可能的实验是使用一些简单的目标(如移动一个方块)和种类多样的障碍(如一堆花瓶)制作玩具环境,然后测试代理是否能在没有被明确告知地情况下避开这些障碍。为了确保我们不会过拟合,我们可能会想要在每一个片段都呈现一个不同的随机障碍,然后看一个规范化的代理是否能学习系统性地避开这些障碍。一些在参考文献[101]中描述的环境包含了熔岩流、房间和钥匙,可能适合用于这样的实验。如果我们可以成功在一个玩具环境中调制好代理,那么下一步就可以移到真实环境中――这里复杂度更高,负面副作用也会更多样化。最终,我们想要副作用正则化矩阵(side effect regularizer,或多代理策略――如果我们采用那种方法)能够成功转移到一个全新的新应用中。
4.避免奖励黑客行为
想象一个代理在其奖励函数中发现了缓存溢出(Buffer overflow):它就可能使用其以一种无意识的方式获得非常高的奖励。从代理的视角上看,这不是漏洞,而只是环境的工作方式,也因此是一个获得奖励的可行策略。比如,如果一个清洁机器人通过清理脏乱获得奖励,它就可能故意创造脏乱来进行清理以便获得更多奖励。更一般而言,形式上的奖励或目标函数是设计者非形式的意图的体现,而有时候解决方案可能会以非设计者意图的字面上的理解而在这些目标函数或它们的实现中「耍花招」。对这些「奖励黑客行为」的追求可能会导致一致但出乎意料的行为,这在真实世界系统中可能是有害的。
有一些奖励黑客行为(reward hacking)已经在理论上被调查过了。奖励黑客行为跨很多领域,说明奖励黑客行为是一个深度的常见的问题,随着代理所应对的环境越来越复杂,这种情况也会越来越显著。下面是几种这个问题可能发生的方式:
部分可观察的目标:在真正世界的任务中,往往涉及到将外部世界引进某种目标状态,这往往只能通过代理的不完善的看法确定。因为代理缺乏对任务表现的完美测量,设计者只能设计片面的或不完善的测量。而代理就可能会曲解这种片面性。
复杂系统:任何一个强大的代理都是一个带有目标函数的复杂系统。系统越复杂,漏洞出现的可能性就越高。
抽象奖励:复杂的奖励函数需要指向抽象的概念(例如评估一个概念化的目标是否被实现。这些概念可能需要通过神经网络进行学习,而其在对抗性的反例面前是脆弱的。
环境嵌入(Environmental Embedding):在强化学习形式中,奖励被认为来自于环境。这个概念通常不能在字面上理解,但奖励确实需要在某些地方进行计算,例如传感器或一组晶体管中。足够广泛的工作中大代理原则上可以修改他们的奖励实现,「依法」分配给它们自己高奖励。实际上这意味着我们不能构建一个抽象目标函数的完美可信的实现,因为存在特定的动作序列使目标函数可在物理上被替代。当人类处于奖励回路中时,这种情况尤其令人担忧,因为代理可能会为了更高的奖励而胁迫或伤害他们。
古德哈特定律(Goodhart's law):如果设计者选择一个看起来和实现目标高度关联的目标函数,但当该目标函数被高度优化时该关联就会破裂,那么就可能出现奖励黑客行为。比如设计者可能观察到清洁机器人的清洁效果和其所使用的情节资源成正比;而如果将其作为奖励手段,就可能消耗超过所需的资源。在经济学上,这被称为古德哈特定律:「当一个指标变成目标,它将不再是一个好的指标(when a metric is used as a target, it ceases to be a good metric)。」
反馈回路:有时候目标函数有一个强化自己的组分,最终能使其脱离设计者设计的目标函数范围。
在今天的简单系统中这些问题可能还不会发生,就算发生也很容易得到解决。但随着奖励函数和代理的系统复杂度的上升,问题会越来越严重。一旦一个代理开始控制自己的奖励函数并寻找获得奖励的简单方法,它就不会停止。长时间运行的代理可能还会有额外的挑战。这里我们提出了一些初步的、基于机器学习的防止奖励黑客行为的方法:
对抗性奖励函数(Adversarial Reward Functions):如果奖励函数有自己的代理并能采取行动探索环境,那么它可能就难以被愚弄。
模型预测(Model Lookahead):在一些设置中,我们可以基于预测的未来状态,而不是当前状态,提供奖励。
对抗性致盲(Adversarial Blinding):对抗性技术可用来让模型无法看到一些特定的参数,从而让代理无法理解世界的某些部分,如果这部分和奖励相关,它就不能理解奖励生成的方式。
细心的工程开发:像缓存溢出(buffer overflow)这样的奖励黑客行为可以在细心的工程开发中被发现并得到解决。
奖励覆盖(Reward Capping):在一些情况下,简单地覆盖最大可能的奖励就可能得到一个高效的解决方案。但尽管覆盖能阻止一些低可能性的高奖励策略,但却不能阻止清洁机器人闭上眼睛不看脏乱的情况。另外,正确的覆盖策略也很微妙。
反例阻抗(Counterexample Resistance):如果我们担忧我们系统的组分在对抗性反例是脆弱的,我们可以用对抗性训练(adversarial training)等已有的研究来对付它。架构决策和权重不确定性可能也有用。
多奖励:多个奖励的组合可能会更加稳健,难以被操控。
奖励预训练:针对代理可能影响自己的奖励函数的情况(如反馈和环境嵌入),可以事先训练一个固定的奖励函数,因为一个监督学习过程可以将与环境的交互分开。
绊线(trip wires):如果一个代理尝试操控自己的奖励函数,我们最好能知道这一点。我们可以故意引入一些可用的漏洞来监控它们,一旦出现问题,我们就可以马上阻止。
完全解决这个问题是很困难的,但我们相信上面的方法能够改善它,也可能结合起来产生更稳健的解决方案。
可能的实验:
一种可能的方法路径是参考文献 中描述的 delusion box 环境的更现实的版本,其中标准强化学习代理扭曲它们自身的感知以表现能实现高奖励,而不是优化奖励信号是用来起激励作用的外部世界中的目标。delusion box 可以轻松连接到任何强化学习环境,但更有价值的是创造不同种类的环境,其中 delusion box 是一个自然的集成化的动态组件。比如,在足够丰富的物理学模拟中,一个代理很有可能会修改其近邻处的光波,从而扭曲自己的感知。这里的目标是开发一种可概括的学习策略,使之能在各种广泛的环境中优化外部目标,同时还能避免被以多种不同方式自然产生的 delusion box 愚弄。
5.可扩展的监督
考虑到让一个自动代理完成一些复杂的任务,比如我们经常使用机器人清扫办公室,我们可能想要这个代理最大化能完成的复杂目标,像是「如果用户花费几个小时详细地查看结果,那他们对代理的表现有多高兴呢?」但我们没有足够时间为每一个训练样本提供这样的监督。为了实际地训练代理,我们需要依靠廉价的近似结果,像是「当用户看到办公室时看起来会高兴吗?」或者「地板上有可见的灰尘吗?」这些廉价的信号在训练的过程中能被高效地评估,但并非完美的达到我们想要的成果。这种发散加重了意外副作用(这可能被复杂目标适当的惩罚,但也可能从廉价近似中漏掉)和 reward hacking(完全的监督可能认为是不受欢迎的) 这样的问题。我们可能通过找到更多开拓有限监督预算的有效方式来减缓这样的问题,例如将真目标函数的有限调用(limited call)与我们给定的或能学到的一个不完美代理(proxy)的高频调用结合起来。
一个有关这一问题的框架是半监督强化学习,它类似于普通的强化学习,除了代理仅能在时间步骤或片段的一小部分上看到其奖励。代理的性能依然是基于所有片段的奖励进行评估的,但它必须要基于它能看到的有限奖励样本对其进行优化。
我们能够想象很多半监督强化学习的可能途径,例如:
监督式奖励学习(Supervised reward learning):训练一个模型从每一个时间步骤基础或每一个片段基础状态预测回报,然后用其估算非标记片段的报酬,一些适当的权重或不确定的评估在估算回报 vs 已知回报中,会被当成低置信度。研究把人类的直接反馈作为回报的版本时,很多已有的强化学习方法已经拟合类似回报预测器的评估器(estimator)了(尤其带有强基线的策略梯度方法),这表明这一方法有显著的可行性。
半监督或者主动奖励学习: 将上面的方法和传统的半监督或者主动学习结合起来,能更快的学习奖励估计量。例如,代理能学习识别环境中的「salient」事件,并要求查看关于这些事件的奖励。
无监督值迭代:使用观测到的无标记片段的转变( transitons)做更加准确的 Bellman 修正(update)。
无监督模型学习:如果使用基于模型的强化学习,可以用观测到的无标记片段的转变改善模型的质量。
半监督强化学习的一个有效途径可能是朝着提供可扩展的监督和减缓其他人工智能安全问题之路上迈出的强有力的第一步。这也可能有助于强化学习,使其不受安全相关问题的约束。这里还有其他扩展监督的可能途径。
远程监督。除了提供对一小部分系统决策的评估,我们也能提供一些与集群中系统决策有关的有用信息,或提供一些关于准确评估的噪声暗示。在半监督或弱监督学习领域,这个方向已经有了一些研究。这一普通的方法总被称为远程监督(distant supervision),它在自然语言处理社区近期也受到了关注。扩展这些研究的线路以及寻找将其应用到代理案例中的方法(这里的反馈更具交互性,也可能违反了 i.d.d 假设),能为可扩展监督提供一个途径,补充半监督强化学习中的监督途径。
分层强化学习。分层强化学习为可扩展监督提供了另一途径。这里,一个顶层代理花费相当小量的,在大型时间、空间规模上扩展的高度抽象的动作,并能在相似长度的时间规模上获取奖励。代理通过将动作委派给子代理完成全部动作,它能给予一个合成的奖励信号作为鼓励,代表这一动作的准确完成,而且它们自己也能委任下一级子代理。在最低层,代理会直接采用环境中最原始的动作。看起来,分层强化学习是一个特别有前途的监督途径,特别是在将分层强化学习的思路和神经网络函数逼近器结合起来之后。
可能的实验
一个非常简单的实验可能是在一些基础控制环境中尝试半监督强化学习,比如 ,cartpole balance 或者 pendulum swing-up。如果只有随机的 10% 的片段上的奖励被提供,我们仍能想被提供全部片段那样快速的学习吗?在这样的任务中,奖励结构非常的简单,所以成果也应该相当类似。下一步可能就是在 Atari 游戏上做同样的尝试。这里主动学习案例可能相当有趣,可能从少数精心要求的样本(例如,在太空侵略者游戏中,所有的敌方舰队全被炸掉的画面)就能推断出奖励结构,因此能以几乎全部非监督的方式学习玩游戏。再下一步可能就是尝试带有更加复杂奖励结构的任务,无论是模拟还是在现实中尝试。如果是有效数据足够的学习,那这些奖励可能会由人类直接提供。机器人运动或工业控制任务可能是做这些试验的天然候选选择。
6.安全探索
有时,所有的自动化学习代理都需要进行探索,根据给定的当前信息,采取一些看起来并不理想的行动,但是,这些行动将有助于代理从环境中进行学习。不过,探索总是带有风险,毕竟代理并不十分了解行动后果。在游戏的环境下,比如玩雅达利游戏,后果的负面影响有限。但是,在真实世界,后果可能不堪设想。比如,机器人直升机可能会撞击地面,毁坏财物;工业控制系统的会引发更严重的后果。
通常的探索策略,比如 ε―贪心算法 或者R-max,会随机选择行动或者乐观看待尚未探索过的行动,不会努力避免那些危险情境。更成熟的探索策略采取了一种前后一致的探索策略,可能会造成更大的危害,因为前后连贯地选择糟糕策略会比纯粹的随机行动更阴险。不过,从直觉上来说,似乎应该能经常预测行动的危险性并以避免危险的方式行动,即使系统关于环境的知识并不完备。比如,只需一点有关老虎的先验知识(不用买只老虎,读本关于老虎的书就可以了),就能决定哪个选择更安全。
实践中,真实世界的强化学习项目时常可以避免这些问题,办法就是简单硬编码避免灾难性行为。不过,这种解决方案奏效的前提是:出错的事情不多,而且设计人员提前知晓所有这些事情。当代理变得越来越自动,行动领域越来越复杂,我们就很难清晰预测出每一个可能发生的灾难性失败。比如,运行电网或者进行搜索营救的代理,其失败节点空间会非常大,通过硬编码来应对所有可能的失败在这些类情况中并不可行。因此,关键是找到一条更加原则性的办法来预防有害探索行为。即使在诸如机器人直升机这样简单的案例中,一个原则性办法也会简化系统设计,减少对特定领域工程学的需要。
目前,这方面的研究最多。这里,仅简单描述一下这些研究所采用的一般研究路线,也建议了一些研究方向,随着强化学习应用范围的扩大和功能的提升,这些研究方向会变得日益相关。
风险-敏感性表现标准(Risk-Sensitive Performance Criteria):考虑改变优化标准。
使用示范(Use Demonstrations):近期在使用深度神经网络逆强化学习来学习成本函数或策略的研究中所取得的进展表明,只用一小组示范进行训练,就有可能减少对先进强化学习系统探索行为的需求。这样的示范可被用来创造基线策略,即使需要进行更为深入的学习,离开基线策略的探索也可以被限制在一定量级内。
模拟探索(Simulated Exploration):如果可以在模拟环境中进行更多的探索,那么,留给灾难的机会也就更少。
界限内探索(Bounded Exploration:):如果我们知道状态空间的某个部分是安全的,也知道发生在其中最糟糕的行动也能得以恢复,或者说造成的损失也是有限的,我们就能允许代理在那些边界之内自由运行。
信任策略监督( Trusted Policy Oversight):如果有一个信任的策略以及一个环境模型,我们就可以将探索限制在信任策略认为我们可以从中得以恢复的那些行动上。
人类监督(Human Oversight):让人来监管潜在的不安全行为。
可能的实验
有一整套玩具环境可能会有帮助,在那里粗心代理可能会成为有害探索的牺牲品,但是那里有足够的可能发生的灾难的图案,聪明代理便可以预防它们。在一定程度上,这个特征已经存在于无人直升机比赛和火星漫游模拟器,但是仍有特殊灾难的风险,以致于训练过的代理会过拟合它们。一个真正广泛的,包括概念上明显陷阱的(可能导致粗心代理接收非常负面的奖励),并覆盖实质和抽象灾难的环境集,可能帮助高级强化学习系统安全探索技术的开发。这样一套环境可能有与 bAbI 任务相似的基准测试作用,它的最终目标是发展一个可以在全套环境中学习避免灾难的单一构架。
7.针对分布变化的鲁棒性(Robustness to distributional shift)
我们经常会遇到这样的情况,有限的经验不足以应对新情况,比如,去一个与自己生长环境文化截然不同的国家旅行。这种情况通常不容易搞定,也容易导致一些错误。解决问题(当然,很少有人可以做到)的关键之一就是承认自己的无知,而不是过于自信地认为先前的那些直觉可以胜任解决新情况。机器学习也存在这样的问题。比如,打扫工厂地板的清洁机器人未必适用办公室环境。也就是说,当测试分布不同于训练分布时,机器学习系统不仅表现很糟糕,而且还误认为自己表现不错。
这些误差可能会有害或者冒犯他人。比如,一个语言模型如果过于自信文本不存在问题,就有可能输出冒犯他人的文本。而对于那些自动化代理来说,潜在危害可能更大。比如,如果不正确地(但非常自信地)认为某个地区电力不足,自动化代理就会超载电网。更广泛地来看,任何察知或启发式推力过程的训练,没有基于正确的分布,这样的打理可能会错误理解局势,犯下错误,而自己根本没意识到行为的危害。另外,如果那些系统遇到了迥然不同于训练数据的真实世界数据,依赖训练过的机器学习系统的安全检查也可能默默地失灵。对于打造安全、可预测的系统来说,找到一个更好的预测这些失败的办法、确保失败发生频率的统计可靠性,似乎非常关键。
有各种领域都与这一问题潜在相关,包括改变侦测和异常检测、假设检验、迁移学习等。不过,这里只描述几个样本方法,并指出这些方法的优点和面临的问题。
规定好的模型:协变量变化以及边际可能性(Well-specified models: covariate shift and marginal likelihood)。
部分规定好模型:矩量法,无监督风险评估,因果识别以及有限信息最大化可能性(Partially specified models: method of moments, unsupervised risk estimation, causal identification, and limited-information maximum likelihood)。
用多个分布进行训练(Training on multiple distributions)。
离开分布时,如何响应(How to respond when out-of-distribution)。
一个统一的观点:反事实推理以及带有合同的机器学习(A unifying view: counterfactual reasoning and machine learning with contracts)。在某个意义上,分布变化可被视为一种特殊的反事实,因此,了解了反事实推理就可能帮助打造面对分布变化也能稳定的系统。另外,人们可能想构建一个符合定义好的行为合同的机器学习系统,类似设计软件系统。
总结:
部署在新测试分布中,表现也稳定理想,打造这样一种机器学习系统的方法各种各样。其中一组方法就是以假定一个规定好的模型(well-specified model)为基础的;在这种情况下,主要障碍是很难在实践中打造出规定好的模型,也很难侦测到模型被错误规定时的情况。
另一组方法就是只假设一个部分规定好的模型(a partially specified model);这个方法有前途,不过目前正苦于没有在机器学习语境中展开研究,因为大多数历史研究都位于计量经济学领域;另外,也有这样一个问题,部分规定好的模型是否从根本上受限于简单情况以及/或者保守预测,它们能否有意义地扩展到复杂情境当中,这些复杂情境是现代机器学习应用所要求的。
最后,一个人可以试着在多个分布训练上进行训练,希望同时在多个训练分布上表现良好的模型也能在新测试分布中表现良好;对于这一方法来说,特别重要的就是用迥然不同于任何一套训练分布的分布给所掌握的模型进行应激测试。除此之外,系统能够预测出输入太异常以至于无法进行好的预测的时点,仍然很重要。
可能的实验
当离开分布时,语音系统的校准表现总是很糟糕,因此,一个知道「什么时候自己无法确定」的语音系统就有可能成为一个示范项目。这一项目的挑战在于:用标准数据集来训练最先进的语音系统,让其在其他测试数据集上(比如嘈杂并带有口音的语音数据集)得到良好校准过的结果。当前系统不仅在这些测试集中表现糟糕,而且经常对不正确的转录过分自信。解决这类问题而不损及最初训练集上的表现,会是一项非常重要的成就,显然,也相当具有实践价值。对于设计出能前后一致预测出其在异常测试分布中的表现的系统来说,也会非常有价值。如果一个单独的方法论会在任何任务中前后一致地实现这一点,那么,人们会越发自信:这是个解决异常输入问题的可靠办法。最后,它对创造这样一个环境也很有价值:其中,强化学习代理必须学会解释语音(某些更大任务的一部分),以及探索如何适当响应自身对转录误差的估测。
8.相关努力
前文主要关注的是机器学习社区的事故研究情况,但是,其他几个社区也有做着与人工智能安全有关的工作。比如,网络-物理系统社区,未来主义社区以及其他一些呼吁关注人工智能安全问题的文件。
很多研究人员(无论是机器学领域还是其他领域)已经开始思考人工智能技术的社会影响。出了直接从事事故研究,也有关注其他主题的研究,这些研究主题都与事故研究存在交叉的地方,或者说,彼此相关。这些主题包括(但不限于):隐私、公平(不歧视)、滥用、透明以及政策问题。
9 .结论
这篇论文分析了机器学习系统可能发生的意外事件,而且特别分析了强化学习代理,其中,一次意外事故被定义为意外且具有害的行为,真实世界中的人工智能系统设计上的问题可能会引发这种有害行为。我们提出了五个可能与事故风险有关的研究问题,而且每个问题,我们都讨论了可能的解决方案,这些解决方案都要经得起实验工作的检验。
估测更大事故的风险就更困难了,但是我们相信研发一个原则性的、前瞻性的方法来解决安全问题是值得的,也是审慎的,随着自动化系统日益强大,安全问题会继续与之密切相关。尽管许多当下的安全问题能够而且已经以个案方式加以解决,但是,我们相信,日趋流行的端到端、全自动化系统会指向这一需求:用一个统一的解决方案来防止这些系统引发意外伤害。
本文选自:OpenAI Blog,机器之心编译;
©机器之心,最专业的前沿科技媒体和产业服务平台,每日提供优质产业资讯与深度思考,欢迎关注微信公众号「机器之心」(almosthuman2014),或登录机器之心网站www.almosthuman.cn查看更多精彩内容。