w88体育_w88优德手机版|优德88

优德88官方网站登录_优德88注册_优德88账户注册

admin3周前319浏览量

 





  新智元报导  

来历:arxiv

修正:大明

【新智元导读】英特尔的研究人员提出一种新的主动算法生成器(AAD),运用演化算法结构,以Python言语的根本子集作为语法架构,可以对29个数组/向量问题的代码块进行组合,经过学习,主动生成更杂乱问题的处理方案。

本文介绍一种主动算法发现器(AAD),这是一种用于组成高杂乱度核算程序的演化算法结构。此前的演化算法依赖于客观的习惯函数,这在给算法规划上添加了难度。


本文提出的AAD选用问题式引导演化过程(PGE),这需求将一组问题一同引进,针对更简略问题发现处理方案,用于处理同一组问题中的更杂乱的问题。 PGE还支撑几种新的进化战略,并自然地运用于高性能核算(HPC)技能。

 

AAD可认为29个数组/向量问题生成Python代码,规模从min,max,reverse到更具应战性的问题,如排序和矩阵向量乘法。此外,AAD显现出对受限环境/受限输入的强习惯性,以及针对“开箱即用”的问题的处理才能。

 

AAD是将相对简略的问题处理组件主动组合程序,可以完成查找由这些组件的一切或许摆放所组成的整个空间,然后寻觅满意给定要求的处理方案。现在现已提出了许多这样的查找战略(例如枚举,根据演绎,束缚求解,随机)来应对这类应战。

运用AAD的分类算法代码块示例


本文提出了一种根据演化算法的查找战略,将其AAD中完成。AAD可以根据Python的子集作为语法结构,组组成杂乱度相对较高的程序(循环,嵌套块,嵌套函数调用等),并生成可履行的Python代码。在本文中运用AAD来发现数组/向量问题的算法处理方案。

 

总的来说,AAD完成了以下方针:

 

  • 运用问题导向型的演化战略来消除算法中的方针函数。

  • 运用多样化的演化战略(多环境处理方案,异花授粉和联合演化),并经过广泛的试验评价其有效性。

  • 运用AAD处理通用Python言语中的29个数组/向量问题,标明演化算法可以处理杂乱的新问题。

  • 支撑循环模块,可以发现任何(非零)输入的算法。

 

AAD结构规划方案和原理


AAD首要架构示意图,首要由问题生成器、处理方案生成器和检测器组成


问题生成器(ProbGen)

 

咱们想要处理的每个问题都从问题生成器开端。 这部分担任:(1)指定输入和输出的数量和类型。(2)为给定的问题生成输入。例如,关于最大查找(Max),问题生成器指定Max将一个数组作为输入,并生成一个数字作为输出。别的,当恳求为巨细为N的问题生成输入时,会发生一个由N个数字组成的输入数组。

 

检测器(Checker)

 

检测器担任承受/回绝为给定问题生成处理方案。 检测器运用问题生成器生成的输入履行生成的程序,并生成输出。检测器中包括承受/回绝输出的逻辑。因而,检测器与给定的问题生成器对应,两者齐头并进。

 

检测器不一定真实需求完成其想要发现的算法。比方,针对“排序问题”的检测器不用对真的对输入数组进行排序,而是可以比较输出数组中的每两个相邻元素,并查看这两个元素是否按预期顺序摆放。一旦检测到未排序数据对,检测器会做出“失利”的声明。假如每对相邻元素都是有序的,而且输出数组中包括的元素与输入数组完全相同,则检测器宣告可承受该处理方案。

 

处理方案生成器(SolGen)

 

SolGen首要由两部分组成:(1)表达式/短语存储,以及(2)演化器。

 

表达式/短语存储器(ExpStore)

 

处理方案生成器运用语法结构源程序。 AAD运用的Python语法子集存储在ExpStore中,如表1所示。在AAD中,语法规矩运用类型信息进行扩大。

 

