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 の構築

ブログ    

推薦する

教育省は小中学校の人工知能教育拠点のリストを発表し、北京洪志中学校を含む184校が選ばれた。

教育部基礎教育司は1月11日、「教育部弁公庁による小中学校向け人工知能教育拠点の推薦に関する通知」(...

数学者は解けないコンピュータの問題を発見した

最近、海外メディアの報道によると、数学者たちは自分たちには解決できない機械学習に関連したコンピュータ...

...

PyTorchBigGraph を使用して超大規模グラフ モデルをトレーニングする方法は?

Facebook は、数十億のノードと数兆のエッジを持つグラフ モデルを効率的にトレーニングできる...

科学者たちは人間のように「考える」ことができる人工知能を開発している

[[429745]]人間のような AI を作るということは、単に人間の行動を模倣するということだけで...

インターネット業界における顔認識機能の認知に関する調査報告書

[51CTO.comからのオリジナル記事] 高速かつ高性能なコンピュータの登場により、顔画像技術は大...

...

人工知能オンライン機能システムのデータアクセス技術

1. オンライン機能システム主流のインターネット製品では、古典的な計算広告、検索、推奨から、垂直分野...

...

機械学習モデルの再トレーニングの究極ガイド

機械学習モデルのトレーニングは通常、一連の入力機能と出力ターゲット間のマッピングを学習することによっ...

...

機械学習 = 「新しいボトルに入った古いワイン」の統計?いいえ!

最近、ディープラーニングと人工知能に関するジョークがソーシャルメディア上で広く流布しており、この2つ...

人工知能は大腸がんを診断できる:精度は86%にも達する

AIは心臓病の予測やアルツハイマー病の検出など、医療分野で幅広い応用が期待されています。新たな研究に...

モバイルロボットソフトウェアの自動テストの課題への対応

自動化されたモバイル ホーム ロボットの複雑さを探り、セットアップの特有の課題と制約の克服に焦点を当...

プログラマーという職業は10年以内にAIによって消滅するのでしょうか?

これは非常に興味深い質問です。プログラマーという職業はAIによって消滅することはないと思いますが、プ...