Wird Lisp immer noch verwendet, um AI-Probleme anzugehen?

20

Ich weiß, dass die Lisp-Sprache schon früh bei der Arbeit an Problemen mit künstlicher Intelligenz verwendet wurde. Wird es heute noch für bedeutende Arbeiten verwendet? Wenn nicht, gibt es eine neue Sprache, die an ihre Stelle als die am häufigsten verwendete Sprache für die Arbeit in der KI getreten ist?

WilliamKF
quelle

Antworten:

9

Insgesamt lautet die Antwort Nein, aber die aktuellen Paradigmen sind LISP sehr zu verdanken. Die heute am häufigsten verwendete Sprache ist Python.

Relevante Antworten:

LISP leistete Pionierarbeit bei vielen wichtigen Konzepten für das, was wir heute als funktionale Programmierung bezeichnen. Ein Hauptanreiz ist die Nähe der Programme zur Mathematik. Viele dieser Funktionen wurden inzwischen in moderne Sprachen integriert (siehe Wikipedia-Seite)). LISP ist sehr aussagekräftig: Es hat sehr wenig Syntax (nur Listen und einige elementare Operationen), aber Sie können kurze prägnante Programme schreiben, die komplexe Ideen darstellen. Dies überrascht Neulinge und hat es als Sprache für KI verkauft. Dies ist jedoch eine Eigenschaft von Programmen im Allgemeinen. Kurzprogramme können komplexe Konzepte darstellen. Und während Sie in LISP leistungsstarken Code schreiben können, wird Ihnen jeder Anfänger sagen, dass es auch sehr schwierig ist, den LISP-Code anderer zu lesen oder Ihren eigenen LISP-Code zu debuggen. Anfänglich gab es auch Leistungsaspekte bei der funktionalen Programmierung, und es erwies sich als ungünstig, diese durch imperative Sprachen auf niedriger Ebene wie C zu ersetzen ein neues Objekt erstellt werden. Ohne gute Speicherbereinigung, Dies kann unhandlich werden. Heute haben wir gelernt, dass eine Mischung aus funktionaler und zwingender Programmierung erforderlich ist, um guten Code zu schreiben und moderne Sprachen wie Python, Ruby und Scala zu unterstützen. An diesem Punkt, und dies ist nur meine Meinung, gibt es keinen Grund, LISP Python vorzuziehen.

Das Paradigma für die KI, das derzeit die meiste Aufmerksamkeit erhält, ist das maschinelle Lernen, bei dem wir aus Daten lernen, im Gegensatz zu früheren Ansätzen wie Expertensystemen (in den 80er Jahren), bei denen Experten Regeln für die KI aufstellten. Python ist derzeit die am häufigsten verwendete Sprache für maschinelles Lernen und verfügt über viele Bibliotheken, z. B. Tensorflow und Pytorch, sowie eine aktive Community. Um die enormen Datenmengen verarbeiten zu können, benötigen wir Systeme wie Hadoop, Hive oder Spark. Code für diese ist in Python, Java oder Scala geschrieben. Häufig werden die zeitintensiven Kernunterprogramme in C geschrieben.

Der KI-Winter der 80er Jahre war nicht, weil wir nicht die richtige Sprache hatten, sondern weil wir nicht die richtigen Algorithmen, genügend Rechenleistung und genügend Daten hatten. Wenn Sie versuchen, KI zu lernen, sollten Sie sich mit Algorithmen und nicht mit Sprachen befassen.

Hart
quelle
6

Ich benutze Lisp definitiv weiterhin oft, wenn ich an AI-Modellen arbeite.

Sie haben gefragt, ob es für umfangreiche Arbeiten verwendet wird. Das ist zu subjektiv für mich, um auf meine eigene Arbeit zu antworten, aber ich habe eines meiner KI-Modelle gefragt, ob es sich für wesentlich hält oder nicht, und es hat mit einer positiven Antwort geantwortet. Natürlich ist auch die Reaktion voreingenommen.

Insgesamt wird in Lisp ein erheblicher Teil der KI-Forschung und -Entwicklung durchgeführt. Darüber hinaus wird Lisp manchmal auch für Nicht-AI-Probleme verwendet. Um die Leistungsfähigkeit von Lisp zu demonstrieren, habe ich vor über einem Vierteljahrhundert das erste vollständig in Lisp geschriebene neuronale Netzwerksimulationssystem entwickelt.

