Lispが実際に人工知能の他の言語よりも優れているという証拠はありますか?[閉まっている]


21

AIのほとんどの言語よりもLispの方が優れているという長年の信念があるようです(主に非盗聴者による)。

この信念はどこから生まれたのですか?それに実際に根拠はありますか?


4
タイトルは次のように尋ねています:LispはAIの他の言語よりも優れていますか?質問自体が尋ねます:LispはAI以外のすべてに悪いですか?これらは非常に異なる質問です(シナリオ1:Lispがすべてにとって最良の言語であり、シナリオ2:Lispがすべてにとって最悪の言語であると考えてください)。質問のタイトルまたは本文を編集して、実際に質問している質問を明確にすることができます。
ガレス

9
受け入れられた答えがLispマシンから来たなら、解決策があると思いますか?
マーティンベケット

1
@Martinは、基本的なAIには、その作成者を守るか、自身の存在を疑うようにする義務があります。
ニコール

これは、Peter NorvigのAI用Lispの素晴らしく正直な見方で、AIプログラミングのパラダイムが出版されてから10年ほどで書かれました。norvig.com/Lisp-retro.html
michiakig

1
@jwenting:私は、Javaに関するNorvigの最も重要な点は10年後もまだ真実だと思います。Javaにはメタプログラミング機能がなく、関数型プログラミングをサポートしていません。
ケビンクライン

回答:


22

LISPに似た言語と他の言語の主な違いの1つは、LISPではコードとデータが同じことです。これにより、言語のネイティブ部分として、新しいものを「学習」するときに、実行時にプログラムにアルゴリズムの一部を変更させるなどのことが可能になります。

これには、それほど多くはありませんが、マクロを介して新しい言語セマンティクスを簡単に追加できるLISPの機能もあります。これにより、AIの実行中にその言語が成長、自己修正、および進化する可能性を備え、AIが実際に動作し、進化できるDSLを実際に入力して定義することができます。

Quadrescenceに同意すると、LISPの使用の歴史は、AIに適しているというLISPのイメージに向けて大きく前進します。 AIにLISPを使用する理由は、歴史をより詳細にカバーしているためです。


3
このプロパティは、ホモイコニシティ BTW と呼ばれます。
MSalters

5

Lispの最初のプログラムのいくつかは、定理証明、記号数学、古典的なELIZAなどでした。PeterNorvigのPAIPのような本に加えて、lispはMIT AIラボで作成されたという事実に加えて、そのLispはAIに適しています。

DARPAはAIの研究のために大学にも資金を提供し、Symbolicsから大量のハードウェアを購入しました。資金不足は、最終的にいわゆる「AI冬」につながりました。

最後に、Fortranのような元の言語(またはASMのような「言語」)が数値計算のために主に使用されました。あなたはそれらの数と配列を扱った。最近では、ほとんどの現代言語で、シンボル、または希望するほぼすべてのオブジェクトを作成する機能があります。

だから、一度にAIにとってLispが優れていた理由は、もはや事実ではありません。ただし、「lispはAIに適している」という考えはまだ残っています。

Lispがその機能と構造のために優れた言語であるかどうかはまったく別のケースです(実際、この種のことはAI以外の多くの分野にも当てはまり、通常は昔の火炎戦争につながるからです)。


5
それを置くより良い方法は、AIが得意な人がたまたまLispを使っていることかもしれません。

1
そして、開拓者が始まったのは偶然ではありませんでした。1950年代に他のどの言語から選択できましたか?
ボーパーソン

2
@Persson:私はそれがあったと主張したいやや偶然。PASCALがFORTRANの後に作成される次の言語である場合、AIがそれを採用していたことには疑問があります。LISPはFORTRANよりも「優れた候補」であるだけでなく、(おそらく偶然かもしれませんが)かなり良い候補になることもありました。
-Quadrescence

Lispが利点(資金)を持っていた理由の1つを説明しますが、「一度にAIにとってLispが優れてい理由はもはや当てはまらない」と結論付けました。
マークC

私が取り組んでいた次のコメントを失いましたが、戻って後で終わることを望んでいます。
マークC

3

現在のAIプログラムを見てみましょう。(1)ロボット、たとえば自動運転車。DARPAグランドチャレンジでは、優れた自動車運転ソフトウェアはLispではありませんでした。むしろ、C ++やJavaなどの手続き型言語でした。(2)自然言語の機械翻訳。Lispは、広く使用されている生産システムでは、この目的には使用されません。(3)ゲームプレイ、例えばチェスプログラム。この目的のために、LispはFritzなどの広く使用されている優れたチェスプログラムでは使用されません。

Lispは、ネイティブのLispデータ構造が必要な記号抽象化のレベルに適合する記号論理プログラムを迅速にプロトタイプ化するために、1960年代にUS AIラボによって発明および開発されました。演算子とオペランドのリストとして表されます。

しかし、プロダクションプログラムの場合、静的型付け言語とさまざまなサードパーティライブラリのソフトウェアエンジニアリングの利点により、LispはAIタスクを実行する大規模で近代的なシステムでも考慮されていません。


2
LISPは一般的に知られている言語環境ではないため、有能なLISPプログラマーは難しいということを、商用製品について議論する際に考慮しなければなりません高価である可能性が高い(および/または異常な、平均的なチームに適したメンバーではない)したがって、LISPが「より良い」場合でも、他の何かを使用することは経済的に理にかなっています(必ずしもそうであるとは言わず、提示するデータがそうでないと断定することはできません)。
-jwenting

