Yapay zeka için son programlama dili? [kapalı]


15

Birkaç on yıl boyunca AI için seçilen programlama dili Prolog ya da LISP idi ve birkaç tane daha bilinmiyor . Çoğu 70'lerden önce tasarlandı.

Değişiklikler diğer birçok alana özgü dilde çok fazla olur, ancak AI alanında web'e özgü dillerde veya komut dosyalarında vb.

Yapay zekadaki oyunu değiştirmeyi ve eski dillerin yetersizliğinden öğrenmeyi amaçlayan yeni programlama dilleri var mı?


1
Oktav, AI'nin bu dalı sizi ilgilendiriyorsa Makine Öğrenimi için iyi bir dildir.
Ekim'de setzamora

Ayrıca bir meta-programlama yaklaşımı düşünün (yani programların üretilmesi). İçine bak J.Pitrat günlüğü . O zaman oluşturduğunuz dil çok fazla
önemsizliğe

Yanıtlar:


23

Çevrimiçi olarak katıldığım, Stanford'da öğrettiğim AI kursu, Python'un ödev için kullanılmasını önerdi. Georgia Tech'in hala LISP kullandığına inanıyorum.

Buradaki yanılgı "yeni", "iyi" dir. AI araştırması, en eski bilgisayar araştırma disiplinlerinden biridir. İnsanlar ondan tekniklerin başka yerlerde kullanılabileceğini fark ettikçe alt alanlardan kurtulmaya devam ediyor. Dil İşleme, Makine Öğrenimi ve Veri Madenciliği, çok sayıda dil kullanan "pratik" uygulamalara örnektir.

Dolayısıyla, ana alanın değişmesi, büyük bir ilişkili disiplinler dizisine dönüştürüldüğünden daha az değişmiştir. "Bilimsel Hesaplama" demek ve bunu sadece Doğrusal Denklemleri çözmek anlamına gelmek gibidir.

Bahsettiğiniz diller son 20 veya 30 yılda oldukça gelişti. Lisp, Common Lisp ve Clojure'u doğurdu. Prolog, Visual Prolog'u (nesneleri var ...) ve Mercury'yi (Haskell ve Prolog'u aldı, birlikte bir odaya kilitledi ... iyi durun ve koşmaya hazır olun).

AI araştırmasının daha teorik olduğu düşünüldüğünde, pratikliklerden (dillerden) ziyade teoriye (matematik) odaklanması mantıklıdır.

Tüm söylenenler, bahse gireceğim yapay zeka teknolojilerinin en büyük yenilikçisi Google. Python'u tercih etme eğilimindedirler (ve Go ve Dart, ama bu noktanın yanında). Bu yüzden Python'un "son tercih edilen dil" olduğunu söyleyebilirim, ancak Haskell veya OCaml veya F # veya C # ve hatta Java'yı da kullanabilirsiniz.


+1 Merkür'den bahsettiği için.
Guy Coder

8

Alman AI dergisinin KI - Künstliche Intelligenz , Cilt 26, Sayı 1 / Şubat 2012, Springer tarafından yayınlanan yakın tarihli bir özel sayı olan “Sprachen der KI” (“AI Dilleri”) içinde sorularınızın cevaplarını bulabilirsiniz . İçinde yer alan bir tartışma belgesinin bir bölümünün ortak yazarıyım: “AI Programlarınızı Oluşturmak İçin Hangi Dili Kullanıyorsunuz ve Neden?” İşte bir ön baskısı: http://ai.cs.unibas.ch/papers/schmid-et-al-kijournal2012.pdf

Özetle, bazı AI araştırmacıları hala klasik AI dilleri Lisp ve Prolog'a yemin ediyorlar. Diğerleri C ++, Java veya Python gibi ana dilleri kullanır. Yine de diğerleri yeni ezoterik programlama dillerini keşfetmeyi sever.

Yapay zeka hakkında özel programlama dilleri gerektiren özel bir şey olmadığına inanıyorum. Genel olarak araştırmacıların istediği, hızlı prototiplemeye izin veren dilleri programlama. Bu eski AI dillerinin (Lisp, Prolog) ve daha yeni “betik” dillerinin (Perl, Python, Ruby veya Clojure gibi yeni JVM dillerinin) mükemmel olduğu bir şeydir.

