- 深度強化學(xué)習(xí)算法與實踐:基于PyTorch的實現(xiàn)
- 張校捷編著
- 1152字
- 2022-05-06 17:08:39
3.2.4 Gym的MuJoCo環(huán)境
強化學(xué)習(xí)的另一個比較重要的應(yīng)用場景是機器人的控制。針對這個特殊的場景,OpenAI Gym也有對應(yīng)的強化學(xué)習(xí)環(huán)境。首先是MuJoCo系列的強化學(xué)習(xí)環(huán)境,這個環(huán)境的意思是多關(guān)節(jié)接觸動力學(xué)(Multi-Joint dynamics with Contact)。這一系列的強化學(xué)習(xí)環(huán)境主要的特點是由幾個簡單的幾何體互相接觸組成機器人,并對機器人進行實時控制,目的是讓機器人完成一系列復(fù)雜的動作(例如行走、跑跳等)。相比于3.2.2節(jié)和3.2.3節(jié)中介紹的兩個強化學(xué)習(xí)環(huán)境,這個強化學(xué)習(xí)環(huán)境的特點主要是整個環(huán)境更加復(fù)雜,強化學(xué)習(xí)環(huán)境的動作空間是連續(xù)的,而不是離散的。
這里使用一個具體的螞蟻('Ant-v2')強化學(xué)習(xí)環(huán)境來演示如何使用MuJoCo系列的強化學(xué)習(xí)環(huán)境。為了能夠使用MuJoCo強化學(xué)習(xí)環(huán)境,首先需要下載MuJoCo的二進制可執(zhí)行文件。這個文件可以在OpenAI的GitHub頁面目錄下的openai/mujoco-py子頁面獲得對應(yīng)的下載鏈接地址。然后根據(jù)自己電腦的系統(tǒng)版本選擇對應(yīng)的zip文件,并且把zip文件解壓到指定目錄下(如果是Linux/MacOS操作系統(tǒng),則在~/.mujoco/mujoco200/目錄下,暫時不支持Windows版本)。接下來需要運行g(shù)it clone https://github.com/openai/mujoco-py命令,從GitHub上下載MuJoCo代碼。為了能夠在系統(tǒng)中安裝MuJoCo的Python接口庫,我們需要修改mujoco_py/builder.py文件,在這個安裝腳本的c_compilers列表變量中添加自身所在系統(tǒng)的gcc的路徑,比如筆者的gcc的路徑在'/usr/local/bin/gcc-11'下,讀者可以自行查找自己所用系統(tǒng)的gcc所在的位置(比如可以使用which g cc命令),根據(jù)位置酌情修改。修改完這個文件之后,運行命令pip install.,就可以開始使用MuJoCo強化學(xué)習(xí)環(huán)境了。
螞蟻('Ant-v2')強化學(xué)習(xí)環(huán)境的具體圖像如圖3.7所示。在實際應(yīng)用中并不以這個強化學(xué)習(xí)環(huán)境的渲染圖像作為深度強化學(xué)習(xí)模型的輸入,而是以渲染環(huán)境中機器人的姿態(tài)作為輸入。

圖3.7 螞蟻('Ant-v2')強化學(xué)習(xí)環(huán)境渲染圖像
在圖3.7中,整個螞蟻機器人有8個關(guān)節(jié),智能體只能控制作用在這8個關(guān)節(jié)的力矩上(取值范圍在-1到+1之間),也就是將這8個值作為智能體選擇的動作輸入強化學(xué)習(xí)環(huán)境中。由于力矩的值連續(xù)分布,所以這個問題是一個基于連續(xù)動作空間的控制問題。具體的姿態(tài)參數(shù)如表3.1所示,一共有111個參數(shù),即描述這個螞蟻機器人需要111個參數(shù),包括一系列的標量值和矢量值。整體的獎勵比較復(fù)雜,主要由幾部分構(gòu)成,首先貢獻最大的獎勵是螞蟻機器人需要能夠移動,只要觀測到機器人的軀干發(fā)生了移動,這部分就能獲取正的獎勵,而且獎勵和速度正相關(guān)。另外幾個負的貢獻在于我們需要最小化控制的力矩,可以理解為對機器人的控制越少越好;還有一項是接觸點的作用力,這部分作用力也是越小越好。機器人的初始高度為0.55,當所有的觀測空間的數(shù)值有效(沒有正負無窮大等無效數(shù)字的時候),并且高度在0.2和1.0之間時,強化學(xué)習(xí)環(huán)境可以一直進行下去,否則強化學(xué)習(xí)環(huán)境標記為已完成,需要被重置。
表3.1 螞蟻('Ant-v2')強化學(xué)習(xí)環(huán)境觀測空間

由于強化學(xué)習(xí)環(huán)境的使用方法和前面的Gym類型的強化學(xué)習(xí)環(huán)境類似,這里不再贅述,讀者可以從文件ex_3_6.py中看到如何調(diào)用對應(yīng)的函數(shù)接口完成對應(yīng)強化學(xué)習(xí)環(huán)境的采樣。
- Hands-On Machine Learning with scikit:learn and Scientific Python Toolkits
- 深度學(xué)習(xí)經(jīng)典案例解析:基于MATLAB
- Java EE框架整合開發(fā)入門到實戰(zhàn):Spring+Spring MVC+MyBatis(微課版)
- 華為HMS生態(tài)與應(yīng)用開發(fā)實戰(zhàn)
- MySQL 8 DBA基礎(chǔ)教程
- Web Application Development with R Using Shiny(Second Edition)
- React.js Essentials
- 利用Python進行數(shù)據(jù)分析(原書第3版)
- Spring Boot進階:原理、實戰(zhàn)與面試題分析
- Learning R for Geospatial Analysis
- 圖數(shù)據(jù)庫實戰(zhàn)
- MongoDB Cookbook(Second Edition)
- Learning D3.js 5 Mapping(Second Edition)
- 網(wǎng)頁設(shè)計與制作
- 量子計算機編程:從入門到實踐