Panda-Gym のロボット アーム シミュレーションを使用した Deep Q-learning 強化学習
強化学習 (RL) は、エージェントが試行錯誤を通じて環境内でどのように動作するかを学習できる機械学習手法です。エージェントは、望ましい結果につながるアクションを実行すると、報酬または罰を受けます。時間が経つにつれて、エージェントは期待される報酬を最大化するアクションを取ることを学習します
RL エージェントは通常、数学的フレームワークであるマルコフ決定プロセス (MDP) を使用します。逐次的な意思決定問題をモデル化します。 MDP は 4 つの部分で構成されます。
- #状態: 環境の可能な状態のセット。
- アクション: エージェントが実行できる一連のアクション。
- 遷移関数: 現在の状態とアクションを考慮して、新しい状態に遷移する確率を予測する関数。
- 報酬関数: コンバージョンごとにエージェントに報酬を割り当てる関数。
エージェントの目標は、状態をアクションにマッピングするポリシー機能を学習することです。ポリシー機能を通じて、エージェントの長期にわたる期待収益を最大化します。
ディープ Q ラーニングは、ディープ ニューラル ネットワークを使用してポリシー関数を学習する強化学習アルゴリズムです。ディープ ニューラル ネットワークは現在の状態を入力として受け取り、値のベクトルを出力します。各値は可能なアクションを表します。その後、エージェントは最も高い値に基づいてアクションを実行します。
ディープ Q ラーニングは、値ベースの強化学習アルゴリズムです。つまり、各状態とアクションのペアの値を学習します。状態とアクションのペアの値は、その状態でエージェントがそのアクションを実行することで期待される報酬です。
Actor-Critic は、価値ベースとポリシーベースを組み合わせた RL アルゴリズムです。 2 つのコンポーネントがあります:
#アクター: アクターは操作の選択を担当します。
批評家: アクターの動作を評価する責任があります。
俳優と批評家は同時に訓練を受けます。アクターは期待される報酬を最大化するようにトレーニングされ、批評家は各状態アクションのペアの期待される報酬を正確に予測するようにトレーニングされます。
アクター-クリティック アルゴリズムには、他の強化学習アルゴリズムの利点に比べていくつかの利点があります。まず、より安定しているため、トレーニング中にバイアスが発生する可能性が低くなります。第二に、より効率的であり、より速く学習できることを意味します。第三に、スケーラビリティが向上し、大きな状態空間と操作空間を持つ問題に適用できます。
下の表は、Deep Q-learning と Actor-Critic の違いをまとめたものです。主な違いは次のとおりです。
Actor-Critic (A2C) の利点
Actor-Critic は、一般的な強化学習アーキテクチャです。ポリシーベースのアプローチと価値ベースのアプローチを組み合わせています。これには、さまざまな強化学習タスクを解決するための強力な選択肢となる多くの利点があります:
1. 低い分散
従来のポリシーとの比較勾配法では、A2C は通常、トレーニング中の分散が低くなります。これは、A2C がポリシー勾配と値関数の両方を使用し、勾配の計算の分散を減らすために値関数を使用するためです。分散が低いということは、トレーニング プロセスがより安定しており、より良い戦略により早く収束できることを意味します
2. 学習速度の向上
原因:分散が低いという特徴により、A2C は通常、優れた戦略をより早く学習できます。学習速度が速くなることで貴重な時間とコンピューティング リソースが節約されるため、これは広範なシミュレーションを必要とするタスクでは特に重要です。
3. ポリシーと価値関数の組み合わせ
A2C の特徴の 1 つは、ポリシーと価値関数を同時に学習することです。この組み合わせにより、エージェントは環境とアクションの相関関係をよりよく理解できるようになり、ポリシーの改善をより適切に導くことができます。値関数の存在は、ポリシー最適化におけるエラーを減らし、トレーニング効率を向上させるのにも役立ちます。
4. 連続アクション スペースと離散アクション スペースのサポート
A2C は、連続アクションと離散アクションを含む、さまざまなタイプのアクション スペースに適応できます。非常に多用途です。これにより、A2C は、ロボット制御からゲームプレイの最適化まで、さまざまなタスクに適用できる、広く適用可能な強化学習アルゴリズムになります。
5. 並列トレーニング
#A2C は簡単に並列化して、マルチコア プロセッサと分散コンピューティング リソースを最大限に活用できます。これは、より短い時間でより多くの経験的データを収集できることを意味し、トレーニング効率が向上します。
Actor-Critic 手法にはいくつかの利点がありますが、ハイパーパラメータの調整やトレーニングにおける潜在的な不安定性など、いくつかの課題にも直面しています。ただし、エクスペリエンス リプレイやターゲット ネットワークなどの適切な調整とテクニックを使用すると、これらの課題を大幅に軽減できるため、Actor-Critic は強化学習における貴重なアプローチになります
panda-gym
##panda-gym は PyBullet エンジンに基づいて開発されており、リーチ、プッシュ、スライドなど 6 つのタスクをカプセル化しています。 pick&place、stack、flip は主に OpenAI Fetch からインスピレーションを得ています。
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
ログイン後にコピー
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
ログイン後にコピー
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、トレーニング A2Cmodel.learn(1_000_000) # Save the model and VecNormalize statistics when saving the agent model.save("a2c-PandaReachDense-v3") env.save("vec_normalize.pkl")
ログイン後にコピー
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}")
ログイン後にコピー
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」では、Panda ロボットアームと GYM 環境を効果的に組み合わせることで、ローカルでロボットアームの強化学習を簡単に実行できます。
Actor-Critic アーキテクチャでは、エージェントはタイム ステップごとに段階的に改善することを学習します。これは、スパース報酬関数 (結果がバイナリである) とは対照的です。 Actor-Critic メソッドは、そのようなタスクに特に適しています。
ポリシー学習と価値推定をシームレスに組み合わせることで、ロボット エージェントはロボット アームのエンド エフェクターを巧みに操作して、指定された目標位置に正確に到達することができます。これは、ロボット制御などのタスクに実用的なソリューションを提供するだけでなく、機敏で情報に基づいた意思決定を必要とするさまざまな分野を変革する可能性を秘めています。
以上がPanda-Gym のロボット アーム シミュレーションを使用した Deep Q-learning 強化学習の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











