web-dev-qa-db-ja.com

AIの最近のプログラミング言語?

数十年の間、AIに最適なプログラミング言語は Prolog または [〜#〜] lisp [〜#〜] であり、 その他の数は少なかったあまり知られていない 。それらのほとんどは70年代の前に設計されました。

変更は、他の多くのドメイン固有の言語で多く発生しますが、AIドメインでは、Web固有の言語やスクリプトなどほど表面化していませんでした。

AIのゲームを変更し、以前の言語の不十分さから学ぶことを目的とした最近のプログラミング言語はありますか?

15

スタンフォード大学で教えたオンラインで参加したAIコースでは、宿題にはPythonを使用することをお勧めしました。ジョージア工科大学はまだLISPを使用していると思います。

ここでの間違いは「新しい」は「良い」です。 AI研究は最も古いコンピューティング研究分野の1つです。それからの技術が他の場所で使われることができると人々が気づくとき、それはサブフィールドを離れて分割し続けます。言語処理、機械学習、データマイニングはすべて、膨大な数の言語を使用する「実用的な」アプリケーションの例です。

したがって、メインフィールドが変更されたことは、関連する分野の膨大な配列に洗練されたことよりも少なくなります。これは、「科学計算」と言って、線形方程式を解くことを意味するだけのようです。

あなたが言及した言語は、過去20年か30年でかなり進化しました。 LISPはCommon LISPとClojureを生成しました。プロローグはビジュアルプロローグ(オブジェクトを持っています...)とマーキュリー(ハスケルとプロローグを一緒に部屋に閉じ込めます...十分に離れて実行の準備をしてください)を生成しました。

AI研究はより理論的であることを考えると、実用性(言語)ではなく理論(数学)に焦点を当てることは理にかなっています。

そうは言っても、私が賭けるAIテクノロジーの最大の革新者はGoogleです。彼らは、Pythonを支持する傾向があります(そしてGoとDartですが、それは要点の外です)。したがって、Pythonは「最近の選択言語」ですが、 Haskell、OCaml、F#、C#、Javaを使用することもできます。

23
World Engineer

ドイツAIジャーナルKI-KünstlicheIntelligenz、Volume 26、Number 2012年2月1日、Springerにより発行。私はそれに含まれているディスカッションペーパーの一部の共著者です:「あなたはあなたのAIプログラムを作成するためにどの言語を使用し、そしてなぜ?」これはプレプリントです: http://ai.cs.unibas.ch/papers/schmid-et-al-kijournal2012.pdf

要約すると、一部のAI研究者は依然として、古典的なAI言語であるLISPとPrologを誓います。 C++、Java、Pythonなどの主流の言語を使用するものもあります。さらに、新しい難解なプログラミング言語を探求したい人もいます。

AIには特別なプログラミング言語を必要とするような特別なものは何もないと思います。一般的に研究者が望んでいるのは、迅速なプロトタイピングを可能にするプログラミング言語です。これは、古いAI言語(LISP、Prolog)や、新しい「スクリプト」言語(Perl、Python、Ruby、またはClojureなどの最近のJVM言語)に最適です。

一部の研究者は、プロトタイピングを超えたい、または特別な要件(ビッグデータなど)を持ち、C、C++またはJavaなどのコンパイル済みまたは厳密に型指定された言語でアルゴリズムを再実装する必要がある探索的プログラミングフェーズが終了し、問題の把握が向上しました。その時点(問題が十分に理解されている場合)では、AIを扱っていないと言う人もいます。

最後の質問に戻りますが、私が知っている新しいAI言語の重要な開発はすべて、制約ベースのプログラミングに触発されています。 SICStusやSWIなどのProlog実装に参加した人もいれば、MercuryやMozart/OzなどのPrologに似た言語を生み出した人もいます。もちろん、私が気付いていない重要な新しい展開がある可能性があります。

8

これらの回答のほとんどは、質問で使用した「言語」という言葉に焦点を当てていますが、AIを考えるときに特定の言語を考えるべきではないと思います。

私はこのテクノロジーを長年使用しており、現在 Proof Assistants を使用して、一部のコードをOCamlからF#に変換しています。 AIを実現するのは言語ではなく、言語に実装された特定のアルゴリズムです。 PROLOGの場合、これは nification に基づく 推論エンジン です。統一から始めて、それが長年にわたってどのようにカスタマイズおよび高度化されてきたかを見ると、求めている進歩の進歩が見つかると思います。言語に焦点を合わせるのではなく、アルゴリズムに焦点を合わせてください。

例として、関数型言語の型推論では、統一に基づいた Hindley–Milner を使用します。

証明アシスタントに固有の別の例は here です。prolog.mlに注意してください。プロローグの推論エンジンはOCamlに実装され、F#に変換されます。したがって、OCamlとF#は通常AI言語としては言及されていませんが、AIアルゴリズムを完全に実装できます。

2
Guy Coder

それはあなたがAIで何を意味するかによると思います。一般に機械学習はツールの急速な進化を遂げているため、分類、クラスタリング、およびその他の形式の教師ありおよび教師なし学習のアルゴリズム、特に確率的グラフィカルモデルを使用した多数のアルゴリズムが、Python、C#、Ruby、OCaml、およびほんの数例を挙げると、Java。

レコメンデーションエンジン、協調フィルタリング、その他の種類の教師なしまたは教師ありの学習問題などを構築するためにデータの大規模な操作を行っている場合は、 Mahout を確認することをお勧めします。それ自体は実際には「プログラミング言語」ではありませんが、この種の問題に対する一連のツールです。モデルコードは、Java、またはgroovy(動的で適度に表現力のある言語)やclojure(LISPのような)などの他のJVM言語で記述できます。

なぜLISPを日付付きと見なすのかわかりません。これは、他の言語(クロージャなど)の「新しい」言語機能のほとんどがその起源となった場所です。

もちろん、機械学習技術は一般に、初期のAIの取り組みが始まったバイナリロジック、意思決定ツリースタイルのアプローチよりも確率論的モデルに向かっているため、機械学習は大きなテントからの分岐または転換であると主張することは可能ですAIの。

1
JasonTrue

私が何年も前に使用したAIの選択言語は、Prologでした Visual Prolog に付属するバージョン= IDE Delphiと同様。

プロローグ(およびそのGUIバージョンのビジュアルプロローグ)は、人工知能と計算言語学に関連する汎用ロジックプログラミング言語です。

ただし、最近の傾向はC =、Java、Python、Haskellなどのような任意のOOP言語がAIアプリケーション用にプログラム可能。

0
Yusubov