Hinter den Kulissen: Verstärkendes Lernen | Die Welt der KI entdecken 03

Tilman Michaeli
15 Feb 202321:13

Summary

TLDRDieses Video skizziert die Grundlagen des verstärkenden Lernens und zeigt, wie ein Agent ein Selbstlernenden Agenten mit Hilfe der visuellen Programmiersprache Snap trainieren kann. Es erklärt die Schritte des Lernprozesses, wie Zustandserfassung, Aktion, Belohnung oder Bestrafung und Strategieanpassung. Der Fokus liegt auf der Anwendung dieses Konzepts auf ein Bananen-Jagd-Spiel, wobei der Agent lernt, wie er am besten springt, ohne das Ziel zu berühren. Die Erklärung umfasst auch die Bedeutung von Explorationsrate, Lernrate und Diskontierungsfaktoren im Lernprozess. Das Video bietet einen Einblick in die Implementierung künstlicher Intelligenz in Spielen und zeigt, wie ein Agent über Zeit immer besser im Spiel wird.

Takeaways

  • 🎮 Das Video behandelt ein selbstlernendes System, das in einem einfachen Bananen-Jagd-Spiel trainiert wird.
  • 🤖 Der Agent im Spiel lernt durch den Prozess der Umweltbeobachtung, Aktionen ausführen, Belohnungen oder Bestrafungen erhalten und seine Strategie zu aktualisieren.
  • 🔄 Der Lernzyklus umfasst die kontinuierliche Wiederholung des Zustandsabgleichs, Aktionsauswahl, Belohnungs- oder Bestrafungsempfangs und Strategieanpassung.
  • 📈 Die Belohnungen und Bestrafungen sind entscheidend für das Lernverhalten des Agents; Belohnungen stärken erfolgreiche Aktionen, Bestrafungen verringern unerwünschte Verhaltensweisen.
  • 🛠️ Die visuelle Programmiersprache Snap wird verwendet, um hinter den Kulissen des Verstärkungslernens zu schauen und den Code für den selbstlernenden Agenten zu erstellen.
  • 🔢 Die Algorithmen des verstärkenden Lernens verwenden Tabellen, um die besten Aktionen in bestimmten Zuständen zu identifizieren.
  • 🔍 Der Agent muss den Zustand der Umwelt erfassen und seine Aktionen danach auswählen; die Anzahl der Zustände sollte begrenzt sein, um das Lerntempo zu erhöhen.
  • 🎯 Die Explorationsrate bestimmt, wie oft der Agent neue Aktionen ausprobiert, auch wenn er bereits bekannte, bewertungsreiche Aktionen kennt.
  • 📉 Die Lernrate zeigt an, wie stark neue Informationen das bestehende Wissen des Agents überschreiben; eine zu hohe Lernrate kann zu einem Verlust früherer Erkenntnisse führen.
  • ⏱ Der Diskontierungsfaktor gibt an, wie wichtig zukünftige Belohnungen oder Bestrafungen für den Agenten sind; ein höherer Faktor fördert das Streben nach langfristigen Zielen.
  • 🔧 Die Parameter Explorationsrate, Lernrate und Diskontierungsfaktor sind entscheidend für die Anpassung und Leistung des Lernmodells und können individuell angepasst werden.

Q & A

  • Was ist das Thema der heutigen Episode auf dieser Station?

    -Das Thema ist das Erlernen eines Spiels durch einen Computer, indem er verstärkendes Lernen anwendet, um ein kleines Bananen-Jagd-Spiel zu meistern.

  • Wie wird das Bananen-Jagd-Spiel gestartet?

    -Das Spiel wird gestartet, indem auf die grüne Flagge geklickt wird, woraufhin das Spiel beginnt und das Äffchen springen kann, um die Banane zu fangen.

  • Was ist der Unterschied zwischen einem normalen Spiel und dem, was in der Episode gelehrt wird?

    -Der Unterschied liegt darin, dass in dieser Episode der Computer gelehrt wird, das Spiel selbst zu lernen und zu spielen, anstatt nur als Spieler gegen das Spiel zu agieren.

  • Was ist der Zweck der Explorationsrate, Lernrate und des Diskontierungsfaktors im Modell?

    -Die Explorationsrate bestimmt, wie oft der Agent neue Aktionen ausprobiert. Die Lernrate gibt an, wie viel neues Wissen alte Informationen überschreibt. Der Diskontierungsfaktor legt fest, wie wichtig zukünftige Belohnungen im Vergleich zu aktuellen Belohnungen sind.

  • Wie wird der Zustand der Umwelt im Lernprozess des Agents erfasst?

    -Der Zustand der Umwelt wird erfasst, indem der Agent die relevanten Aspekte seiner Umgebung misst, z.B. die Position des Fasses in dem Bananen-Jagd-Spiel.

  • Was geschieht, wenn der Agent in dem Spiel eine Aktion ausführt?

    -Sobald der Agent eine Aktion ausführt, ändert sich der Zustand der Umgebung, und es entstehen eine Belohnung oder Bestrafung sowie ein neuer Zustand.

  • Wie wird die Bestrafung oder Belohnung im Lernprozess des Agents bestimmt?

    -Die Bestrafung oder Belohnung wird anhand der Auswirkungen der vom Agent ausgeführten Aktionen bestimmt. Positive Belohnungen fördern das Wiederholen einer Aktion, während Bestrafungen das Verhalten abmildern.

  • Was ist die Aufgabe, wenn man die visuelle Programmiersprache Snap verwendet?

    -Die Aufgabe ist es, die in Snap bereitgestellten Blöcke in die richtige Reihenfolge zu bringen, um den Code für den selbstlernenden Agent zu erstellen.

  • Wie kann man die Lernstrategie des Agents beeinflussen?

    -Man kann die Lernstrategie beeinflussen, indem man die Parameter wie Explorationsrate, Lernrate und Diskontierungsfaktor anpasst.

  • Was ist der Unterschied zwischen klassischem Lernen und maschinellem Lernen, wie es in der Episode erwähnt wird?

    -Klassisches Lernen basiert oft auf festen Regeln und ist nicht anpassungsfähig, während maschinelles Lernen in der Lage ist, sich aus Erfahrung zu verbessern und komplexere Aufgaben zu meistern.

  • Was ist der nächste Schritt in der Serie, nachdem das verstärkende Lernen behandelt wurde?

    -Der nächste Schritt ist es, sich mit den Einsamkeiten und den Unterschieden zwischen klassischen Ansätzen und dem maschinellen Lernen zu beschäftigen.

