AI Programmer: 用基因算法生成程序 简介

本文介绍了如何使用基因算法(GA)生成代码,将编程问题转化为优化问题,通过定义fitness函数和解空间来寻找最优解。文章讨论了如何定义解空间,即一个包含8种操作的指令集,并指出fitness函数的重要性。通过示例展示了如何让AI生成“Hello World”和斐波那契序列,提出未来可能需要基于机器学习的编程语言,使人类更专注于问题设计而非算法实现。
摘要由CSDN通过智能技术生成

最近有篇文章《AI Programmer: Autonomously Creating Software Programs Using Genetic Algorithms》火了,它主要是利用基因算法生成代码。没准儿以后能称为程序员居家旅行之必备。按说这个和深度学习一点关系都没有,但是我还是决定蹭个热度,写一写这篇文章刷一刷存在感。:)

基因算法,用高大上的词汇来说,属于机器学习(或者人工智能)里的进化主义,和深度学习所属的连接主义大相径庭,分属不同的山头。然而,二者隐含了一些相似之处。基因算法的fitness function 对应深度学习的loss function;  基因算法通过遗传和变异改进candidate, 以期达到更好的fitness, 深度学习通过back propagation更新weights,来减少loss  

基因算法主要适用于寻找问题的最优解,也就是optimization问题,如果我们很好的做到以下两件事情,我们就可以利用GA(基因算法)为我们服务:

1. 定义需要最优化的fitness函数。这个fitness往往是我们需要最优化的那个函数。比如任意一个复杂的数学函数的最大(小)值,比如TSP问题中人需要行走的距离,比如自旋玻璃模型中的能量等等。换句话说,fitness函数是我们的任务目标在数学上的表达。

2. 定义问题的解空间。这个解空间必须是有限维度的而且可以表达的。它可以是数字,是符号,是任何可以表达的变量展开出来的空间。


有了以上两点,我们就可以定义candidates

每个candidate都是一个potential solution。 通过优解的结合和在子代身上适度的

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值