自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

使用Panda-Gym的機(jī)器臂模擬進(jìn)行Deep Q-learning強(qiáng)化學(xué)習(xí)

人工智能 機(jī)器學(xué)習(xí)
強(qiáng)化學(xué)習(xí)(RL)是一種機(jī)器學(xué)習(xí)方法,它允許代理通過試錯(cuò)來學(xué)習(xí)如何在環(huán)境中表現(xiàn)。行為主體因采取行動導(dǎo)致預(yù)期結(jié)果而獲得獎(jiǎng)勵(lì),因采取行動導(dǎo)致預(yù)期結(jié)果而受到懲罰。隨著時(shí)間的推移,代理學(xué)會采取行動,使其預(yù)期回報(bào)最大化。

強(qiáng)化學(xué)習(xí)(RL)是一種機(jī)器學(xué)習(xí)方法,它允許代理通過試錯(cuò)來學(xué)習(xí)如何在環(huán)境中表現(xiàn)。行為主體因采取行動導(dǎo)致預(yù)期結(jié)果而獲得獎(jiǎng)勵(lì),因采取行動導(dǎo)致預(yù)期結(jié)果而受到懲罰。隨著時(shí)間的推移,代理學(xué)會采取行動,使其預(yù)期回報(bào)最大化。

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

  • 狀態(tài):環(huán)境的可能狀態(tài)的集合。
  • 動作:代理可以采取的一組動作。
  • 轉(zhuǎn)換函數(shù):在給定當(dāng)前狀態(tài)和動作的情況下,預(yù)測轉(zhuǎn)換到新狀態(tài)的概率的函數(shù)。
  • 獎(jiǎng)勵(lì)函數(shù):為每次轉(zhuǎn)換分配獎(jiǎng)勵(lì)給代理的函數(shù)。

代理的目標(biāo)是學(xué)習(xí)策略函數(shù),將狀態(tài)映射到動作。通過策略函數(shù)來最大化代理隨著時(shí)間的預(yù)期回報(bào)。

Deep Q-learning是一種使用深度神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)策略函數(shù)的強(qiáng)化學(xué)習(xí)算法。深度神經(jīng)網(wǎng)絡(luò)將當(dāng)前狀態(tài)作為輸入,并輸出一個(gè)值向量,每個(gè)值代表一個(gè)可能的動作。然后代理采取具有最高值的操作。

Deep Q-learning是一種基于值的強(qiáng)化學(xué)習(xí)算法,這意味著它學(xué)習(xí)每個(gè)狀態(tài)-動作對的值。狀態(tài)-動作對的值是agent在該狀態(tài)下采取該動作所獲得的預(yù)期獎(jiǎng)勵(lì)。

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

  • Actor:參與者負(fù)責(zé)選擇操作。
  • Critic:負(fù)責(zé)評價(jià)Actor的行為。

Actor和Critic同時(shí)接受訓(xùn)練。Actor被訓(xùn)練去最大化預(yù)期獎(jiǎng)勵(lì),Critic被訓(xùn)練去準(zhǔn)確地預(yù)測每個(gè)狀態(tài)-動作對的預(yù)期獎(jiǎng)勵(lì)。

Actor-Critic算法與其他RL算法相比有幾個(gè)優(yōu)點(diǎn)。首先它更穩(wěn)定,這意味著在訓(xùn)練過程中不太可能出現(xiàn)偏差。其次它更有效率,這意味著它可以更快地學(xué)習(xí)。第三它更具可擴(kuò)展性,這意味著它可以應(yīng)用于具有大型狀態(tài)和操作空間的問題。

下面的表格總結(jié)了Deep Q-learning和Actor-Critic之間的主要區(qū)別:

Actor-Critic (A2C)的優(yōu)勢

Actor-Critic是一種流行的強(qiáng)化學(xué)習(xí)架構(gòu),它結(jié)合了基于策略和基于價(jià)值的方法。它有幾個(gè)優(yōu)點(diǎn),使其成為解決各種強(qiáng)化學(xué)習(xí)任務(wù)的強(qiáng)大選擇:

1、低方差

與傳統(tǒng)的策略梯度方法相比,A2C 在訓(xùn)練期間通常具有更低的方差。這是因?yàn)?A2C 同時(shí)使用了策略梯度和值函數(shù),通過值函數(shù)來減小梯度的方差。低方差意味著訓(xùn)練過程更加穩(wěn)定,能夠更快地收斂到較好的策略。

2、更快的學(xué)習(xí)速度

由于低方差的特性,A2C 通常能夠以更快的速度學(xué)習(xí)到一個(gè)良好的策略。這對于那些需要進(jìn)行大量模擬的任務(wù)來說尤為重要,因?yàn)檩^快的學(xué)習(xí)速度可以節(jié)省寶貴的時(shí)間和計(jì)算資源。

3、結(jié)合策略和值函數(shù)

A2C 的一個(gè)顯著特點(diǎn)是它同時(shí)學(xué)習(xí)策略和值函數(shù)。這種結(jié)合使得代理能夠更好地理解環(huán)境和動作的關(guān)聯(lián),從而更好地指導(dǎo)策略改進(jìn)。值函數(shù)的存在還有助于減小策略優(yōu)化中的誤差,提高訓(xùn)練的效率。

4、支持連續(xù)和離散動作空間

