Alte und neue Künstliche Intelligenz im Vergleich


Künstliche Intelligenz beschreibt sowohl in deutsch als auch im englischen Begriff vor allem die akademische künstliche Intelligenz. Dabei wird nach dem Vorbild des menschlichen Gehirns Intelligenz mit Hilfe von Computern nachgebildet. Typisches Beispiel hierfür sind neuronale Netze. Welche sich so 1:1 auch bei biologischen Lebewesen finden und sich leicht in Software emulieren lassen. Aber auch kognitive Modelle (wie z.B. das ACT-R Modell von dem man annimmt, dass es beim menschlichen Denken Verwendung findet) werden als Software auf einem Computer nachgebaut. Diese GOFAI ist biologisch motiviert und unterstellt, dass das menschliche Denken allein im Gehirn stattfindet und nirgendwo sonst, und das deshalb auch das Gehirn der Schlüssel wäre um das Denken zu verstehen. Als Grundlagendisziplinen die der Computerprogrammierung vorgeschaltet sind, werden demzufolge Kognitionswissenschaft (Psychologie) und Neurowissenschaften (Biologie) verwendet. Flankiert wird das ganze durch einen mathematischen Algorithmusbegriff gemäß Ray Solomonoff. Diese Mischung aus neuronalen Netzen, kognitiven Architekturen und computational Strong AI war von 1950-1990 die Grundlage für die Erforschung von Künstlicher Intelligenz.

Um jedoch diese alte KI-Forschung richtig zu verstehen, muss man sich vor allem mit ihrem Scheitern, dem KI-Winter auseinandersetzen und wie es dazu kommen konnte. Im Grunde hätte der KI-Winter niemals auftreten dürfen, denn die Wissenschaft ist sich sicher darin, dass menschliches Denken im Gehirn stattfindet und sie ist sich sicher, über Psychologische Modelle das Denken beschreiben zu können. Folglich wird man bei der Realisierung solcher Modelle auf einem Computer ebenfalls ein Bewusstsein erhalten. Warum ist genau das nicht passiert? Zunächst einmal grenzt es fast an Ketzerei diese Frage überhaupt zu stellen. Heißt es doch sich einmal sachlich mit neuronalen Netzen und ähnlichen Versuchen auseinanderzusetzen, das menschliche Denken nachzubilden. Und an genau dieser Stelle mussten selbst ihre größten Optimisten einräumen, dass sie nicht die erhofften Leistungen erbrachten. Egal ob man das Perzeptron nun mit 100, 1000 oder sogar noch mehr Neuronen betrieben, angefangen zu denken hat es zu keinem Zeitpunkt. Und auch Expertensysteme funktionierten anders als man sich das erhofft hatte. Was war passiert? Der Grundfehler der von 1950-1990 gemacht wurde bestand darin, künstliche Intelligenz an die Naturwissenschaft zu koppeln, also an jene Grundlagenfächer die das menschliche Denken erforschen:
– Psychologie/Kognitionswissenschaft
– Neurowissenschaft
– Mathematik, Stochastik

Warum das getan wurde ist rückblickend simpel zu verstehen: man glaubte damit eine solide Basis zu besitzen, von der aus man sich in die Untiefen der Computerprogrammierung vorwagen könnte. Und so das ganze auf eine formale wissenschaftliche Grundlage stellen zu können. Man glaubte, es würde ausreichen den Algorithmusbegriff von Alan Turing, das Kognitionsmodell von Sigmund Freund und Erkenntnisse aus der Neurobiologie zu verwenden um damit denkende Maschinen zu entwickeln.

Wie man dabei Intelligenz nach oben skalieren wollte, kann man am einfachsten mit dem Begriff der „computational Strong AI“ beschrieben werden. Die Idee bestand darin, dass man die Rechenleistung eines Computers (also Gigaflops je Sekunde) dazu verwenden könne, um ein mathematisches Optimierungsproblem zu lösen. Hat man die Fehlerfunktion erstmal minimiert — so lautete die Vorstellung — würde die Maschine von alleine anfangen zu sprechen, Bilder erkennen oder sonstwie intelligentes Verhalten zeigen. Gestützt wurde diese Annahme durch einen formalisierten Algorithmusbegriff den Kolmogoroff vorgegeben hat, wonach es möglich wäre Computerprogramme als Lösungsraum zu betrachten.

Im Laufe der Zeit hat man erkannt, dass auch mit schnellerer Hardware und mehr Durchläufen des selben Optimierungsalgorithmus sich die Performance der Algorithmen nicht weiter erhöhte und das führte dann zu der bitteren Erkenntniss dass sich die gesammte KI-Forschung in einer Sackgasse befindet. Was ist die Alternative dazu? Die Alternative dazu besteht darin, nochmal ganz neu von unten anzufangen. Zur Verfügung steht einerseits ein Computer und zum zweiten ein Problem das zu lösen ist. Damit der Computer das Problem lösen kann, benötigt er ein Programm. Das Vorhandenseins eines solchen Programms entscheidet über Sieg oder Niederlage. Und genau an dieser Stelle hat die GOFAI versagt: sie hat nicht untersucht, wie man zum Programmcode gelangt. Sie hat geglaubt, dass Softwareengineering nichts mit Künstlicher Intelligenz zu tun hätte. Sie hat geglaubt, dass die Wahl der richtigen Programmiersprache oder des richtigen Editors unwichtig währen.

