自我反光编程的BAS SteuneBrink

||谈话

BAS Steunebrink肖像BAS SteuneBrink.是瑞士AI实验室IDSIA的博士后研亚博体育官网究员,作为一部分施密沃伯教授组。2010年,他在荷兰乌得勒支大学获得博士学位。Bas的论文是关于人工情感的,这很符合他不断寻找实用和创造性的方法,让一般智能代理能够处理时间和资源限制。最近的一次这些代理人如何自然努力,有效,高效,好奇被授予Kurzweil奖在Agi'2013获得最好的AGI思想。BAS也对与自我反思和元学习有关的任何东西,以及所有的“META”的东西。

卢克·穆罕沃斯:您正在进行的项目之一是Gödel机器(GM)实现。你能解释一下(1)Gödel机器是什么,(2)为什么你有动力去做那个项目,(3)你的实现是什么?


BAS SteuneBrink.:通用程序是由并行运行的两个部分组成的程序;我们把它们命名为求解器和搜索器。求解器可以是任何做一些有用的事情的例行程序,比如在某些环境中解决一个又一个任务。搜索是一个例行程序,试图找到有益的修改求解和搜索,即,通用汽车的软件的任何部分。所以Searcher可以检查和修改Gödel机器的任何部分。窍门是Searcher的初始设置只允许Searcher进行这样的自我修改,前提是它有证据表明,根据最初提供的实用函数,执行这种自我修改从长远来看是有益的。由于求解器和搜索器是并行运行的,您可以说需要第三个组件:调度程序。当然Searcher也对Scheduler的代码具有读写访问权限。

戈德尔机器:调度员图

在过去,编写自我修改的代码被认为是节省内存的好方法,而内存是非常昂贵的。但是现在内存很便宜,自我修改也很容易出错,这种技术已经基本被淘汰了。现代编程语言从内部抽象并封装它们,这样就可以提供更多关于安全性和性能的保证。但现在,由定理证明和人工智能社区开发的自动推理技术正在成熟,一个自我反思的新机会出现了:让机器自己进行所有的推理,并决定何时、何地以及如何进行自我修改。

