Q-Learning: Die Basics von Reinforcement Learning • Aggregata (2024)

Die Texte in diesem Artikel wurden teilweise mit Hilfe künstlicher Intelligenz erarbeitet und von uns korrigiert und überarbeitet. Für die Generierung wurden folgende Dienste verwendet:

Einordnung

Reinforcement Learning hat viel Aufsehen erregt. Modelle wie AlphaGo oder AlphaStar haben große Erfolge erzielt und das Interesse an entsprechenden Modellen in verschiedenen Bereichen stark erhöht.Heute stelle ich einen der grundlegendsten Algorithmen vor, den das Reinforcement Learning in seinen Anfängen hervorgebracht hat: Das Q-Learning.

Q-Learning wird manchmal auch Q-Table genannt, in Anlehnung an die Matrix, die dem Verfahren zugrunde liegt. Im Folgenden wird der Begriff Q-Learning verwendet.

Mathematische Grundlagen

Bei Q-Learning handelt es sich in den Implementierungen häufig um eine einfache Matrix, die in einer Dimension mit der Anzahl der möglichen Eingangsbeobachtungen und in der anderen Dimension mitNullen für die Anzahl der möglichen Aktionen initialisiert wird. Anschließend wird durch die Update-Formel

Q(st,at)Q(st,at)+α[rt+γmaxaAQ(st+1,a)Q(st,at)]Q(s_t, a_t) \leftarrow Q(s_t, a_t) + \alpha \left[ r_t + \gamma \max_{a' \in A} Q(s_{t + 1}, a') - Q(s_t, a_t) \right]Q(st,at)Q(st,at)+α[rt+γmaxaAQ(st+1,a)Q(st,at)]

die State-Values entsprechender Observationen iterativ angepasst. Diese Gleichung wird auch als Bellmann-Gleichung bezeichnet.

In der Gleichung oben steht sts_tst für die Beobachtung zum Zeitpunkt tNt \in \mathbb{N}tN, atAa_t \in AatA für die gewählte Aktion zum Zeitpunkt ttt und rtr_trt für den Reward, welcher zum Zeitpunktttt nach Anwendung der Aktion ata_tat gewährt wurde. Der Raum aller möglichen Aktionen wird mit AAA bezeichnet. 1 2 3

Typischerweise wird der Endzustand nie in der Update-Formel aktualisiert. In diesem Fall kann entweder der Wert der Belohnung als Zustandswert verwendet werden, oder es wird darauf verzichtet,wie es in der Implementierung weiter unten der Fall sein wird.

Darüber hinaus verwendet Q-Learning auch Epsilon-Greedy für die Exploration. Hierbei handelt es sich um ein Random Sampling im Bereich [0,1][0, 1][0,1]. Wenn die gezogene Stichprobe kleiner als Epsilon ist,wird eine zufällige Aktion ausgewählt, andernfalls wird eine Aktion nach Auswertung ausgewählt. 4

Im Gegensatz zu vielen anderen Reinforcement Learning Algorithmen, die auf künstlichen neuronalen Netzen basieren, konnte gezeigt werden, dass Q-Learning prinzipiell eine garantierte Konvergenz aufweisenkann. Dies ist allerdings unter sehr technischen Voraussetzungen möglich, welche in der Realität meist ignoriert werden. Mehr Informationen dazu in dieser Quelle.

Q-Learning kann in seiner Grundversion nur mit diskreten Zustands- und Aktionsräumen umgehen. Entsprechende Workarounds werden im Verlaufe des Posts vorgestellt.

Die Parameter

Die Lernrate

Der Parameter α\alphaα beschreibt wie beim Rest der “Reinforcement Learning”-Algorithmen auch die Learning Rate, welche sich im Bereich α[0,1]\alpha \in [0, 1]α[0,1] bewegen sollte.

Dieser Parameter beschreibt die Gewichtung, mit der neue Informationen im Algorithmus verarbeitet werden. Höhere Werte von Alpha gewichten dabei neue Informationen (deutlich) stärker als alteInformationen, als dies bei (sehr) kleinen Werten der Fall wäre.