Outlines

00:00

🕹️ Selbstlernende Agenten in einem Bananen-Jagd-Spiel

Dieses Video-Script beschäftigt sich mit dem Konzept des selbstlernenden Agents in einem Bananen-Jagd-Spiel. Es wird erklärt, wie ein Agent durch die Interaktion mit seiner Umwelt lernt, indem er seine Aktionen und die daraus resultierenden Belohnungen oder Bestrafungen misst. Der Fokus liegt auf der Verwendung von Belohnungen, um das Verhalten des Agents zu verstärken, während Bestrafungen dazu führen, dass das unerwünschte Verhalten abgenommen wird. Der Prozess des Lernens wird durch die Anpassung eines Modells dargestellt, welches die Bewertung für verschiedene Aktionen in jedem Zustand visualisiert. Die Verwendung der visuellen Programmiersprache Snap wird ebenfalls vorgestellt, um den Hintergrund des Lernprozesses zu erkunden und die Schaltflächen und Aktionen des selbstlernenden Agents zu programmieren.

05:00

🎮 Implementierung von Verstärkungslernen in einem Computerspiel

Der zweite Absatz konzentriert sich auf die Implementierung des Verstärkungslernens in einem Computerspiel. Hier wird gezeigt, wie der Agent durch das Hinzufügen von Aktionen wie 'Springen' oder 'Nichts tun' lernt, die bestmögliche Handlung in einem gegebenen Zustand zu wählen. Der Zyklus des Lernens, bestehend aus Zustandserfassung, Aktionsauswahl, Belohnungs- oder Bestrafungsempfang und Strategieanpassung, wird kontinuierlich wiederholt. Der Zustand der Umwelt wird durch die Position des Fasses definiert, und der Agent verwendet ein Modell, um die beste Aktion für diesen Zustand zu bestimmen. Die Belohnungs- und Bestrafungssysteme werden eingeführt, um das Lernen des Agents zu steuern, und es wird erläutert, wie das Modell auf der Grundlage der erhaltenen Belohnungen aktualisiert wird.

10:02

📊 Analyse des Lernfortschritts mit einem Algorithmus für Verstärkungslernen

In diesem Absatz wird der Fortschritt des Lernprozesses des selbstlernenden Agents in einem Bananen-Jagd-Spiel analysiert. Der Agent wird beobachtet, wie er lernt, die Fässer zu überspringen, und zwar durch zufälliges Springen und schrittweise Verbesserung seiner Fähigkeiten. Der Algorithmus für Verstärkungslernen, der im Hintergrund arbeitet, nutzt eine Tabelle, um die besten Aktionen für verschiedene Zustände zu identifizieren. Die Tabelle zeigt die zu erwartende Belohnung oder Bestrafung für jede Aktion in einem Zustand und wie diese Werte sich mit der Zeit ändern, wenn der Agent neue Erfahrungen sammelt. Es wird auch erläutert, wie der Agent Entscheidungen trifft, basierend auf den Bewertungen in der Tabelle.

15:06

🔍 Einfluss der Lernparameter auf das Verhalten des Agents

Der vierte Absatz behandelt die Bedeutung der Lernparameter wie Explorationsrate, Lernrate und Diskontierungsfaktor auf das Lernverhalten des Agents. Es wird erklärt, wie die Explorationsrate den Agenten dazu veranlasst, neue Aktionen auszuprobieren, auch wenn er bereits gute Optionen kennt. Die Lernrate bestimmt, wie viel neues Wissen die alten Informationen überschreibt, während der Diskontierungsfaktor die Bedeutung zukünftiger Belohnungen oder Bestrafungen für die Entscheidungsfindung des Agents beeinflusst. Durch Experimente mit diesen Parametern kann man das Verhalten des Agents in Spielen wie Pong beeinflussen.

20:09

🛠️ Anwendung des Verstärkungslernens auf ein Pong-Spiel und Überlegungen zur Skalierbarkeit

Schließlich wird gezeigt, wie das Prinzip des Verstärkungslernens auf ein Pong-Spiel übertragen werden kann. Es werden Anpassungen der möglichen Aktionen, des Zustandserfassungsprozesses und der Belohnungssysteme erläutert. Zusätzlich wird auf die Herausforderung eingegangen, dass in realen Anwendungen oft eine große Anzahl von Zuständen vorliegt, die nicht alle während des Trainings abgedeckt werden können. In solchen Fällen können Datenstrukturen wie neuronale Netzwerke verwendet werden, um ähnliche Zustände effizient zu behandeln, was im maschinellen Lernen von großer Bedeutung ist.