构建一个Gödel机器的实际实现目前正在进行的工作,我正在为此努力与MIRI合作和咨询。可以考虑解决获得具有随时自反射能力的系统的技术问题。亚博体育苹果app官方下载这包括回答一个重要的问题:检查积极运行的、资源受限的代码的状态和行为意味着什么,以及如何在任何时候安全地修改代码。目前的工作重点是在系统运行的程序中对系统的操作语义进行编码。亚博体育苹果app官方下载尽管这些操作语义非常简单,但仍然存在一些可能的理论障碍,例如Löb的定理(Yudkowsky&Herreshoff 2013

看看当前的自动定理证明(ATP)在Gödel机器设置中有多好,这将是一件有趣的事情,因为在这里,我们试图阐明关于正在积极运行的代码的证明,其中包含ATP本身,以及受资源约束的代码。对于ATP的开发者和社区来说,这里可能也有一些有趣的经验教训。


卢基:你说“可以考虑使用随时自反射功能获得系统的技术问题。”亚博体育苹果app官方下载你能告诉我们你所指的解决方案的草图吗?


Bas:这里有两个问题。首先,有问题是在执行自我反思时决定你会看到什么。例如,我们可以询问进程是否可以看到其他当前正在运行的进程的呼叫堆栈,甚至是它自己的呼叫堆栈,以及在这种呼叫堆栈上可以执行哪些操作以检查和修改它。但是,表演自我反思是一种及时的行为:当机器检查(并修改)自己的内部,这会发生在某个时刻,并这样做需要一些时间。这里的问题是,机器可以决定何时执行自我反思吗?

我们可以设想一台机器,它在白天执行任务,每天晚上凌晨2点被允许进入几个内部寄存器,根据过去一天发生的事件进行调整,以便为第二天做好更好的准备。有人可能会说,这台机器有充分的自我反思能力,因为你看,它每天都可以不受限制地干涉。但它仍然缺乏一定程度的控制,即时间。

我所做的是设计一种机器,当它想要检查某个过程时,机器可以通过非常高的精度来决定。它涉及将机器的操作划分为极小的块,其可能在任何两个块之间中断。在普通桌面上,这为每秒开始自反射提供了大约5000万个机会,我认为对于任何时间标签都足够细大。

除了随时自我反思的问题,在实现一个自我反思系统(如Gödel Machine)时,还有许多其他(技术)问题需要回答。亚博体育苹果app官方下载例如:反思(自我)是否应该打断它所反思的事物,或者当你看着它的时候,它看到的是正在变化的东西?在极端情况下,您可能会查看自己的调用堆栈,其中每个探测指令都直接影响被探测的内容。这是一种强大的能力,还是仅仅是危险和愚蠢的?在我所实现的自我反思系统中,名为Sleight亚博体育苹果app官方下载,默认行为是中断,但如果你想要,流体情况也很容易得到。基本上,它需要的是中断和立即恢复,同时保存一个指针,指向已恢复进程的内部状态。现在你可以看到自己的变化,因为你在看自己,这有点像在看一个非常高分辨率的,实时的大脑扫描你自己的大脑,但是加上了随时随地改变连接和激活的能力。


卢基:你一直在努力的另一个项目被称为士气。什么是诡智,它的目的是什么?


Bas:鞋板是一个自我反光的编程系统。亚博体育苹果app官方下载它由一个编译器组成计划到Sleight Code,以及用于运行Sleight Code的虚拟机(VM)。VM是所谓的自我反思翻译:它允许代码运行来检查和修改VM的内部寄存器。这些寄存器包括调用堆栈和所有变量赋值。因为所有代码都被赋值给变量,所以Sleight代码在运行时可以完全访问自己的源代码。此外,Sleight提供了一种调度多个进程的机制。当然,每个流程可以在任何时候检查和修改其他流程。保护和其他安全问题都得到了很好的处理——尽管进程可以很容易地瘫痪自己,但虚拟机不会崩溃。

雪石的目的是用作一个平台安全尝试自我反思的代码,特别是为了实现Gödel Machine。Sleight VM的调度能力使它特别适合设置求解器、搜索器和调度器—参见上图。


卢基:反思解释器的典型方法是例如“反光塔”。3-lisp(Rivieres&Smith 1984).有趣的是,雪石将反光塔崩溃进入你所谓的“反思平房”。你能解释一下这是什么意思,为什么这是一个好主意?


Bas:反光塔是一种构造,理论上是两个方向的无限,就像一个没有地面的塔,没有顶层。我喜欢以下报价基督教奎坦关于概念:

在八十年代中期,有一种流行的反思式翻译,这一潮流产生了一个非凡的术语:“反思塔。”想象一下,一片被雾笼罩的沼泽和一座高耸的塔,塔顶消失在灰色和多云的天空中——纯净的拉克姆!好吧,谁没有梦想过发明(或至少拥有)一种语言,在这种语言中,任何东西都可以被重新定义,我们的想象力可以无拘无束地驰骋,我们可以完全自由地进行编程,不受限制,不受阻碍?

无限的反射塔,正如Queinnec在上面的引用中诗意地描述的那样,可以被想象为无限嵌套的口译员,每个口译员由另一个解释器运行。在塔隐喻中,每个口译员正在由其上方的解释器运行,每个口译员都可以开始运行新的解释器,在本身下面添加一个底板。然后叫一个楼层重新化,而叫一个楼层被召唤反射.理论上,塔可以无限高,但在实际实现中,塔必须有一个顶,这是由一个黑盒解释器形成的,其内部状态不能具体化,就像在这个教学例子.访问上一层的解释器的意义在于,您可以随意重新定义任何函数并更改自己的操作语义。

然而我认为无限塔的理论理想根本不那么理想:如果总有更多的内部状态可以重新改进,广告Infinitum.,那么机器作为一个整体的操作语义必须是没有根据的或循环的。但是通过一个简单的技巧,我们可以只用一个解释器而不需要嵌套。我们可以通过维护一个特殊的数据结构来做到这一点metacontinuation.元延续是解释器状态的“塔”或堆栈。具体化的行为,在无限塔中意味着向上移动一层,现在意味着从元延续中弹出一个解释器状态,并使用该状态运行唯一的解释器。同样地,反射的行为,在无限塔中意味着在下面增加一层,现在意味着将当前解释器状态推到元延续中。通过这种方式,我们可以模仿无限的翻译塔的效果,而不需要嵌套——它只需要一个额外的堆栈,有效地成为一个“反射平房”。

虽然Metacontinuation不是Mine的发明 - 也是“棕”(弗里德曼&魔杖,1984年;魔杖和弗里德曼,1986年)和“白肤金发”(Danvy&Malmkjær,1988年) - 与之有很多乐趣。例如,在雪石中,我已经通过极细粒度的中断机制扩展了Metacontinuitumation概念,使得可以执行自我反射随时.它还有助于实施“绿色”线程的调度员,这有助于Gödel机器实现。


卢基:一些Miri的研究框架在继任者代亚博体育官网理方面的自我反思问题(例如Yudkowsky&Herreshoff 2013).你可以称之为离体自我修改与诡计更多方法(实时反映在自己)。在体内框架中运营的好处是什么vs vivo一个?


Bas:在我看来,有两种方法可以查看in-Vivo与前体内框架:关于检查和尊重修改

具有体内检查能力的代理可以说对其自己的实际内部寄存器有读取权限,而具有体内前检查能力的代理可能只能要求其内部寄存器的偶尔快照(副本)供检查使用。在体内检查的情况下,检查的行为很可能改变被检查的东西,而在体内前检查的情况下,代理看着一个静态的物体。后者可能更容易处理,尽管这两种能力非常不同。Sleight支持这两种方式。

但是,引用的论文处理了前体内修改能力,这意味着对代理的副本进行了自我修改。这让人想起产生钳工后代的代理人。如我所理解的,前体内修改方法是体内修改的概括,有希望创造优雅的正式调查框架。但是当一个代理人正在研究自己的工作时,为了找到它的有益的前体文修改,这是使用体内或前体内的吗?检查?这些不同的检查方法可能产生截然不同的结果,因此我认为这个问题也值得调查。就个人而言,我认为体内框架是最有趣的(如果只是因为他们的困难和危险......),但它仍然可以看到它在实践中最好的工作,这是最终的重要性。


卢基对不起,你这句话是什么意思?“我认为体内框架是最有趣的(如果只是因为它们的难度和危险)……”


Bas: 这困难在体内检查中:通过自动推理技术进行的共同假设是,在推理正在进行的同时,所说的数据是静态的。但是,如果数据包括动态内部状态的推理,则此假设会破坏。我觉得这有趣,因为我们正在进入未知的领土。

危险是在体内修改:如果一个代理决定修改自己的软件,可能没有办法回来。代理必须非常确定它在做什么,否则它可能最终禁用自己。不过,想想看,活体前的修饰——即产生一种后继剂——也有其自身的危险。例如,在技术上可能不可能阻止一个有缺陷但强大的继任者,或者这样做可能是不道德的。


卢基:你说“如果代理商决定修改自己的软件,那么它必须非常确定它正在做什么,或者它可能最终禁用自己。”大概是另一个担心的代理商和创造者的角度来看,自我修改可能会导致代理人的未来行为的意外后果。

理想情况下,我们希望一个代理人继续追求同样的目的,即使它改变自己的行为也是如此相同的约束(能够更有效且有效地实现其目标)。也就是说,我们希望解决我们可能称之为的问题“稳定的自我修改。“

除了Yudkowsky&Herreschoff(2013年),你是否知道关于这个主题的其他文学?您对稳定自我修改挑战的思考是什么?


Bas:这是一个非常有趣的问题,我认为担心问题增长一般来说。在我看来,这里还有两个问题:(1)如何构建代理,使得它可以从“种子”程序中稳定地增长?(2)在它生长的同时需要多少监督,测试,更正和干预措施?

第一个问题假设手工复杂的AI系统非常努力,无论如何,我们不必争论的东西,我想。亚博体育苹果app官方下载对稳定自我增长的先决条件进行了巨大探索KristinnThórisson(2012年)来自Reykjavik University,他标记了建设自我生长系统的方法亚博体育苹果app官方下载建构主义AI..我已经(并且还有)在欧盟资助期间与他合作的乐趣sualobs.项目,我们实施了一个综合认知架构,满足稳定的自我增长的先决条件,并在连接纸中规定的建构主义方法。架构被称为Aera.并且是基于复制品编程平台(主要由Eric Nivel开发)。这些东西仍然是非常多的工作进步,目前在Aera上有一堆论文。所以是的,我相信存在一种实现长期稳定的自我增长的方式,我们正在与几个伙伴机构一起积极追求一个有前途的道路。

第二个问题是一个年龄古老的问题,特别是关于我们自己的孩子,我们的答案确定我们的教育系统。亚博体育苹果app官方下载但许多AI研究人员似乎旨亚博体育官网在瞄准纯粹的“智力”解决智能代理人的问题。For example, one could spend some time in front of a computer, programming a Gödel Machine or other “ultimate algorithm”, run it, sit back, and just wait for it to launch us all into the singularity… But I’m not too optimistic it will work out this way. I think we may have to get up and take a much more parental and social approach to crafting AI systems. To ensure stable growth, we may have to spend lots of time interacting with our creations, run occasional tests, like with school tests for children, and apply corrections if necessary. It will not be the rising of the machines, but rather the提高机器。

通过同时在双方工作,我正在遵守我的赌注:Aera.另一方面,建构主义方法和哥特机器和其他“终极”学习算法另一方面。


卢基:谢谢,Bas!