91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何利用TensorForce框架快速搭建深度強(qiáng)化學(xué)習(xí)模型

DPVg_AI_era ? 來源:lp ? 2019-03-29 08:44 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

深度強(qiáng)化學(xué)習(xí)已經(jīng)在許多領(lǐng)域取得了矚目的成就,并且仍是各大領(lǐng)域受熱捧的方向之一。本文深入淺出的介紹了如何利用TensorForce框架快速搭建深度強(qiáng)化學(xué)習(xí)模型。

深度強(qiáng)化學(xué)習(xí)(Deep Reinforcement Learning, DRL)是目前最熱門的方向之一,從視頻游戲、圍棋、蛋白質(zhì)結(jié)構(gòu)預(yù)測(cè)到機(jī)器人、計(jì)算機(jī)視覺、推薦系統(tǒng)等領(lǐng)域已經(jīng)取得了很多令人矚目的成就且仍在蓬勃發(fā)展中。

AlphaGo第一作者Davild Silver就認(rèn)為通用人工智能需要強(qiáng)化學(xué)習(xí)結(jié)合深度學(xué)習(xí)來實(shí)現(xiàn),即AGI=DL+RL。

框架

為了便于研究人員快速搭建出強(qiáng)化學(xué)習(xí)模型,很多機(jī)構(gòu)發(fā)布了強(qiáng)化學(xué)習(xí)基準(zhǔn)算法或框架,其中較早的有OpenAI Baselines [1]、伯克利的rllab [2],最新的有18年谷歌發(fā)布的Dopamine [3]、Facebook發(fā)布的Horizon [4]。具體見下表:

本文介紹的是TensorForce并非由這些大機(jī)構(gòu)發(fā)布,而是由幾個(gè)劍橋大學(xué)的博士生開發(fā)、維護(hù)的。

當(dāng)時(shí)選擇TensorForcce是因?yàn)樾枰?a href="http://m.xsypw.cn/v/tag/1004/" target="_blank">ROS框架下開發(fā),而如上表列出的,它完全支持Python2,且包含很多主流的強(qiáng)化學(xué)習(xí)算法、支持OpenAI Gym、DeepMind Lab等常用于強(qiáng)化學(xué)習(xí)算法測(cè)試的基準(zhǔn)環(huán)境。

TensorForce是架構(gòu)在TensorFlow上的強(qiáng)化學(xué)習(xí)API,最早在17年就開源了,并發(fā)布了博客[5]介紹其背后的設(shè)計(jì)思想及基本應(yīng)用。

這里簡(jiǎn)單介紹一下TensorForce的設(shè)計(jì)思想。

框架設(shè)計(jì)的難點(diǎn)在于如何解耦出其它層面的內(nèi)容,盡可能將共用的部分抽象出來。拿強(qiáng)化學(xué)習(xí)來說,智能體與環(huán)境不斷通過交互試錯(cuò)來學(xué)習(xí),如果由我們從頭自己編程實(shí)現(xiàn)某個(gè)RL任務(wù),為了方便智能體與環(huán)境很自然地會(huì)寫在一起。但作為框架卻不行,需要將智能體從環(huán)境中解耦出來。

TensorForce包括了下面四個(gè)層面的概念:

Environment <-> Runner <-> Agent <-> Model

Agent在訓(xùn)練前可以加載model,訓(xùn)練后保存model,運(yùn)行時(shí)接收state,(預(yù)處理后)作為model的輸入,返回action。模型會(huì)根據(jù)算法及配置自動(dòng)更新。Runner將Agent和Environment之間的交互抽象出來作為函數(shù)。Environment根據(jù)應(yīng)用場(chǎng)景的不同需要自己寫接口,后文會(huì)提供一個(gè)機(jī)器人導(dǎo)航環(huán)境的接口案例。如果是學(xué)習(xí)或者算法測(cè)試,可以使用現(xiàn)成的基準(zhǔn)環(huán)境,TensorForce提供了OpenAI Gym、OpenAI Universe和DeepMind Lab的接口。

第一行代碼

下面通過使用近端策略優(yōu)化(Proximal Policy Optimization, PPO)算法訓(xùn)練OpenAI Gym中倒立擺來初識(shí)TensorForce的簡(jiǎn)潔和強(qiáng)大。

