Lisp und Prolog für künstliche Intelligenz?
Nun, da habe ich eine Klasse vor 3 Jahren in A. I. im eindeutig kompetent genug, diese Frage zu stellen......nur ein Scherz, nur ein Scherz 😉
aber im ernst, was ist es über diese Sprachen, die machen Sie so beliebt für A. I.-Forschung. Obwohl A. I. ist die Forschung zu "alt"...es kam wohl den längsten Weg in den letzten 5-10 Jahren, wie es scheint....
Ist es, weil die Sprachen waren etwas "entworfen", um das Konzept von A. I. , oder einfach nur, dass wir nichts wirklich besser jetzt?
Ich Frage dies, weil ich fand es schon immer sehr interessant, und ich bin nur bisschen neugierig. Wenn ich völlig falsch, und Sie verwenden unterschiedliche Sprachen, ich würde gerne wissen, was alle, die Sie verwenden. Ich meine, ich kann verstehen, prolog, vor allem mit Fühlenden/Aussagenlogik-Logik und Fuzzy-Logik. aber ich verstehe nicht, "Warum" wir verwenden würden, Lisp...und noch was anderes A. I.-Forscher verwenden würden, zu tun, machine learning, etc.
Alle Artikel/Bücher zum Thema ist auch hilfreich 🙂
InformationsquelleAutor der Frage | 2011-03-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kann nicht wirklich sprechen, Prolog, aber hier ist der Grund, warum Lisp:
Lisp ist eine homoiconic Sprache, was bedeutet, dass der code ausgedrückt wird, in der gleichen form (s-Ausdrücke) als Daten-Strukturen in der Sprache. also "code data". Dies hat große Vorteile, wenn Sie code schreiben, das ändert/manipuliert anderen code, z.B. genetische algorithmen oder symbolischen manipulation.
Lisp-makro-system macht es gut geeignet für die Definition von problem-spezifischen DSLs. Die meisten Lisp-Entwickler effektiv erweitern die Sprache" zu tun, was Sie brauchen. Wieder die Tatsache, dass Lisp ist homoiconic hilft hier enorm.
Gibt es einige historische Verbindung, in die Lisp populär wurde etwa zur gleichen Zeit wie viele der frühen KI-Forschung. Einige interessante Fakten in diesem thread.
Lisp funktioniert sehr gut als eine funktionale Programmiersprache. Dies ist durchaus eine gute domain fit für AI (wo Sie oft nur versuchen, um die Maschine zu lernen, wie man produzieren die korrekte Ausgabe für eine bestimmte Eingabe).
Subjektive Sicht: Lisp scheint die Menschen ansprechen, mit mathematischer Denkweise, was passiert, um genau zu sein, macht Sie für viele moderne AI..... dies ist möglich aufgrund der Tatsache, dass Lisp ist ziemlich eng mit der nicht typisierte lambda-Kalkül
Ich bin dabei einige AI/machine learning im moment arbeiten, und wählte Clojure (einem modernen Lisp auf der JVM) ziemlich viel für den oben genannten Gründen.
InformationsquelleAutor der Antwort mikera
Die Frage bereits beantwortet wurde für Lisp, also werde ich einfach kommentieren Prolog.
Prolog war für zwei Dinge: Verarbeitung natürlicher Sprache und logisches denken. In der GOFAI Paradigma der frühen 1970er Jahre, als der Prolog erfunden wurde, bedeutete dies:
Prolog ist sehr gut und wird in den ISS für genau solch eine Aufgabe. Der Ansatz kam in Verruf, obwohl, weil
Erst in jüngster NLP-Forscher entwickelt etwas praktische kombinierte symbolisch-statistische Ansätze, manchmal mit Prolog. Der rest der Welt verwendet Java, C++ oder Python, für die Sie leichter finden können Bibliotheken, Werkzeuge und nicht-PhD-Programmierer. Die Tatsache, dass I/O und rechnen sind unhandlich im Prolog nicht helfen, seine Akzeptanz.
Prolog ist jetzt meist beschränkt auf Domänen-spezifische Anwendungen mit NLP und constraint reasoning, wo es scheint, tarif ganz gut. Noch wenige software-Firmen werben mit "built auf Prolog-Technologie" da die Sprache bekam einen schlechten Ruf für die nicht Leben bis zu dem Versprechen, "dass AI einfach."
(Ich möchte hinzufügen, dass ich bin ein großer fan von Prolog, aber auch ich verwenden Sie nur für prototyping.)
InformationsquelleAutor der Antwort
Lisp hatte dann ein Vorteil, wenn wir glaubten, AI-war, symbol-manipulation und Dinge wie Ontologien.
Der Prolog hatte dann ein Vorteil, wenn wir glaubten, dass wir AI als Logik, und die Einigung war die schwierige operation.
Aber weder diese bieten keinen Vorteil für die aktuellen Anwärter für "AI":
Statistische AI ist über sparse-arrays.
Neuronale Netzwerke aller Art, einschließlich Tiefe lernen, ist über die Ozeane der angeschlossenen Knoten mit links.
Modell-Freie Methoden (viele Arten von maschinellen Lernverfahren, evolutionäre Methoden, etc.) sind auch sehr einfach. Die Komplexität ist im entstehen Begriffen, so dass Sie nicht haben, um über sorgen es. Schreiben Sie eine einfache Basis, die lernen können, was es braucht, zu lernen.
In beiden Fällen, die Allgemeine Sprache zu tun. Argumente können auch gemacht werden, dass die meisten Neuronalen Netzwerk-Ansätze sind so einfach, dass C++ wäre übertrieben.
Verwenden Sie die Sprache, können Sie die meisten ganz einfach mieten die besten Programmierer für die Aufgabe.
InformationsquelleAutor der Antwort Monica Anderson
Gibt es schon einige gute und informative Antworten hier, aber der Punkt von Lisp und Prolog hat es entweder übersehen, marginalisiert, oder nicht genug betont werden.
Lisp und dann später Prolog entstanden in einer Zeit, in der die wichtigsten KI-Forschung drehte sich um die symbolische Verarbeitung. Ein einfaches Beispiel für die symbolische Verarbeitung ist, wie wir Menschen tun, algebra, Kalkül, oder Integrale von hand. Wir symbolisch manipulieren Variablen und Konstanten abzuleiten, gleichwertige Beziehungen. Lisp und Prolog wurden für diesen Zweck konzipiert.
Symbolische manipulation ist nicht trivial implementiert in C++ oder Java, für die Sie nicht entwickelt wurden, die mit diesem Zweck im Sinn. Aber C++, Java oder ähnlichen Sprachen können buzzword-Sprachen, die im KI, weil heutzutage inzwischen gibt es mehrere Variationen der KI-Forschung, die nicht mit symbolischen Verarbeitung.
Eine form der KI, die sich mit Hilfe von statistischen Methoden als Grundlage der Erkenntnis und erfordert dies viel schlanker Sprachen zu reduzieren Rechenzeit. Auch viele so genannte KI-Systeme sind nichts anderes als spezialisierte Systeme dienen einer bestimmten Nische Zwecke. Natürlich sind diese Systeme am besten programmiert, die in einem nicht-Lisp/Prolog-Sprache, und verlassen sich weniger auf die 'Argumentation' oder common-sense knowledge acquisition und mehr auf die Verarbeitung von Daten-Eingänge.
Sogar Watson (der programmiert wird in Java, C++ und ein wenig Prolog) ist wohl ein hoch spezialisiertes system. Es scheint Watson entworfen wurde, um zu erwerben, eine große Menge von Fakten, wobei es dann sortiert durch diese Tatsachen mit Hilfe von ausgefeilten Suchalgorithmen (nicht sicher, ob und IBM würde sich wahrscheinlich ärgern, die mir sagen, dass). Die Zukunft der KI-Implementierungen wahrscheinlich kombinieren KI-Paradigmen und Umsetzung verschiedener Sprachen für jede spezielle Teil. Auch Lisp und Prolog eines Tages ein comeback.
InformationsquelleAutor der Antwort
Es vielleicht ein.gute Ideen zu erinnern, die Beweggründe für Prolog: Logik für Problemlösung und Argumentation zu verstehen, Mensch oder Maschine, wie. Dies ist ein laufendes Projekt, und auch wenn der Prolog ist einer der besten Ergebnis, ist nicht seine Letzte. Wir halten uns für besser Sprachen zur Darstellung von wissen. Überprüfen Sie die neueste Buch von Bob Kowalski: wie künstlich intelligente.
InformationsquelleAutor der Antwort Jacinto Davila
Yann LeCun entwickelt Üppige aka LISP-Universal Shell. Er wurde auch Direktor der KI-Forschung bei einem social media Netzwerk vor kurzem.
Ich denke, Sie wissen bereits Künstliche Intelligenz: Ein Moderner Ansatz
Es ist die am meisten gelesene Buch Einführung für KI an Universitäten.
InformationsquelleAutor der Antwort