Hinter den Kulissen: Verstärkendes Lernen | Die Welt der KI entdecken 03
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
🕹️ 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.
🎮 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.
📊 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.
🔍 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.
🛠️ 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
💡Belohnung und Bestrafung
💡Lernrate
💡Explorationsrate
💡Diskontierungsfaktor
💡Umweltzustand
💡Aktionen
💡Modell
💡Snap
💡Erfassung des Zustands
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
hi herzlich willkommen zur heutigen
folge auf dieser station unserer
wollen wir den
bringen selbst ein spiel zu meistern
dazu schalten wir direkt auf unser spiel
um und schauen uns das mal an
es handelt sich um ein kleines bananen
jagd spiel bei dem ein kleines äffchen
die banane jagd und dabei über fässer
springen mussten auf hin zu holen wir
können das spiel starten indem wir auf
die grüne flagge klicken dann kann ich
mit der leertaste springen muss eben
versuchen das fast nicht zu nicht zu
gewinnen nicht zu berühren
so aber wäre es nicht viel cooler wenn
jetzt nicht echte spiel spiel sondern
mit dem computer beibringen könnten
selbst diese spiel zu lernen und spielt
dann perfekt zu spielen
genau das ist es was wir in dieser
episode unserer reise tun wollen wir
noch mal zurück zu unseren polieren
denn gestern haben wir uns an einen
kleinen schachspiel überlegt wie ein
agent ein spiel lernen kann und dazu hat
er letztlich die schritte auf dem bild
hier verfolgt zuerst hat der agent den
zustand der umwelt erfassten der er sich
befindet und innerhalb dieser umwelt
konnte er dann aktionen ausführen und
sobald er eine der verfügbaren aktionen
ausführt hat sich dann der zustand der
umgebung geändert dadurch sind zwei neue
dinge entstanden eine belohnung
bestrafung und ein neuer zustand
die art und weise wie wir belohnungen
bestrafung vergeben haben hatte
erheblichen einfluss darauf wie der
agent lernt während belohnen dazu führt
dass der genfer halten häufiger zeigt
führt bestrafungen dazu dass dieses
verhalten von nun an seltener wird
erfolgreiche aktion werden also
verstärkt und angemessene aktionen oder
unpassende aktion verlernt auf diese
weise passt denn seine strategie an die
in einem so genannten modell gespeichert
ist wenn wir vom lernprozess des agenten
gesprochen haben meinten wir eigentlich
nur eine anpassung des modells im
schaubild war das modell oder ist das
modell durch das regal visualisiert
darin verwaltet der roboter die aktuelle
bewertung für die möglichen aktionen für
jeden zustand aber kommen wir zurück zu
unserem spiel
wir wollen jetzt die visuelle
programmiersprache snap nutzen um einen
blick hinter die kulissen von verstärken
dem lernen zu werfen
schauen wir uns erstmal snap selbst an
snack ist eine programmierumgebung für
lerner und in verschiedene bereiche
aufgeteilt der script bereich hier in
der mitte ist der wo wir unseren code
erstellen also in dem fall den code für
unseren selbstlernenden agent auf der
bühne hier rechts oben da passiert das
ganze geschehen da werden alle
grafischen effekte visualisiert neben
der das äffchen darf das fast so weiter
die palette dass es das hier links die
stellt all die bausteine für unsere
programm in form von blöcken zur
verfügung nachdem wir uns in diesem kurs
aber eher dem thema widmen wollen nun
nicht so sehr der programmierung haben
wir alle benötigten blöcke bereits hier
im skript bereich hinterlegt falls du
dich bereits mit block basierten
programmiersprachen wie snap aus kennst
kannst du das video an dieser stelle
auch gern pausieren und selbst versuchen
die puzzle aufgabe zu lösen
eine aufgabenbeschreibung dazu findest
du im kurs falls du keine oder kaum
erfahrung mit blockbuster programmierung
oder blog basierten programmieren im
allgemeinen hast würden wir dem fehlen
dass du dein parallel dein programm
parallel mit uns entwickelt und
währenddessen das video ansiehst vergiss
nicht du kannst das video jederzeit
pausieren und zurückspulen
übrigens falls die snap interessiert und
so mehr darüber lernen möchtest schadet
doch einen der snap kurse an die du in
der video beschreibung findet insgesamt
gilt hast du es noch nicht geöffnet hast
solltest du das jetzt noch kurz
nachholen
wie bereits angedeutet enthält unser
bananen jagd projekt ja bereits alle
blöcke die wir brauchen nur halt nicht
in der richtigen reihenfolge
unsere aufgabe ist es jetzt die ganze
blöcke hier in die richtige reihenfolge
zu bringen
dabei hilft ihr auch die schematische
darstellung von unserem lern zyklus den
wir gerade hatten was wir zu beginn
machen
wir hängen alles an unserem wenn grüne
fahne geklickt block an ist wir
initialisieren unser modell also unser
regal
dabei können wir ein paar werte
einstellen so was wie explorations rate
lern rate oder diskontierung faktor wir
wollen erstmal bei den standardwerten
bleiben und uns später anschauen worum
es da im einzelnen geht als wir außerdem
brauchen ist eine liste der verfügbaren
aktionen
wir fügen gleich mal unsere sprung
aktion hinzu die es ja offensichtlich
sehr wichtig muss weit so gut aber wenn
der computer nur eine aktion kennt also
springen wird er dementsprechend auch
überspringen
was wir brauchen ist eine aktion die es
ihm erlaubt auch mal nicht zu springen
und ich hab dir jetzt in diesem programm
tue nichts genannt auch die fünf unserer
liste hinzu wir können unsere liste
vergrößern verkleinern also erweitern
indem wir diese kleine schwarze pfeile
verwenden und fügen sie dann zu unserer
liste hinzu wie wir wissen ist das
wesentliche bei verstärken dem lernen ja
dass der agent interaktiv lernt also den
zyklus aus erfassung des zustands
ausprobieren eine aktion erhalten einer
belohnung oder bestrafung und
aktualisierende strategie immer wieder
wiederholen muss und dafür holen wir uns
diesen fortlaufend block und ziehen ihn
an das ende unseres programme heran so
wie ich es gerade gemacht habe und er
sorgt dafür dass all das was wir darin
machen fortlaufend wiederholt wird und
zunächst wird der agent den zustand der
umwelt erfassen
der zustand der umwelt besteht ja aus
den relevanten aspekten seiner umwelt da
gibt es bei der bananen jagd genauso wie
sonst auch verschiedene möglichkeiten
aber eine gute wahl wäre
die exposition des fasses jetzt ist es
so natürlich nachdem das fass ja
irgendwo der einzige aspekt unserer
umwelt ist er sich verändert es ist aber
so dass es nicht relevant ist wo genau
sich das fass befindet ob es jetzt fünf
pixel weiter rechts oder fünf pixel
weiter links ist als er so machen ist
wir teilen die position die exposition
des fasses durch 10 und und runden das
ganze denn wenn wir das machen
wenn ich mit zehn millionen zuständen
weil das würde das ganzen lernprozess
verzögern und wir wollen die anzahl der
zustände eben kleiner halten so ja wenn
wir das durch zehn teilen und runden
ergeben sich im weniger unterschiedliche
zustände und der agent lernt schneller
nachdem der agent jetzt den zustand
erfasst hat verwendet er sein modell und
kann daraus ja die beste aktion in
diesem zustand bestimmen
auch das machen wir indem wir unseren
blog in dem wir dieses beste aktion
setzen mit dem blog bestes verhalten für
zustand und dafür nehmen wir unseren
zustand und unser modell heran
dieser blog gibt uns jetzt den besten
zustand in einer der besten die beste
aktion in einem zustand um die aktion
tatsächlich auszuprobieren müssen wir
den agenten hatte ich auch dazu bringen
und sie wirklich auszuführen
das machen wir indem wir unseren führer
beste aktion aus block nehmen
und jetzt wird's richtig interessant wir
befinden uns also einem neuen zustand
nachdem wir die aktion ausgeführt haben
und müssen den agenten auf der grundlage
dieser ausgeführten aktionen belohnen
oder bestrafen
und das ist eben der wichtigste teil bei
verstärkenden lernen aber wann sollten
wir unsere äffchen belohnen und wann
sollten wir bestrafen bestrafen würden
ihn wahrscheinlich dann wenn du das fast
berührt wir können dies tun indem wir
unsere belohnung in diesem fall also im
falle
er berührt das fass auf einen negativen
wert setzen wir wählen hier
- 10 in allen anderen fällen hatte er
eigentlich alles richtig gemacht in
diesem fall soll er eine positive
belohnung bekommen wir wählen hier mal
den wert 1 der belohnungen einfach
häufiger vorkommen als bestrafung
tatsächlich erfordert dieser schritt
häufig ausprobieren oder viel erfahrung
denn es gibt viele viele möglichkeiten
wie man belohnungen bestrafung wählen
kann
wir haben jetzt durch ausprobieren
herausgefunden dass diese beiden werte
in unserem fall ganz gut passen
der letzte schritt besteht dann darin
dass wir unseren agenten tatsächlich
dazu bringen seine strategie zu
aktualisieren und damit zu lernen dazu
wie du weißt müssen wir ja unser modell
aktualisieren mit all den informationen
die wir jetzt haben also mit dem zustand
mit dem neuen zustand den wir natürlich
genau so berechnen können wir den alten
also wir nehmen die exposition des
fasses teilen die durch 10 und runden
das um den zustand kaum klein zu halten
außerdem brauchen wir unsere below
erhaltene belohnung und unser gezeigtes
verhalten was unsere beste bekannte
aktion in diesem zustand war
dann wird das modell auf grundlage der
erhaltenen belohnung aktualisiert jetzt
wo wir fertig sind wollen wir uns
natürlich mal anschauen
das modell habe ich vergessen noch
einzuziehen
aber jetzt wo wir fertig sind wollen wir
auch überprüfen was das agent eigentlich
gelernt hat wie machen wir das
wir klicken hier oben auf die grüne
flagge und starten des programms
wir sehen schon am anfang der agent
hilft sehr viel und das bisher auch noch
nicht sehr erfolgreich aber es langsam
scheint auch es zu schaffen über die
fächer über die fenster zu springen
am anfang hat es äffchen sei nur durch
zufall geschafft über sein fast zu
springen
es wurde aber nach und nach besser die
erste strategie die wir gesehen haben
war das gelernt hat zu springen wenn das
fast wirklich nahe ist manchmal ist das
äffchen aber jetzt auch noch daran
gescheitert dass es zu früh gesprungen
ist dann kurz vom fass gelandet ist
eben nicht mehr genug platz zum springen
vorhanden war aber mit genügend zeit
lernt es auch dass es wird also mal
besser aber wir sehen trotzdem das
äffchen springt auch wenn es fast nicht
in der nähe ist könnte das liegen
na ja das liegt sicherlich daran dass
eben nur die berührung des fasses
bestraft wird der agent habe hat aber
nie gelernt dass es reichen würde wenn
er nur dann springt wenn es fast kurz
vor ihm ist ich denke jetzt wird
endgültig zeit auch mein blick hinter
die kulissen zu werfen was wir im
hintergrund verwendet haben ist zu
lernen
ein sehr bekannter algorithmus für
verstärken das lernen was der
algorithmus macht ist er nutzt eine
tabelle die der agent dazu verwendet die
beste aktion in einem bestimmten zustand
zu identifizieren und auch wir haben die
möglichkeit einblick in diese tabelle zu
werfen und ich habe ganz unten
hier schon mal zwei blöcke versteckt und
zwar element 1 von modell mit diesen
beiden blöcken können wir uns jetzt das
erste element unseres modells ansehen
das wichtigste unsere tabelle einmal
draufklicken zeigt uns diese tabelle und
mit einem doppelklick hier oben auf die
zahl können wir die auch fixieren die
tabelle entspricht letztlich dem was wir
im schaubild mit dem regal visualisiert
haben wir in der ersten spalte befindet
sich der zustand also die exposition des
fasses geteilt durch 10 und gerundet
wert wie 14 oder sowas oder hier unten
12 würde bedeuten dass wir ungefähr hier
sind in dem fall scheint sind zwei werte
gegeben der wert in der zweiten spalte
gibt an was die zu erwartende belohnung
bzw bestrafung ist wenn der agent in
diesem zustand springt der wert in der
dritten spalte gibt an wie die zu in
zukunft zu erwartende belohnung für
nichtstun in dieser aktion er in diesem
zustand ist
der agent eine erhaltene belohnung einer
bestimmten tabellen zelle zuordnet lernt
er erhöht oder verringert also die
wahrscheinlichkeit in dieser situation
diese aktion zu zeigen
wir wollen das programm jetzt mal neu
starten und schauen was der agent so
lernt wie sich die tabelle nach und nach
verändert immer wenn der agent hier
einen neuen zustand entdeckt in dem man
davor noch nie war
dann wird eine neue zeile zur tabelle
hinzugefügt wir sehen hier oben auch die
zahl der zeilen steigt immer dann wenn
eine neue zeile hinzugefügt wird wie
hier werden alle aktions bewertungen mit
dem wert 0 vor initialisiert denn der
agent hat ja noch keine erfahrung
gesammelt
in einem fall wenn beide werte gleich
sind also beide werte wie medial fall 0
aber auch in beide werte 1 sind dann hat
agent keine präferenz welche aktion
erwählen soll und er wird eine zufällige
aktion wählen
nachdem der agent aber belohnt oder
bestraft wurde
ändern sich diese werte die werte werden
auch in der tabelle hier aktualisiert
man wir sind immer wieder ändern sich
gewisse werte im fall dieses zustands
hier ist der wert für springen negativ
erinnert sich sicher wir haben mit -10
bestraft und mit 1 belohnt das heißt
dass in diesem zustand hier die
angesammelte bestrafung größer ist als
die bisher angesammelte belohnung um die
beste aktion zu wählen vergleich der
agent jetzt die beiden werte hier also
die werte für alle aktionen im aktuellen
zustand und wählt den größeren wert aus
in dem fall also der rechte die
schlussfolgerung ist dass es für das
äffchen in diesem zustand hier die beste
idee ist nichts zu tun denn die zu
erwartende belohnung bei springen ist
sehr sehr viel kleiner als die zu
erwartende belohnung bei nichts tun
in diesem zustand wird sich der agent
also wahrscheinlich dafür entscheiden
auch nichts zu tun
die tabelle hier ist konzeptionell
identisch mit der übersicht über die
möglichen spiel stellung bzw dem regal
die bewertungen also zwei drittel
spalten entsprechend den süßigkeiten
also unsere schachspiel was wir gestern
hatten oder den münzen unseres roboters
aus dem schaubild
jetzt wollen wir aber mal noch ansehen
habe ich am anfang auch versprochen was
die verschiedenen parameter unseres
modells also namentlich die lern rate
der diskontierung faktor und die
explorations rate genau bedeuten und
zuerst wollen wir im blick auf die
explorations rate werfen
es ist so dass ein agent im ständigen
zwiespalt ist zum einen möchte er
natürlich die beste strategie verfolgen
die erkennt zum anderen will aber auch
neue strategien ausprobieren machen dazu
mein kleines gedankenexperiment stellen
wir uns vor wir haben drei einarmige
banditen vor uns also diese automaten wo
man glücksspiel um geld betreiben kann
wir haben im mittleren bereits gespielt
und 50 euro gewonnen
am rechten der hat uns nur 1 euro
beschert dem ganz links haben noch gar
nicht ausprobiert die frage ist jetzt
welche aktionen sollten wir das nächstes
ausführen
die sache ist
wir können uns nicht wirklich sicher
sein was unsere nächste aktion ist und
auch der agent muss sich stets
entscheiden aber nun versucht die
bessere aktion zu finden was wir auch
exploration nennen oder ob es sich
weiter daran macht seine belohnung mit
seiner bekannten besten strategie zu
erhöhen
und wirklich erfolgreiche agent muss
dabei genau die goldene mitte zwischen
beiden finden zurück zu unserem programm
würde das bedeuten eine hohe
explorations rate heißt der agent ist er
bereit neue aktion auszuprobieren
also konkret in einem zustand auch mal
eine zufällige aktion auszuführen
auch wenn er bereits durchaus aktionen
mit wirklich hohe bewertung kennt im
beispiel von diesen einnahmen banditen
würde es bedeuten dass wir auch mal den
linken automaten auswählen bei denen
haben wir noch gar nicht ausprobiert
das zweite ist unsere lehren rate die
lern rate gibt an inwieweit neu
erworbenes wissen alte informationen
über schreibt er jetzt eine lern rate
von 0 probieren um unser programm mal
neu starten dann sehen wir nicht viel
denn eine lern rate von 0 ist nicht sehr
vielversprechend denn das auch nicht
verwunderlich ein lern rate von 0 führt
dazu dass da geld überhaupt nichts lernt
war neu erworbenes wissen einfach nicht
genutzt wird eine lern rate von 1
wiederum bedeutet dass er nur die
aktuellste informationen berücksichtigt
und alles wissen was er vorher hatte
überschreibt in der praxis wird häufig
eine mittlere lern rate verwendet so wie
wir vorhin mit unseren 0,5 und 70 also
ein konstanter wert zwischen 0 und 1 der
letzte einstellung einstellbare wert ist
der diskontierung faktor der bestimmt
inwieweit zukünftiger belohnung oder
bestrafung bedeutung beigemessen wird
ein faktor von 0 bewirkt dass der agent
nur aktuelle kurzfristige erreichbare
belohnungen berücksichtigt bei einem
höheren diskontierung faktor strebt der
agent nach langfristig erreichbaren
belohnungen
wenn du dich entscheiden sollte ist ein
spiel wie pong mit verstärkten dem
lernen zu bereiche kannst du mit diesen
faktoren experimentieren um sehen
welchen einfluss sie auf das verhalten
des agenten haben
details dazu findest du in der video
beschreibung das war's für heute
wir hoffen du hast einen einblick
erhalten wie das lernverhalten eines
agenten in ein programm umgesetzt werden
kann
wir können jetzt genau dasselbe prinzip
auf ein spiel pong übertragen
im falle von pong haben wir ein kleines
klein schläger diesen schläger können
wir hoch oder runter bewegen und ein
ball und wir unser ziel ist es eben
diesen ball zu schlagen um das jetzt auf
unser spiel pong zu übertragen müssen
wir nur drei dinge anpassen
die möglichen aktionen also schläger
hoch und runter zu bewegen die art und
weise wie wir unseren zustand erfassen
und die art und weise
wie wir mit belohnungen umgehen für die
erfassung des zustandes läuft es so dass
wir nicht wie beim affen spiel einfach
die exposition des fasses nehmen können
denn es ändert sich ein bisschen mehr an
unserer umwelt wir müssen auch die
position unseres schlägers und des
balles also von zwei dingen
berücksichtigen außerdem müssen wir eine
andere belohnung wählen beispielsweise
indem wir man dann belohnen wenn der
ball mit dem schläger geschlagen wird
und bestrafen wenn der gegner einen
punkt erzielt falls du dich also dafür
interessiert wie du das gelernte nun
aufbauen übertragen kannst es heute doch
die optionale aufgabe in der
kurzbeschreibung an
übrigens in real möglichen anwendungen
kann es passieren dass es so viele
unterschiedliche zustände gibt dass wir
beim training nicht alle erreichen
können oder die tabelle schlicht zu groß
wird in solchen fällen brauchen eine
datenstruktur den gegensatz zu tabellen
dafür sorgt dass wir noch mehr ähnliche
zustände gleich behandeln können und
diese idee ist bei maschinen leiden
lernen ganz wesentlich und wird uns auch
in diesem kurs noch öfter begegnet das
war es für heute in der nächsten einheit
wollen wir uns im einsamkeiten und
unterschieden zwischen klassischen
ansätzen und dem maschinellen lernen
widmen
wir sehen uns
Browse More Related Video
Wie Künstliche Intelligenz funktioniert | Philip Häusser
Unüberwachtes Lernen | Die Welt der KI entdecken 07
Molare Masse und molares Volumen I musstewissen Chemie
Crashkurs für Anfänger | Canva Tutorial Deutsch
Turning Notion Into Your Automated CRM system
Ein Agent der lernt | Die Welt der KI entdecken 02
5.0 / 5 (0 votes)