Mindmap

Keywords

💡Verstärkendes Lernen

Verstärkendes Lernen ist eine Methode der künstlichen Intelligenz, bei der ein Agent durch Belohnungen und Bestrafungen lernt, welche Aktionen in bestimmten Situationen die besten Ergebnisse erzielen. Im Video wird dies anhand eines Computerspiels veranschaulicht, bei dem ein Agent lernt, wie er am besten springen soll, um eine Belohnung zu erhalten und eine Bestrafung zu vermeiden.

💡Belohnung und Bestrafung

Belohnungen und Bestrafungen sind zentrale Elemente im verstärkenden Lernen. Sie dienen als Feedback für den Agent, um zu verstehen, welche Aktionen in bestimmten Zuständen sinnvoll sind. Im Video wird gezeigt, wie durch die Vergabe von Belohnungen (z.B. +1) und Bestrafungen (z.B. -10) das Verhalten des Agents beeinflusst wird.

💡Lernrate

Die Lernrate ist ein Parameter, der bestimmt, wie schnell ein Agent neue Erkenntnisse integriert. Eine höhere Lernrate bedeutet, dass der Agent stärker auf neue Erfahrungen zurückgreift, während eine niedrigere Lernrate darauf hindeutet, dass bereits gesammelte Informationen stärker gewichtet werden. Im Video wird die Lernrate als einstellbarer Faktor im Lernprozess beschrieben.

💡Explorationsrate

Die Explorationsrate gibt an, wie oft ein Agent neue Aktionen ausprobiert, auch wenn er bereits eine 'bessere' Lösung kennt. Sie ist wichtig, um nicht in einer suboptimalen Lösung festzustecken. Im Video wird die Explorationsrate verwendet, um zu zeigen, wie der Agent zwischen der Verwendung einer bekannten Strategie und dem Ausprobieren neuer Aktionen entscheidet.

💡Diskontierungsfaktor

Der Diskontierungsfaktor ist ein Parameter, der die Bedeutung zukünftiger Belohnungen im Vergleich zu sofort verfügbaren Belohnungen misst. Ein höherer Diskontierungsfaktor zeigt, dass der Agent stärker auf langfristige Belohnungen abzielt, während ein niedrigerer Wert eine stärkere Berücksichtigung kurzfristiger Belohnungen bedeutet. Im Video wird dieser Faktor als Teil des Lernmodells erläutert.

💡Umweltzustand

Der Umweltzustand beschreibt die aktuellen relevanten Informationen einer Umgebung, die für die Entscheidungsfindung eines Agents wichtig sind. Im Video wird der Zustand als Ausgangspunkt für die Aktionen des Agents dargestellt, z.B. die Position des Fasses in dem Bananen-Spiel.

💡Aktionen

Aktionen sind die Handlungen, die ein Agent in einem bestimmten Zustand ausführen kann. Im Video werden Aktionen wie 'Springen' oder 'Nichts tun' genannt und es wird erklärt, wie der Agent anhand seines Modells die beste Aktion in einem Zustand auswählt.

💡Modell

Im Kontext des verstärkenden Lernens ist ein Modell eine Darstellung der Wahrscheinlichkeiten für verschiedene Aktionen in verschiedenen Zuständen. Es hilft dem Agent, zu entscheiden, welche Aktion in einem bestimmten Zustand die beste ist. Im Video wird gezeigt, wie das Modell aktualisiert wird, basierend auf den Erfahrungen des Agents.

💡Snap

Snap ist eine visuelle Programmierumgebung, die in dem Video verwendet wird, um das Konzept des verstärkenden Lernens zu veranschaulichen. Es ermöglicht es, Programme durch das Zusammenfügen von Blöcken zu erstellen, die verschiedene Aktionen und Logik darstellen.

💡Erfassung des Zustands

Erfassung des Zustands ist der Prozess, bei dem ein Agent Informationen über die aktuelle Umgebung sammelt, um eine Entscheidung zu treffen. Im Video wird dies als erster Schritt im Lernzyklus beschrieben, z.B. die Position des Fasses in dem Bananen-Spiel zu bestimmen.

Highlights

Eine Einführung in das Konzept des Selbstlernens bei einem Computerspiel, bei dem das Ziel ist, ein Spiel perfekt zu spielen.

Die Erklärung des Lernprozesses eines Agents, der die Schritte auf dem Bild verfolgt und die Umweltzustand erfasst.

Die Bedeutung von Belohnungen und Bestrafungen im Lernprozess und wie sie das Verhalten des Agents beeinflussen.

Die Anpassung der Strategie des Agents durch das Modell, das die aktuelle Bewertung für mögliche Aktionen für jeden Zustand verwaltet.

Einführung in die visuelle Programmiersprache Snap, die für den selbstlernenden Agenten verwendet wird.

Die Erstellung des Codes für den selbstlernenden Agent in Snap, einschließlich der Initialisierung des Modells und der verfügbaren Aktionen.

Die Verwendung des 'fortlaufend' Blocks in Snap, um den Lernzyklus des Agents zu implementieren.

Die Erklärung, wie der Agent den Zustand der Umwelt erfasst und wie die Position des Fasses in den Zustand einbezogen wird.

Die Bestimmung der besten Aktion für den aktuellen Zustand mit Hilfe des Modells.

Die Belohnungs- und Bestrafungssysteme, die nach der Aktion des Agents angewendet werden.

Die Aktualisierung der Strategie des Agents basierend auf der erhaltenen Belohnung und der neuen Umgebungsbedingungen.

