Freitag, 22.03.2024

Wenn Roboter das tun was wir nicht wollen

Immer wenn von Robotern die Rede ist, denken wir zuerst an humanoide Roboter. Wie uns die Film- und Unterhaltungsindustrie der letzten Jahrzehnte gelehrt hat sind die erstmals da um uns Menschen zu helfen und unterstützen. Natürlich, bis alles schief geht, sie uns angreifen und die Herrschaft über den Planeten übernehmen. Aber ist das wirklich so? Können Roboter Bewusstsein erlangen und sich gegen uns wenden? Wenn du das auch befürchtest, dann lies weiter und erfahre, wie Roboter wirklich denken, welche Gefahren von ungehorsamen Robotern ausgehen und wie wir uns davor schützen können.

Wie lernt ein Roboter?

Auch wenn es sich nicht um humanoide Roboter handelt, sind Roboter im Allgemeinen seit mehreren Jahrzehnten im Einsatz. Angefangen hat alles in der Automobilindustrie, wo Roboter schwere Teile bewegt haben. Ihre Fähigkeiten waren begrenzt und man musste ihnen zeigen, wie sie sich genau bewegen müssen. Es gab damals auch schon einige scheinintelligente Roboter, die auf ihre Umgebung reagieren konnten. Dies wurde aber über eine elektrische Steuerung realisiert, also keine Intelligenz. Die Roboter haben sich über die Zeit weiterentwickelt, ihre Fähigkeiten ausgebaut und finden in unterschiedlichsten Bereichen Anwendungsmöglichkeiten. Die Roboter müssen nicht immer einen ganz genau definierten Weg fahren, sondern sie können über verschiedene Sensoren, z.B. Kameras und Kraftsensoren, von einem vorgegebenen Weg abweichen oder sogar selbst einen Weg planen. Wahrscheinlich haben wir alle schon einmal von Staubsauger- oder Rasenmäherrobotern gehört, die selbstständig durch die Wohnung oder den Garten fahren und ihre Aufgaben erledigen. Aber auch wenn es für uns intelligent aussieht, ist es dies doch nicht sondern lediglich Programmierung und Steuerung. Die Roboter, die heute entwickelt und in naher Zukunft vermehrt zum Einsatz kommen werden, basieren immer mehr auf künstlicher Intelligenz (KI) und können dadurch immer mehr frei „denken“. Durch KI werden Roboter wesentlich flexibler und können sich besser an neue Umgebungen anpassen. In der Robotik kommen vor allem zwei Arten von KI zum Einsatz: Computer Vision und Reinforcement Learning. Computer Vision beschäftigt sich mit der Bildverarbeitung von Kameras, um Objekte zu erkennen und zu positionieren, und mit Reinforcement Learning kann der Roboter lernen, Entscheidungen zu treffen.

Reinforcement Learning Agent Interaktion mit der Umgebung

Alt: Agent kriegt den Zustand (State) von der Umgebung (Environment) und führt eine passende Aktion (Action) durch. Der Agent kriegt eine passende Belohnung (Reward) zurückgemeldet.

Was kann alles schiefgehen?

Wir wissen jetzt, wie Roboter im Allgemeinen funktionieren, wie sie Intelligenz zeigen können und wie sie lernen. Aber ist es sicher, einem Roboter so viel Freiheit zu geben? Was könnte schief gehen?

Ein Roboter ist in erster Linie immer noch eine Maschine. Maschinen gehen kaputt und können gefährlich werden. Wenn zum Beispiel ein Bein eines humanoiden Roboters bricht, kann er unbeabsichtigt fallen und sich selbst und seine Umgebung gefährden.

Wie bereits erwähnt, kann ein Roboter durch Reinforcement Learning lernen, eine Aufgabe zu lösen. Bis er aber soweit ist, die Aufgabe richtig und vollständig zu lösen, muss er eine explorative Phase durchlaufen, in der er richtige und vor allem falsche Aktionen ausführt. So weiß einen Kochroboter zum Beispiel nicht, was ein Messer ist und wie er damit Karotten sicher schneiden kann. Dies ist besonders wichtig, wenn Roboter in der realen Welt und nicht in der Simulation lernen.

Durch Reinforcement Learning kann der Roboter nur das lernen, was in der Belohnungsfunktion definiert ist, und nicht das, was wir von ihm verlangen. So kann z.B. ein humanoider Roboter lernen zu kriechen anstatt zu gehen, wenn die Reward Funktion nur das Erreichen des Ziels belohnt und nicht das Aufstehen.

Zusätzlich können so genannte „Glitches in the Matrix“ ausgenutzt werden. Das sind unbekannte Fehler in der Umgebung, die ausgenutzt werden können. Oft sind es Simulationsfehler, die der Agent ausnutzt, um das Unmögliche möglich zu machen. Z.B. kann ein simulierter Roboter durch eine gezielte Kollision durch eine Wand fahren, obwohl dies eigentlich unmöglich ist. Dies kann dazu führen, dass der Roboter nach einer eventuellen Übertragung in die Realität versucht diesen Vorgang zu wiederholen und dabei mit der Wand kollidiert.