画像の注釈は、ラベルまたは説明情報を画像に関連付けて、画像の内容に深い意味と説明を与えるプロセスです。このプロセスは機械学習にとって重要であり、画像内の個々の要素をより正確に識別するために視覚モデルをトレーニングするのに役立ちます。画像に注釈を追加することで、コンピュータは画像の背後にあるセマンティクスとコンテキストを理解できるため、画像の内容を理解して分析する能力が向上します。画像アノテーションは、コンピュータ ビジョン、自然言語処理、グラフ ビジョン モデルなどの多くの分野をカバーする幅広い用途があり、車両が道路上の障害物を識別するのを支援したり、障害物の検出を支援したりするなど、幅広い用途があります。医用画像認識による病気の診断。この記事では主に、より優れたオープンソースおよび無料の画像注釈ツールをいくつか推奨します。 1.マケセンス

機械学習とデータ サイエンスの分野では、モデルの解釈可能性が常に研究者や実務家に焦点を当ててきました。深層学習やアンサンブル手法などの複雑なモデルが広く適用されるようになったことで、モデルの意思決定プロセスを理解することが特に重要になってきました。 Explainable AI|XAI は、モデルの透明性を高めることで、機械学習モデルに対する信頼と自信を構築するのに役立ちます。モデルの透明性の向上は、複数の複雑なモデルの普及や、モデルを説明するための意思決定プロセスなどの方法によって実現できます。これらの方法には、特徴重要度分析、モデル予測間隔推定、ローカル解釈可能性アルゴリズムなどが含まれます。特徴重要度分析では、入力特徴に対するモデルの影響度を評価することで、モデルの意思決定プロセスを説明できます。モデルの予測間隔の推定

この記事では、学習曲線を通じて機械学習モデルの過学習と過小学習を効果的に特定する方法を紹介します。過小適合と過適合 1. 過適合 モデルがデータからノイズを学習するためにデータ上で過学習されている場合、そのモデルは過適合していると言われます。過学習モデルはすべての例を完璧に学習するため、未確認の新しい例を誤って分類してしまいます。過適合モデルの場合、完璧/ほぼ完璧なトレーニング セット スコアとひどい検証セット/テスト スコアが得られます。若干修正: 「過学習の原因: 複雑なモデルを使用して単純な問題を解決し、データからノイズを抽出します。トレーニング セットとしての小さなデータ セットはすべてのデータを正しく表現できない可能性があるため、2. 過学習の Heru。」

