openssl 添加自定义算法_GitHub:用PyTorch实现17种深度强化学习算法
深度強化學(xué)習(xí)已經(jīng)在許多領(lǐng)域取得了矚目的成就,并且仍是各大領(lǐng)域受熱捧的方向之一。本文推薦一個包含了 17 種深度強化學(xué)習(xí)算法實現(xiàn)的 PyTorch 代碼庫。
已實現(xiàn)的算法包括:
所有的實現(xiàn)都能夠快速解決Cart Pole(離散動作)、Mountain Car (連續(xù)動作)、Bit Flipping(動態(tài)目標(biāo)的離散動作) 或Fetch Reach(動態(tài)目標(biāo)的連續(xù)動作) 等任務(wù)。本 repo 還會添加更多的分層 RL 算法。
已實現(xiàn)的環(huán)境:
結(jié)果
1. Cart Pole 和 Mountain Car
下面展示了各種 RL 算法成功學(xué)習(xí)離散動作游戲 Cart Pole 或連續(xù)動作游戲 Mountain Car 的結(jié)果。使用 3 個隨機種子運行算法的平均結(jié)果如下圖所示,陰影區(qū)域表示正負(fù) 1 標(biāo)準(zhǔn)差。使用的超參數(shù)可以在results/cart_pol .py和results/Mountain_Car.py文件中找到。
2. 事后經(jīng)驗重演 (HER) 實驗
下面展示了 DQN 和 DDPG 在 Bit Flipping (14 bits) 和 Fetch Reach 環(huán)境中的表現(xiàn),這些環(huán)境在論文 Hindsight Experience Replay 和 Multi-Goal Reinforcement Learning 中有詳細(xì)描述。這些結(jié)果復(fù)現(xiàn)了論文中發(fā)現(xiàn)的結(jié)果,并展示了添加 HER 可以如何讓一個 agent 解決它原本無法解決的問題。請注意,在每對 agents 中都使用了相同的超參數(shù),因此它們之間的唯一區(qū)別是是否使用了 hindsight。
3. 分層強化學(xué)習(xí)實驗
下圖左邊的結(jié)果顯示了在 Long Corridor 環(huán)境中 DQN 和 Kulkarni 等人在 2016 年提出的 hierarchy -DQN 算法的性能。該環(huán)境要求 agent 在返回之前走到走廊的盡頭,以便獲得更大的獎勵。這種延遲滿足和狀態(tài)的混疊使得它在某種程度上是 DQN 不可能學(xué)習(xí)的游戲,但是如果我們引入一個元控制器 (如 h-DQN) 來指導(dǎo)低層控制器如何行動,就能夠取得更大的進展。這與論文中發(fā)現(xiàn)的結(jié)果一致。
下圖右邊的結(jié)果顯示了 Florensa 等人 2017 年提出的 DDQN 算法和用于分層強化學(xué)習(xí)的隨機神經(jīng)網(wǎng)絡(luò) (SNN-HRL) 的性能。使用 DDQN 作為比較,因為 SSN-HRL 的實現(xiàn)使用了其中的 2 種 DDQN 算法。
用法
存儲庫的高級結(jié)構(gòu)是:
├── agents ├── actor_critic_agents ├── DQN_agents ├── policy_gradient_agents└── stochastic_policy_search_agents ├── environments ├── results └── data_and_graphs ├── tests ├── utilities └── data structuresi) 觀看智能體學(xué)習(xí)上述游戲
觀看所有不同的智能體學(xué)習(xí) Cart Pole,請遵循以下步驟:
git clone https://github.com/p-christ/Deep_RL_Implementations.git cd Deep_RL_Implementationsconda create --name myenvname y conda activate myenvnamepip3 install -r requirements.txtpython Results/Cart_Pole.py對于其他游戲,將最后一行更改為結(jié)果文件夾中的其他文件就行。
ii) 訓(xùn)練智能體實現(xiàn)另一種游戲
Open AI gym 上的環(huán)境都是有效的,你所需要做的就是更改config.environment字段。
如果你創(chuàng)建了一個繼承自 gym.Env 的單獨類,那么還可以使用自己的自定義游戲。請參閱Environments/Four_Rooms_Environment.py自定義環(huán)境的示例,然后查看腳本Results/Four_Rooms.py了解如何讓 agents 運行環(huán)境。
GitHub 地址:
p-christ/Deep-Reinforcement-Learning-Algorithms-with-PyTorch?github.com總結(jié)
以上是生活随笔為你收集整理的openssl 添加自定义算法_GitHub:用PyTorch实现17种深度强化学习算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 结构体内元素不确定_氮长叶,磷长果,那么
- 下一篇: sync是同步还是非同步_音视频是怎么保