Meistens soll der Roboter nach der Lernphase auch in der Lage sein, seine Fähigkeiten auf unbekannte Umgebungen zu verallgemeinern. Beispielsweise soll der Kochroboter nicht nur in der Küche arbeiten können, in der er das Kochen gelernt hat, sondern auch in einer beliebigen anderen Küche. Je unterschiedlicher die beiden Küchen sind, desto schwieriger wird es für den Roboter seine Aufgabe fehlerfrei auszuführen. Es ist auch schwierig für ihn, in der gleichen Umgebung andere Aufgaben auszuführen, wenn er dafür nicht trainiert wurde. Wir können also nicht von unseren Kochroboter verlangen, dass er auch die Küche putzt.

Wie behalte ich die Kontrolle?

Bei allem, was so schief gehen kann, wie können wir trotzdem noch die Kontrolle auf den Roboter behalten? Ja, natürlich! Wie bei jedem Entwicklungsprozess müssen einige einfache Regeln befolgt werden. Kurz gesagt: Man muss ein Sicherheitskonzept entwickeln und Validierungstests durchführen.

Dabei geht es in erster Linie darum, die Hardware zu prüfen und sicherzustellen, dass auch bei einem möglichen Ausfall einer oder mehrerer Komponenten die Sicherheit bestmöglich gewährleistet werden kann.

Nach der Hardware kommt die Software. Auch hier sind Tests durchzuführen, die Lernpipeline zu validieren und ein Sicherheitskonzept zu implementieren. Die Lernpipeline sollte möglichst erst in der Simulation validiert werden. In der Explorationsphase können mögliche Sicherheitsprobleme aufgedeckt werden. Dazu wird auch die Reward Funktion validiert. Wir können beobachten, wie sich der Roboter verhält und sicherstellen, dass er das tut, was wir von ihm verlangen.

Simulationen haben Grenzen und können zu rechenintensiv, zu ungenau für die Anwendung oder fehlerbehaftet sein. Die Unzulänglichkeiten der Simulation müssen berücksichtigt und mit realer Hardware validiert werden. Während einer hardwarebasierten Lernphase und auch danach ist es sinnvoll, durch einfache Regelung für Sicherheit zu sorgen. So kann z.B. durch eine Abstandssensorik ein Sicherheitsbereich definiert und durch eine Regelung verhindert werden, dass der Roboter in die Wand fährt, auch wenn die KI dies beabsichtigt.

Schließlich müssen wir sicherstellen, dass der Roboter nur dort und für das eingesetzt wird, wofür er entwickelt und trainiert wurde. Wir können nicht immer vorhersagen, wie er außerhalb dieses Bereichs reagieren würde.

Muss ich Angst vor Robotern haben?

Nein! Roboter können auch mit KI keine Gedanken, Gefühle und einen Willen haben. KI lebt nicht, sie rechnet nur Mathe und Statistik. Sie sind nur Werkzeuge! Auch mit KI machen Roboter also nur das, was wir ihnen sagen, auch wenn es nicht das ist, was wir wollen. Mit genügend Tests und einem guten Sicherheitskonzept kann der Roboter nicht „wild“ werden und die Weltherrschaft an sich reißen. Was er kann ist immer durch die Hardware und Software begrenzt.

Bedeutet das, dass wir immer absolut sicher sind? Nein!

Der Mensch ist immer noch ein wichtiger Teil des Prozesses und Menschen machen Fehler! Ob versehentlich oder absichtlich, auch nach dem Testen der Hardware und Sicherheitssoftware können Fehler im Prozess auftreten und Validierungsschritte können verkürzt werden. Bei manchen Anwendungen sind Fehler nicht immer kritisch und vielleicht akzeptabel, z.B. ein Vakuumroboter, der eine kleine Ecke nicht reinigt. Bei anderen Anwendungen ist dies nicht der Fall, z. B. ein autonomes Fahrzeug, das beim Überholen ein anderes Fahrzeug im toten Winkel übersieht. Hier sind die verursachten Schäden und die Gefährdung von Menschenleben deutlich höher und dürfen so nicht passieren. Es ist vor allem unsere Verantwortung als Entwicklern, für Sicherheit zu sorgen, auch wenn alles schief geht. Wir müssen wissen, was wir tun und was die Konsequenzen sind!

Reinforcement Learning

Dieser Kurs führt in die Basics des Reinforcement Learning ein und erfordert grundlegende Programmierkenntnisse, insbesondere in Python. Er dauert etwa 4 Stunden und besteht aus kurzen Einheiten für flexible Pausen. Die Einheiten sollten in vorgegebener Reihenfolge absolviert werden.

Jetzt starten