智能代码补全?是否存在通过学习编写代码的人工智能?

我提出这个问题是因为我知道这里有很多博览群书的计算机科学领域人士,他们可以给出明确的答案。

我想知道是否存在这样的人工智能(或者正在被研究/开发),它可以完全自主地生成和编译代码来编写程序,然后通过从先前的迭代中学习来进步。我说的是努力使我们程序员变得过时。我设想一种通过试错来学习在编程语言中什么有效、什么无效的东西。

我知道这听起来像是异想天开,所以我询问是否已经做了什么,如果有的话。

当然,即使是人类程序员也需要输入和规范,因此这样的实验必须有精心定义的参数。例如,如果人工智能要探索不同的定时函数,那么这方面必须明确定义。

但是,对于一个复杂的学习型人工智能,我很想看看它会生成什么。

我知道计算机无法复制很多人类的品质,比如我们的判断力、品味和偏见。但我喜欢这样的想法:一个程序经过一天的思考后,吐出一个网站,让我看看它想出了什么,即使我通常会认为它是垃圾;但也许每天一次,我会给它反馈并帮助它学习。

这种想法的另一个途径是,如果能给出一个高级描述,比如“菜单式网站”或“图像工具”,它就能生成足够深度的代码,作为代码补全模块,供我进一步编写细节,那就太好了。但我认为这可以被设想为一个非智能的静态分层代码补全方案。

怎么样?


回答:

这类工具是存在的。它们是被称为 遗传编程 的学科的研究对象。你如何评估它们的成功取决于它们的应用范围。

在为工业过程管理、自动化医疗诊断或集成电路设计设计最佳程序方面,它们非常成功(效率比人类高几个数量级)。这些过程受到良好约束,具有明确且不可变的成功衡量标准,以及大量的“宇宙知识”,即关于什么是有效的、可工作的程序以及什么不是的大量规则。

在尝试构建需要用户交互的主流程序方面,它们完全无用,因为学习型系统最需要的是一个明确的“适应度函数”,或对当前解决方案质量的评估。

另一个可以被视为处理“程序学习”的领域是 归纳逻辑编程,尽管它更多地用于提供自动演示或语言/分类学习。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注