Bazı araştırmacılar prototiplemenin ötesine geçmek ister veya özel gereksinimleri vardır (örneğin büyük veriler) ve keşif programlama aşaması bittiğinde ve bir, daha iyi kavrama. Bazıları bu noktada (sorun iyi anlaşıldığında) artık AI ile uğraşmadığınızı söyleyebilir.

Son sorunuza geri dönersek, farkında olduğum yeni AI dillerindeki tüm önemli gelişmeler, kısıtlamaya dayalı programlamadan ilham alıyor. Bazıları SICStus ve SWI gibi Prolog uygulamalarına girerken, diğerleri Mercury ve Mozart / Oz gibi Prolog benzeri diller üretti. Tabii ki farkında olmadığım önemli yeni gelişmeler olacak.


2

Bu cevapların çoğu "dil" kelimesine odaklanırken, sorunuzda kullandığınız için, AI düşünürken belirli bir dil düşünmeniz gerektiğine inanmıyorum.

Yıllardır bu teknoloji ile çalışıyorum ve şu anda Prova Asistanları ile çalışıyorum ve OCaml'den F # 'a bazı kodları dönüştürüyorum. Yapay zekaya ulaşan dil değil, dilde uygulanan belirli algoritmalardır. PROLOG için bu birleşmeye dayalı bir çıkarım motorudur . Şimdi birleşme ile başlar ve yıllar içinde nasıl özelleştirildiğine ve ilerlediğine bakarsanız, aradığınız ilerlemenin ilerlemesini bulacağınızı düşünüyorum. Dile odaklanmayın, algoritmalara odaklanın.

Örnek olarak, işlevsel dillerdeki tür çıkarımları birleşmeye dayanan Hindley-Milner kullanır .

Prova asistanına özgü başka bir örnek burada , prolog.ml dosyasına bakın. Prolog için çıkarsama motoru OCaml'de uygulanır ve F # 'a çevrilir. Bu nedenle OCaml ve F # normal olarak AI dilleri olarak belirtilmezken, AI algoritmalarını tam olarak uygulayabilirler.


Tam olarak bu soru hakkında düşündüğüm şey olduğunu söylemeliyim: Algoritmalar bunları yazmak için kullandığınız dilden daha önemlidir, bu yüzden okuduğum her AI kitabı algoritmalar için sahte kod vermekte ısrar etti.
JJP

1

Yapay zeka ile ne demek istediğine bağlı olduğunu söyleyebilirim. Genel olarak makine öğrenimi, takımlamanın hızlı bir şekilde evrim geçirdiğini, bu nedenle Python, C #, Ruby, OCaml ve Java, sadece birkaç isim.

Öneri motorları, işbirlikçi filtreleme veya diğer denetimsiz veya denetimli öğrenme sorunları gibi şeyleri oluşturmak için verilerin büyük ölçüde manipülasyonunu yapıyorsanız, Mahir'e bir göz atmak isteyebilirsiniz . Aslında bir "programlama dili" değil, ama bu tür bir sorun için bir dizi araç. Model kodunu Java dilinde veya groovy (dinamik, makul ifade edici bir dil) veya clojure (lisp benzeri) gibi diğer JVM dillerinde yazabilirsiniz.

Lisp'i neden tarihli olarak değerlendireceğinizden emin değilim; diğer dillerdeki (kapaklar vb.) "yeni" dil özelliklerinin çoğunun kaynağı budur.

Elbette, makine öğrenme teknikleri genellikle erken AI çabalarının başladığı ikili mantık, karar ağacı tarzı yaklaşımından daha olasılıklı modellere doğru ilerlemektedir, bu nedenle makine öğreniminin büyük çadırdan bir dal veya saptırma olduğunu iddia etmek mümkündür. AI.


0

Yıllar önce kullandığım yapay zeka için tercih edilen dil, Delphi'de olduğu gibi IDE ile birlikte gelen Visual Prolog sürümü olan Prolog'du .

Prolog (ve GUI sürümü Visual Prolog) yapay zeka ve hesaplama dilbilimi ile ilişkili genel amaçlı bir mantık programlama dilidir.

Ancak, son trend C #, Java, Python, Haskell, vb. Gibi OOP dillerinin AI uygulamaları için programlanabilir hale geldiğini göstermektedir.


3
Haskell OOP ne zamandan beri?
Andrea

Haskell'de OOP taklit edebilirsin, değil mi?
Yusubov

1
herhangi bir dilde taklit edebilirsiniz, normalde herhangi bir dili OO
jk
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.