from tensorforce.agents import PPOAgentfrom tensorforce.execution import Runnerfrom tensorforce.contrib.openai_gym import OpenAIGym# Create an OpenAIgym environment.environment=OpenAIGym('CartPole-v0',visualize=True)network_spec=[dict(type='dense',size=32,activation='relu'),dict(type='dense',size=32,activation='relu')]agent = PPOAgent(states=environment.states,actions=environment.actions,network=network_spec,step_optimizer=dict(type='adam',learning_rate=1e-3),saver=dict(directory='./saver/',basename='PPO_model.ckpt',load=False,seconds=600),summarizer=dict(directory='./record/',labels=["losses","entropy"],seconds=600),)# Create the runnerrunner=Runner(agent=agent,environment=environment)# Start learningrunner.run(episodes=600, max_episode_timesteps=200)runner.close()

很快,倒立擺能夠平衡:

使用TensorBoard查看訓(xùn)練過程(左圖是loss,右圖是entropy):

上面我們只用了30行代碼實(shí)現(xiàn)了PPO算法訓(xùn)練倒立擺,代碼首先定義了環(huán)境和網(wǎng)絡(luò)(兩層32個(gè)節(jié)點(diǎn)的全連接網(wǎng)絡(luò),激活函數(shù)為relu),然后定義了agent,agent的參數(shù)中states, actions, network三個(gè)參數(shù)是必填的,step_optimizer定義了優(yōu)化器,saver和summarizer分別保存模型和訓(xùn)練過程。最后通過runner來實(shí)現(xiàn)agent和environment的交互,總共跑了600個(gè)episodes,每個(gè)episode的最大步長(zhǎng)是200。

runner解耦出了交互過程,實(shí)際上是是下面過程的循環(huán):

# Query the agent for its action decisionaction = agent.act(state)# Execute the decision and retrieve the current informationobservation, terminal, reward = GazeboMaze.execute(action)# Pass feedback about performance (and termination) to the agentagent.observe(terminal=terminal, reward=reward)

在上述過程中,agent會(huì)儲(chǔ)存相關(guān)信息來更新模型,比如DQNAgent會(huì)存儲(chǔ)(state, action, reward, next_state)。

視頻游戲

TensorForce提供了豐富的observation預(yù)處理功能,視頻游戲是DRL最先取得突破的方向,以Flappy Bird為例,需要進(jìn)行四個(gè)步驟的預(yù)處理:

轉(zhuǎn)化為灰度圖,去除不必要的顏色信息;

縮小輸入的游戲截屏,resize為80*80;

堆疊連續(xù)的四幀,推導(dǎo)出運(yùn)行信息;

歸一化處理,以便于訓(xùn)練。

使用TensorForce可以很方便地進(jìn)行預(yù)處理:

states = dict(shape=(3264, 18723, 3), type='float')states_preprocessing_spec = [dict( type='image_resize', width=80, height=80), dict( type='grayscale'),dict( type='normalize')dict( type='sequence', length=4)]agent = DQNAgent( states=states, actions=actions, network=network_spec, states_preprocessing=states_preprocessing_spec)

環(huán)境搭建

如果要在具體的應(yīng)用場(chǎng)景中使用TensorForce就需要根據(jù)應(yīng)用場(chǎng)景手動(dòng)搭建環(huán)境,環(huán)境的模板為environment.py [7],其中最重要的函數(shù)是execute,該函數(shù)接收agent產(chǎn)生的action,并在環(huán)境中執(zhí)行該action,然后返回next_state,reward,terminal。這里我以搭建的Gazebo中的機(jī)器人導(dǎo)航環(huán)境為例,進(jìn)行介紹。

首先搭建仿真環(huán)境如下圖:

設(shè)計(jì)環(huán)境的接口及其與agent交互的過程:

仿真開始,init函數(shù)打開Gazebo并加載對(duì)應(yīng)的導(dǎo)航環(huán)境,reset函數(shù)初始化機(jī)器人,execute函數(shù)接收到action后通過ROS發(fā)送對(duì)應(yīng)的速度命令,Gazebo中的機(jī)器人接收到速度命令后執(zhí)行對(duì)應(yīng)的速度,機(jī)器人傳感器返回相應(yīng)的信息,計(jì)算對(duì)應(yīng)的reward,讀取視覺傳感器的RGB圖像作為next_state,判斷是否到達(dá)目標(biāo)點(diǎn)或者碰撞,如果是Terminal為True,該episode結(jié)束。完整的代碼見 [8]。