Im Extremfall von α=0\alpha = 0α=0 lernt der Agent nichts, da Änderungen durch die Update-Formel nicht in die Q-Table einfließen können.

In vollständig deterministischen Umgebungen ist eine Lernrate von α=1\alpha = 1α=1 optimal. In stochastischenUmgebungen sollte dieser Wert geringer liegen.

Trotz der Konvergenzgarantie unter technischen Bedingungen wird in der Realität meist ein konstanter, vorgegebener Wert verwendet. Auch ohne Konvergenzgarantie konvergiert der Algorithmus häufig undverhält sich in der Lernphase robust. 5

Gamma

Gamma als Discounting Factor bestimmt eine entsprechend zu maximierende Zielgröße. Bei großen Gamma-Werten versucht der Algorithmus, die langfristigen Belohnungen zu maximieren, während ein kleinesGamma eher zu kurzfristigen Optimierungen führt.

Wird Gamma größer oder gleich eins gewählt, kann es zu einer Divergenz im Algorithmus kommen und die Zustandswerte nähern sich immer mehr dem Wert unendlich an. Daher sollte Gamma kleiner als einsgewählt werden. 1

Wahl der Anfangsbedingungen

Aufgrund der iterativen Natur des Algorithmus muss in der ersten Iteration des Algorithmus eine Anfangsbedingung eingegeben werden. Diese Bedingung bildet die Grundlage für die Lösung der Aufgabe.

Hohe Anfangszustandswerte können dazu führen, dass der Algorithmus eher neue Kombinationen ausprobiert, da ausprobierte Beobachtungs-Aktionskombinationen durch die Aktualisierungsformel schnellniedrigere Werte aufweisen und entsprechend neue Aktionen mit höherer Wahrscheinlichkeit ausgewählt werden. 1

Anmerkung des Autors: In der Praxis wird häufig einfach eine Nullmatrix initialisiert, da dies nicht sehr aufwendig ist. Die Ergebnisse sind in der Regel gut.

Q-Learning auf kontinuierlichen Räumen

Q-Learning hat grundsätzlich die Einschränkung, dass sehr große Dimensionen oder unendlich viele Punkte für die Anzahl der Beobachtungen und Aktionen große Speichermengen erfordern oder nicht direktunterstützt werden. Um Q-Learning auf kontinuierlichen Räumen zum Laufen zu bringen, gibt es daher grundsätzlich zwei verschiedene Möglichkeiten

Diskretisierung des Raumes

Um das Problem eines diskreten Raumes mit unendlich vielen Punkten zu umgehen, kann der Raum relativ einfach als Menge endlicher Punkte angenommen werden. 1

Dies kann auch für sehr große Räume (mit sehr vielen Datenpunkten) verwendet werden. Dabei werden mehrere Datenpunkte zu einem Datenpunkt zusammengefasst.

Funktionsapproximation auf dem Raum

Grundsätzlich kann das Problem auch dadurch gelöst werden, dass ein angepasstes neuronales Netz zur Regression verwendet wird, um den kontinuierlichen Input in einen diskreten Input bzw. den(diskreten) Output in einen kontinuierlichen Output zu transformieren. 1

Hinweis des Autors: Auch wenn beide Verfahren in ihren Grundprinzipien zur Lösung des Problems beitragen, führen sie teilweise zu ineffizienten Lernprozessen - unter anderem verursacht durch denFluch der Dimensionalität.

Implementierung

Im Folgenden wird eine einfache Version vom Q-Learning implementiert, welche das Taxi-Problem lösen soll. Wir beginnen mit den notwendigen Imports und em Experience Buffer.