Die Visualisierung des Lernfortschritts des Agents und die Interpretation der Ergebnisse.

Die Erklärung des Algorithmus für verstärkendes Lernen, der eine Tabelle verwendet, um die beste Aktion in einem bestimmten Zustand zu identifizieren.

Die Bedeutung der Explorationsrate, Lernrate und Diskontierungsfaktor im Lernmodell des Agents.

Ein Gedankenexperiment mit Einarm-Banditen, um die Explorationsrate im Lernprozess zu veranschaulichen.

Die Anwendung des gelernten Prinzips auf ein Pong-Spiel und die Anpassung der Aktionen, Zustandserfassung und Belohnungen.

Die Erläuterung, wie maschinelles Lernen in realen Anwendungen mit einer Vielzahl von Zuständen umgehen kann, insbesondere mithilfe von neuronalen Netzwerken.

Eine Vorschau auf die nächsten Einheiten des Kurses, die sich mit den Unterschieden zwischen klassischen und maschinellen Lernansätzen befassen werden.

Transcripts

play00:04

hi herzlich willkommen zur heutigen

play00:07

folge auf dieser station unserer

play00:10

wollen wir den

play00:11

bringen selbst ein spiel zu meistern

play00:14

dazu schalten wir direkt auf unser spiel

play00:16

um und schauen uns das mal an

play00:18

es handelt sich um ein kleines bananen

play00:21

jagd spiel bei dem ein kleines äffchen

play00:22

die banane jagd und dabei über fässer

play00:25

springen mussten auf hin zu holen wir

play00:27

können das spiel starten indem wir auf

play00:28

die grüne flagge klicken dann kann ich

play00:32

mit der leertaste springen muss eben

play00:34

versuchen das fast nicht zu nicht zu

play00:36

gewinnen nicht zu berühren

play00:39

so aber wäre es nicht viel cooler wenn

play00:43

jetzt nicht echte spiel spiel sondern

play00:45

mit dem computer beibringen könnten

play00:48

selbst diese spiel zu lernen und spielt

play00:50

dann perfekt zu spielen

play00:52

genau das ist es was wir in dieser

play00:55

episode unserer reise tun wollen wir

play00:58

noch mal zurück zu unseren polieren

play01:00

denn gestern haben wir uns an einen

play01:04

kleinen schachspiel überlegt wie ein

play01:05

agent ein spiel lernen kann und dazu hat

play01:08

er letztlich die schritte auf dem bild

play01:10

hier verfolgt zuerst hat der agent den

play01:14

zustand der umwelt erfassten der er sich

play01:16

befindet und innerhalb dieser umwelt

play01:19

konnte er dann aktionen ausführen und

play01:22

sobald er eine der verfügbaren aktionen

play01:24

ausführt hat sich dann der zustand der

play01:26

umgebung geändert dadurch sind zwei neue

play01:30

dinge entstanden eine belohnung

play01:32

bestrafung und ein neuer zustand

play01:35

die art und weise wie wir belohnungen

play01:37

bestrafung vergeben haben hatte

play01:39

erheblichen einfluss darauf wie der

play01:41

agent lernt während belohnen dazu führt

play01:45

dass der genfer halten häufiger zeigt

play01:47

führt bestrafungen dazu dass dieses

play01:49

verhalten von nun an seltener wird

play01:51

erfolgreiche aktion werden also

play01:53

verstärkt und angemessene aktionen oder

play01:56

unpassende aktion verlernt auf diese

play02:00

weise passt denn seine strategie an die

play02:02

in einem so genannten modell gespeichert

play02:03

ist wenn wir vom lernprozess des agenten

play02:06

gesprochen haben meinten wir eigentlich

play02:08

nur eine anpassung des modells im

play02:11

schaubild war das modell oder ist das

play02:13

modell durch das regal visualisiert

play02:15

darin verwaltet der roboter die aktuelle

play02:17

bewertung für die möglichen aktionen für

play02:20

jeden zustand aber kommen wir zurück zu

play02:23

unserem spiel

play02:26

wir wollen jetzt die visuelle

play02:28

programmiersprache snap nutzen um einen

play02:30

blick hinter die kulissen von verstärken

play02:32

dem lernen zu werfen

play02:33

schauen wir uns erstmal snap selbst an

play02:36

snack ist eine programmierumgebung für

play02:39

lerner und in verschiedene bereiche

play02:41

aufgeteilt der script bereich hier in

play02:43

der mitte ist der wo wir unseren code

play02:46

erstellen also in dem fall den code für

play02:49

unseren selbstlernenden agent auf der

play02:51

bühne hier rechts oben da passiert das

play02:54

ganze geschehen da werden alle

play02:55

grafischen effekte visualisiert neben

play02:57

der das äffchen darf das fast so weiter

play02:59

die palette dass es das hier links die

play03:04

stellt all die bausteine für unsere

play03:06

programm in form von blöcken zur

play03:08

verfügung nachdem wir uns in diesem kurs

play03:10

aber eher dem thema widmen wollen nun

play03:13

nicht so sehr der programmierung haben

play03:15

wir alle benötigten blöcke bereits hier

play03:16

im skript bereich hinterlegt falls du

play03:20

dich bereits mit block basierten

play03:21

programmiersprachen wie snap aus kennst

play03:23

kannst du das video an dieser stelle

play03:25

auch gern pausieren und selbst versuchen

play03:27

die puzzle aufgabe zu lösen

play03:29

eine aufgabenbeschreibung dazu findest

play03:31