復(fù)雜網(wǎng)絡(luò)

DRL網(wǎng)絡(luò)和算法是智能體最重要的兩部分,一個(gè)確定模型結(jié)構(gòu)、一個(gè)決定模型更新。上面只介紹了簡(jiǎn)單的模型,對(duì)于有些復(fù)雜網(wǎng)絡(luò)需要層疊的方式來定義,如下如:

該網(wǎng)絡(luò)的輸入為64*48*3的RGB圖像,由卷積層提取特征后與2維的速度信息和運(yùn)動(dòng)信息共同輸入全連接層進(jìn)行決策。首先定義state:

states=dict(image=dict(shape=(48,64,3),type='float'),#Observationprevious_act=dict(shape=(2,),type='float'),#velocityrelative_pos=dict(shape=(2,),type='float')#target)

然后定義action即velocity,這里為機(jī)器人的線速度(限制在[0,1])和角速度(限制在[-1,1]):

dict(linear_vel=dict(shape=(),type='float',min_value=0.0,max_value=1.0),angular_vel=dict(shape=(),type='float',min_value=-1.0,max_value=1.0))

然后通過層疊的方式來定義網(wǎng)絡(luò)結(jié)構(gòu):

network_spec=[[dict(type='input',names=['image']),dict(type='conv2d',size=32,window=(8,6),stride=4,activation='relu',padding='SAME'),dict(type='conv2d',size=64,window=(4,3),stride=2,activation='relu',padding='SAME'),dict(type='pool2d',pooling_type='max',window=2,stride=2,padding='SAME'),dict(type='conv2d',size=64,window=2,stride=2,activation='relu',padding='SAME'),dict(type='flatten'),dict(type='output',name='image_output')],[dict(type='input',names=['image_output','previous_act','relative_pos'],aggregation_type='concat'),dict(type='dense',size=512,activation='relu'),dict(type='dense',size=512,activation='relu'),]]

完整代碼見[8]

其它

1. agent會(huì)有actions_exploration參數(shù)來定義exploration,默認(rèn)值為'none',但這并不代表不探索,以PPO為例,模型在輸出的時(shí)候不輸出直接的確定性動(dòng)作(只有DPG才會(huì)輸出確定性動(dòng)作),而是分布,輸出在分布上采樣輸出,這可以看作是一種exploration。

2. 網(wǎng)絡(luò)的輸出層是根據(jù)action自動(dòng)添加的,在network中定義輸入層和隱藏層即可

3. 如果不再需要exploration而只是exploitation,則運(yùn)行:

agent.act(action,deterministic=True)

此時(shí)agent執(zhí)行g(shù)reedy策略。而如果模型訓(xùn)練完成,不再訓(xùn)練則:

agent.act(action,independent=True)

此時(shí)函數(shù)只執(zhí)行act不執(zhí)行observe來更新模型

4. PPO算法相比于DQN,不僅性能好,并且對(duì)超參數(shù)更魯棒,建議優(yōu)先選擇PPO

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴

原文標(biāo)題:快速上手深度強(qiáng)化學(xué)習(xí)?學(xué)會(huì)TensorForce就夠了

文章出處:【微信號(hào):AI_era,微信公眾號(hào):新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    什么是深度強(qiáng)化學(xué)習(xí)?深度強(qiáng)化學(xué)習(xí)算法應(yīng)用分析

    什么是深度強(qiáng)化學(xué)習(xí)? 眾所周知,人類擅長(zhǎng)解決各種挑戰(zhàn)性的問題,從低級(jí)的運(yùn)動(dòng)控制(如:步行、跑步、打網(wǎng)球)到高級(jí)的認(rèn)知任務(wù)。
    發(fā)表于 07-01 10:29 ?1863次閱讀
    什么是<b class='flag-5'>深度</b><b class='flag-5'>強(qiáng)化學(xué)習(xí)</b>?<b class='flag-5'>深度</b><b class='flag-5'>強(qiáng)化學(xué)習(xí)</b>算法應(yīng)用分析

    深度強(qiáng)化學(xué)習(xí)實(shí)戰(zhàn)

    一:深度學(xué)習(xí)DeepLearning實(shí)戰(zhàn)時(shí)間地點(diǎn):1 月 15日— 1 月18 日二:深度強(qiáng)化學(xué)習(xí)核心技術(shù)實(shí)戰(zhàn)時(shí)間地點(diǎn): 1 月 27 日— 1 月30 日(第一天報(bào)到 授課三天;提前
    發(fā)表于 01-10 13:42

    深度學(xué)習(xí)強(qiáng)化學(xué)習(xí)相結(jié)合的深度強(qiáng)化學(xué)習(xí)DRL

    深度強(qiáng)化學(xué)習(xí)DRL自提出以來, 已在理論和應(yīng)用方面均取得了顯著的成果。尤其是谷歌DeepMind團(tuán)隊(duì)基于深度強(qiáng)化學(xué)習(xí)DRL研發(fā)的AlphaGo,將
    發(fā)表于 06-29 18:36 ?2.8w次閱讀

    如何構(gòu)建強(qiáng)化學(xué)習(xí)模型來訓(xùn)練無人車算法

    本文作者通過簡(jiǎn)單的方式構(gòu)建了強(qiáng)化學(xué)習(xí)模型來訓(xùn)練無人車算法,可以為初學(xué)者提供快速入門的經(jīng)驗(yàn)。
    的頭像 發(fā)表于 11-12 14:47 ?5168次閱讀

    深度強(qiáng)化學(xué)習(xí)的概念和工作原理的詳細(xì)資料說明

    深度學(xué)習(xí)DL是機(jī)器學(xué)習(xí)中一種基于對(duì)數(shù)據(jù)進(jìn)行表征學(xué)習(xí)的方法。深度學(xué)習(xí)DL有監(jiān)督和非監(jiān)督之分,都已經(jīng)
    的頭像 發(fā)表于 05-16 09:20 ?3762次閱讀

    深度強(qiáng)化學(xué)習(xí)到底是什么?它的工作原理是怎么樣的

    深度學(xué)習(xí)DL是機(jī)器學(xué)習(xí)中一種基于對(duì)數(shù)據(jù)進(jìn)行表征學(xué)習(xí)的方法。深度學(xué)習(xí)DL有監(jiān)督和非監(jiān)督之分,都已經(jīng)
    的頭像 發(fā)表于 06-13 11:39 ?6688次閱讀

    機(jī)器學(xué)習(xí)中的無模型強(qiáng)化學(xué)習(xí)算法及研究綜述

    模型強(qiáng)化學(xué)習(xí)(Mode- based reinforcement Lear-ning)和無模型強(qiáng)化學(xué)習(xí)( Model- ree reirη forcement Learning)。
    發(fā)表于 04-08 11:41 ?11次下載
    機(jī)器<b class='flag-5'>學(xué)習(xí)</b>中的無<b class='flag-5'>模型</b><b class='flag-5'>強(qiáng)化學(xué)習(xí)</b>算法及研究綜述

    模型深度強(qiáng)化學(xué)習(xí)應(yīng)用研究綜述

    深度強(qiáng)化學(xué)習(xí)(DRL)作為機(jī)器學(xué)習(xí)的重要分攴,在 Alphago擊敗人類后受到了廣泛關(guān)注。DRL以種試錯(cuò)機(jī)制與環(huán)境進(jìn)行交互,并通過最大化累積獎(jiǎng)賞最終得到最優(yōu)策略。強(qiáng)化學(xué)習(xí)可分為無
    發(fā)表于 04-12 11:01 ?9次下載
    <b class='flag-5'>模型</b>化<b class='flag-5'>深度</b><b class='flag-5'>強(qiáng)化學(xué)習(xí)</b>應(yīng)用研究綜述

    基于深度強(qiáng)化學(xué)習(xí)的路口單交叉信號(hào)控制

    利用深度強(qiáng)化學(xué)習(xí)技術(shù)實(shí)現(xiàn)路口信號(hào)控制是智能交通領(lǐng)域的硏究熱點(diǎn)?,F(xiàn)有硏究大多利用強(qiáng)化學(xué)習(xí)來全面刻畫交通狀態(tài)以及設(shè)計(jì)有效
    發(fā)表于 04-23 15:30 ?21次下載
    基于<b class='flag-5'>深度</b><b class='flag-5'>強(qiáng)化學(xué)習(xí)</b>的路口單交叉信號(hào)控制

    基于深度強(qiáng)化學(xué)習(xí)仿真集成的壓邊力控制模型

    壓邊為改善板料拉深制造的成品質(zhì)量,釆用深度強(qiáng)化學(xué)習(xí)的方法進(jìn)行拉深過程旳壓邊力優(yōu)化控制。提岀一種基于深度強(qiáng)化學(xué)習(xí)與有限元仿真集成的壓邊力控制模型
    發(fā)表于 05-27 10:32 ?0次下載

    基于深度強(qiáng)化學(xué)習(xí)的無人機(jī)控制律設(shè)計(jì)方法

    基于深度強(qiáng)化學(xué)習(xí)的無人機(jī)控制律設(shè)計(jì)方法
    發(fā)表于 06-23 14:59 ?46次下載

    《自動(dòng)化學(xué)報(bào)》—多Agent深度強(qiáng)化學(xué)習(xí)綜述

    多Agent 深度強(qiáng)化學(xué)習(xí)綜述 來源:《自動(dòng)化學(xué)報(bào)》,作者梁星星等 摘 要?近年來,深度強(qiáng)化學(xué)習(xí)(Deep reinforcement le
    發(fā)表于 01-18 10:08 ?1940次閱讀
    《自動(dòng)<b class='flag-5'>化學(xué)</b>報(bào)》—多Agent<b class='flag-5'>深度</b><b class='flag-5'>強(qiáng)化學(xué)習(xí)</b>綜述

    ESP32上的深度強(qiáng)化學(xué)習(xí)

    電子發(fā)燒友網(wǎng)站提供《ESP32上的深度強(qiáng)化學(xué)習(xí).zip》資料免費(fèi)下載
    發(fā)表于 12-27 10:31 ?0次下載
    ESP32上的<b class='flag-5'>深度</b><b class='flag-5'>強(qiáng)化學(xué)習(xí)</b>

    ICLR 2023 Spotlight|節(jié)省95%訓(xùn)練開銷,清華黃隆波團(tuán)隊(duì)提出強(qiáng)化學(xué)習(xí)專用稀疏訓(xùn)練框架RLx2

    模型時(shí)代,模型壓縮和加速顯得尤為重要。傳統(tǒng)監(jiān)督學(xué)習(xí)可通過稀疏神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)模型壓縮和加速,那么同樣需要大量計(jì)算開銷的強(qiáng)化學(xué)習(xí)任務(wù)可以基于稀疏
    的頭像 發(fā)表于 06-11 21:40 ?980次閱讀
    ICLR 2023 Spotlight|節(jié)省95%訓(xùn)練開銷,清華黃隆波團(tuán)隊(duì)提出<b class='flag-5'>強(qiáng)化學(xué)習(xí)</b>專用稀疏訓(xùn)練<b class='flag-5'>框架</b>RLx2

    深度學(xué)習(xí)框架是什么?深度學(xué)習(xí)框架有哪些?

    深度學(xué)習(xí)框架是什么?深度學(xué)習(xí)框架有哪些?? 深度
    的頭像 發(fā)表于 08-17 16:03 ?3477次閱讀
    主站蜘蛛池模板: 免费观看视频在线观看 | 永久视频在线观看 | 3344成年在线视频免费播放男男 | 婷婷激情小说 | 国产午夜精品理论片 | 四虎永久免费在线 | 国产免费人成在线看视频 | 正在播放淫亚洲 | 午夜精品久久久久久91 | 亚洲精品成人a在线观看 | 1024视频色版在线网站 | 一级毛片真人免费观看 | 全国最大色成免费网站 | 华人被黑人粗大猛然进 | 最近2018年中文字幕免费图片 | 韩国三级hd中文字幕 | 97干97吻| 免费在线不卡视频 | 国产精品久久久亚洲456 | 日本一级成人毛片免费观看 | 激情网站网址 | 欧美午夜场 | 亚洲成人网在线 | 日日操日日射 | 男人j进人女人j 的视频 | 亚洲一区二区三区四区在线观看 | 一级特黄aaa大片免费看 | 黄色录像视频网站 | 日韩理论电影2021第1页 | 西西人体www303sw大胆高清 | 天天爱天天色 | h在线国产 | 91大神在线观看精品一区 | 午夜毛片不卡高清免费 | 好爽好紧好大的免费视频国产 | 巨乳色在线观看 | 欧美成人一区二区三区在线电影 | 国模无水印一区二区三区 | 啪啪网站色大全免费 | 欧美一二 | 天天躁夜夜躁狠狠躁2024 |