成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用Panda-Gym的機器臂模擬進行Deep Q-learning強化學習

人工智能 機器學習
強化學習(RL)是一種機器學習方法,它允許代理通過試錯來學習如何在環境中表現。行為主體因采取行動導致預期結果而獲得獎勵,因采取行動導致預期結果而受到懲罰。隨著時間的推移,代理學會采取行動,使其預期回報最大化。

強化學習(RL)是一種機器學習方法,它允許代理通過試錯來學習如何在環境中表現。行為主體因采取行動導致預期結果而獲得獎勵,因采取行動導致預期結果而受到懲罰。隨著時間的推移,代理學會采取行動,使其預期回報最大化。

RL代理通常使用馬爾可夫決策過程(MDP)進行訓練,馬爾可夫決策過程是為順序決策問題建模的數學框架。MDP由四個部分組成:

  • 狀態:環境的可能狀態的集合。
  • 動作:代理可以采取的一組動作。
  • 轉換函數:在給定當前狀態和動作的情況下,預測轉換到新狀態的概率的函數。
  • 獎勵函數:為每次轉換分配獎勵給代理的函數。

代理的目標是學習策略函數,將狀態映射到動作。通過策略函數來最大化代理隨著時間的預期回報。

Deep Q-learning是一種使用深度神經網絡學習策略函數的強化學習算法。深度神經網絡將當前狀態作為輸入,并輸出一個值向量,每個值代表一個可能的動作。然后代理采取具有最高值的操作。

Deep Q-learning是一種基于值的強化學習算法,這意味著它學習每個狀態-動作對的值。狀態-動作對的值是agent在該狀態下采取該動作所獲得的預期獎勵。

Actor-Critic是一種結合了基于值和基于策略的RL算法。有兩個組成部分:

  • Actor:參與者負責選擇操作。
  • Critic:負責評價Actor的行為。

Actor和Critic同時接受訓練。Actor被訓練去最大化預期獎勵,Critic被訓練去準確地預測每個狀態-動作對的預期獎勵。

Actor-Critic算法與其他RL算法相比有幾個優點。首先它更穩定,這意味著在訓練過程中不太可能出現偏差。其次它更有效率,這意味著它可以更快地學習。第三它更具可擴展性,這意味著它可以應用于具有大型狀態和操作空間的問題。

下面的表格總結了Deep Q-learning和Actor-Critic之間的主要區別:

Actor-Critic (A2C)的優勢

Actor-Critic是一種流行的強化學習架構,它結合了基于策略和基于價值的方法。它有幾個優點,使其成為解決各種強化學習任務的強大選擇:

1、低方差

與傳統的策略梯度方法相比,A2C 在訓練期間通常具有更低的方差。這是因為 A2C 同時使用了策略梯度和值函數,通過值函數來減小梯度的方差。低方差意味著訓練過程更加穩定,能夠更快地收斂到較好的策略。

2、更快的學習速度

由于低方差的特性,A2C 通常能夠以更快的速度學習到一個良好的策略。這對于那些需要進行大量模擬的任務來說尤為重要,因為較快的學習速度可以節省寶貴的時間和計算資源。

3、結合策略和值函數

A2C 的一個顯著特點是它同時學習策略和值函數。這種結合使得代理能夠更好地理解環境和動作的關聯,從而更好地指導策略改進。值函數的存在還有助于減小策略優化中的誤差,提高訓練的效率。

4、支持連續和離散動作空間

A2C 可以輕松適應不同類型的動作空間,包括連續和離散動作。這種通用性使得 A2C 成為一個廣泛適用的強化學習算法,可以應用于各種任務,從機器人控制到游戲玩法優化。

5、并行訓練

A2C 可以輕松地并行化,充分利用多核處理器和分布式計算資源。這意味著可以在更短的時間內收集更多的經驗數據,從而提高訓練效率。

雖然Actor-Critic方法提供了一些優勢,但它們也有自己的挑戰,例如超參數調優和訓練中的潛在不穩定性。但是通過適當的調整和經驗回放和目標網絡等技術,這些挑戰可以在很大程度上得到緩解,使Actor-Critic成為強化學習中有價值的方法。

panda-gym

panda-gym 基于 PyBullet 引擎開發,圍繞 panda 機械臂封裝了 reach、push、slide、pick&place、stack、flip 等 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”將Panda機械臂和GYM環境有效的結合使得我們可以輕松的在本地進行機械臂的強化學習,Actor-Critic架構中代理會學會在每個時間步驟中進行漸進式改進,這與稀疏的獎勵函數形成對比(在稀疏的獎勵函數中結果是二元的),這使得Actor-Critic方法特別適合于此類任務。

通過將策略學習和值估計無縫結合,代理能夠熟練地操縱機械臂末端執行器到達指定的目標位置。這不僅為機器人控制等任務提供了實用的解決方案,而且還具有改變各種需要敏捷和明智決策的領域的潛力。

責任編輯:華軒 來源: DeepHub IMBA
相關推薦

2018-04-21 06:41:39

Q-learning算法函數

2023-08-14 16:49:13

強化學習時態差分法

2023-07-20 15:18:42

2014-09-25 10:08:28

機器學習

2024-08-28 13:53:42

多代理強化學習機器人

2017-08-22 15:56:49

神經網絡強化學習DQN

2023-05-10 15:53:19

2023-12-03 22:08:41

深度學習人工智能

2024-05-30 16:37:29

2024-09-05 08:23:58

2017-02-24 13:27:37

阿里開源

2021-04-13 10:25:33

人工智能深度學習

2022-03-25 10:35:20

機器學習深度學習強化學習

2017-04-04 19:52:24

強化學習深度學習機器學習

2024-03-19 00:15:00

機器學習強化學習人工智能

2023-03-09 08:00:00

強化學習機器學習圍棋

2020-08-10 06:36:21

強化學習代碼深度學習

2022-04-12 09:21:50

AIPython自動駕駛

2021-09-17 15:54:41

深度學習機器學習人工智能

2020-11-12 19:31:41

強化學習人工智能機器學習
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 999精品网| 国产一区中文 | 在线成人精品视频 | 黄色一级大片在线免费看产 | 国产传媒毛片精品视频第一次 | 欧美福利网站 | 九九久久精品 | 在线视频一区二区三区 | 国产美女一区二区 | 在线视频 中文字幕 | 国产精品美女久久久久久免费 | 亚洲精品国产综合区久久久久久久 | 99re6热在线精品视频播放 | 久久性av| 日韩精品一区二区三区视频播放 | 欧美综合精品 | 欧美区日韩区 | 亚洲国产视频一区二区 | 99精品电影 | 亚洲国产精品久久久久秋霞不卡 | 特黄毛片视频 | 一区二区中文字幕 | 羞羞的视频免费看 | 亚洲精品久久久一区二区三区 | 色眯眯视频在线观看 | 亚洲一区在线日韩在线深爱 | 成人精品影院 | 国产成人免费 | 久久精品国产免费一区二区三区 | 久久这里只有精品首页 | 国产在线a| 久久午夜剧场 | 少妇一级淫片免费播放 | 欧美性猛交一区二区三区精品 | 亚洲午夜网 | 国产一区二区三区在线看 | 成人免费看片 | 日本一区不卡 | 国产精品一区二区在线观看 | 99久久精品国产毛片 | 国产午夜影院 |