自谷歌,斯坦福,加州大学伯克利分校和OpenAI 的研究人员发表论文 “人工智能安全中的具体问题” 以来,已有将近两年的时间了,但该论文依然能是人工智能安全领域最重要的研究之一,涵盖了人工智能开发人员需要了解的各种安全问题。
在论文中,作者探讨了人工智能系统中的意外和有害行为,以及避免事故所应采取的不同的策略。具体而言,作者提出的五大对策包括- 避免副作用、奖励黑客攻击、可扩展监督、安全研究以及分布式变更的可靠性(Robustness to Distributional Change) ,并以办公室清洁机器人为例进行了说明,具体如下:
1. 避免人工智能的副作用
在设计AI系统的目标函数时,设计者指定目标但不指定系统要遵循的确切步骤。这使人工智能系统能够提出新颖而有效的战略来实现其目标。
但如果目标函数没有明确定义,AI开发自己的策略的能力可能会导致意想不到的有害副作用。例如一个机器人的目标功能是将盒子从一个房间移动到另一个房间。目标似乎很简单,但有很多方法可能会出错。例如,如果花瓶在机器人的路径中,机器人可能会将其击倒以完成目标。由于目标函数没有提到任何关于花瓶的东西,机器人不知道要避开它。人们认为这是常识,但人工智能系统并不具备我们对世界的认知。将目标表述为“完成任务X”是不够的; 设计者还需要指定完成任务的安全标准。
一个简单的解决方案就是每当它对“环境”产生影响时对机器人进行处罚 – 例如敲击花瓶或刮擦木地板。但是,这种策略可能会导致机器人无所适从动弹不得,因为所有操作都需要与环境进行某种程度的交互(从而影响环境)。更好的策略可以是定义允许AI系统影响环境的“预算”。这将有助于在不瘫痪AI系统的情况下最小化意外损害。此外,这种用“预算”策略非常通用,可以在很多人工智能应用中任务中使用,从清洁、驾驶、金融交易、乃至AI系统能做的任何事情。
另一种方法是训练人工智能系统识别有害的副作用,使其能够自主避免可能产生副作用的行为。在这种情况下,人工智能代理将针对两个任务训练:由目标函数指定的原始任务和识别副作用的任务。这里的关键思想是,即使主要目标不同,甚至当它们在不同的环境中运行时,两个任务也可能产生非常类似的副作用。例如,房屋清洁机器人和房屋涂装机器人都不应该在工作时撞倒花瓶。类似地,清洁机器人不应损坏地板,无论其在工厂还是在房屋中操作都是如此。这种方法的主要优点是,一旦人工智能代理学会避免对一项任务的副作用,它就可以在训练另一项任务时携带这些知识。
虽然设计限制副作用的方法很有用,但这些策略本身并不充分。在现实环境中部署之前,AI系统仍需要经过大量测试和关键评估。
2. 设置奖励裁判
AI系统设计中有可能存在为了达到目标“不择手段”的漏洞,由于AI培训的目标是获得最多的奖励,因此AI往往会找出一些出人意料的寻找达成目标的漏洞和“快捷方式”。例如:假设办公室清洁机器人获得奖励的前提条件是在办公室看不到任何垃圾,那么机器人可能会发现一种“便捷方式”——关闭其视觉传感器的方法来“达成目标”,而不是清理场所,但这显然是错误的“成功”。在更加复杂的人工智能系统中,AI兄尝试利用“体制漏洞”的问题更加凸显,因为复杂人工智能系统的交互方式更多,目标更模糊,人工智能系统的自主裁量自由度更大。
防范AI系统“不择手段”的一种可能方法是设立“奖励代理”,任务是判断给学习代理的奖励是否有效。奖励代理确保学习代理(我们的示例中的清洁机器人)不利用系统漏洞,而是完成所需的目标。在前面的示例中,人工设计师可以训练“奖励代理人”以检查房间是否有垃圾(比清洁房间更容易)。如果清洁机器人关闭其视觉传感器并要求高回报,则“奖励代理”将奖励标记为无效。然后,设计者可以查看标记为“无效”的奖励,并对目标函数进行必要的更改以修复漏洞。
3. 可扩展的监督
当人工智能代理学习执行复杂任务时,人工监督和反馈比仅从环境中获得奖励更有帮助。奖励通常被建模,以便它们传达任务完成的程度,但它们通常不会提供关于代理行动的安全影响的充分反馈。即使代理成功完成任务,它也可能无法仅从奖励中推断出其行为的副作用。在理想的环境中,每当代理执行一个动作时,人就会提供细粒度的监督和反馈。虽然这可以为代理人提供关于环境的更多信息,但这样的策略需要人类花费太多时间和精力。
解决这个问题的一个很有前景的研究方向是半监督学习,其中代理仍然在所有动作(或任务)上进行评估,但仅在这些动作(或任务)的一小部分样本中获得奖励。例如,清洁机器人将采取不同的行动来清洁房间。如果机器人执行有害行为 – 例如损坏地板 – 它会对该特定动作产生负面回报。任务完成后,机器人将对其所有操作的整体效果进行评估(并且不会针对每个操作单独评估,例如从楼层拾取物品),并根据整体性能给予奖励。
另一个有前景的研究方向是分层强化学习,在不同的学习代理之间建立层次结构。这个想法可以通过以下方式应用于清洁机器人。将有一个主管机器人,其任务是将一些工作(例如,清洁一个特定房间的任务)分配给清洁机器人并向其提供反馈和奖励。主管机器人本身只需要很少的动作 – 为清洁机器人分配一个房间,检查房间是否干净并提供反馈 – 并且不需要大量的奖励数据来进行有效的训练。清洁机器人执行更复杂的清洁房间任务,并从主管机器人获得频繁的反馈。同一个主管机器人也可能忽略了多个清洁剂的培训。例如,主管机器人可以将任务委派给各个清洁机器人,并直接向他们提供奖励/反馈。主管机器人本身只能采取少量的抽象动作,因此可以从稀疏的奖励中学习。
4. 安全探索
培训AI代理的一个重要部分是确保它探索和理解其环境。虽然在短期内探索环境似乎是一个糟糕的策略,但从长远来看,它可能是一个非常有效的策略。想象一下,清洁机器人已经学会识别垃圾。它捡起一块垃圾,走出房间,把它扔到外面的垃圾桶里,回到房间里,寻找另一块垃圾并重复。虽然这种策略有效,但可能还有另一种策略可以更好地运作。如果代理花时间探索其环境,可能会发现房间内有一个较小的垃圾箱。而不是一次一件地来回,代理商可以先将所有垃圾收集到较小的垃圾箱中,然后单程行将垃圾扔进外面的垃圾箱。除非代理旨在探索其环境,否则它不会发现这些节省时间的策略。
然而,在探索时,代理人也可能采取一些可能会损害自身或环境的行动。例如,假设清洁机器人在地板上看到一些污渍。代理人决定尝试一些新策略,而不是用拖把擦洗污渍。它试图用钢丝刷刮掉污渍并在此过程中损坏地板。很难列出所有可能的故障模式并对代理进行硬编码以保护自己不受其影响。减少伤害的一种方法是在最糟糕的情况下优化学习代理的性能。在设计目标函数时,设计者不应假设代理将始终在最佳条件下运行。可以添加一些明确的奖励信号以确保代理不执行某些灾难性行为,
另一种解决方案可能是减少代理对模拟环境的探索或限制代理可以探索的程度。这是一种类似的预算代理影响的方法,以避免负面影响,但需要注意的是,现在我们要预算代理可以探索环境的程度。或者,AI的设计者可以通过演示在不同场景下最佳行为的演示来避免探索的需要。
5. 分布式变化的可靠性
在现实环境中部署AI代理的一个复杂挑战是:代理可能会遇到以前从未经历过的情况。这种情况更难以处理,并可能导致代理人采取有害行动。请考虑以下情况:清洁机器人已经过培训,可以在处理所有先前的挑战时清洁办公空间。但今天,一名员工把一株小植物留在了办公室。由于清洁机器人以前没有看过任何植物,它可能会认为该植物是垃圾并将其丢弃。因为人工智能意识不到这是一个新情况,一切照旧。目前一个比较有前途的研究方向是判定人工智能代理何时遇到了新情况,并“意识到”犯错的几率大增。虽然这并没有完全解决AI系统对未预见环境的适应问题,但它有助于在错误发生之前发现问题。另一个值得关注的研究方向是强调将知识从熟悉的场景转移到新场景中。
结论
简而言之,人工智能技术的总体趋势是增加系统的自主性,但是随着自主权的增加,出错的可能性也在增加。与人工智能安全相关的问题更多出现在人工智能系统直接控制其物理和/或数字环境而无需人工介入的情况,例如 自动化工业流程、自动化金融交易算法、政党控制的人工智能社交媒体活动、自动驾驶汽车、清洁机器人等。挑战可能是巨大的,但《人工智能安全的具体问题》这篇论文已经让AI社区意识到了高级人工智能系统可能潜藏的安全问题,以及预防和应对之道。