du im kurs falls du keine oder kaum

play03:34

erfahrung mit blockbuster programmierung

play03:36

oder blog basierten programmieren im

play03:38

allgemeinen hast würden wir dem fehlen

play03:40

dass du dein parallel dein programm

play03:42

parallel mit uns entwickelt und

play03:44

währenddessen das video ansiehst vergiss

play03:46

nicht du kannst das video jederzeit

play03:48

pausieren und zurückspulen

play03:51

übrigens falls die snap interessiert und

play03:53

so mehr darüber lernen möchtest schadet

play03:55

doch einen der snap kurse an die du in

play03:57

der video beschreibung findet insgesamt

play04:01

gilt hast du es noch nicht geöffnet hast

play04:03

solltest du das jetzt noch kurz

play04:05

nachholen

play04:08

wie bereits angedeutet enthält unser

play04:12

bananen jagd projekt ja bereits alle

play04:13

blöcke die wir brauchen nur halt nicht

play04:15

in der richtigen reihenfolge

play04:17

unsere aufgabe ist es jetzt die ganze

play04:19

blöcke hier in die richtige reihenfolge

play04:21

zu bringen

play04:22

dabei hilft ihr auch die schematische

play04:24

darstellung von unserem lern zyklus den

play04:26

wir gerade hatten was wir zu beginn

play04:29

machen

play04:29

wir hängen alles an unserem wenn grüne

play04:31

fahne geklickt block an ist wir

play04:34

initialisieren unser modell also unser

play04:37

regal

play04:38

dabei können wir ein paar werte

play04:40

einstellen so was wie explorations rate

play04:43

lern rate oder diskontierung faktor wir

play04:47

wollen erstmal bei den standardwerten

play04:48

bleiben und uns später anschauen worum

play04:50

es da im einzelnen geht als wir außerdem

play04:52

brauchen ist eine liste der verfügbaren

play04:54

aktionen

play04:56

wir fügen gleich mal unsere sprung

play04:58

aktion hinzu die es ja offensichtlich

play05:00

sehr wichtig muss weit so gut aber wenn

play05:04

der computer nur eine aktion kennt also

play05:06

springen wird er dementsprechend auch

play05:08

überspringen

play05:09

was wir brauchen ist eine aktion die es

play05:12

ihm erlaubt auch mal nicht zu springen

play05:14

und ich hab dir jetzt in diesem programm

play05:16

tue nichts genannt auch die fünf unserer

play05:20

liste hinzu wir können unsere liste

play05:21

vergrößern verkleinern also erweitern

play05:24

indem wir diese kleine schwarze pfeile

play05:25

verwenden und fügen sie dann zu unserer

play05:28

liste hinzu wie wir wissen ist das

play05:32

wesentliche bei verstärken dem lernen ja

play05:34

dass der agent interaktiv lernt also den

play05:36

zyklus aus erfassung des zustands

play05:39

ausprobieren eine aktion erhalten einer

play05:41

belohnung oder bestrafung und

play05:42

aktualisierende strategie immer wieder

play05:45

wiederholen muss und dafür holen wir uns

play05:48

diesen fortlaufend block und ziehen ihn

play05:51

an das ende unseres programme heran so

play05:53

wie ich es gerade gemacht habe und er

play05:55

sorgt dafür dass all das was wir darin

play05:57

machen fortlaufend wiederholt wird und

play06:00

zunächst wird der agent den zustand der

play06:03

umwelt erfassen

play06:04

der zustand der umwelt besteht ja aus

play06:06

den relevanten aspekten seiner umwelt da

play06:10

gibt es bei der bananen jagd genauso wie

play06:12

sonst auch verschiedene möglichkeiten

play06:13

aber eine gute wahl wäre

play06:16

die exposition des fasses jetzt ist es

play06:19

so natürlich nachdem das fass ja

play06:22

irgendwo der einzige aspekt unserer

play06:24

umwelt ist er sich verändert es ist aber

play06:26

so dass es nicht relevant ist wo genau

play06:28

sich das fass befindet ob es jetzt fünf

play06:31

pixel weiter rechts oder fünf pixel

play06:33

weiter links ist als er so machen ist

play06:35

wir teilen die position die exposition

play06:40

des fasses durch 10 und und runden das

play06:44

ganze denn wenn wir das machen

play06:49

wenn ich mit zehn millionen zuständen

play06:51

weil das würde das ganzen lernprozess

play06:55

verzögern und wir wollen die anzahl der

play06:57

zustände eben kleiner halten so ja wenn

play07:02

wir das durch zehn teilen und runden

play07:04

ergeben sich im weniger unterschiedliche

play07:05

zustände und der agent lernt schneller

play07:08

nachdem der agent jetzt den zustand

play07:10

erfasst hat verwendet er sein modell und

play07:13

kann daraus ja die beste aktion in

play07:15

diesem zustand bestimmen

play07:17

auch das machen wir indem wir unseren

play07:22

blog in dem wir dieses beste aktion

play07:25

setzen mit dem blog bestes verhalten für

play07:28

zustand und dafür nehmen wir unseren

play07:33

zustand und unser modell heran

play07:36

dieser blog gibt uns jetzt den besten

play07:38

zustand in einer der besten die beste

play07:41

aktion in einem zustand um die aktion

play07:43

tatsächlich auszuprobieren müssen wir

play07:46

den agenten hatte ich auch dazu bringen

play07:47

und sie wirklich auszuführen

play07:49

das machen wir indem wir unseren führer

play07:52

beste aktion aus block nehmen

play07:55

