你有考虑过人工智能的安全性问题吗?
公众号/将门创投
来源:Deepmind Safety Research 编译:T.R
制造一枚火箭是十分困难的事情,每一个零部件都需要进行细致的设计和制造以保证火箭的安全性和可靠性。从导航系统到控制系统,从发动机到着陆器,每个方面都需要进行严格的测试和检验,然后才能建成稳定可靠的火箭运送宇航员奔向太空。
如果人工智能也是一枚火箭的话,安全性同样是其中十分重要的部分。它的保证来源于从头开始对于系统的仔细设计来保证不同的元件能够按照我们的想法协同工作,并在部署后可以正常地监控各个部分的工作状态。Deepmind的AI安全研究主要致力于保证系统可靠地工作,同时发现并处理近期和长期可能的危险。AI安全是一个十分新的领域,本文主要将就技术AI安全的三个方面展开讨论:规范性(准确定义系统的目的)、鲁棒性(系统抗干扰的能力)和保证(监控系统活动),从不同的角度定义并保证了AI系统的安全性。
1. 规范性与准确性:清晰定义系统目的
这一特性保证了AI系统可以按照使用者的真实意图准确完成任务。
对于目的有着规范和清晰的定义十分重要,有一个古希腊的神话故事从反面说明了这个道理。一位古希腊的国王受到了神的眷顾,可以许一个愿望。他不假思索的告诉神“希望能将所有他触碰的东西变成金子!”在神赋予他获得这项能力后,他大喜过望,周围的树根、石头、花瓣都在他的触碰下变成了金子!但高兴不了太久国王就发现了一个严重的问题,当他想喝水吃饭时食物和水都在他的手里变成了黄金,无法正常进食喝水。甚至在某些版本的故事里,国王的女儿也成为这种能力的受害者。
这个故事告诉了我我们一个道理:如何阐释和表达我们的需求是十分重要的。在AI系统中规范清晰的设计是保证AI系统忠实地执行设计者愿望的保证,而含糊或者错误的定义则会造成灾难性的后果。在AI系统中,研究人员一般将规范定义分为了三种类型:
a)理想的定义(美好的愿望):根据假设的(一般难以实现)描述来定义的理想AI系统,会完全按照人类的意图行事。
b)设计的定义(美妙的蓝图):实际构建AI系统所用设计语言,例如强化学习系统中经常要最大化的奖励函数。
c)实际的定义(令人无奈的现状):这种情况很好地描述了系统的实际情况。例如很多时候会根据系统的表现和行为进行反向工程来求出奖励函数(逆向强化学习)。这与系统设计的初衷有着典型的不同,主要是由于AI系统并没有被完美优化、抑或是由于设计定义意料之外的结果造成。
当理想和现实产生巨大的差异时(AI系统不按照我们想象的方式运作),就需要解决规范定义的问题。在研究AI系统中规范定义问题时通常需要回答几个问题:我们如何设计出更为普遍的目标函数、并帮助主体发现运行时偏离目标的行为。理想与设计定义之间的差异主要源于设计的过程,而设计与实践间的差异则主要来源于实际运行的现场里。
例如在deepmind的AI安全论文里,对于强化学习的主体首先给予一个奖励函数来优化,但却在后台运行着一个“安全表现评价函数”。这显示了前述的差异:安全表现函数是理想的规范定义,而不完美的则是奖励函数(设计定义),而最终主体在实践过程中产生的结果则是结果策略的表现。
另一个例子则是来自与OpenAI对于赛艇游戏CoastRunners训练强化学习过程的分析。对于大多数人类来说,我们的目标是尽快的完成比赛并超越其他玩家,这是我们对于这一任务的理想定义。但将这一目标精确地转换为奖励函数却不是一件容易的事情。由于这个游戏会奖励在行驶过程中击中一些目标的主体,所以通过强化学习训练出的主体会表现出令人惊讶的行为:它为了获得尽可能多的奖励,就会在一片水域中不断的兜圈,去击中更多的奖励目标而不是完成比赛。我们可以看到,其他的玩家都在赛道中向前驰骋,而强化学习训练出的主体却待在一个水域中兜圈子。
研究人员推测,这也许是由于没有平衡好长期目标——完成比赛和短期奖励——兜圈子得分。这种情况并不少见,很多时候AI系统会寻找目标定义中的漏洞或者缺失来最大化奖励,生成了很多令人瞠目结舌的效果。
2. 鲁棒性:保证系统能够抵抗干扰
这一特性将保证AI系统在安全阈值内能够在一定的扰动下持续稳定地运行。
这是AI系统在真是世界中运行的固有危险,它经常会受到不可预测的、变化的环境影响。在面对未知的情况或对抗攻击时,AI系统必须能够保持鲁棒性才能避免系统受损或者被不怀好意地操控。
有关AI系统鲁棒性的研究主要集中于:在条件和环境变化时保证AI主体在安全的范围内运行。实际情况中,可以通过两方面来实现:一方面可以通过避免危险,另一方面则可以通过强大的自愈和恢复能力来实现。安全领域中的分布偏移、对抗输入和不安全的探索等问题都可以归结到鲁棒性问题中来。
为了更好地说明分布偏移所带来的挑战,想象一下扫地机器人通常都在没有宠物的房间里干活,突然有一天被放到了一个有宠物的房间里去,而且糟糕的是在工作的时候还遇上了一只可爱的小动物。怎么办?它从没有见到过宠物,不知道该怎么处理这种情况,于是它只能呆呆地给宠物洗了个澡,造成了不愉快的结果。这种情况就是一个由数据分布改变所造成的鲁棒性问题,测试场景和训练场景的数据分布产生了偏移。
测试场景和训练场景不同,使得主体无法达到目标。
而对抗输入则是一种特殊的分布偏移现象,它利用精心设计的输入来欺骗系统输出期望的结果。
在上图中只通过了0.0078的差异噪声就是系统将输入从树懒识别成了赛车
不安全探索将会使得系统寻求最大化效益实现目标而不顾安全保证,主体会在环境中不顾安全后果的探索优化。一个危险的例子还是扫地机器人,它在优化擦地策略时将湿抹布碾过裸露的电源…
3. 保险性:监控系统活动
这一特性意味着我们可以理解并控制AI在运行时的操作,将成为AI安全的保证。
尽管细心的AI工程师可以为系统写下很多的安全规则,但也很难在一开始穷尽所有的情况。为了给系统安上保险研究人员利用监控和强制执行来保证系统的安全。
监控意味着使用各种各样的手段来监测系统,以便分析和预测系统的行为,包括了人工监控和自动化监控。而强制执行则意味着一些设计机制用于控制和限制系统的行为。包括可解释性和可中断性等问题都属于保险的范畴。
AI系统无论是在本质和处理数据的方式上都与我们不尽相同。这就引出了“可解释性”的问题,需要良好设计的测量工具和协议来帮助人类测评AI系统所作决策的有效性和合理性。例如医疗AI系统需要在做出诊断时给出它得到这一结论的过程,医生才能根据这些因素来判断诊断是否合理。此外,为了理解更为复杂的AI系统,我们需要利用机器思维理论(Machine Theory of Mind)来帮助我们构建系统的行为模型实现自动化分析。
ToMNet发现了两种不同主体的亚种,并预测了他们的行为。
在最后,我们要能够在必要的时候关闭AI系统,这就涉及到可中断性的要求。设计一个可靠的停机键是充满挑战的任务:一方面最大化奖励的AI系统会拥有很强的意图来避免停机的发生;同时如果打断过于频繁的话将会最终改变原始的任务,让主体从这样非正常的情况中归纳出错误的经验。
中断问题,人类的干预将改变系统原本的目标任务。
4. 展望
我们创造了很多强大的技术在现在和未来将被用于很多关键的领域中。我们需要铭记在心的是,安全为中心的设计思维不仅在研发和部署的时候,更在这一技术被大规模应用的时候有着重要的影响。尽管现在用起来很方便,但当这一算法被不可逆地整合到重要的系统中时,如果没有严谨细致的设计,我们将无法有效的处理其中存在的问题。
两个在程序语言发展过程中明显的例子:空指针和C语言中的gets()例程。如果早期的程序语言设计能够有安全的意识,虽然发展会缓慢一些,但今天的计算机安全问题将为得到极大的改善。
现在研究人员们通过详尽的设计和思考,避免了类似问题和弱点的出现。希望这篇文章能够构建起一个安全问题的有效框架,在设计和研发系统时可以有效的避免安全问题。希望未来的系统不仅仅是“看起来很安全”,而是鲁棒的、可验证的安全,因为他们就会在安全思想指导下设计制造的。
更多的资源请参考相关论文:
AI Safety Gridworlds:https://arxiv.org/pdf/1711.09883.pdf
https://medium.com/@deepmindsafetyresearch/building-safe-artificial-intelligence-52f5f75058f1