Wir simulieren uns selbst und scheitern bisher kläglich – Künstliche Intelligenz Teil 2

Im ersten Teil unserer Reise in Richtung Singularity ging es eigentlich nur um Intelligenz und was uns von den meisten Tieren unseren Computern unterscheidet.

<< Zum ersten Teil

Beziehungsweise, die Fähigkeit, Lösungen anhand von Assoziation logisch abzuleiten, aber auch kreative Dinge irgendwie zu erzeugen (schwer zusammenzufassen was beim Zeichnen, Singen oder vor-sich-hinsummen passiert, aber wir meinen DAS). Je nach Definition ist sicherlich anfechtbar, dass solche Dinge mit Intelligenz zu tun haben müssen, aber das setzen wir jetzt einfach mal voraus.

Menschen sind selten außerordentlich Intelligent, wenn sie weder Erfahrungen noch Kommunikationsfähigkeit vorzuweisen haben – Babies sind hier das perfekte Beispiel. Erfahrungsgemäß sind sie nach der Schule auch schlauer. Ein logischer Schluss wäre, dass intelligentes Handeln durch den Akt des “Lernens” irgendwie gefördert wird, und genau über diesen gedanklichen Kurzschluss kommen wir zum folgenden Thema.

Neuronale Netzwerke

Wir entschuldigen uns im Voraus, dass niemand hier in seinem Leben genügend Datenbanken gecruncht oder Matritzen gelöst hat, um neuronale Netzwerke selbst aufzusetzen oder befriedigend anschaulich mitsamt all der Mathematik im Hintergrund erklären zu können, daher sei an dieser Stelle einmal auf diese genial animierte Playlist von Welch Labs hingewiesen, die auf einen relativ greifbaren Beispielcase eingeht:

Neuronale Netzwerke sind der menschliche Versuch, ein hirn-ähnliches, synthetisches Input-Output System zu erschaffen, welches fähig ist, zu lernen. Das wird erreicht, indem man einen Variablen Input durch ein Labyrinth von Möglichkeiten schickt, die einen Output produzieren, und dann über Zeit genau die Möglichkeiten aussucht, die zu dem gewünschten Output geführt haben. In der Fachsprache redet man von Input- und Output-Nodes (Knotenpunkten) und den Verbindungen zwischen ihnen, denen jeweils eine bestimmte Gewichtung zugeordnet wird. Diese Gewichtung ist anpassbar, wodurch das Lernen überhaupt ermöglicht wird, spielt aber eine Rolle in der Ermittlung des Outputs. Hier sieht man die erste Parallele zum Menschen: Unsere Reaktion auf bestimmte Sachverhalte ermittelt sich im Allgemeinen aus unserem bisher in irgendeiner Form Gelernten. Das können umweltliche Einflüsse sein, Schulwissen, Beobachtungen, Erfahrungen, Kultur… etc.
Derzeit stellt man sich das menschliche Gehirn noch als mit genügend Rechenleistung simulierbar vor, obwohl wir von einigen Milliarden Nodes und noch mehr Verbindungen sprechen.

Simpel erklärt ist ein Neuronales Netz die Zwischenstufe zwischen einem mehrdimensionalem Input und einen oder mehreren Outputs, die über diverse Umweltfaktoren und Bedingungen miteinander verknüpft sind. Computer rechnen generell recht einfache, logische Rechenschritte, die ihnen in einer fest vorgegebenen Reihenfolge vorliegen – wir nennen das dann ein “Programm”. Neuronale Netzwerke sind ebenso Programme – die Magie liegt in der Tatsache, dass sie an bestimmten Stellen Entscheidungen treffen, die wir Menschen nicht ohne mehr Information oder die Erlaubnis zur Wahllosigkeit treffen könnten. Über sogenannte Lernverfahren werden die “falschen” oder ungewollten Outputs nach und nach eingeschränkt, was die “Trefferquote” stetig erhöht. Von aussen sieht es dann beispielsweise so aus, als lerne Google gerade, Hunde von Katzen auf Bildern zu unterscheiden.

Was sie können und warum

In der Anwendung sind Neuronale Netzwerke für alle Probleme geeignet, die irgendwie quantifizierbar sind, deren genaue Lösungsalgorithmen wir aber nicht in vertretbarem Zeitaufwand einprogrammieren könnten. Dazu sei gesagt, dass “quantifizierbar” lediglich bedeuten muss, dass das Problem einem Computer zugänglich gemacht wird. Zahlen stellen hier kein Problem dar, Texte erkennt ein Computer generell aus Buchstabencodes, und Bilder sind ebenso ein Pixelgitter, in dem jedem Pixel eine Farbe mit mindestens 3 Werten zwischen 0 und 255 annimmt.