und jetzt wird's richtig interessant wir

play07:58

befinden uns also einem neuen zustand

play07:59

nachdem wir die aktion ausgeführt haben

play08:01

und müssen den agenten auf der grundlage

play08:04

dieser ausgeführten aktionen belohnen

play08:06

oder bestrafen

play08:07

und das ist eben der wichtigste teil bei

play08:10

verstärkenden lernen aber wann sollten

play08:14

wir unsere äffchen belohnen und wann

play08:16

sollten wir bestrafen bestrafen würden

play08:21

ihn wahrscheinlich dann wenn du das fast

play08:23

berührt wir können dies tun indem wir

play08:27

unsere belohnung in diesem fall also im

play08:29

falle

play08:30

er berührt das fass auf einen negativen

play08:35

wert setzen wir wählen hier

play08:39

- 10 in allen anderen fällen hatte er

play08:43

eigentlich alles richtig gemacht in

play08:46

diesem fall soll er eine positive

play08:47

belohnung bekommen wir wählen hier mal

play08:50

den wert 1 der belohnungen einfach

play08:53

häufiger vorkommen als bestrafung

play08:56

tatsächlich erfordert dieser schritt

play08:58

häufig ausprobieren oder viel erfahrung

play09:01

denn es gibt viele viele möglichkeiten

play09:04

wie man belohnungen bestrafung wählen

play09:05

kann

play09:06

wir haben jetzt durch ausprobieren

play09:07

herausgefunden dass diese beiden werte

play09:10

in unserem fall ganz gut passen

play09:12

der letzte schritt besteht dann darin

play09:15

dass wir unseren agenten tatsächlich

play09:18

dazu bringen seine strategie zu

play09:19

aktualisieren und damit zu lernen dazu

play09:25

wie du weißt müssen wir ja unser modell

play09:27

aktualisieren mit all den informationen

play09:29

die wir jetzt haben also mit dem zustand

play09:33

mit dem neuen zustand den wir natürlich

play09:36

genau so berechnen können wir den alten

play09:39

also wir nehmen die exposition des

play09:41

fasses teilen die durch 10 und runden

play09:46

das um den zustand kaum klein zu halten

play09:49

außerdem brauchen wir unsere below

play09:53

erhaltene belohnung und unser gezeigtes

play09:58

verhalten was unsere beste bekannte

play09:59

aktion in diesem zustand war

play10:02

dann wird das modell auf grundlage der

play10:06

erhaltenen belohnung aktualisiert jetzt

play10:10

wo wir fertig sind wollen wir uns

play10:12

natürlich mal anschauen

play10:13

das modell habe ich vergessen noch

play10:15

einzuziehen

play10:16

aber jetzt wo wir fertig sind wollen wir

play10:18

auch überprüfen was das agent eigentlich

play10:20

gelernt hat wie machen wir das

play10:22

wir klicken hier oben auf die grüne

play10:24

flagge und starten des programms

play10:31

wir sehen schon am anfang der agent

play10:35

hilft sehr viel und das bisher auch noch

play10:42

nicht sehr erfolgreich aber es langsam

play10:45

scheint auch es zu schaffen über die

play10:48

fächer über die fenster zu springen

play10:50

am anfang hat es äffchen sei nur durch

play10:53

zufall geschafft über sein fast zu

play10:55

springen

play10:55

es wurde aber nach und nach besser die

play10:58

erste strategie die wir gesehen haben

play10:59

war das gelernt hat zu springen wenn das

play11:02

fast wirklich nahe ist manchmal ist das

play11:05

äffchen aber jetzt auch noch daran

play11:08

gescheitert dass es zu früh gesprungen

play11:10

ist dann kurz vom fass gelandet ist

play11:13

eben nicht mehr genug platz zum springen

play11:14

vorhanden war aber mit genügend zeit

play11:18

lernt es auch dass es wird also mal

play11:21

besser aber wir sehen trotzdem das

play11:25

äffchen springt auch wenn es fast nicht

play11:26

in der nähe ist könnte das liegen

play11:31

na ja das liegt sicherlich daran dass

play11:34

eben nur die berührung des fasses

play11:36

bestraft wird der agent habe hat aber

play11:38

nie gelernt dass es reichen würde wenn

play11:40

er nur dann springt wenn es fast kurz

play11:41

vor ihm ist ich denke jetzt wird

play11:47

endgültig zeit auch mein blick hinter

play11:49

die kulissen zu werfen was wir im

play11:51

hintergrund verwendet haben ist zu

play11:54

lernen

play11:54

ein sehr bekannter algorithmus für

play11:57

verstärken das lernen was der

play11:59

algorithmus macht ist er nutzt eine

play12:00

tabelle die der agent dazu verwendet die

play12:03

beste aktion in einem bestimmten zustand

play12:05

zu identifizieren und auch wir haben die

play12:08

möglichkeit einblick in diese tabelle zu

play12:09

werfen und ich habe ganz unten

play12:11

hier schon mal zwei blöcke versteckt und

play12:14

zwar element 1 von modell mit diesen

play12:18

beiden blöcken können wir uns jetzt das

play12:20

erste element unseres modells ansehen

play12:21

das wichtigste unsere tabelle einmal

play12:25

draufklicken zeigt uns diese tabelle und

play12:27

mit einem doppelklick hier oben auf die

play12:28

zahl können wir die auch fixieren die

play12:31

tabelle entspricht letztlich dem was wir

play12:34

im schaubild mit dem regal visualisiert

play12:36

haben wir in der ersten spalte befindet

play12:38