import numpy as npimport gym
class TrajectoryExperienceMemory: def __init__(self): self.cstate_memory, self.action_memory, self.reward_memory, self.pstate_memory = [], [], [], [] def record(self, cstate, action, reward, pstate): self.cstate_memory.append(cstate) self.action_memory.append(action) self.reward_memory.append(reward) self.pstate_memory.append(pstate) def flush_memory(self): self.cstate_memory, self.action_memory, self.reward_memory, self.pstate_memory = [], [], [], [] def return_experience(self): batch_cstates = np.array(self.cstate_memory, dtype=np.int64) batch_actions = np.array(self.action_memory, dtype=np.int64) batch_rewards = np.array(self.reward_memory, dtype=np.float64) batch_pstates = np.array(self.pstate_memory, dtype=np.int64) return (batch_cstates, batch_actions, batch_rewards, batch_pstates)

Als nächstes wird hierbei der Algorithmus für das Q-Learning implementiert. Diese Version beinhaltet einen linearen ϵ\epsilonϵ-Decay mit relativ gerinem Decay-Wert.

class QAgent: def __init__(self, observations: int, actions: int) -> None: self.observations = observations self.actions = actions # Learning Parameters self.alpha, self.gamma = 0.8, 0.99 # Exploration Parameters self.epsilon, self.epsilon_decay = 1, 0.0001 # Initialize Q-Matrix self.q = np.zeros((self.observations, self.actions)) # Initialize Experience Replay self.memory = TrajectoryExperienceMemory() def sample_action(self, observation: int): if (np.random.random() < self.epsilon): self.epsilon -= self.epsilon_decay return np.random.randint(0, self.actions - 1) else: return np.argmax(self.q[observation])  def store_step(self, cstate: int, action: int, reward: float, pstate: int): self.memory.record(cstate, action, reward, pstate) def update(self): cstates, actions, rewards, pstates = self.memory.return_experience() for i in range(len(cstates)): # Perform Q-Update according to Bellman Equation self.q[cstates[i], actions[i]] = self.q[cstates[i], actions[i]] + self.alpha * (rewards[i] + self.gamma * np.max(self.q[pstates[i]]) - self.q[cstates[i], actions[i]]) 

Als Letztes wird hierbei noch die Training Loop implementiert, um das Training umzusetzen.

env = gym.make("FrozenLake-v1")agent = QAgent(16, 4)episodes = 10000episodic_rewards = []for episode in range(episodes): cstate, _ = env.reset() done, episodic_reward = False, 0 while (done == False): cstate = int(cstate) action = agent.sample_action(cstate) pstate, reward, done, _, _ = env.step(action) episodic_reward += reward agent.store_step(cstate, action, reward, pstate) cstate = pstate print(f"Episodic Reward in Episode {episode}: {episodic_reward}") episodic_rewards.append(episodic_reward) agent.update()

Die Ergebnisse einer Implementierung ohne ϵ\epsilonϵ-Decay sind im Folgenden visualisiert:

Epsilon Decay

Weiterhin ist es üblich, entsprechend den ϵ\epsilonϵ-Wertes über das Training durch einen Decay zu steuern, ähnlich zum Deep Q-Network. Hierbei ist es ebenso wichtig, einen Minimalwertϵmin\epsilon_{min}ϵmin für ϵ\epsilonϵ festzulegen, damit immer ein gewisses Maß an Exploration aufrechterhalten wird.

Ein Decay kann beispielsweise über einen exponentiellen oder linearen Abfall erreicht werden. Ergebnisse hierzu sind im Folgenden visualisiert worden:

Üblicherweise sind diese Ergebnisse mit einem ϵ\epsilonϵ-Decay besser, aufgrund einer effizienteren Exploration zu Beginn des Trainings und einer effizienteren Exploitation in späteren Episoden desTrainings. Dies ist hier nicht der Fall, sollte allerdings klassisch mit implementiert werden.

Quellen

  1. wikipedia.org ↩2 ↩3 ↩4 ↩5

  2. ieeexplore.ieee.org/

  3. floydhub.com

  4. bealdung.com

  5. wikipedia.org

Q-Learning: Die Basics von Reinforcement Learning &bull; Aggregata (2024)

FAQs

What is reinforcement learning answer? ›

Reinforcement learning (RL) is a machine learning (ML) technique that trains software to make decisions to achieve the most optimal results. It mimics the trial-and-error learning process that humans use to achieve their goals.