平たく言えば、機械学習モデルは、入力データを予測された出力にマッピングする数学関数です。より具体的には、機械学習モデルは、予測出力と真のラベルの間の誤差を最小限に抑えるために、トレーニング データから学習することによってモデル パラメーターを調整する数学関数です。機械学習には、ロジスティック回帰モデル、デシジョン ツリー モデル、サポート ベクター マシン モデルなど、多くのモデルがあります。各モデルには、適用可能なデータ タイプと問題タイプがあります。同時に、異なるモデル間には多くの共通点があったり、モデル進化の隠れた道が存在したりすることがあります。コネクショニストのパーセプトロンを例にとると、パーセプトロンの隠れ層の数を増やすことで、それをディープ ニューラル ネットワークに変換できます。パーセプトロンにカーネル関数を追加すると、SVM に変換できます。これです

1950 年代に人工知能 (AI) が誕生しました。そのとき、研究者たちは、機械が思考などの人間と同じようなタスクを実行できることを発見しました。その後、1960 年代に米国国防総省は人工知能に資金を提供し、さらなる開発のために研究所を設立しました。研究者たちは、宇宙探査や極限環境での生存など、多くの分野で人工知能の応用を見出しています。宇宙探査は、地球を超えた宇宙全体を対象とする宇宙の研究です。宇宙は地球とは条件が異なるため、極限環境に分類されます。宇宙で生き残るためには、多くの要素を考慮し、予防策を講じる必要があります。科学者や研究者は、宇宙を探索し、あらゆるものの現状を理解することが、宇宙の仕組みを理解し、潜在的な環境危機に備えるのに役立つと信じています。

C++ の機械学習アルゴリズムが直面する一般的な課題には、メモリ管理、マルチスレッド、パフォーマンスの最適化、保守性などがあります。解決策には、スマート ポインター、最新のスレッド ライブラリ、SIMD 命令、サードパーティ ライブラリの使用、コーディング スタイル ガイドラインの遵守、自動化ツールの使用が含まれます。実践的な事例では、Eigen ライブラリを使用して線形回帰アルゴリズムを実装し、メモリを効果的に管理し、高性能の行列演算を使用する方法を示します。

MetaFAIR はハーバード大学と協力して、大規模な機械学習の実行時に生成されるデータの偏りを最適化するための新しい研究フレームワークを提供しました。大規模な言語モデルのトレーニングには数か月かかることが多く、数百、さらには数千の GPU を使用することが知られています。 LLaMA270B モデルを例にとると、そのトレーニングには合計 1,720,320 GPU 時間が必要です。大規模なモデルのトレーニングには、これらのワークロードの規模と複雑さにより、特有のシステム上の課題が生じます。最近、多くの機関が、SOTA 生成 AI モデルをトレーニングする際のトレーニング プロセスの不安定性を報告しています。これらは通常、損失スパイクの形で現れます。たとえば、Google の PaLM モデルでは、トレーニング プロセス中に最大 20 回の損失スパイクが発生しました。数値的なバイアスがこのトレーニングの不正確さの根本原因です。

機械学習は人工知能の重要な分野であり、明示的にプログラムしなくてもコンピューターにデータから学習して能力を向上させる機能を提供します。機械学習は、画像認識や自然言語処理から、レコメンデーションシステムや不正行為検出に至るまで、さまざまな分野で幅広く応用されており、私たちの生活様式を変えつつあります。機械学習の分野にはさまざまな手法や理論があり、その中で最も影響力のある 5 つの手法は「機械学習の 5 つの流派」と呼ばれています。 5 つの主要な学派は、象徴学派、コネクショニスト学派、進化学派、ベイジアン学派、およびアナロジー学派です。 1. 象徴主義は、象徴主義とも呼ばれ、論理的推論と知識の表現のためのシンボルの使用を強調します。この学派は、学習は既存の既存の要素を介した逆演繹のプロセスであると信じています。
