Ich habe kürzlich im Bereich Machine Learning promoviert und im Rahmen meiner Lehre an der Uni auch das Fach Neuronale Netze unterrichtet. Maschinelles Lernen bedeutet typischerweise, dass Modellparameter an Hand von Daten (man könnte sagen 'aus Erfahrung') angepasst werden. Ein Parameter wäre zum Beispiel der Agressionswert von Ghandi in Civ. Bei manchen Modellen, wie zum Beispiel Entscheidungsbäumen kann man gut nachvollziehen, wieso eine Entscheidung getroffen wurde. Bei anderen Modellen, wie im DeepLearning geht das wenn überhaupt, dann nur schwer.
In Spielen möchte man aus mehreren Gründen oft keine sich selbst anpassenden Modelle, die sich nur auf dem Rechner des Spielers befinden.
1) Es wäre extrem schwer sicherzustellen, dass unabhängig welchen Blödsinn der Spieler vorher gemacht hat, das Spiel noch wie geplant funktioniert. Nehmen wir an ein Endgegner wird jedes mal, wenn er den Spieler besiegt hat um 1% schwächer. Dann gibt es möglicherweise Spieler die absichtlich 100 mal sterben und ihn dann mit einem Schlag weg hauen.
2) Spieldesigner machen sich ja oftmals genaue Gedanken darüber wie ein System funktionieren soll, und auch wie man es ausbalancieren kann. Und das macht Spiele ja auch oftmals so gut! Zum Beispiel das Leveldesign von Portal ist super, weil es Stück für Stück etwas schwieriger wird. Das ist genau so vom Menschen geplant, damit andere Menschen daran wachsen können, und das macht Spaß. Ein Bot im Shooter, der perfekt spielt und einen immer besiegt macht eben keinen Spaß.
In welcher Sorte Spiel und in welchen Situationen hättet ihr denn gerne ein System, was sich wirklich an euch anpasst? Soll euer Begleiter im Rollenspiel Eure eigenen Schwächen im Spiel mit seiner guten KI ausgleichen? Das klingt möglicherweise erstmal spannend, aber wie weit soll das gehen? Wenn Ihr nicht mehr schießt, schießt er mehr; Wenn Ihr in der Welt nur noch herum steht schubst Euch der Begleiter in Richtung zur Hauptquest; Und am Ende spielt sich das Spiel von selbst.
Eine automatische Anpassung der Schwierigkeit der Bots in Shootern gab es meines Wissens schon bei UnrealTournament'98. Obwohl das nur ein einzelner Parameter ist, der angepasst wird, ist das ein Beispiel von 'echtem' maschinellem Lernen in Spielen. Und ich finde da hat es gut funktioniert.
Zu Jochens Frage: Könnte die KI von Tesla auch auf meinem Rechner laufen?
Von der Rechenleistung her ziemlich sicher ja. Denn das Aufwändige bei der Rechenleistung ist nicht das Ausführen, sondern das Training. Während beim Ausführen nur das bereits trainierte Modell angewendet werden muss, müssen beim Training die Werte angepasst werden. Das können z.B. beim DeepLearning mehrere Millionen Parameter sein, die angepasst werden mit Hilfe von vielen Trainingsdaten. Das Training ist der aufwändige Teil. Dabei werden dem Modell die Trainingsbeispiele normalerweise mehrfach präsentiert und die Werte immer weiter angepasst.
Es gibt einen recht bekannten Datensatz zur Objekterkennung auf Bildern, den ImageNet Large Scale Visual Recognition Challenge (ILSVRC)
https://image-net.org/challenges/LSVRC/
Wenn man heute Objekterkennung auf seinen eigenen Bildern versuchen möchte, dann kann man zum Beispiel ein von Google schon auf den ILSVRC-Daten trainiertes Modell als Grundlage nehmen. Das wurde mit extrem viel Rechenaufwand trainiert und ist entsprechend ziemlich gut auf diesen Daten. Ein typischer Ansatz nimmt das vortrainierte Modell und passt davon nur einen Teil des Modells an die eigenen Daten an. Ich habe ein Projekt mitbetreut, in dem ein Student eine Handy-App entwickelt hat, um Obst (z.B. Äpfel von Trauben) zu unterscheiden.
Die Frage hier im Forum, ob man Autos selbst fahren lassen sollte oder nicht ist spannend. Da ist die kritische Frage, wer bei einem Unfall die Schuld hat. Aktuell ist das der Fahrer. Aber wenn die KI das Fahren übernimmt? Der KI-Hersteller? Wer übernimmt die Kosten? Ich habe die Frage einem Professor gestellt. Er sagte, dass aktuell schon pro gefahrenem Kilometer die KI weniger Unfälle hat als der Mensch. Und er glaube, dass Versicherungen die Kosten übernehmen werden. Wenn autonom fahrende Fahrzeuge tatsächlich ein geringeres Unfallrisiko haben, als wir Menschen, dann wird der Versicherungstarif für autonom fahrende Fahrzeuge entsprechend geringer sein. Und wenn es erst mal günstiger ist autonom zu fahren wird es sich schnell ausbreiten. Und wer würde nicht gerne, wenn ihm abends einfällt er muss noch tanken einfach das Auto alleine tanken fahren lassen? Perfekt, wenn es von der Tanke dann auch noch Bier mitbringt.
Wieso KI-Bots und Spiele gar nicht so gut zueinander passen:
Wozu braucht man KI in der Praxis? In Systemen, die mit extrem vielen Variablen / Dimensionen zurecht kommen müssen. Bei Go hat man viele Dimensionen, aber beim Erkennen von Objekten auf Bildern oder in Videos auch. Ein Film besteht aus vielen Bildern, ein Bild enthält einen Farbwert für jeden Pixel und in diesen vielen Daten will man Muster erkennen, wie zum Beispiel ein Zone-30-Schild.
Ein Spiel muss aber damit es Spaß macht vom Spieler verstanden werden können. Eine Waffe im Shooter, die bei einem Schuss viel und beim nächsten Schuss keinen Schaden macht ist zum Beispiel nicht gut berechenbar. Wenn man ein so komplexes Spiel schafft, dass ein normaler Spieler es nicht mehr versteht, dann macht es vermutlich den meisten keinen Spaß. Ich denke, dass die einfache Berechenbarkeit für den Spielspaß gebraucht wird. Wenn also eine KI wie ein Bot das Spiel so spielen soll wie ein Mensch, dann ist das Spiel wahrscheinlich für den Bot zu leicht - oder umgekehrt ausgedrückt der Bot wird zu gut.
Ich sehe nur wenige Einsatzmöglichkeiten von maschinellem Lernen in Spielen:
Das Spiel sollte sich nur wenig automatisch verändern und die Veränderungen sollten dem Spieler sehr klar gemacht werden, damit das Spiel nicht plötzlich viel zu leicht oder viel zu schwer ist. Oder der Spieler sollte bewusst einen Level starten, in dem er getestet wird, bei dem aber wie bei Tetris klar ist, dass er am Ende verlieren wird.