What is the Q-value in Q-learning? ›

The Q-learning algorithm uses a Q-table of State-Action Values (also called Q-values). This Q-table has a row for each state and a column for each action. Each cell contains the estimated Q-value for the corresponding state-action pair. We start by initializing all the Q-values to zero.

What is Q-learning easily explained? ›

Q-learning is a model-free, value-based, off-policy algorithm that will find the best series of actions based on the agent's current state. The “Q” stands for quality. Quality represents how valuable the action is in maximizing future rewards.

What are the problems with Q-learning? ›

The problem

The mechanism driving Q-learning is that it selects the action that yields the highest expected value. Depending on initialization, this mechanism might get stuck at the first action that is tried, so we also select random actions with probability ϵ, typically set at 0.05 or so.

Why is Q-learning unstable? ›

This instability comes from the correlations present in the sequence of observations, the fact that small updates to Q may significantly change the policy of the agent and the data distribution, and the correlations between Q and the target values.

What is reinforcement learning and Q learning? ›

Q-learning is a machine learning approach that enables a model to iteratively learn and improve over time by taking the correct action. Q-learning is a type of reinforcement learning. With reinforcement learning, a machine learning model is trained to mimic the way animals or children learn.

What is an example of reinforcement in learning? ›

Predictive text, text summarization, question answering, and machine translation are all examples of natural language processing (NLP) that uses reinforcement learning. By studying typical language patterns, RL agents can mimic and predict how people speak to each other every day.

What is basic reinforcement learning? ›

Reinforcement learning is a machine learning training method based on rewarding desired behaviors and punishing undesired ones. In general, a reinforcement learning agent -- the entity being trained -- is able to perceive and interpret its environment, take actions and learn through trial and error.

What is the formula for Q-learning? ›

The Q-function uses the Bellman equation and uses two inputs: the state (s) and the action (a). Q(s, a) stands for the Q Value that has been yielded at state 's' and selecting action 'a'. This is calculated by r(s, a) which stands for the immediate reward received + the best Q Value from state 's'.

What is the optimal Q-value in Q-learning? ›

A Q-value function (Q) shows us how good a specific action is for an agent following a policy, given a more particular state, movement, and state alone. The optimal Q-value function (Q*) gives us the maximum return achievable by any approach from a given state-action pair.

What is the V value in Q-learning? ›

The V function states what the expected overall value (not reward!) of a state s under the policy π is. The Q function states what the value of a state s and an action a under the policy π is.

Why is Q-learning biased? ›

This bias arises because Q-Learning typically selects the maximum action value during the update process, which can lead to overly optimistic estimates of the value functions.

What are the hyperparameters of Q-learning? ›

α and γ are the q-learning rate and discount factor, which are both hyperparameters of the Q-Learning algorithm. The q-learning rate determines how quickly new information is learned, while the discount factor determines how much value we assign to short term versus long term rewards.

Does Q-learning always converge? ›

We show that Q-learning converges to the optimum action-values with probability 1 so long as all actions are repeatedly sampled in all states and the action-values are represented discretely.

What is the Q-learning mechanism? ›

Q-learning (Watkins and Dayan, 1992) is a simple RL algorithm that given the current state, seeks to find the best action to take in that state. It is an off-policy algorithm because it learns from actions that are random (i.e., outside the policy).

Top Articles
Latest Posts
Article information

Author: Nathanael Baumbach

Last Updated:

Views: 5909

Rating: 4.4 / 5 (55 voted)

Reviews: 86% of readers found this page helpful

Author information

Name: Nathanael Baumbach

Birthday: 1998-12-02

Address: Apt. 829 751 Glover View, West Orlando, IN 22436

Phone: +901025288581

Job: Internal IT Coordinator

Hobby: Gunsmithing, Motor sports, Flying, Skiing, Hooping, Lego building, Ice skating

Introduction: My name is Nathanael Baumbach, I am a fantastic, nice, victorious, brave, healthy, cute, glorious person who loves writing and wants to share my knowledge and understanding with you.