AAD支撑四种数据类型:数字(NUM),布尔数(BOOL),数组(ARR)和数组的数组(AoA),它们可以对矩阵进行建模。此外,表达式的每个操作数都标记为Consumer(只读),Producer(只写)或ProdCon(读-修正-写)。

 

演化器(Evolver)

 

演化器担任对表达式和短语进行组合,以生成程序(或函数),以处理问题生成器提出的问题。演化器分三个阶段构建处理函数(SolFunc)。

 

  • 阶段1:构建处理函数

  • 阶段2:在“生产者”(只写数据)和“顾客”(只读数据)间树立联络

  • 阶段3:操作和函数调用骤变

 

查看输出

 

一旦处理函数构建出来,就会履行这个函数,运用Python的exec()函数生成输出成果。检测器担任查看输出,断定承受或回绝输出。假如第一个输出被承受,则运用问题生成器生成的更多不同巨细的、与输入测验相同的处理函数。假如检测器承受了一切测验,则该处理函数即被声明为该问题的处理方案。上述三个阶段构成了一个按部就班的过程。

上表所示为在问题集A中的调用者-被调用者的联系。比方SortDesc函数地点的行显现,SortAsc在57%的处理方案中调用了Max函数,在14%的处理方案中调用了Min函数,以此类推。Min,Max和ReverseArr函数没有调用任何其他函数。一切其他函数都依赖于一个或多个函数来得到处理方案,显现出函数组合的重要性。


上表中列出了3组问题以及在基线办法下的步数体现,并将其与四种演化战略下的体现进行了比照。


未来远景与运用方向


从概念上讲,AAD也可用于程序翻译。关于用C言语,汇编言语乃至二进制言语编写的程序,可以履行该实例作为AAD的检测器来生成Python(或相似言语)代码。这种方法与仅经过调查另一个目标行为,来构建自身行为方法的机器学习算法相似。很明显,本文中运用的Python代码可以被视为“Python到Python”的翻译,因为不同的检测器对应了不同的Python完成。

 

AAD或许不仅仅是一个程序组成器。它还可以用来获取机器的内涵常识。经过调用-被调用联系图和父子图捕捉不同问题之间的内涵联系。这些联系是由AAD自身发现的,而且可以被认为是不同操作之间的联想回忆的一种表明,其方式与人类大脑结构和机制相似。

 

因为AAD可以经过引进越来越多的问题来添加常识储藏的扩展,经过恰当的辅导机制,就可以引导体系获取很多技能(算法),并自己构建常识表明。就像咱们在自己孩子还小时,向TA们提出许多问题和应战,意图是为了引导孩子们取得很多技能和常识。

 

AAD是用于归纳高杂乱度程序的演化结构,它以Python言语的根本子集作为语法架构。运用AAD可以对29个数组/向量问题的代码块进行组合,其间既有最大值、最小值,矩阵翻转这类简略问题,也有更具应战性的问题,如排序和矩阵向量乘法等,关于输入没有巨细约束。

 

咱们评价了处理这些问题战略的有效性,并证明了AAD具有处理“开箱即用”问题的才能。为了应对杂乱需求带来的各种应战,AAD东西还能完成与高性能核算(HPC)技能的结合。总的来说,与现有技能比较,选用PGE的演化算法可以处理相似或更高杂乱性的问题。

 

论文链接:

https://arxiv.org/abs/1904.02830



【2019新智元 AI 技能峰会精彩回忆


2019年3月27日,新智元再汇AI之力,在北京泰富酒店举行AI开年盛典——2019新智元AI技能峰会。峰会以“智能云•芯国际“为主题,聚集智能云和AI芯片的开展,重塑未来AI国际格式。


一起,新智元在峰会现场威望发布若干AI白皮书,聚集产业链的立异活泼,评述AI独角兽影响力,助力我国在国际级的AI竞赛中完成逾越。


嘉宾精彩讲演: