Panda-Gym のロボットアームシミュレーションを使用したディープ Q 学習強化学習

Panda-Gym のロボットアームシミュレーションを使用したディープ Q 学習強化学習

強化学習 (RL) は、エージェントが試行錯誤を通じて環境内でどのように動作するかを学習できるようにする機械学習手法です。エージェントは、期待される結果につながるアクションを実行すると報酬を受け、期待される結果につながるアクションを実行すると罰せられます。時間の経過とともに、エージェントは期待される報酬を最大化するアクションを実行することを学習します。

RL エージェントは、多くの場合、順次的な意思決定問題をモデル化する数学的フレームワークであるマルコフ決定プロセス (MDP) を使用してトレーニングされます。 MDP は次の 4 つの部分で構成されます。

  • 状態: 環境の可能な状態のセット。
  • アクション: エージェントが実行できる一連のアクション。
  • 遷移関数: 現在の状態とアクションに基づいて、新しい状態に遷移する確率を予測する関数。
  • 報酬関数: 遷移ごとにエージェントに報酬を割り当てる関数。

エージェントの目標は、状態をアクションにマッピングするポリシー関数を学習することです。ポリシー関数は、エージェントの期待収益を時間の経過とともに最大化するために使用されます。

ディープ Q ラーニングは、ディープ ニューラル ネットワークを使用してポリシー関数を学習する強化学習アルゴリズムです。ディープ ニューラル ネットワークは現在の状態を入力として受け取り、それぞれが可能なアクションを表す値のベクトルを出力します。エージェントは最も価値の高いアクションを実行します。

ディープ Q ラーニングは価値ベースの強化学習アルゴリズムであり、各状態とアクションのペアの値を学習することを意味します。状態とアクションのペアの値は、エージェントがその状態でそのアクションを実行することで得られる期待報酬です。

Actor-Critic は、価値ベースのアプローチとポリシーベースのアプローチを組み合わせた RL アルゴリズムです。 2 つのコンポーネントがあります。

  • アクター: アクターはアクションを選択する責任があります。
  • 批評家: アクターの行動を評価する責任があります。

俳優と評論家が同時に訓練されます。アクターは期待報酬を最大化するようにトレーニングされ、批評家は各状態とアクションのペアの期待報酬を正確に予測するようにトレーニングされます。

Actor-Critic アルゴリズムには、他の RL アルゴリズムに比べていくつかの利点があります。まず、安定性が高くなり、トレーニング中にドリフトする可能性が低くなります。第二に、より効率的であるため、より早く学習できます。 3 番目に、よりスケーラブルであるため、大規模な状態空間とアクション空間の問題に適用できます。

次の表は、Deep Q-learning と Actor-Critic の主な違いをまとめたものです。

アクタークリティック(A2C)の利点

Actor-Critic は、ポリシーベースのアプローチと価値ベースのアプローチを組み合わせた、人気の強化学習アーキテクチャです。さまざまな強化学習タスクを解決するための強力な選択肢となるいくつかの利点があります。

1. ばらつきが少ない

従来のポリシー勾配法と比較すると、A2C は通常、トレーニング中の分散が低くなります。これは、A2C がポリシー勾配と価値関数の両方を使用し、価値関数を通じて勾配の分散を減らすためです。分散が低いということは、トレーニング プロセスがより安定し、より優れた戦略に早く収束できることを意味します。

2. 学習速度が速い

A2C は分散性が低いため、通常は適切なポリシーをより速く学習できます。これは、大量のシミュレーションを必要とするタスクにとって特に重要であり、より高速な学習によって貴重な時間とコンピューティング リソースを節約できます。

3. 戦略と価値機能の融合

A2C の注目すべき特徴は、ポリシーと価値関数の両方を同時に学習することです。この組み合わせにより、エージェントは環境とアクションの関係をより深く理解できるようになり、ポリシーの改善をより適切に導くことができます。価値関数の存在は、戦略の最適化におけるエラーを減らし、トレーニングの効率を向上させるのにも役立ちます。

4. 連続および離散アクション空間のサポート

A2C は、連続アクションや離散アクションなど、さまざまな種類のアクション スペースに簡単に適応できます。この汎用性により、A2C はロボット制御からゲームプレイの最適化に至るまで、さまざまなタスクに適用できる、幅広く適用可能な強化学習アルゴリズムになります。

5. 並行トレーニング

A2C は簡単に並列化できるため、マルチコア プロセッサと分散コンピューティング リソースを最大限に活用できます。これにより、より短時間でより多くの経験データを収集できるようになり、トレーニングの効率が向上します。

Actor-Critic 法にはいくつかの利点がありますが、ハイパーパラメータの調整やトレーニングにおける潜在的な不安定性など、独自の課題もあります。しかし、適切な調整と経験再生や目標ネットワークなどの技術を使用すれば、これらの課題は大幅に軽減され、Actor-Critic は強化学習における貴重な方法になります。

パンダジム

panda-gym は PyBullet エンジンに基づいて開発されています。パンダ ロボット アームの周囲に届く、押す、スライドする、ピック アンド プレースする、積み重ねる、反転するなどの 6 つのタスクをカプセル化します。また、主に OpenAI Fetch からインスピレーションを受けています。

次のコードでは、例として panda-gym を使用します。

1. ライブラリをインストールする

コードはまず強化学習環境を初期化します。

 !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

2. ライブラリのインポート

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

3. 実行環境を作成する

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

4. 観察と報酬の標準化

強化学習の最適化に適した方法は、入力機能を正規化することです。ラッパーを通じて入力特徴の実行平均と標準偏差を計算します。また、norm_reward = Trueを追加して報酬を正規化します。

 env = make_vec_env(env_id, n_envs=4) env = VecNormalize(env, norm_obs=True, norm_reward=True, clip_obs=10.)

5. A2Cモデルを作成する

Stable-Baselines3チームによってトレーニングされた公式プロキシを使用します

model = A2C(policy = "MultiInputPolicy", env = env, verbose=1)

6. A2Cのトレーニング

model.learn(1_000_000) # Save the model and VecNormalize statistics when saving the agent model.save("a2c-PandaReachDense-v3") env.save("vec_normalize.pkl")

7. 評価エージェント

from stable_baselines3.common.vec_env import DummyVecEnv, VecNormalize # Load the saved statistics eval_env = DummyVecEnv([lambda: gym.make("PandaReachDense-v3")]) eval_env = VecNormalize.load("vec_normalize.pkl", eval_env) # We need to override the render_mode eval_env.render_mode = "rgb_array" # do not update them at test time eval_env.training = False # reward normalization is not needed at test time eval_env.norm_reward = False # Load the agent model = A2C.load("a2c-PandaReachDense-v3") mean_reward, std_reward = evaluate_policy(model, eval_env) print(f"Mean reward = {mean_reward:.2f} +/- {std_reward:.2f}")

要約する

「panda-gym」のパンダロボットと GYM 環境の効果的な組み合わせにより、ロボットの強化学習をローカルで簡単に実行できます。Actor-Critic アーキテクチャでは、エージェントは各タイムステップで段階的な改善を学習します。これは、結果がバイナリであるスパース報酬関数とは対照的であり、Actor-Critic メソッドはこのようなタスクに特に適しています。

ポリシー学習と価値推定をシームレスに組み合わせることで、エージェントはロボットのエンドエフェクタを巧みに操作し、指定されたターゲット位置に到達できます。これは、ロボット制御などのタスクに実用的なソリューションを提供するだけでなく、俊敏性とインテリジェントな意思決定を必要とするさまざまな分野を変革する可能性を秘めています。

<<:  光学行列乗算は人工知能をどう変えるのか

>>:  Llama インデックスを使用したマルチエージェント RAG の構築

ブログ    
ブログ    

推薦する

交通渋滞の解決、放射線の監視、現場での捜索救助...ドローンにはどんな素晴らしい用途があるのでしょうか?

01 トラフィック監視セキュリティ任務におけるドローンの有望な用途の 1 つは、交通監視システムの...

知能の哲学: 人工知能の倫理的問題 (有益な AI)

伝統的な人間中心の単純な倫理観は、人工知能の急速な発展によって脅かされています。哲学者、人類学者、倫...

テラデータ、Vantage Customer ExperienceとVantage Analystを発表

ユビキタス データ インテリジェンス テクノロジーを提供する世界唯一のプロバイダーである Terad...

今日のアルゴリズム: 文字列の乗算

[[421393]]この記事はWeChatの公開アカウント「3分でフロントエンドを学ぶ」から転載した...

一般相対性理論の予測に沿って、M87ブラックホールの最新の研究結果がネイチャー誌に掲載されました。

9月27日、ネイチャー誌は45の機関からなる国際科学研究チームの最新の研究成果を発表した。 200...

...

...

安定性、効率性、俊敏性:適応型AIの利点

人工知能にはさまざまなものがあります。コンピューターを使って知的なことを行うこともあれば、コンピュー...

...

ビッグデータと機械学習は世界のエネルギー業界をどのように変えるのでしょうか?

機械学習、ビッグデータ、自動化は世界の産業システムに革命をもたらしており、エネルギー業界も例外ではあ...

「機械による人代替」が雇用問題を引き起こす。第一線で働く人々の未来はどうなるのか?

人工知能技術の推進により、製造業の変革と高度化が進み、「機械が人に代わる」という波が起こり、その社会...

ディープラーニングとニューラルネットワーク: 注目すべき 6 つのトレンド

ニューラル ネットワークの基本的な考え方は、コンピューターの「脳」内の複数の相互接続されたセルをシミ...

...

運試しに自撮りしてみませんか?これはすべて顔認識技術のおかげです

新年の初めに、酉年の運勢を計算することは、多くの若者が夕食後に好んで行うことです。 「占い」はどちら...

この記事では、さまざまな教師なしクラスタリングアルゴリズムのPython実装について簡単に説明します。

教師なし学習は、データ内のパターンを見つけるために使用される機械学習技術の一種です。教師なし学習アル...