Man kann sagen, von 1950-1990 wurde Softwareengineering in seiner Bedeutung unterschätzt und es wurde auch nicht als richtige Wissenschaft verstanden, sondern als Zuarbeit für die eigentliche Informatik. Spätestens seit der Nouvelle AI ab den 1990 hat sich das Blatt geändert. Heute ist es genau umgedreht, dass Softwareengineering alles ist, während die klassischen Naturwissenschaften (Neurobiologie, Psychologie, Mathematik) unwichtig geworden sind. Interessant ist ferner, dass sämtlichen erfolgreiche Implementierungen von Künstlicher Intelligenz (zu nennen sind hier Schachprogramme, autonomes Fahren, Suchmaschinen etc) nicht dem menschlichen Denken nachempfunden sind. Für eine Schachsoftware gibt es beispielsweise weder in den Neurowissenschaften noch in den Kognitionswissenschaften eine Entsprechung, sondern eine Schach-Engine ist etwas komplett eigenständiges. Sie ist allenfalls mit anderen Computerprogrammen verwandt wie z.B. einem Betriebssystem oder einem Computerspiel.

ZUKUNFT
Die Zukunft der Künstlichen Intelligenz besteht darin, dass man konsequent auf Softwareengineering setzt. Das ist die einzige Methode, die beweisbar zu Sourcecode führt, der ein konkretes Problem lösen kann. Nicht immer fehlerfrei und ganz bestimmt nicht ohne Hindernisse aber im Großen und ganzen doch mit erstaunlichen Resultaten. Die spannende Frage lautet, wie man Softwareengineering möglicherweise effizienter durchführen kann. Also den Prozess der Softwareerstellung beschleunigen. Eine Möglichkeit dazu besteht darin, die Ergebnisse von Künstlicher Intelligenz Forschung selbst wiederum auf den Softwareentwicklungsprozess anzuwenden. Konkret dadurch, dass man die Bugtracker-Datenbanken von Jira oder Bugzilla mit Hilfe von komplexen Visualisierungstools auswertet oder noch besser, indem man „natural language processing“ anwendet um Bugreports automatisch zu klassifizieren und zu bearbeiten. Vorstellbar wäre beispielsweise ein Chatbot der nicht etwa Jeopardy Fragen beantwortet, sondern der zum Beantworten von Stackoverflow Fragen herangezogen wird.

In Ansätzen sind solche Versuche heute bereits im Einsatz. Beispielsweise besteht die Eclipse IDE aus leistungsfähigen On-the-fly Syntaxcheckern auf die niemand mehr verzichten möchte. Und das Plugin Findbugs ist sogar in der Lage häufige Fehlerquellen bereits im Vorfeld aufzuspüren.

PROGRAMMIERSPRACHEN
Die Entwicklung der GOFAI hängt stark mit der Entwicklung der Programmiersprachen zusammen und dem zweigeteilten Blick auf diese. Programmiersprachen gibt es schon seit es Computer gibt. Zuerst wurde in Assembler programmiert, später in C und C++. Und zu praktisch jedem Zeitpunkt war Programmieren eine äußerst unproduktive Tätigkeit. Selbst Experten sind nicht in der Lage, so schnell zu programmieren wie sie natürliche Texte schreiben können und so hat man relativ schnell erkannt, dass Softwareerstellung der eigentliche Flaschenhals darstellt. Die klassische Künstliche Intelligenz ist entweder explizit oder implizit angetreten um diesem Mangel abzuhelfen. Natürlich dadurch, dass der Computer nicht mehr programmiert werden musste, sondern dass man ihn auf ein höheres Level bringt von wo aus man mit ihm in einer natürlichen Sprache kommunzieren kann. Auch Künstliche neuronale Netze basieren auf dem Versprechen, dass ein alternativer Zugang zur Maschine ermöglicht wird, einer der nicht auf dem Erstellen von Sourcecode besteht. Und dadurch entstand dann eine Gewisse Hochnäsigkeit gegenüber dem Programmieren an sich, man wollte sich nicht länger mit Assembleranweisungen herumärgern, sondern über Topdown ausgehend von mathematischen Theorien der Maschine diktieren wie sie zu denken habe.

Interessant ist auch die Veröffentlichungspraxis zum Thema Künstliche Intelligenz bis 1990. Man findet in den Papern sehr ausführliche Formeln, Tabellen und Schaubilder, nur Sourcecode findet man fast gar keinen. Natürlich weil man damals glaubte, keinen zu benötigen. Denn man hat sich dem Thema ja auf abstrakter Ebene genähert.

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s