RockPaperLizard
quelle
Die erste IDE war auch eine LISP-IDE. EMMAScript, die Formalisierung von JavaScript, ist ein weitaus besseres Sprachsystem für Rapid Prototyping als das derzeit angesagte Python und ähnelt eher LISP als Java. Ich sehe nicht viel von dem anhaltenden Wert, der vom gegenwärtigen Trend der ML ausgeht, abgesehen von Fortschritten in der maschinellen Bildverarbeitung und beim Hören. Ich bin damit einverstanden, dass LISP immer noch eine ausgezeichnete Sprache für KI-Laborarbeiten ist und viel natürlicher als XML für die Darstellung strukturierter Daten ist.
FauChristian
4

LISP wird immer noch in erheblichem Umfang verwendet, jedoch immer weniger. Es gibt immer noch eine Dynamik, weil so viele Menschen in der Vergangenheit damit beschäftigt waren, die immer noch in der Industrie oder Forschung tätig sind (Anekdote: Der letzte Videorecorder wurde im Juli 2016 von einem japanischen Hersteller hergestellt, ja). Die Sprache wird jedoch (meines Wissens) für die Art von KI verwendet, die das maschinelle Lernen nicht nutzt, typischerweise als Nachschlagewerke von Russell und Norvig. Diese Anwendungen sind immer noch sehr nützlich, aber das maschinelle Lernen wird heutzutage immer beliebter.

Ein weiterer Grund für den Rückgang ist, dass LISP-Praktizierende teilweise zu Clojure und anderen neueren Sprachen gezogen sind.

Wenn Sie etwas über KI-Technologien lernen, ist LISP (oder Schema oder Prolog) eine gute Wahl, um zu verstehen, was mit "KI" im Allgemeinen vor sich geht. Aber wenn Sie möchten oder sehr pragmatisch sein müssen, sind Python oder R die Wahl der Community

Hinweis: Dem obigen Beispiel und der Referenz fehlen konkrete Angaben. Mir sind Arbeiten an Universitäten und einige Unternehmen bekannt, die von LISP inspiriert sind oder LISP direkt nutzen.


Um die Antwort von @ Harsh zu ergänzen, hat LISP (und Scheme und Prolog) Eigenschaften, die es so aussehen ließen, als ob es besser für die Schaffung intelligenter Mechanismen geeignet wäre - nämlich die KI, wie sie in den 60er Jahren wahrgenommen wurde.

Eine der Eigenschaften war, dass das Sprachdesign den Entwickler dazu veranlasste, sehr elegant zu denken, ein großes Problem in kleine Probleme usw. zu zerlegen. Ganz "clever" oder "intelligent", wenn man so will. Im Vergleich zu einigen anderen Sprachen bleibt fast keine andere Wahl, als sich auf diese Weise zu entwickeln. LISP ist eine Listenverarbeitungssprache und "rein funktional".

Ein Problem ist jedoch in der Arbeit im Zusammenhang mit LISP zu sehen. Eine bemerkenswerte in der KI-Domäne ist die Arbeit am Situationskalkül , bei der (kurz) Objekte und Regeln in einer "Welt" beschrieben werden und die sich entwickeln kann, um Situationen zu berechnen - Zustände der Welt. Es ist also ein Modell für das Überlegen von Situationen. Das Hauptproblem heißt Frame-Problem , was bedeutet, dass dieser Kalkül nicht sagen kann, was nichtändern --- nur was ändert sich. Alles, was nicht in der Welt definiert ist, kann nicht verarbeitet werden (beachten Sie hier den Unterschied zu ML). Erste Implementierungen verwendeten LISPs, da dies damals die AI-Sprache war. Und da waren an das Rahmenproblem gebunden. Aber, wie @Harsh bereits erwähnt hat, ist es nicht die Schuld von LISP: Jede Sprache würde mit dem gleichen Rahmenproblem konfrontiert sein (ein konzeptionelles Problem des Situationskalküls).

Die Sprache spielt also aus der AI / AGI / ASI-Perspektive keine Rolle. Auf die Konzepte (Algorithmen usw.) kommt es wirklich an.

Auch beim maschinellen Lernen ist die Sprache nur eine praktische Wahl. Python und R sind heute beliebt, vor allem aufgrund ihres Bibliotheks-Ökosystems und des Fokus wichtiger Unternehmen. Versuchen Sie jedoch, mit Python oder R ein Modell für eine RaspberryPI-basierte Anwendung auszuführen, und Sie werden mit einigen schwerwiegenden Einschränkungen konfrontiert sein (aber dennoch möglich, ich mache es :-)). Die Wahl der Sprache brennt also auf Pragmatismus nieder.

Eric Platon
quelle
1

Meiner Meinung nach haben Python und Java LISP abgelöst. Viele Leute benutzen sie, es gibt eine große Anzahl von Bibliotheken. Und was noch wichtiger ist, sie lassen sich leicht in Webtechnologien integrieren.

dorien
quelle