Lisp在人工智能中的应用:自修改代码和领域特定抽象层次

人工智能在多种不同的编程语言中实现,例如Python、C/C++、Java,那么能否请有人解释一下使用Lisp如何能够实现Peter Norvig在这里提到的第5点:

  1. [Lisp允许…] 一个宏系统,让开发者能够创建一个领域特定的抽象层次,用于构建下一级别。…如今,(5)是Lisp相较于其他语言唯一仍然出色的功能。

来源:https://www.quora.com/Is-it-true-that-Lisp-is-highly-used-programming-language-in-AI

我基本上对创建领域特定抽象层次的含义感到困惑。能否请有人提供一个具体的例子/应用,说明这在什么时候/如何有用,以及它总体上意味着什么?我尝试阅读了http://lambda-the-ultimate.org/node/4765,但并没有真正“理解大局”。然而,我感觉这里似乎有某种魔法存在,即Lisp允许你编写其他过程式/OOP/函数式语言所不允许的代码类型。然后我看到了这个帖子:https://www.quora.com/Which-programming-language-is-better-for-artificial-intelligence-C-or-C++,其中最佳回答指出:

对于通用人工智能,我不会选择C或C++,而是选择用Lisp编程。一个真正的AI会有很多自修改代码(你不会认为一个真正的AI会把程序员写的代码视为最终答案,对吗?)。

这让我更加好奇,进而让我思考:

AI拥有“自检、自修改代码”(来源:为什么Lisp用于AI?)到底意味着什么,以及为什么/如何这有用?这听起来非常酷(几乎像是AI对自己的操作有自我意识一样),而且听起来使用Lisp可以实现这些事情,而其他语言甚至不会梦想做到(如果这听起来有点天真地高兴,请原谅,我完全没有Lisp的经验,但很兴奋要开始)。我读了一点:自修改代码的用途是什么?,并立即对特定AI应用和自修改代码的未来前沿产生了兴趣。

无论如何,我确实可以看到编写自修改代码的能力与根据特定研究问题领域定制语言的能力之间的联系(我假设这是Peter Norvig在他的帖子中暗示的),但我确实不太确定这到底意味着什么,我希望能以清晰的方式理解上述两个方面(“领域特定抽象层次”和“自检、自修改代码”)的本质或核心内容。


回答:

Related Posts

L1-L2正则化的不同系数

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

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

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

f1_score metric in lightgbm

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

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

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

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

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

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

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

发表回复

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