人工智能如何让机器自动写编写程序代码!_第1页
人工智能如何让机器自动写编写程序代码!_第2页
人工智能如何让机器自动写编写程序代码!_第3页
人工智能如何让机器自动写编写程序代码!_第4页
人工智能如何让机器自动写编写程序代码!_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

人工智能如何让机器自动写编写程序代码 对于一台电脑来说 它可能写下它自己的程序吗 人类软件开发者有一天能够被电脑取代吗 如同一个农民 一个流水线工人 一个电话运营员被取代一样 软件开发 者会是下一个吗 这篇论文诠释了这个概念 回复 ai 写代码 下载论文论文的精华部分 接下来我们将会描述创造一个人工智能程序的实验 人工 智能工程能够开发其自己的程序 执行一个遗传算法 具 有自我修正的代码 上面这个代码是由人工智能程序创造 的 这个人工智能被设计出写能够自我修正的代码 上面 的代码是在 29 分钟中写出来的 其程序语言是 brain fuck 什么是 BrainFuck BrainFuck 语言 是一种按照 Turing complete 思想设计的语言 它的主要设计思路是 用最小 的概念实现一种 简单 的语言 BrainFuck 语言只有八种 符号 所有的操作都由这八种符号的组合来完成 BrainFuck 基于一个简单的机器模型 除了八个指令 这个 机器还包括 一个以字节为单位 被初始化为零的数组 一个指向该数组的指针 初始时指向数组的第一个字节 以 及用于输入输出的两个字节流 人工智能占据写代码人工 智能随着电脑科技 硬件 CPU 的发展 不断地发展着 2 随着计算机越来越快发展 更多的计算被执行 所以人工 智能算法所要求的计算密集型处理能够被实现 人工智能习惯对于我来说 让人工智能写程序是我的爱好 我指的是从一个完全白手起家 对于程序完全没有认知的 人工智能 它自己学习如何去创造功能性程序 这是个艰 难的任务 首先 使用使 if else 条件写一个随机程序看起来 并不是那么智能 无论是 BASIC C C 语言 都不能产 生一个能够运行的程序 因为这些语言都是以被人类使用 为目的的 对于人工智能来说太复杂 最终的目标是创造 一个能够写自己的处理软件 图像编辑工具和浏览器的计 算机程序 我坚定于这样的想法是可能的 很多的猴子和 破碎的打字机这个想法源于无限猴子定理 这个定理描述 了如果你有 1000 只猴子 在打字机上不断地敲击足够长的 时间的话 它们最终会创造由莎士比亚写出的话剧 这听 起来很荒唐 但是给定足够的时间 这些猴子最终会创造 出随机的文字 组成莎士比亚的作品 如果这些猴子得到指引呢 每次其中一个猴子敲对键盘的 话 就会得到奖励 在足够长的时间后 猴子能够开始习 得规律和模式 遗传算法 遗传算法是一种人工智能 以生物进化为模型 人工智能 随机选择一系列的指令 DNA 中的一个 检查结果的合适 3 度 在很多的程序中 比方说 100 个程序 选择出最佳合 适度的进行配对 产生后代 每一代得到额外的多样性 由进化的技巧例如轮盘选择 交叉 和突变而来 这个过 程在每一代中重复 但愿产生更好的结果 直到找到解决 方法 遗传算法执行适者生存法则 最合适的生存下来 并被执行 遗传算法可以被划分为人工智能搜索算法 在 巨大的问题空间中寻找具体的解决方案 为什么是 Brain fuck 解释器 开始寻找简单的程序语言 用有限数量的指 令 来训练人工智能程序使用 Assembly ASM 很接近 但 是仍然包含太多的排列 听起来很幽默 最后 brain fuck 解 释器产生 产生了上面的代码 brain fuck 最初被设计的初 衷是一个笑话程序语言 产生于对于人们使用来说 它的 难度是怎样 它实际上有着一些对于电脑来说不同的优势 Brain fuck 作为人工智能程序语言的优势 1 Turning complete 完全图灵这意味着它在理论上能够解决任何的计 算问题 有着这样能力的程序语言打开了很大可能性的序 列 总之很多 如果不是所有的的话 计算机程序被设计 来执行计算 2 由简化的只有 8 个指令的序列组成简化的 指令序列减少了搜索空间 很容易搜索到目标程序代码 随着计算机运行越来越快 问题空间能够被搜索到 然而 搜索空间需要被限制 限制程序指令在 8 个不同的字母 4 人工智能能够更快运行 在合理的时间内获得最优的合适 度 3 很容易建立一个解释器指令系列很好整理 容易理 解 因此 创造一个执行程序的简单解释器很直接 在包 含人工智能程序 遗传算法的解释器中 代码能够被优化 运行更快 这也能提供安全约束 人工智能能够获得解释 器的内部内容 例如内存 指令和输出 这在计算合适度 中非常有用 然而 第三方的编译器的这些内容很难获得 4 每个指令一个字节因为每个指令只是一个字节 很容易 找到每个 double 5 扩展指令的可能性存在很多程序语言 的解释器简单地执行代码 保存记忆值 支持输入和输出 的操控台 然而 扩展解释器支持产生图标 文件系统途 径是可能的 如何运行人工智能程序工作如下 1 一个 genome 由一组的 double 组成 2 每个 gene 等同于在 brainfuck 语言中的指 令 3 从大量随机的 genome 开始 4 解码每个 genome 成 为想要的程序 转化每个 double 成为对应的指令并执行程 序 5 在输出的基础上得到每个程序的合适度 然后将它 们排序 6 使用轮盘选择 交叉 和突变方法将最好的 genome 配对 产生新的一代 7 使用新的一代重复过程 知道达到目标的合适度 因为合适度方法是计算最集中的 部分 执行程序中每个 gene 人工智能程序使用 Parallel 用这种方法 它能够为每一代多个 genome 执行多样的合适 5 度算法 这个允许程序利用最大化 CPU 资源 利用多样的 CPU 核心 这个程序也能够保存状态 防止程序突然关闭 然后从离开的地方继续搜索 The Fitness Method 合适度方法通过产生程序的结果的获得 得分运行 这个分数通过在观察每个字母输出进行计算 减去和目标字母的数值差距 当然 最初很多产生的程序 不能够编译 更不用说将文字输出到操控台 这些被废弃 了 支持至少能够输出一些东西的程序 进一步引导和金 湖知道输出结果和目标的解决方案接近 解释指令序列 Brainfuck 由以下指令序列组成 结果人工 智能最后成功地在一分钟内 5700 代后写下程序输出 hi 在一分钟内 产生了如下的代码 尽管以上的代码有语法错误 例如不匹配的括号 我们的 模拟解析器计算结果直到程序无法运行 所以语法错误并 不影响合适度 你可以尝试将以上的代码放入 brain fuck 解析器 点击 开始调试 忽略警告提示 点击运行到断 点 注意输出 如果我们去掉多余的代码 会得到以下句 法上有效的代码 看下面的截屏 当程序运行时候截取下来的 人工智能学 6 习写程序人工智能学习写程序 人工智能找到解决方案 这 是一张历史图表 画出合适度和时间的关系 能看到人工 智能是如何学习在目标语言中写程序和达到想要的解决方 案 Hello 人工智能最后成功地写下程序输出 hello 在 29 分 钟内 252 0000 代后 产生了如下的代码 1 2 在每代的过程中 人工智能都接近解决方案 但是一对字 母在一个循环中相互束缚 人工智能能够解决这个问题 创造出一个内在的循环 成功输出正确的字母 继续处理 程序 人工智能学习写程序人工智能找到解决方案合适度和时间 的关系图表 执行程序 人工智能开发 Hi 人工智能成功写下程序 Hi 在两个小时七分钟 1 219 400 代 之后 产生了如下的代码 这实际上是我最喜欢的环节 运行 并且看到为什么 点 击开始调试运行到断点 好像电脑知道在知道做什么的感 7 觉 很有趣的是 我们注意到怎么产生这个程序花费了比 之前长的时间 很可能是因为使用的文字 包括大写字母 和一个标志 另外两个例子使用了字母 在 ASCII 系统中 的数值特别接近 因此人工智能能够很容易找到 人工智能找到解决方案执行程序 人工智能开发合适度和 时间的关系图表 reddit 人工智能最后成功在 22 分钟 195 000 代后写成了 reddit 的程序 代码如下 1 2 由于长度 可能由于 d 的位置 这是一个挑战 人工智能 学习写程序人工智能找到解决方案 合适度和时间的关系图 表 Hello world 在两个小时和 580 900 代后 产生了这个程序 代码如下 1 2 3 4 8 如果去掉多余的代码 打印如下 1 2 人工智能找 到解决方案 合适度和时间的关系图表 I love all humans 在十个小时和 6057 200 代后 产生了这个 程序 代码如下 1 2 3 4 如果去掉多余的代码如下 1 2 3 9 在以上的运行中 人工智能有着 300 个指令的数列大小的 开始程序 例如 300 字节 他并不需要整个程序代码的长 度 值需要 209 个指令即可写出程序 注意 这个解决方 案需要 10 个小时去完成 然而 记住 当人工智能在做这 些程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论