sich der zustand also die exposition des

play12:41

fasses geteilt durch 10 und gerundet

play12:43

wert wie 14 oder sowas oder hier unten

play12:48

12 würde bedeuten dass wir ungefähr hier

play12:50

sind in dem fall scheint sind zwei werte

play12:55

gegeben der wert in der zweiten spalte

play12:58

gibt an was die zu erwartende belohnung

play13:01

bzw bestrafung ist wenn der agent in

play13:05

diesem zustand springt der wert in der

play13:08

dritten spalte gibt an wie die zu in

play13:11

zukunft zu erwartende belohnung für

play13:13

nichtstun in dieser aktion er in diesem

play13:15

zustand ist

play13:18

der agent eine erhaltene belohnung einer

play13:21

bestimmten tabellen zelle zuordnet lernt

play13:23

er erhöht oder verringert also die

play13:26

wahrscheinlichkeit in dieser situation

play13:28

diese aktion zu zeigen

play13:31

wir wollen das programm jetzt mal neu

play13:33

starten und schauen was der agent so

play13:37

lernt wie sich die tabelle nach und nach

play13:39

verändert immer wenn der agent hier

play13:42

einen neuen zustand entdeckt in dem man

play13:44

davor noch nie war

play13:45

dann wird eine neue zeile zur tabelle

play13:47

hinzugefügt wir sehen hier oben auch die

play13:49

zahl der zeilen steigt immer dann wenn

play13:53

eine neue zeile hinzugefügt wird wie

play13:56

hier werden alle aktions bewertungen mit

play14:00

dem wert 0 vor initialisiert denn der

play14:02

agent hat ja noch keine erfahrung

play14:03

gesammelt

play14:04

in einem fall wenn beide werte gleich

play14:06

sind also beide werte wie medial fall 0

play14:09

aber auch in beide werte 1 sind dann hat

play14:12

agent keine präferenz welche aktion

play14:14

erwählen soll und er wird eine zufällige

play14:16

aktion wählen

play14:17

nachdem der agent aber belohnt oder

play14:19

bestraft wurde

play14:21

ändern sich diese werte die werte werden

play14:23

auch in der tabelle hier aktualisiert

play14:25

man wir sind immer wieder ändern sich

play14:27

gewisse werte im fall dieses zustands

play14:31

hier ist der wert für springen negativ

play14:35

erinnert sich sicher wir haben mit -10

play14:37

bestraft und mit 1 belohnt das heißt

play14:40

dass in diesem zustand hier die

play14:42

angesammelte bestrafung größer ist als

play14:44

die bisher angesammelte belohnung um die

play14:48

beste aktion zu wählen vergleich der

play14:50

agent jetzt die beiden werte hier also

play14:53

die werte für alle aktionen im aktuellen

play14:55

zustand und wählt den größeren wert aus

play14:58

in dem fall also der rechte die

play15:00

schlussfolgerung ist dass es für das

play15:02

äffchen in diesem zustand hier die beste

play15:06

idee ist nichts zu tun denn die zu

play15:08

erwartende belohnung bei springen ist

play15:10

sehr sehr viel kleiner als die zu

play15:12

erwartende belohnung bei nichts tun

play15:15

in diesem zustand wird sich der agent

play15:17

also wahrscheinlich dafür entscheiden

play15:18

auch nichts zu tun

play15:21

die tabelle hier ist konzeptionell

play15:24

identisch mit der übersicht über die

play15:26

möglichen spiel stellung bzw dem regal

play15:28

die bewertungen also zwei drittel

play15:32

spalten entsprechend den süßigkeiten

play15:35

also unsere schachspiel was wir gestern

play15:37

hatten oder den münzen unseres roboters

play15:40

aus dem schaubild

play15:41

jetzt wollen wir aber mal noch ansehen

play15:43

habe ich am anfang auch versprochen was

play15:45

die verschiedenen parameter unseres

play15:47

modells also namentlich die lern rate

play15:50

der diskontierung faktor und die

play15:52

explorations rate genau bedeuten und

play15:55

zuerst wollen wir im blick auf die

play15:57

explorations rate werfen

play15:59

es ist so dass ein agent im ständigen

play16:02

zwiespalt ist zum einen möchte er

play16:04

natürlich die beste strategie verfolgen

play16:05

die erkennt zum anderen will aber auch

play16:08

neue strategien ausprobieren machen dazu

play16:12

mein kleines gedankenexperiment stellen

play16:14

wir uns vor wir haben drei einarmige

play16:16

banditen vor uns also diese automaten wo

play16:19

man glücksspiel um geld betreiben kann

play16:22

wir haben im mittleren bereits gespielt

play16:24

und 50 euro gewonnen

play16:26

am rechten der hat uns nur 1 euro

play16:29

beschert dem ganz links haben noch gar

play16:31

nicht ausprobiert die frage ist jetzt

play16:33

welche aktionen sollten wir das nächstes

play16:36

ausführen

play16:39

die sache ist

play16:42

wir können uns nicht wirklich sicher

play16:44

sein was unsere nächste aktion ist und

play16:46

auch der agent muss sich stets

play16:48

entscheiden aber nun versucht die

play16:50

bessere aktion zu finden was wir auch

play16:52

exploration nennen oder ob es sich

play16:54

weiter daran macht seine belohnung mit

play16:56

seiner bekannten besten strategie zu

play16:59

erhöhen

play16:59

und wirklich erfolgreiche agent muss

play17:02

dabei genau die goldene mitte zwischen

play17:04

beiden finden zurück zu unserem programm

play17:07

