LispはまだAIの問題に取り組むために使用されていますか?


20

Lispの言語は、人工知能の問題に取り組むときに初期に使用されたことを知っています。今日も重要な仕事に使われていますか?そうでない場合、今日のAIでの作業に使用される最も一般的な言語としての地位を取っている新しい言語はありますか?

回答:


9

全体として、答えはノーですが、現在のパラダイムはLISPに大きく依存しています。現在最も一般的に使用されている言語はpythonです。

関連する回答:

LISPは、関数型プログラミングと呼ばれるものの多くの重要な概念を開拓しました。主要な魅力は、プログラムが数学にどれだけ近いかということです。これらの機能の多くは、その後、現代言語に組み込まれています(Wikipediaページを参照してください)。LISPは非常に表現力があります:構文はほとんどありません(リストとその基本操作のみ)が、複雑なアイデアを表す短い簡潔なプログラムを書くことができます。これは新参者を驚かせ、AIの言語として販売しています。ただし、これは一般的なプログラムの特性です。短いプログラムは複雑な概念を表すことができます。また、LISPで強力なコードを作成することはできますが、初心者であれば、他の誰かのLISPコードを読んだり、自分のLISPコードをデバッグしたりすることは非常に難しいこともわかります。最初は、関数型プログラミングのパフォーマンスに関する考慮事項もあり、Cのような低レベルの命令型言語に置き換えることは好ましくありませんでした(たとえば、関数型プログラミングでは、オブジェクトを変更(「変更」)する必要がないため、すべての操作で作成される新しいオブジェクト。適切なガベージコレクションがなければ、これは扱いにくい場合があります)。今日、機能的なプログラミングと命令型プログラミングを組み合わせて適切なコードを記述し、Python、ruby、scalaなどの最新の言語が両方をサポートする必要があることを学びました。この時点で、これは単なる私の意見です。PythonよりもLISPを好む理由はありません。

現在最も注目されているAIのパラダイムは、データから学習するMachine Learningです。これは、エキスパートがAIが従うルールを作成したExpert Systems(80年代)のような以前のアプローチとは対照的です。Pythonは現在、機械学習で最も広く使用されている言語であり、TensorflowやPytorchなどの多くのライブラリとアクティブなコミュニティがあります。大量のデータを処理するには、Hadoop、Hive、Sparkなどのシステムが必要です。これらのコードは、python、java、またはscalaで記述されています。多くの場合、コア時間のかかるサブルーチンはCで記述されています。

80年代のAI冬は、適切な言語がなかったからではなく、適切なアルゴリズム、十分な計算能力、十分なデータがなかったためです。AIを学習しようとしている場合は、言語ではなくアルゴリズムの学習に時間を費やしてください。


6

AIモデルに取り組むとき、私は間違いなくLispを頻繁に使用し続けます。

あなたはそれが実質的な仕事に使用されているかどうか尋ねました。それは私自身の仕事に関して私が答えるにはあまりにも主観的ですが、それがそれ自体が実質的であるかどうかにかかわらず、AIモデルに質問し、肯定的な応答を返しました。もちろん、その応答も自然に偏っています。

全体として、かなりの量のAIの研究開発がLispで行われています。さらに、AI以外の問題でも、Lispが使用されることがあります。Lispの力を示すために、私は4世紀以上前に完全にLispで書かれた最初のニューラルネットワークシミュレーションシステムを設計しました。


最初のIDEもLISP IDEでした。また、JavaScriptの形式化であるEMMAScriptは、現在のトレンディなPythonよりもラピッドプロトタイピングの言語システムとしてはるかに優れており、JavaよりもLISPに似ています。マシンビジョンと聴覚の進歩を除けば、MLの現在の傾向から永続的な価値が得られることはあまりありません。LISPは依然としてAIラボの作業に優れた言語であり、構造化データを表現するためのXMLよりもはるかに自然であることに同意します。
-FauChristian

4

LISPは依然としてかなり使用されていますが、ますます少なくなっています。過去にそれを使用していた多くの人々がまだ業界や研究で活動しているため、まだ勢いがあります(予告:2016年7月に日本のメーカーによって最後のVCRが作成されました、はい)。ただし、この言語は、機械学習を活用しない種類のAIに(私の知る限り)使用されます。通常は、ラッセルとノービグの参考書として使用されます。これらのアプリケーションは依然として非常に便利ですが、最近では機械学習がすべての流れを獲得しています。

減少のもう1つの理由は、LISPの実践者がClojureやその他の最近の言語に部分的に移行したことです。

AIテクノロジーについて学習している場合、LISP(またはSchemeまたはProlog)は、「AI」全般で何が起こっているのかを理解するのに適しています。しかし、あなたが希望するか、非常に実用的である必要がある場合、PythonまたはRがコミュニティの選択肢

注:上記には具体的な例と参照がありません。大学での仕事や、LISPに触発された、またはLISPを直接使用している会社もあります。


@Harshの答えを付け加えると、LISP(およびScheme、Prolog)には、インテリジェントメカニズムの作成に適しているように見える品質があります。60年代に認知されたようにAIを作成します。

特質の1つは、言語設計により、開発者が非常にエレガントな方法で思考し、大きな問題を小さな問題に分解するなどのことができるということでした。非常に「賢い」または「インテリジェント」です。他のいくつかの言語と比較して、そのように開発する以外にほとんど選択肢はありません。LISPはリスト処理言語であり、「純粋に機能的」です。

ただし、1つの問題はLISPに関連する作業で見られます。AIドメインで注目すべきものは、状況計算の研究です。要するに、「世界」のオブジェクトとルールを記述し、状況、つまり世界の状態を計算するように進化させることができます。したがって、それは状況を推論するためのモデルです。主な問題はフレーム問題と呼ばれます。つまり、この計算では何が起こるのかわかりません。ではありません変更---何が変わるか。世界で定義されていないものは処理できません(MLとの違いに注意してください)。最初の実装ではLISPを使用しました。それが当時AI言語だったからです。そして、フレームの問題に縛られていました。しかし、@ Harshが述べたように、それはLISPのせいではありません。どの言語も同じフレーミング問題(状況計算の概念上の問題)に直面するでしょう。

そのため、AI / AGI / ASIの観点からは、言語は本当に重要ではありません。概念(アルゴリズムなど)が本当に重要です。

機械学習でも、言語は実際的な選択にすぎません。PythonとRは、主にライブラリエコシステムと主要企業の焦点により、今日人気があります。しかし、PythonまたはRを使用してRaspberryPIベースのアプリケーションのモデルを実行しようとすると、いくつかの重大な制限に直面します(しかし、まだ可能です、私はそれをやっています:-))。したがって、言語の選択は実用主義に燃え尽きます。


1

私の意見では、pythonとjavaはLISPから引き継いでいます。多くの人々がそれらを使用し、利用可能なライブラリが大量にあります。さらに重要なことは、Webテクノロジーに簡単に統合できることです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.