A2C 可以輕松適應(yīng)不同類型的動作空間,包括連續(xù)和離散動作。這種通用性使得 A2C 成為一個(gè)廣泛適用的強(qiáng)化學(xué)習(xí)算法,可以應(yīng)用于各種任務(wù),從機(jī)器人控制到游戲玩法優(yōu)化。

5、并行訓(xùn)練

A2C 可以輕松地并行化,充分利用多核處理器和分布式計(jì)算資源。這意味著可以在更短的時(shí)間內(nèi)收集更多的經(jīng)驗(yàn)數(shù)據(jù),從而提高訓(xùn)練效率。

雖然Actor-Critic方法提供了一些優(yōu)勢,但它們也有自己的挑戰(zhàn),例如超參數(shù)調(diào)優(yōu)和訓(xùn)練中的潛在不穩(wěn)定性。但是通過適當(dāng)?shù)恼{(diào)整和經(jīng)驗(yàn)回放和目標(biāo)網(wǎng)絡(luò)等技術(shù),這些挑戰(zhàn)可以在很大程度上得到緩解,使Actor-Critic成為強(qiáng)化學(xué)習(xí)中有價(jià)值的方法。

panda-gym

panda-gym 基于 PyBullet 引擎開發(fā),圍繞 panda 機(jī)械臂封裝了 reach、push、slide、pick&place、stack、flip 等 6 個(gè)任務(wù),主要也是受 OpenAI Fetch 啟發(fā)。

我們下面的代碼將使用panda-gym作為示例:

1、安裝庫

代碼首先初始化強(qiáng)化學(xué)習(xí)環(huán)境:

!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、導(dǎo)入庫

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、創(chuàng)建運(yùn)行環(huán)境

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、觀察和獎(jiǎng)勵(lì)的規(guī)范化

強(qiáng)化學(xué)習(xí)優(yōu)化的一個(gè)好方法是對輸入特征進(jìn)行歸一化。我們通過包裝器計(jì)算輸入特征的運(yùn)行平均值和標(biāo)準(zhǔn)偏差。同時(shí)還通過添加norm_reward = True來規(guī)范化獎(jiǎng)勵(lì)

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

5、創(chuàng)建A2C模型

我們使用Stable-Baselines3團(tuán)隊(duì)訓(xùn)練過的官方代理

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

6、訓(xùn)練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}")

總結(jié)

在“panda-gym”將Panda機(jī)械臂和GYM環(huán)境有效的結(jié)合使得我們可以輕松的在本地進(jìn)行機(jī)械臂的強(qiáng)化學(xué)習(xí),Actor-Critic架構(gòu)中代理會學(xué)會在每個(gè)時(shí)間步驟中進(jìn)行漸進(jìn)式改進(jìn),這與稀疏的獎(jiǎng)勵(lì)函數(shù)形成對比(在稀疏的獎(jiǎng)勵(lì)函數(shù)中結(jié)果是二元的),這使得Actor-Critic方法特別適合于此類任務(wù)。

通過將策略學(xué)習(xí)和值估計(jì)無縫結(jié)合,代理能夠熟練地操縱機(jī)械臂末端執(zhí)行器到達(dá)指定的目標(biāo)位置。這不僅為機(jī)器人控制等任務(wù)提供了實(shí)用的解決方案,而且還具有改變各種需要敏捷和明智決策的領(lǐng)域的潛力。

責(zé)任編輯:華軒 來源: DeepHub IMBA
相關(guān)推薦

2018-04-21 06:41:39

Q-learning算法函數(shù)

2023-08-14 16:49:13

強(qiáng)化學(xué)習(xí)時(shí)態(tài)差分法

2023-07-20 15:18:42

2014-09-25 10:08:28

機(jī)器學(xué)習(xí)

2024-08-28 13:53:42

多代理強(qiáng)化學(xué)習(xí)機(jī)器人

2023-05-10 15:53:19

2017-08-22 15:56:49

神經(jīng)網(wǎng)絡(luò)強(qiáng)化學(xué)習(xí)DQN

2023-12-03 22:08:41

深度學(xué)習(xí)人工智能

2017-02-24 13:27:37

阿里開源

2024-05-30 16:37:29

2024-09-05 08:23:58

2021-04-13 10:25:33

人工智能深度學(xué)習(xí)

2022-03-25 10:35:20

機(jī)器學(xué)習(xí)深度學(xué)習(xí)強(qiáng)化學(xué)習(xí)

2017-04-04 19:52:24

強(qiáng)化學(xué)習(xí)深度學(xué)習(xí)機(jī)器學(xué)習(xí)

2024-03-19 00:15:00

機(jī)器學(xué)習(xí)強(qiáng)化學(xué)習(xí)人工智能

2023-03-09 08:00:00

強(qiáng)化學(xué)習(xí)機(jī)器學(xué)習(xí)圍棋

2020-08-10 06:36:21

強(qiáng)化學(xué)習(xí)代碼深度學(xué)習(xí)

2021-09-17 15:54:41

深度學(xué)習(xí)機(jī)器學(xué)習(xí)人工智能

2020-11-12 19:31:41

強(qiáng)化學(xué)習(xí)人工智能機(jī)器學(xué)習(xí)

2020-09-02 10:36:52

機(jī)器人人工智能系統(tǒng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號