3
これらのプログラムにはあまり「知性」はありません。多くの信号処理などです。チェスプログラムもAIを使用しません。それはほとんどがブルートフォース、高度に最適化された検索+その他の機能です。
レイナージョスヴィヒ

「LISPは一般的に知られている言語環境ではないので、有能なLISPプログラマーを見つけるのは難しく、おそらく費用がかかります」:私はCommon Lispを学び始めたばかりで、難しくはないようです。OK、Lispの達人になるには長い時間がかかるかもしれませんが、具体的なプロジェクトに取り組む機会が与えられれば、Lispを学びたいプログラマを見つけるのは難しいとは思いません。
ジョルジオ

3

@スティーブン・リードはそれをとてもよく言った。70年代にMIT AIラボにいたことだけを付け加えることができます。それから、Lispの起源についての話を聞いた。私はそれが真実だと断言することはできませんが、次のようになります。

ジョン・マッカーシーは50年代にMITにいましたが、プログラムの特性の証明に取り組んでいたため、ラムダ計算に似た単純な構文を使用していました。

物語は、大学院生の一人がプロジェクト(アナロジー、定理証明、または象徴的な数学、私はどちらを覚えていないか)を望み、McCarthyにどの言語を使用するか尋ねました。答え-もちろんFortran。(他にはあまりなく、リスト処理自体はかなりよく知られていましたが、言語としてではなく、サブルーチンパッケージとしてのみです。)それで、どういうわけか、ネストされたリスト構造のシンボルを処理するプログラムになりました。それらを読み、印刷する方法、そしてeval機能、そしてVoila '-言語。リスト処理言語。そこから離陸した。

当時私たちが行っていた種類のアルゴリズム(そしてまだ非常に少数の人々しか行っていません)には、シンボリック式を簡単に操作できる言語が必要でした。それがLispの長所です。基本概念には、Prolog、Schemeなどの異なる名前でさまざまなバリエーションがあります。

だからAIは多くの人にとって多くのことを意味し、異なる言語は異なるものに適していますが、シンボル操作として説明できる問題については、Lispに由来するものではない有用な言語を見つけることは困難です。


1
ジョン・マッカーシー自身の言葉: www-formal.stanford.edu/jmc/history/lisp/lisp.html

@Thorbjørn:そのリンクをありがとう。数年にわたってLispを頻繁に使用していましたが、その起源にはあまり注意を払いませんでした。
マイクダンラベイ

Prologはシンボリック計算としては優れていますが、Lispと密接な関係があるとは言いません。Lispはラムダ計算に基づいており、Prologは1次論理(2つの異なる計算モデル)に基づいています。
ジョルジオ

@Giorgio:Prologの先祖といとこはほとんど何で書かれていますか?Lisp。Fischer Blackの演programプログラム、Micro-Plannerなど。私にとって、これに関する良い本は、演Programming的なコンピュータープログラミングの基礎です
マイクダンラベイ

「Prologの祖先といとこはほとんど何で書かれているのですか?」
ジョルジオ

1

Lispは、少なくとも90年代までAIのほとんどであったロジック、検索、および関連するものを解析するという、AIと呼ばれる種類のものに利点があります。

Lispの主な利点は、マクロのサポート-データとしてのコード、メタプログラミングです。

標準ML(SML)は、たとえば80年代からAIで広く使用されている別の言語です。客観的なCAMLとF#はSMLの進化です。

MLファミリ(およびHaskellなど)の主な利点は、パターンマッチングです。これはおそらくLispでも利用可能ですが、言語に組み込まれているのではなく、メタプログラミングライブラリを介して利用できます。Haskellでも利用可能ですが、少なくとも現時点では、パターンマッチングは関数型プログラミング言語以外では一般的ではありません。

LISPは基本的に拡張された型付けされていないラムダ計算であり、MLは基本的に拡張された型付きラムダ計算であるという主張を見てきました。型付きラムダ計算の知識がありません。

AIはまた、長年にわたってはるかに広範なテーマになりました-それはほぼ完全に消えたという点まで。データマイニングは、AIの1つのサブフィールドと考えることができます。多くのAIの事柄(OCR、音声認識)は、AIであることがほとんどなくなりました。これらは、他のアプリケーションと同じ、単なるアプリケーションです。また、AIは以前よりも信号処理やその他の種類の数値演算処理に大きく依存しています。

OCRと音声認識の場合、AIは常に信号処理と数値演算に常に依存していました。はい、これにはいくつかの矛盾があります;-)私は本当に知らないので、物事に重みを与えることはできません。

とにかく、その結果、おそらく、1つの最新のAIアプリケーション全体に適した単一の言語は存在しません。最新のAIには多言語開発がたくさんあると思います(実際の知識はありません)。そして、いくつかのプロジェクトでCとC ++が見つかることをほぼ保証できます。同様の理由でPythonがたくさんあっても驚くことはありません-優れた数値ライブラリがあれば、Pythonは簡単に数値計算タスクを処理できます。

これらの自動運転車の1つでは、ビジョンシステムがルート計画システムとは異なる言語で記述されている(そして異なるハードウェアで実行されている)と想像します。

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