Reinforcement Learning (RL) ist eine maschinelle Lernmethode, die es Agenten ermöglicht, durch Versuch und Irrtum zu lernen, wie sie sich in ihrer Umgebung verhalten sollen. Agenten werden dafür belohnt oder bestraft, dass sie Maßnahmen ergreifen, die zu den gewünschten Ergebnissen führen. Mit der Zeit lernt der Agent, Maßnahmen zu ergreifen, die seine erwartete Belohnung maximieren. RL-Agenten werden in der Regel mithilfe von Markov-Entscheidungsprozessen (MDPs) trainiert, die einen mathematischen Rahmen für sequentielle Entscheidungsprobleme modellieren. MDP besteht aus vier Teilen:
Zustand: eine Reihe möglicher Zustände der Umgebung.Aktion: Eine Reihe von Aktionen, die ein Agent ausführen kann.
Deep Q-Learning ist ein wertbasierter Reinforcement-Learning-Algorithmus, das heißt, er lernt den Wert jedes Zustands-Aktionspaars. Der Wert eines Zustands-Aktionspaars ist die erwartete Belohnung für den Agenten, diese Aktion in diesem Zustand auszuführen.
Actor-Critic ist ein RL-Algorithmus, der wertebasiert und richtlinienbasiert kombiniert. Es gibt zwei Komponenten:
Akteur: Der Akteur ist für die Auswahl von Operationen verantwortlich.
Kritiker: Verantwortlich für die Bewertung des Verhaltens des Schauspielers.
Schauspieler und Kritiker werden gleichzeitig ausgebildet. Akteure werden darin geschult, die erwarteten Belohnungen zu maximieren, und Kritiker werden darin geschult, die erwarteten Belohnungen für jedes Zustands-Aktions-Paar genau vorherzusagen.
Der Akteur-Kritiker-Algorithmus hat mehrere Vorteile gegenüber anderen Verstärkungslernalgorithmen. Erstens ist es stabiler, was bedeutet, dass es während des Trainings weniger wahrscheinlich zu Verzerrungen kommt. Zweitens ist es effizienter, was bedeutet, dass es schneller lernen kann. Drittens ist es besser skalierbar und kann auf Probleme mit großen Zustands- und Aktionsräumen angewendet werden
Die folgende Tabelle fasst die Hauptunterschiede zwischen Deep Q-Learning und Actor-Critic zusammen:
Vorteile von Actor- Critic (A2C)
Actor-Critic ist eine beliebte Architektur für verstärkendes Lernen, die richtlinienbasierte und wertebasierte Ansätze kombiniert. Es hat viele Vorteile, die es zu einer guten Wahl für die Lösung verschiedener Verstärkungslernaufgaben machen:
Im Vergleich zu herkömmlichen Richtliniengradientenmethoden weist A2C normalerweise eine geringere Leistung beim Training der Varianz auf. Dies liegt daran, dass A2C sowohl den Richtliniengradienten als auch die Wertfunktion verwendet und die Wertfunktion verwendet, um die Varianz bei der Berechnung des Gradienten zu verringern. Geringe Varianz bedeutet, dass der Trainingsprozess stabiler ist und schneller zu einer besseren Richtlinie konvergieren kann.
3. Kombination von Richtlinien- und Wertefunktion
4. Unterstützt kontinuierliche und diskrete Aktionsräume
Obwohl schauspielerkritische Methoden einige Vorteile haben, stehen sie auch vor einigen Herausforderungen, wie z. B. Hyperparameter-Tuning und potenzieller Instabilität beim Training. Mit geeigneter Abstimmung und Techniken wie Experience Replay und Target Networks können diese Herausforderungen jedoch weitgehend gemildert werden, was Actor-Critic zu einer wertvollen Methode beim Reinforcement Learning macht
Panda-Gym wurde auf Basis der PyBullet-Engine entwickelt und umfasst 6 Aufgaben wie Greifen, Schieben, Schieben, Aufnehmen und Platzieren, Stapeln und Umdrehen des Panda-Roboterarms von OpenAI Fetch.
Wir verwenden Panda-Gym als Beispiel, um den folgenden Code zu zeigen
Zuerst müssen wir den Code für die Verstärkungslernumgebung initialisieren:
!apt-get install -y \libgl1-mesa-dev \libgl1-mesa-glx \libglew-dev \xvfb \libosmesa6-dev \software-properties-common \patchelf !pip install \free-mujoco-py \pytorch-lightning \optuna \pyvirtualdisplay \PyOpenGL \PyOpenGL-accelerate\stable-baselines3[extra] \gymnasium \huggingface_sb3 \huggingface_hub \ panda_gym
import os import gymnasium as gym import panda_gym from huggingface_sb3 import load_from_hub, package_to_hub from stable_baselines3 import A2C from stable_baselines3.common.evaluation import evaluate_policy from stable_baselines3.common.vec_env import DummyVecEnv, VecNormalize from stable_baselines3.common.env_util import make_vec_env
env_id = "PandaReachDense-v3" # Create the env env = gym.make(env_id) # Get the state space and action space s_size = env.observation_space.shape a_size = env.action_space print("\n _____ACTION SPACE_____ \n") print("The Action Space is: ", a_size) print("Action Space Sample", env.action_space.sample()) # Take a random action
Eine gute Möglichkeit, das Verstärkungslernen zu optimieren. Wir berechnen den laufenden Mittelwert und die Standardabweichung der Eingabemerkmale über den Wrapper. Normalisieren Sie auch Belohnungen, indem Sie norm_reward = True
env = make_vec_env(env_id, n_envs=4) env = VecNormalize(env, norm_obs=True, norm_reward=True, clip_obs=10.)
model = A2C(policy = "MultiInputPolicy",env = env,verbose=1)
Zusammenfassung
Das obige ist der detaillierte Inhalt vonTiefgreifendes Q-Learning-Verstärkungslernen mit der Roboterarmsimulation von Panda-Gym. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!