Denken wie ein Fadenwurm
Wer künstliche Intelligenz effizienter machen will, sollte sich ein recht simples Lebewesen zum Vorbild nehmen.
Als Informatiker schreibe ich Software, die Computer in die Lage versetzt, Muster zu erkennen und selbständig daraus zu lernen. Wir nennen diese Lernfähigkeit deep learning, machine learning oder auch artificial intelligence.
Gemeinsam mit Kollegen am Massachusetts Institute of Technology (MIT) haben wir einen Weg gefunden, diese Methode effizienter zu machen. Unser Vorbild ist dabei das Nervensystem des Fadenwurms Caenorhabditis elegans – und unser System ist in der Lage, Autos und sogar Flugdrohnen zu steuern.
Um Computern halbwegs eigenständiges Denken beizubringen, programmieren Ingenieure seit gut sechzig Jahren sogenannte künstliche neuronale Netzwerke. Das bedeutet: Sie bilden mit der Software die Bausteine eines Gehirns nach. Im Wesentlichen sind das Neuronen – also Nervenzellen – sowie ihre Verknüpfungen, die Synapsen. Mit mathematischen Funktionsanweisungen legen sie fest, wie diese Bestand teile auf Impulse reagieren sollen. Zuletzt füttern sie diese Netzwerke mit Trainingsdaten, also mit einer Sammlung von Beispielen, die zur Schulung des neuronalen Netzwerks dienen.
Das lernende Netzwerk
Ein Beispiel: Das Netzwerk bekommt tausende Bilder von Hunden zu sehen und dazu die Information, welcher Rasse das jeweilige Tier zugerechnet wird. Mit der Zeit lernt so ein Netzwerk sogar einen Deutschen von einem Belgischen Schäferhund zu unterscheiden, obwohl diese Tiere einander sehr ähnlich sind.
Entscheidend ist: Nicht die Ingenieure haben dem Netzwerk gesagt, woran eine bestimmte Hunderasse zu erkennen ist – das Netzwerk selbst hat gelernt, diese Merkmale zu erkennen. Solche neuronalen Netzwerke brauchen allerdings starke Computer und enorme Datenmengen. Um das effizienter zu machen, ließen wir uns vom Hirn des Fadenwurmes inspirieren.
Der vermessene Wurm
Fadenwürmer sind rund einen Millimeter lang, ernähren sich unter anderem von Bakterien, sind transparent und leicht unter Laborbedingungen zu halten. Ihr Nervensystem wurde schon 1986 zum größten Teil vermessen, seit 2019 kennen wir jede der 302 Nervenzellen ihres Nervensystems und ihrer rund 8.000 Synapsen. (Zum Vergleich: Das menschliche Gehirn besteht aus rund 100 Milliarden Neuronen, die über 100 Billionen Synapsen verknüpft sind.)
Ingenieure bilden mit ihrer Software die Nervenzellen und die Synapsen eines Gehirns nach.
Die Fadenwürmer sind also relativ einfach gestrickt. Und doch leisten sie Bemerkenswertes: Sie finden sich in wechselnden Umgebungen zurecht, können selbständig nach Nahrung suchen und zeigen sogar ein rudimentäres Sozialverhalten – zum Schlafen drängeln sie sich dicht aneinander.
Kleine Intelligenzbestien
Und sie können lernen! Wenn ihnen wiederholt Nahrung vorgesetzt wird!– und dies in einer Umgebung mit erhöhter Salzkonzentration –, dann merken sie, dass es hier einen Zusammenhang gibt. Dass ein so simpel gebautes Nervensystem zu solchem assoziativen Lernen fähig ist, fand ich schon erstaunlich.
Doch wie soll so ein Nervensystem künstliche neuronale Netzwerke effizienter und flexibler machen? Der Clou liegt im Zeitgefühl des Fadenwurms. Während Neuronen in künstlichen neuronalen Netzwerken ihre Ausgabe spontan anhand einer einfachen Gewichtung ihrer Eingaben berechnen, ist für echte Neuronen das Zeitverhalten eine wichtige Komponente.
Im Rahmen eines Projekts am MIT wollten wir herausfinden, wie sehr wir ein einfaches neuronales Netzwerk verbessern können, wenn wir ihm das Zeitgefühl des Fadenwurms einprogrammieren. Um diese Frage zu beantworten, haben wir ein mathematisches Modell der Neuronen und Synapsen des Fadenwurms aus der Neurowissenschaft ausgeborgt und so angepasst, dass wir es am Computer für beliebige Anwendungen trainieren können.
Der Wurm im Arbeitsspeicher
Als wir unser Modell mit ähnlichen Ansätzen verglichen, die wir in der Forschungsliteratur fanden, stellte sich heraus: In existierenden künstlichen neuronalen Netzwerken ist die zeitliche Durchlässigkeit der Neuronen fix vorgegeben, in unserem Netzwerk kann sich diese jedoch je nach Situation ändern. Dadurch kann das System auch flexibler reagieren.
Deshalb nennen wir unser System „fluides neuronales Netzwerk“. Um die Software zu testen, haben wir – am Computer – ein Netzwerk aus 19 Neuronen und 253 Synapsen erstellt. Diesem brachten wir bei, ein autonomes Fahrzeug zu steuern, und so einen einfachen Spurhalteassistenten programmiert. Er funktionierte zuverlässig und konnte auch Fahrbahnränder ohne Begrenzungsstreifen erkennen.
Das System war aber sehr mühsam zu trainieren. Als Bremser erwiesen sich die nichtlinearen Differenzialgleichungen im Synapsenmodell, denn die Lösung dieser Gleichungen nimmt viel Rechenzeit in Anspruch.
Griff in die Mathe-Trickkiste
Also haben wir versucht, dieses Gleichungssystem zu optimieren, und bedienten uns dafür eines mathematischen Tricks: Um das autonome Auto zu steuern, benötigen wir nicht die exakte Lösung der Gleichung auf zig Nachkommastellen, sondern es hat sich gezeigt, dass ein ungefährer Wert ausreichend ist.
Mit dieser Erkenntnis im Hinterkopf haben wir eine Formel entwickelt, mit der sich diese ungefähre Lösung effizient berechnen lässt. Wir waren natürlich besorgt über mögliches Fehlverhalten unserer Software. Es stellte sich aber rasch heraus, dass das Gesamtnetzwerk weiterhin zu sehr zuverlässigen Resultaten kam.
Nun ist es nicht allzu anspruchsvoll, ein Fahrzeug in seiner Spur zu halten. Die Software muss lediglich entscheiden, ob sie nach links, nach rechts oder geradeaus steuert. Also haben wir das Programm auf eine Drohne gepackt, die sich im dreidimensionalen Raum bewegen kann. Wir gaben der Drohne den Auftrag, autonom nach einem bestimmten Objekt zu suchen. Dazu verwendeten wir den sogenannten Ende-zu-Ende-Ansatz, indem wir die Drohne zunächst händisch fernsteuerten. Während dieser Flüge speicherten wir alle Steuerungsbefehle und Sensordaten. Diese Daten verwendeten wir in einem zweiten Schritt als Trainingsmaterial.
Das System muss selbständig herausfinden, mit welchem Ziel der Pilot die Drohne gesteuert hat.
Der Vorteil dieses Ansatzes ist, dass wir die Trainingsdaten nicht händisch notieren mussten, stattdessen lernte das Modell selbst aus den Rohdaten. Ein potenzieller Nachteil des Ende-zu-Ende-Ansatzes ist jedoch, dass die Software nur die Rohdaten beobachtet, ohne zu wissen, wie die konkrete Aufgabenstellung aussieht oder welche Rahmenbedingungen herrschen.
Das System muss also selbständig herausfinden, mit welcher Absicht und zu welchem Ziel der Pilot die Drohne gesteuert hat und welchen Objekten er dabei ausgewichen ist. Die Trainingsdaten selbst haben wir auf einem Testgelände in einem Wald gesammelt, als Suchobjekt verwendeten wir einen roten Campingstuhl, der zufällig bereitstand. Nach ein paar Flugstunden hatten wir ausreichend Daten gesammelt. Aus ihnen konnte das System lernen, dass es seine Aufgabe ist, den Sessel zu finden – und unterwegs natürlich den Bäumen auszuweichen.
Probe aufs Exempel
Zu den großen Schwachstellen künstlicher neuronaler Netzwerke gehört, dass sie meist nur in Situationen gut funktionieren, die jenen ähneln, in denen ihre Trainingsdaten gesammelt wurden. Fadenwürmer hingegen kommen mit verschiedensten Situationen zurecht.
Unsere Annahme und Hoffnung war daher, dass unser künstliches Netzwerk auch so flexibel ist. Um dies zu testen, brachten wir die Drohne und den roten Sessel zurück in die Stadt. Diesmal platzierten wir den Sessel auf dem Vorplatz und dem Baseballfeld des MIT. Unsere Software hatte noch nie Häuser, Parkplätze, Straßenlaternen oder ein Baseballfeld „gesehen“. Und doch war sie in der Lage, sämtlichen Hindernissen auszuweichen und den roten Sessel zu finden.
Neue Sinne für die Drohne
Derzeit verarbeitet die Software nur die Bilder aus der bordeigenen Kamera. In einem nächsten Schritt wollen wir ihr beibringen, Informationen aus weiteren Quellen zu verarbeiten. In Zukunft sollte die Software – und damit auch die Drohne – in der Lage sein, auf gesprochene Kommandos zu reagieren.
Ich könnte dann der Drohne zurufen, dass sie jemandem folgen oder ein anderes Objekt suchen soll. Schließlich verfügt auch der Fadenwurm über mehrere Sensorneuronen, die verschiedenste Reize wahrnehmen können. So gibt es unter anderem licht- und berührungsempfindliche Zellen, und es gibt Neuronen, die verschiedene Geruchswahrnehmungen unterscheiden können.
Auch diese Fähigkeit von biologischen neuronalen Netzwerken wollen wir in künftigen Versionen unserer Software simulieren. Ziel ist eine Software, die flexibler und vielseitiger ist als herkömmliche Systeme. Und das Vorbild des kleinen Fadenwurms hilft uns, dieses Ziel zu erreichen.