编者按:很多现实中的任务都有着复杂的目标或者很难详细表述出的目标,这就很难衡量机器在此任务上的表现结果。其中一种解决办法是,人类通过演示或判断提供训练信号,但是这种方法在复杂情况下很容易失效。现在,OpenAI提出了一种方法,能够为复杂任务生成训练信号。以下是论智对原文的编译。
我们提出的技术称作迭代扩增(iterated amplification),它能让我们清楚的了解超越了人类能力的复杂行为和目标。与提供标签数据或奖励函数不同,我们的方法是将一个任务分解成多个更简单的小任务。尽管这一想法还处在初级阶段,而且一直在简单的游戏算法中进行了实验,不过我们还是决定分享出它的初期状态,因为我们认为它将是保证AI安全非常有用的方法。
论文地址:arxiv.org/abs/1810.08575
如果我们想训练一个机器学习系统执行任务,就需要一个训练信号,这是一种衡量系统表现的方法,从而能帮助它更好地学习。例如,监督学习中的标签或强化学习中的奖励都可以看作训练信号。机器学习的组织规则通常假设一种训练信号已经有现成的了,我们应该关注从中学习,但是事实上,训练信号必须从别处得到。如果没有训练信号,就无法学习任务。如果得到了错误的训练信号,就会得到错误、甚至危险的行为。所以,提高生成训练信号的能力对学习新任务和AI安全性都是有利的。
目前我们是如何生成训练信号的呢?有时,我们想实现的目标可以用算法进行评估,例如在围棋比赛中计算得分或者是否成功得到了一定的分数。大多数现实任务都不适合算法训练信号,但是通常我们可以通过人类执行任务或判断AI的性能获得训练信号。但是大多数任务都很复杂,人类无法进行判断或很好地执行,它们可能具有复杂的转接系统或者有多种安全问题。
迭代扩增就是为第二种类型的任务设计的生成训练信号的方法。换句话说,虽然人类不能直接进行全部任务,但是我们假设他可以清楚地辨别某种任务中的各种组成部分。例如,在计算机的网络案例中,人类可以将“保护服务器和路由器”的任务分解成“了解服务器受到的攻击”、“了解路由器受到的攻击”以及“这两种攻击如何交互”。另外,我们假设人类可以完成任务的一些很小实例,例如“辨别日志文件中可疑的特定代码”。如果这些可以实现,那么我们就能通过人类在小任务上的训练信号搭建大型任务的训练信号。
在我们实施迭代扩增的过程中,我们首先对小的子任务进行采样,训练AI系统模拟人类示范完成任务。之后,我们开始收集稍大型的任务,解决的方法是先让人们将其分为小部分,经过训练的AI就能解决这些小问题。这种方法常用于稍困难的任务中,其中加入了人类的帮助,作为训练信号来训练AI系统解决多层任务。之后在解决更复杂的任务时,重复搭建这样的训练模型即可。如果这一过程可行,最终就能生成一个完全自动的解决复杂任务的系统,不论初期是否有直接的训练信号。这一过程有点像AlphaGo Zero中使用的expert iteration,只不过expert iteration是对现有的训练信号进行强化,而我们的iterated amplification是从零创造训练信号。它还类似于最近的几种学习算法,例如在测试时利用问题分解解决某个任务,但是不同的是它是在没有先验训练信号的情况下操作的。
基于此前研究AI辩论的经验,我们认为直接处理超越人类尺度的任务对一个原型项目来说太难了。同时,利用人类的实际行为作为训练信号也比较复杂,所以我们还没有解决这一点。在我们的第一个实验中,我们尝试扩大一个算法训练信号,来证明iterated amplification可以在这一简单的设置上工作。我们同样将注意力限制在监督学习上。
我们在五个不同的玩具算法任务中测试了这种方法,这些任务都有直接的算法解决方案,但我们假装不知道(例如,寻找图中两点之间的最短路线),不过,若想把每个片段手动组合起来就需要大量精力。我们使用迭代扩增来学习只使用片段作为训练信号的直接算法,从而模拟人类知道如何组合解决方法片段、但没有直接的训练信号的情况。
在这五个任务中(排列供电、顺序分配、通配符搜索、最短路径查询以及联合查找),结果与直接通过监督学习解决的任务表现相当。
扩增方法和此前对AI安全的辩论研究有很多相似特征。和辩论相似的是,它也是训练模型在人类无法完成的任务上直接执行或判断,通过迭代过程让人类提供间接的监督,不过具体方法并不相同。未来,我们会加入人类的反馈机制。
原文地址:blog.openai.com/amplifying-ai-training/