würde das bedeuten eine hohe

play17:08

explorations rate heißt der agent ist er

play17:11

bereit neue aktion auszuprobieren

play17:13

also konkret in einem zustand auch mal

play17:15

eine zufällige aktion auszuführen

play17:17

auch wenn er bereits durchaus aktionen

play17:20

mit wirklich hohe bewertung kennt im

play17:23

beispiel von diesen einnahmen banditen

play17:25

würde es bedeuten dass wir auch mal den

play17:27

linken automaten auswählen bei denen

play17:29

haben wir noch gar nicht ausprobiert

play17:32

das zweite ist unsere lehren rate die

play17:35

lern rate gibt an inwieweit neu

play17:37

erworbenes wissen alte informationen

play17:39

über schreibt er jetzt eine lern rate

play17:41

von 0 probieren um unser programm mal

play17:43

neu starten dann sehen wir nicht viel

play17:48

denn eine lern rate von 0 ist nicht sehr

play17:52

vielversprechend denn das auch nicht

play17:54

verwunderlich ein lern rate von 0 führt

play17:56

dazu dass da geld überhaupt nichts lernt

play17:59

war neu erworbenes wissen einfach nicht

play18:00

genutzt wird eine lern rate von 1

play18:03

wiederum bedeutet dass er nur die

play18:07

aktuellste informationen berücksichtigt

play18:09

und alles wissen was er vorher hatte

play18:11

überschreibt in der praxis wird häufig

play18:15

eine mittlere lern rate verwendet so wie

play18:17

wir vorhin mit unseren 0,5 und 70 also

play18:22

ein konstanter wert zwischen 0 und 1 der

play18:26

letzte einstellung einstellbare wert ist

play18:29

der diskontierung faktor der bestimmt

play18:32

inwieweit zukünftiger belohnung oder

play18:36

bestrafung bedeutung beigemessen wird

play18:38

ein faktor von 0 bewirkt dass der agent

play18:41

nur aktuelle kurzfristige erreichbare

play18:43

belohnungen berücksichtigt bei einem

play18:46

höheren diskontierung faktor strebt der

play18:48

agent nach langfristig erreichbaren

play18:50

belohnungen

play18:51

wenn du dich entscheiden sollte ist ein

play18:53

spiel wie pong mit verstärkten dem

play18:55

lernen zu bereiche kannst du mit diesen

play18:58

faktoren experimentieren um sehen

play18:59

welchen einfluss sie auf das verhalten

play19:01

des agenten haben

play19:02

details dazu findest du in der video

play19:04

beschreibung das war's für heute

play19:06

wir hoffen du hast einen einblick

play19:08

erhalten wie das lernverhalten eines

play19:11

agenten in ein programm umgesetzt werden

play19:12

kann

play19:13

wir können jetzt genau dasselbe prinzip

play19:15

auf ein spiel pong übertragen

play19:18

im falle von pong haben wir ein kleines

play19:21

klein schläger diesen schläger können

play19:24

wir hoch oder runter bewegen und ein

play19:28

ball und wir unser ziel ist es eben

play19:29

diesen ball zu schlagen um das jetzt auf

play19:31

unser spiel pong zu übertragen müssen

play19:33

wir nur drei dinge anpassen

play19:35

die möglichen aktionen also schläger

play19:40

hoch und runter zu bewegen die art und

play19:42

weise wie wir unseren zustand erfassen

play19:44

und die art und weise

play19:45

wie wir mit belohnungen umgehen für die

play19:50

erfassung des zustandes läuft es so dass

play19:53

wir nicht wie beim affen spiel einfach

play19:57

die exposition des fasses nehmen können

play19:59

denn es ändert sich ein bisschen mehr an

play20:00

unserer umwelt wir müssen auch die

play20:02

position unseres schlägers und des

play20:04

balles also von zwei dingen

play20:05

berücksichtigen außerdem müssen wir eine

play20:09

andere belohnung wählen beispielsweise

play20:10

indem wir man dann belohnen wenn der

play20:12

ball mit dem schläger geschlagen wird

play20:14

und bestrafen wenn der gegner einen

play20:17

punkt erzielt falls du dich also dafür

play20:19

interessiert wie du das gelernte nun

play20:22

aufbauen übertragen kannst es heute doch

play20:24

die optionale aufgabe in der

play20:26

kurzbeschreibung an

play20:28

übrigens in real möglichen anwendungen

play20:31

kann es passieren dass es so viele

play20:33

unterschiedliche zustände gibt dass wir

play20:36

beim training nicht alle erreichen

play20:37

können oder die tabelle schlicht zu groß

play20:39

wird in solchen fällen brauchen eine

play20:41

datenstruktur den gegensatz zu tabellen

play20:44

dafür sorgt dass wir noch mehr ähnliche

play20:47

zustände gleich behandeln können und

play20:48

diese idee ist bei maschinen leiden

play20:51

lernen ganz wesentlich und wird uns auch

play20:54

in diesem kurs noch öfter begegnet das

play20:57

war es für heute in der nächsten einheit

play20:59

wollen wir uns im einsamkeiten und

play21:01

unterschieden zwischen klassischen

play21:04

ansätzen und dem maschinellen lernen

play21:06

widmen

play21:06

wir sehen uns

Rate This

5.0 / 5 (0 votes)

Related Tags
Selbst-LernVerstärkungslernenProgrammierungAgentenmodellSnap-UmgebungStrategie-AdaptionBelohnungssystemLernprozessAI-EntwicklungSpiele-Simulation
Do you need a summary in English?