Wenn wir beim Beispiel Bilderkennung bleiben stellt jeder einzelne Pixel also ein Array Attribute dar, bestehend aus den RGB(Rot, Grün, Blau)-Werten und der X,Y Koordinate. Bei 100×100 Pixeln also eine Matrix aus 50.000 Inputs in einer bestimmten Reihenfolge. Aus diesen 50.000 Inputs soll im simpelsten Fall ein ja oder nein abgeleitet werden. Gut angelernte Netzwerke “erkennen” sogar schon Inhalte. Wie passiert das nun allerdings?

Um ein Neuronales Netzwerk zu “initiieren” werden die Verbindungen zwischen den Nodes beispielsweise zufällig verteilt, sofern die Anzahl der Inputs hoch genug ist, dass ein manuelles Einpflegen viel zu aufwändig wäre.
Danach bedient man sich einer zielgerichteten Trainingsmethode. Neuronale Netzwerke trainiert man, indem man sowohl Input als auch Output vorgibt, die verbindenen Nodes und die Gewichtung ihrer Verbindungen notiert und sie gezielt verstärkt. In der Praxis zeigt man beispielsweise 70 Millionen Bilder von Vögeln, und gibt die Antwort “Vogel” bereits vor. In diesem speziellen Fall wurde mithilfe von Crowdsourcing sogar die Vogelart ergänzt; die Leistungsfähigkeit des Algorithmus lässt sich durch die Hilfsfunktionen erklären. Hier werden Schnabel, Schwanzspitze und Flügelende nochmals einzeln durch den Menschen definiert und dem Computer als zusätzlicher Hilfs-Input geliefert.

Ein weiteres Beispiel ist das Neurale Netzwerk “MarI/O” aus dem Video am Ende des ersten Teils, und am Anfang dieses Beitrags. MarI/O ist eine Software, die sich selbst ein komplettes Level Super Mario World beibringt. Der Input sind hierbei alle sichtbaren “Tiles” auf dem Bildschirm, und die Aufteilung nach deren Art. So gibt es Boden-Tiles zum Laufen, Luft-Tiles die man einfach durchlaufen kann, und Gefahren-Tiles wie Gegner, denen es auszuweichen gilt.
MarI/Os Output ist in jedem “Frame”, also in jeder errechneten Situationsinstanz (man könnte vereinfacht sagen jedes vierundzwanzigstel einer Sekunde) eine bestimmte Tastenkombination – so sieht man in einer der ersten fortschrittlicheren Generationen eine Rechtsbewegung bei Boden-Tiles direkt unter Mario, und einen Drehsprung (A) bei Gegnern rechts oben von ihm, was unverzüglich dazu führt, dass er auf einer Plattform feststeckt, weil vor ihm kein Boden mehr ist.

Hier wird das Training nicht über vorgegebene Outputs realisiert, sondern über eine sogenannte “Fitness-Funktion” oder “Reward-Funktion” umgesetzt. MarI/O verbessert sich im Gegensatz zu Bird Photo ID selbst anhand einer Punktzahl – diese wird vorher vom Programmierer der KI selbst definiert. In diesem konkreten Fall kann man erkennen, dass die Fitness einer Konfiguration mit fortschreitender Zeit abnimmt, mit jedem Schritt in Richtung Levelende jedoch zunimmt, und der Test beendet ist sofern Mario stirbt oder das Level erfolgreich beendet.

MarI/O iniitiert nun ein zufälliges Muster und schaut nach der Performance im tatsächlichen Level. Die zwei besten Spezies jeder Generation werden kombiniert und zu einer neuen Generation, hier und dort werden zufällige Mutationen (kleinere Änderungen) eingestreut. MarI/O ist ein Optimierungs-Netzwerk, das nach 24 Generationen ein Level mit unmenschlicher Perfektion speedrunnen konnte.

Was sie nicht können und warum nicht

Und genau hier liegt die Krux: MarI/O ist für jedes neue Level potenziell dazu verdammt, einen komplett neuen Algorithmus zu finden. Zufällig mögen gewisse Levels funktionieren, aber generell sucht man nur nach einem zufällig passenden Output für einen gegebenen Input, mit dem man dann vorgegebene Ziele nach Menscheneinschätzung erfüllt (Level complete, Vogel erkannt etc.).

Dies führt uns wieder zur Erkenntnis, dass ein Neuronales Netzwerk nicht wirklich von sich aus “lernt”, hierfür ist eine Big Data Analysefunktion im Hintergrund als Mindestvoraussetzung nötig, ein globaler und stetiger Input hilfreich, und menschliche Zielsetzung und stichprobenartige Korrektur dringend erforderlich.

Von künstlicher Intelligenz können wir allerdings nicht reden. Irgendetwas scheint zu fehlen, was wir in all den Jahren Hirnforschung bisher übersehen haben.

In Teil 3 der Reihe reden wir über den aktuellen Stand der Hirnsimulation, Quantencomputing und den Ausblick für die nahe und ferne Zukunft.