Archiv

Algorithmen im Alltag (9/12)
Der Lernbereite

Komplette Autos zusammenschrauben oder pflegebedürftige Senioren betreuen: Clevere Maschinen sollen Menschen komplizierte Arbeiten abnehmen. Das ist eines der großen Versprechen im Bereich der Künstlichen Intelligenz. Doch dazu muss die Maschine lernen, sich selbst zu verbessern.

Von Piotr Heller |
Grafische Darstellung für den Beitrag "Der Lernbereite" aus der "Reihe Algorithmen im Alltag"
Nicht nur alles vorgeben, auch selbst entwickeln lassen: Roboter können selbstständig dazulernen (Hans-Jörg Brehm / epict.de)
Vor einigen Jahren haben Informatiker um Professor Jan Peters von der Technischen Universität Darmstadt einer Roboterhand beigebracht, nach Gegenständen zu greifen. Doch eines Tages nutzte die Maschine plötzlich Grifftechniken, die sich die Forscher nicht erklären konnten.
"Ein Griff, den wir durchaus mal gesehen haben in dem Zusammenhang ist der, wo der Roboter seinen Hand komplett um das Objekt wölbt. Etwas, was wir ihm nie in der Form gezeigt haben. Was war passiert? Eigentlich was ganz, ganz Einfaches: Der Roboter hatte sich einen Finger gebrochen."
Diese Geschichte vom Roboter, der sich den Finger bricht und trotzdem tapfer nach Objekten greift, zeigt etwas Besonderes: Hätte man der Maschine von Hand einprogrammiert, wie genau sie ein Objekt zu greifen hat, wäre sie mit dem kaputten Finger wahrscheinlich gescheitert. Wenn sie das Greifen aber selbst lernt, kann sie auf neue, unerwartete Bedingungen reagieren und die Aufgabe erfüllen. Doch wie lernt ein Roboter überhaupt? Der KI-Experte Jan Peters startet ein Video.
"Was Sie hier sehen, ist ein wunderschönes Beispiel, wo wir einem Roboter eine neue Aufgabe beigebracht haben. Diese Aufgabe ist ein Kinderspiel, nennt sich Ball in the Cup. Das ist ein Ball an einer Schnur, der ist an einem Becher unten fest gemacht. Indem man den Becher bewegt, muss man diesem Ball genügend Geschwindigkeit geben, dass er nach oben fliegt und ihn dann einfangen."
Der Becher ist an einem Roboterarm befestigt. Zunächst nimmt eine Person den Roboter sozusagen an die Hand und führt die Bewegung für ihn aus. Der Ball landet im Becher. Jetzt ist die Maschine alleine dran. "Er schafft es aber nicht, die Demonstration des Menschen zu reproduzieren."
Beim ersten Versuch geht der Ball daneben. Also beginnt der Roboter zu üben.
Input
"Was wir haben ist, dass der Roboter in einem Zustand ist. Und dieser Zustand sind die Gelenke des Roboters, die Gelenkwinkel und die Gelenkgeschwindigkeiten. Der zweite Zustand des Roboters ist der externe Zustand, den er durch die Kameras wahrnimmt. Das ist die Position und die Geschwindigkeit des kleinen Balls."
Aus diesen Eingangsdaten muss er irgendwie berechnen, was er tun muss, um den Ball in den Becher zu bekommen.
Output
"Und was wir haben möchten, sind die Aktionen. Und die Aktionen sind die Kräfte, die wir mit den Motoren produzieren." Weil er es nicht besser weiß, imitiert der Roboter den Menschen erstmal so gut er kann, indem er den vorgeführten Bewegungsablauf nachmacht.
"Und bei der Imitation sehen wir, welche Kräfte der Mensch verwendet, um diese Trajektorie durchzuführen. Daraus ergibt sich für uns eine große Tabelle, welche vom Zustand des Roboters auf die Aktionen des Roboters das mappt. Man muss sich das wirklich vorstellen, als hätte der Computer ein großes Telefonbuch und würde nachschauen: Aktueller Zustand ist der und der, jetzt sollte ich die Aktion nehmen. Leider ist es so: Der Lehrer ist imperfekt und der Lehrer ist verschieden vom Roboter und kann nicht alles zeigen. Daher braucht der Roboter Selbstverbesserung."
Hier beginnt das eigentliche Lernen. Man könnte sagen, dass der Roboter am Anfang eine bestimmte Art von Telefonbuch bekommen hat und dessen Einträge nun anpasst. Bei der Selbstverbesserung bekommt der Roboter sozusagen Schulnoten: Je näher er den Ball an den Becher bekommt, desto besser die Note. Dass Einzige, was er jetzt noch von außen vorgegeben bekommt, ist die Aufgabe, seine Note zu verbessern.
"Während der Selbstverbessung, des reinforcement learnings, probiert der Roboter dann Aktionen aus. Und der nimmt natürlich Aktionen, die ähnlich sind zu denen, die er bereits gesehen hat, aber er fügt eine gewisse Menge an Exploration hinzu. Er macht etwas, das bewusst anders ist, um zu sehen, ob er was Schlechteres oder Besseres davon bekommt, ob seine Schulnoten steigen oder fallen, indem er die Sachen leicht anders macht."
Performance
"Und er wird immer besser und ungefähr nach 40 Versuchen schafft er es auch, diesen Ball in den Becher rein zu kriegen. Nach 90 Versuchen wird er perfekt. Und wir hatten ihn an einem ‚Tag der offenen Tür‘ den ganzen Tag laufen - er hat nicht einen Fehler an diesem Tag gemacht."
Natürlich ist dieser Roboter ein Studienobjekt, an dem Jan Peters diese Art des Lernens erforscht. Keiner braucht eine Maschine, die ein Kinderspiel beherrscht. Aber mit diesem Wissen haben die Rechenzentren bei Google zum Beispiel selbst gelernt, sich effizient zu kühlen und Siemens hat Fräsmaschinen beigebracht, sich eigenständig zu kalibrieren. In Zukunft könnte man damit noch viel mehr Roboter in der Industrie verbessern. Oder solche, die sich um Menschen kümmern. Nicht unbedingt in der Pflege, sondern als Trainingsgerät in der Rehabilitation.
"Jetzt stellen Sie sich vor, wir würden das mit unseren Lernverfahren machen und die würden sich immer an den Menschen anpassen und den Trainingserfolg des Menschen maximieren, als ihre eigentliche Schulnote."
Doch irgendwann stoßen die Maschinen natürlich auch an ihre Grenzen, wenn sie alles selbst lernen sollen.
Systemgrenzen
"Beim reinforcement learning ist grundsätzlich schwierig, dass wir alle Sachen auf einem realen System ausprobieren müssen, das heißt, dass sie meistens doch irgendwie aufeinander aufbauen. Das heißt, wir müssen immer längere Sequenzen haben und je komplexer etwas ist, das wir lernen wollen, desto häufiger müssen wir es unter Umständen wiederholen."
So häufig, dass es schlicht zu lange dauern würde, einen Roboter eine so komplexe Aufgabe wie etwa das Aufräumen einer Küche selbst lernen zu lassen. Also muss man der Maschine am Ende doch Vorwissen in irgendeiner Form einprogrammieren. Aber eben viel weniger, als wenn man ihr alles Schritt für Schritt erklären würde.