选自arXiv
机器之心编译
参与:李亚洲、李泽南
人工智能究竟会在未来代替哪些人类的工作?程序员似乎在这个问题中永远排在最后一位。不过,这样的看法似乎并不准确。最近,来自Bloombrg和英特尔实验室的研究人员提出了一种基于遗传算法的人工智能程序AIProgrammr,它可以在普通计算机的硬件基础之上为指定任务生成程序。
从计算机被发明以来,正确、高效地开发软件程序一直是个根本性挑战。为了帮助解决该问题,软件开发领域已经作出了无数的突破。一些突破包括在静态、动态、渐进式系统中的安全、灵活的进步;使用自动化存储管理和垃圾收集系统作出的简化、安全、稳健的进步;在通用与特定领域语言的普通和特定发展;当然还包括以各种方式协助程序员的众多工具。
目前,在硬件创新领域中,新发展也在以类似的频率在发生,例如越来越多的通用性能多核CPU,带有高级的硬件扩展,或者是低能耗SoC边缘计算设备、接近先前超级计算机性能的高性能嵌入式协处理器;宽泛数据并行的GPU;适合神经网络和计算机视觉的ASIC,等等。
在硬件进展持续扩展计算的深度与广度的同时,副作用就是把软件开发与人类写代码的效率之间的紧张关系变得越来越复杂、恶劣。
在这篇论文中,作者们探索了一种取代传统人类软件开发的方式,也就是使用遗传算法自动创造软件程序,只需要少量的人类指导。
据论文介绍,该研究的技术贡献在于:
1.史无前例的提出了软件生成框架AIProgrammr,使用遗传算法结合全新简化编程语言构建程序。
2.给出多种批评观测系统,包括一个嵌入式注释器和模拟器解决方案,保证机器学习生成的软件的安全与优化。
3.在硬件上完整生成了多个软件程序,给出了经验式结果证明AIProgrammr的功效与效率。
图1:AIProgrammr的软件架构
AIProgrammr由C#.NET.上的模块化框架组成。它包括用于运行遗传算法的引擎,用于基因组图的编码器和解码器,用于模拟程序执行的沙箱解释器,以及将代码转换为二进制可执行文件的编译器。虽然AIProgammr使用C#,但它的应用范围不仅限于C#。AIProgrammr的软件框架是可以扩展的,开发者们可以在此基础上构建适合自己的工具,通过指导系统的遗传算法,不断改进自己的软件程序。
表2:AIProgrammr的结果
论文:AIProgrammr:AutonomouslyCratingSoftwarProgramsUsingGnticAlgorithms
链接: