国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      強化學(xué)習(xí)系統(tǒng)的分布式訓(xùn)練的制作方法

      文檔序號:11288803閱讀:396來源:國知局
      強化學(xué)習(xí)系統(tǒng)的分布式訓(xùn)練的制造方法與工藝

      本說明書涉及訓(xùn)練強化學(xué)習(xí)系統(tǒng)。



      背景技術(shù):

      強化學(xué)習(xí)代理通過接收對環(huán)境的當(dāng)前狀態(tài)特征化的觀察,并且作為響應(yīng),執(zhí)行來自預(yù)定動作集的動作,而與環(huán)境交互。根據(jù)價值函數(shù)的輸出,強化學(xué)習(xí)代理通常響應(yīng)于執(zhí)行動作接收回報,并且響應(yīng)接收給定觀察,選擇待執(zhí)行的動作。一些強化學(xué)習(xí)代理使用神經(jīng)網(wǎng)絡(luò)代替價值函數(shù),例如通過使用神經(jīng)網(wǎng)絡(luò)處理觀察并且基于神經(jīng)網(wǎng)絡(luò)的輸出選擇動作,來近似價值函數(shù)的輸出。

      神經(jīng)網(wǎng)絡(luò)是采用非線性單元的一層或多層來預(yù)測接收的輸入的輸出的機器學(xué)習(xí)模型。一些神經(jīng)網(wǎng)絡(luò)是除輸出層外,還包括一個或多個隱藏層的深度神經(jīng)網(wǎng)絡(luò)。每個隱藏層的輸出被用作網(wǎng)絡(luò)中的下一層的輸入,即,下一隱藏層或輸出層。網(wǎng)絡(luò)的每個層根據(jù)相應(yīng)參數(shù)集的當(dāng)前值,通過接收的輸入生成輸出。



      技術(shù)實現(xiàn)要素:

      本說明書描述涉及訓(xùn)練強化學(xué)習(xí)系統(tǒng)的技術(shù)。

      對待被配置成執(zhí)行特定操作或動作的一個或多個計算機的系統(tǒng),是指該系統(tǒng)在其上已經(jīng)安裝了在操作中使該系統(tǒng)實現(xiàn)操作或動作的軟件、固件、硬件或它們的組合。對待被配置成執(zhí)行特定操作或動作的一個或多個計算機程序是指一個或多個程序包括當(dāng)由數(shù)據(jù)處理裝置執(zhí)行時,使裝置執(zhí)行操作或動作的指令。

      能在特定實施例中實現(xiàn)本說明書中所述的主題以便實現(xiàn)一個或多個下述優(yōu)點。通過并行化訓(xùn)練,能更快地訓(xùn)練強化學(xué)習(xí)系統(tǒng)。此外,使用在本說明書中所述的分布式學(xué)習(xí)技術(shù)訓(xùn)練的強化學(xué)習(xí)系統(tǒng)能在訓(xùn)練后,與使用非分布式強化學(xué)習(xí)訓(xùn)練技術(shù)訓(xùn)練的相同的強化學(xué)習(xí)系統(tǒng)相比,在強化學(xué)習(xí)任務(wù)上具有提高的性能。通過提供允許分布式強化學(xué)習(xí)訓(xùn)練系統(tǒng)包括任意數(shù)目學(xué)習(xí)器、行動器和回放存儲器的架構(gòu),能易于將該系統(tǒng)適用于訓(xùn)練執(zhí)行各種強化學(xué)習(xí)任務(wù)的系統(tǒng)。此外,在訓(xùn)練期間,能容易調(diào)整學(xué)習(xí)器、行動器,以及可選地,回放存儲器的數(shù)目,導(dǎo)致提高性能。

      在附圖和下述描述中,闡述本說明書的主題的一個或多個實施例的細節(jié)。從描述、附圖和權(quán)利要求,本主題的其他特征、方面和優(yōu)點將變得顯而易見。

      附圖說明

      圖1示出示例分布式強化學(xué)習(xí)訓(xùn)練系統(tǒng)。

      圖2示出另一示例分布式強化學(xué)習(xí)訓(xùn)練系統(tǒng)。

      圖3是在訓(xùn)練強化學(xué)習(xí)系統(tǒng)期間生成經(jīng)驗元組的示例過程的流程圖。

      圖4是在訓(xùn)練強化學(xué)習(xí)系統(tǒng)期間計算梯度的示例過程的流程圖。

      圖5是在訓(xùn)練強化學(xué)習(xí)系統(tǒng)期間更新參數(shù)值的示例過程的流程圖。

      不同圖中相同的參考數(shù)字和名稱指示相同的元件。

      具體實施方式

      本說明書通常描述用于分布式訓(xùn)練強化學(xué)習(xí)系統(tǒng)的技術(shù)。特別地,所訓(xùn)練的強化學(xué)習(xí)系統(tǒng)包括與環(huán)境交互的代理。為了與環(huán)境交互,代理接收對環(huán)境的當(dāng)前狀態(tài)進行特征化的觀察并且使用該觀察,選擇待執(zhí)行的動作。響應(yīng)于執(zhí)行所選動作,代理接收回報。當(dāng)與環(huán)境交互時,響應(yīng)于由代理選擇的所有動作,代理嘗試最大化由代理接收的總回報。

      特別地,響應(yīng)于給定觀察,代理選擇將使用q網(wǎng)絡(luò)執(zhí)行的動作。q網(wǎng)絡(luò)是被配置為將觀察和動作接收為輸入并且根據(jù)q網(wǎng)絡(luò)的參數(shù)集的當(dāng)前值,處理該輸入以生成神經(jīng)網(wǎng)絡(luò)輸出的深度神經(jīng)網(wǎng)絡(luò)。在一些實施方式中,代理選擇當(dāng)被提供給定觀察作為q網(wǎng)絡(luò)的輸出時,導(dǎo)致q網(wǎng)絡(luò)生成預(yù)定動作集中的任一動作的最高神經(jīng)網(wǎng)絡(luò)輸出的動作。在一些其他實施方式中,代理將ε-貪心策略用在選擇動作中,即,代理以概率ε從預(yù)定動作集隨機地選擇動作,并且選擇有概率1-ε導(dǎo)致q網(wǎng)絡(luò)生成最高神經(jīng)網(wǎng)絡(luò)輸出的動作。

      在訓(xùn)練強化學(xué)習(xí)系統(tǒng)期間,分布式強化學(xué)習(xí)訓(xùn)練系統(tǒng)訓(xùn)練強化學(xué)習(xí)系統(tǒng)來從參數(shù)的初始值調(diào)整q網(wǎng)絡(luò)的參數(shù)的值。在一些實施方式中,離線地訓(xùn)練強化學(xué)習(xí)系統(tǒng),訓(xùn)練系統(tǒng)訓(xùn)練該強化學(xué)習(xí)系統(tǒng)來確定q網(wǎng)絡(luò)的參數(shù)的訓(xùn)練值。然后,運行時,代理將訓(xùn)練值用在與環(huán)境交互中。在一些其他實施方式中,在線地訓(xùn)練強化學(xué)習(xí)系統(tǒng),當(dāng)運行時,代理與環(huán)境交互時,訓(xùn)練系統(tǒng)連續(xù)地調(diào)整由代理使用的q網(wǎng)絡(luò)的參數(shù)值。

      通常,分布式強化學(xué)習(xí)訓(xùn)練系統(tǒng)包括一個或多個行動器、一個或多個學(xué)習(xí)器和一個或多個回放存儲器。可選地,分布式強化學(xué)習(xí)訓(xùn)練系統(tǒng)還包括參數(shù)服務(wù)器。

      圖1示出示例分布式強化學(xué)習(xí)訓(xùn)練系統(tǒng)100。分布式強化學(xué)習(xí)訓(xùn)練系統(tǒng)100是在實現(xiàn)為實現(xiàn)下述系統(tǒng)、組件和技術(shù)的一個或多個位置中的一個或多個計算機上的計算機程序的系統(tǒng)的示例。

      分布式強化學(xué)習(xí)訓(xùn)練系統(tǒng)100包括多個捆綁束110a-110n和參數(shù)服務(wù)器150。捆綁束110a-110n的每個實現(xiàn)在相應(yīng)計算單元上。計算單元可以是例如計算機、具有多個內(nèi)核的計算機內(nèi)的內(nèi)核或能夠獨立地執(zhí)行捆綁束的計算的計算機內(nèi)的其他硬件或軟件。

      捆綁束110a-110n的每個包括相應(yīng)的行動器,例如捆綁束a110a中的行動器120a、相應(yīng)的學(xué)習(xí)器,例如捆綁束a110a中的學(xué)習(xí)器130a,以及相應(yīng)的回放存儲器,例如捆綁束110a中的回放存儲器140a。

      每個捆綁束中的每個行動器與相同環(huán)境的相應(yīng)的副本交互并且保持被訓(xùn)練的q網(wǎng)絡(luò)的副本,在本說明書中,被稱為行動器q網(wǎng)絡(luò)副本。例如,行動器120a與環(huán)境副本122a交互并且保持行動器q網(wǎng)絡(luò)副本124a。q網(wǎng)絡(luò)的副本是具有與q網(wǎng)絡(luò)相同神經(jīng)網(wǎng)絡(luò)架構(gòu)的神經(jīng)網(wǎng)絡(luò),具有可能不同的參數(shù)值,即,不同于q網(wǎng)絡(luò)的其他副本。

      特別地,在訓(xùn)練期間,每個捆綁束中的行動器與環(huán)境的副本交互以生成經(jīng)驗元組并且將經(jīng)驗元組存儲在回放存儲器中。每個行動器通過接收對環(huán)境副本的當(dāng)前狀態(tài)進行特征化的當(dāng)前觀察,與環(huán)境副本交互。

      然后,行動器使用由行動器保持的行動器q網(wǎng)絡(luò)副本來確定響應(yīng)于接收觀察執(zhí)行的動作。在下文中,參考圖3,更詳細地描述確定響應(yīng)于接收觀察而執(zhí)行的動作。

      只要行動器執(zhí)行確定的動作或指示另一系統(tǒng)執(zhí)行確定的動作,行動器接收回報和對環(huán)境副本的下一狀態(tài)進行特征化的下一觀察,即,執(zhí)行所選動作后的環(huán)境副本的狀態(tài)。然后,行動器生成經(jīng)驗元組并且將經(jīng)驗元組存儲在回放存儲器中。經(jīng)驗元組包括對環(huán)境實例的當(dāng)前狀態(tài)進行特征化的當(dāng)前觀察、響應(yīng)于接收當(dāng)前觀察執(zhí)行的動作、由執(zhí)行該動作的行動器接收的回報以及對環(huán)境副本的下一狀態(tài)進行特征化的下一觀察。例如,行動器120a將經(jīng)驗元組存儲在回放存儲器140a中。

      每個捆綁束中的學(xué)習(xí)器保持q網(wǎng)絡(luò)的兩個相應(yīng)的副本:在本說明書中被稱為學(xué)習(xí)器q網(wǎng)絡(luò)副本的一個副本,以及在本說明書中,被稱為目標(biāo)q網(wǎng)絡(luò)副本的另一副本。例如,學(xué)習(xí)器130a保持學(xué)習(xí)器q網(wǎng)絡(luò)副本132a和目標(biāo)q網(wǎng)絡(luò)副本134a。在一些實施方式中,由學(xué)習(xí)器保持的學(xué)習(xí)器q網(wǎng)絡(luò)副本為與由學(xué)習(xí)器相同捆綁束中的行動器保持的行動器q網(wǎng)絡(luò)副本的相同的q網(wǎng)絡(luò)實例,即,捆綁束中的學(xué)習(xí)器和行動器共享q網(wǎng)絡(luò)實例或同步行動器q網(wǎng)絡(luò)副本和學(xué)習(xí)器q網(wǎng)絡(luò)副本的參數(shù)值。

      如下文更詳細所述,通常,比由學(xué)習(xí)器保持的目標(biāo)q網(wǎng)絡(luò)副本的參數(shù)值更頻繁地更新由給定學(xué)習(xí)器保持的學(xué)習(xí)器q網(wǎng)絡(luò)副本的參數(shù)值。

      每個學(xué)習(xí)器從與學(xué)習(xí)器相同捆綁束中的回放存儲器選擇經(jīng)驗元組,例如,學(xué)習(xí)器130a從回放存儲器140a選擇經(jīng)驗元組,并且使用該元組和由學(xué)習(xí)器保持的q網(wǎng)絡(luò)副本,計算用于每個經(jīng)驗元組的梯度。在下文中,參考圖4描述計算梯度。學(xué)習(xí)器將計算的梯度通過網(wǎng)絡(luò),例如局域網(wǎng)(lan)或廣域網(wǎng)(wan),例如互聯(lián)網(wǎng),傳送到參數(shù)服務(wù)器150。

      參數(shù)服務(wù)器150保持q網(wǎng)絡(luò)的參數(shù)的當(dāng)前值并且當(dāng)學(xué)習(xí)器將梯度更新到服務(wù)器時,更新保持的值。特別地,參數(shù)服務(wù)器106從學(xué)習(xí)器接收梯度更新并且應(yīng)用梯度來使用常規(guī)的機器學(xué)習(xí)訓(xùn)練算法(例如,隨機梯度下降算法)來修改q網(wǎng)絡(luò)的參數(shù)的當(dāng)前值。

      在訓(xùn)練期間,參數(shù)服務(wù)器150將經(jīng)更新的參數(shù)值定期地提供給每個捆綁束。捆綁束中的行動器和學(xué)習(xí)器能使用接收的經(jīng)更新的參數(shù)值來更新由行動器和學(xué)習(xí)器保持的q網(wǎng)絡(luò)副本的參數(shù)值。在下文中,參考圖5,詳細地描述在訓(xùn)練期間更新參數(shù)值并且提供經(jīng)更新的參數(shù)值。

      可選地,參數(shù)服務(wù)器150的功能能分配在多個參數(shù)服務(wù)器分片中。即,每個參數(shù)服務(wù)器分片能保持q網(wǎng)絡(luò)的參數(shù)的相應(yīng)子集的值,使得模型的參數(shù)分配在參數(shù)服務(wù)器分片中。在這些情況下,每個參數(shù)服務(wù)器分片能實現(xiàn)在相應(yīng)獨立的計算單元上,計算單元被配置成能相互獨立地操作。在這些情況下,參數(shù)服務(wù)器150的每個分片能相互獨立地將梯度更新應(yīng)用于被指派到那一分片的參數(shù)。此外,參數(shù)服務(wù)器150能將提供的更新值應(yīng)用于分片相互獨立地指派到那一分片的參數(shù)。

      由此,每個捆綁束生成經(jīng)驗元組,計算梯度并且與每個其他捆綁束相互獨立并且異步地將計算的梯度提供給參數(shù)服務(wù)器150。特別地,在訓(xùn)練期間,僅在捆綁束之間共享的信息是由每個捆綁束從參數(shù)服務(wù)器150接收的參數(shù)值更新。

      此外,在訓(xùn)練期間,在無需傳送或接收來自任何其他學(xué)習(xí)器的數(shù)據(jù)的情況下,學(xué)習(xí)器通過將計算的梯度提供給參數(shù)服務(wù)器150,共同訓(xùn)練q網(wǎng)絡(luò)來確定網(wǎng)絡(luò)參數(shù)的訓(xùn)練值。

      在一些實施方式中,分布式強化學(xué)習(xí)訓(xùn)練系統(tǒng)可以具有不同的架構(gòu),其中,行動器、學(xué)習(xí)器和回放存儲器不會聚組成捆綁束,允許分布式強化學(xué)習(xí)訓(xùn)練系統(tǒng)具有不同數(shù)目的行動器、學(xué)習(xí)器和回放存儲器。利用該不同架構(gòu),每個學(xué)習(xí)器不僅與每個其他學(xué)習(xí)器,而且獨立與任何一個行動器操作。

      圖2示出另一示例分布式強化學(xué)習(xí)訓(xùn)練系統(tǒng)200。分布式強化學(xué)習(xí)訓(xùn)練系統(tǒng)200是實現(xiàn)為一個或多個位置中的一個或多個計算機上的計算機程序的系統(tǒng)的示例,其中,實現(xiàn)下文所述的系統(tǒng)、組件和技術(shù)。

      類似圖1的分布式強化學(xué)習(xí)訓(xùn)練系統(tǒng)100,分布式強化學(xué)習(xí)訓(xùn)練系統(tǒng)200包括多個行動器220a-n和多個學(xué)習(xí)器230a-n。然而,不同于圖1的系統(tǒng)100,在分布式強化學(xué)習(xí)訓(xùn)練系統(tǒng)200中,不存在行動器與學(xué)習(xí)器的一對一耦合。

      特別地,強化學(xué)習(xí)訓(xùn)練系統(tǒng)200包括多個行動器220a-n,所述多個行動器220a-n分別與環(huán)境的相應(yīng)副本交互以生成存儲在中央回放存儲器240中的經(jīng)驗元組。如圖1中,每個行動器220a-n使用由該行動器保持的相應(yīng)的行動器q網(wǎng)絡(luò)副本,生成經(jīng)驗元組。然而,任意給定行動器的行動器q網(wǎng)絡(luò)副本的參數(shù)值不與學(xué)習(xí)器230a-n的任何一個的學(xué)習(xí)器q網(wǎng)絡(luò)副本的參數(shù)同步。

      在訓(xùn)練期間,強化學(xué)習(xí)訓(xùn)練系統(tǒng)200中的每個學(xué)習(xí)器230a-n從中央回放存儲器204選擇經(jīng)驗元組并且使用由學(xué)習(xí)器保持的相應(yīng)的學(xué)習(xí)器q網(wǎng)絡(luò)副本和相應(yīng)的目標(biāo)q網(wǎng)絡(luò)副本,處理元組以計算用于經(jīng)驗元組的梯度。由此,每個學(xué)習(xí)器能從由多個行動器生成的經(jīng)驗元組選擇。然后,每個學(xué)習(xí)器能通過網(wǎng)絡(luò),將梯度傳送到參數(shù)服務(wù)器250。然后,參數(shù)服務(wù)器250更新q網(wǎng)絡(luò)的參數(shù)并且將經(jīng)更新的參數(shù)值提供給行動器220a-220n和學(xué)習(xí)器230a-230n。

      因為行動器220a-220n和學(xué)習(xí)器230a-2320n沒有耦合,強化學(xué)習(xí)訓(xùn)練系統(tǒng)200能包括與學(xué)習(xí)器不同數(shù)目的行動器。在一些實施方式中,在強化學(xué)習(xí)訓(xùn)練系統(tǒng)200中,每個行動器220a-220n和學(xué)習(xí)器230a-230n實現(xiàn)在相應(yīng)的計算單元上。

      盡管在圖2的示例中,強化學(xué)習(xí)訓(xùn)練系統(tǒng)200包括單個中央回放存儲器240,但在一些實施方式中,強化學(xué)習(xí)訓(xùn)練系統(tǒng)200能包括多個回放存儲器,每個行動器將經(jīng)驗元組存儲在多個回放存儲器的所指派的一個回放存儲器中。類似地,每個學(xué)習(xí)器230a-230n被指派多個回放存儲器中的一個回放存儲器,從該回放存儲器,選擇在訓(xùn)練期間,學(xué)習(xí)器用來計算梯度的經(jīng)驗元組。

      類似地,盡管在圖2的示例中,強化學(xué)習(xí)訓(xùn)練系統(tǒng)200包括多個行動器和多個學(xué)習(xí)器,但在一些實施方式中,強化學(xué)習(xí)訓(xùn)練系統(tǒng)200僅包括單個行動器和多個學(xué)習(xí)器。在這種情況下,多個學(xué)習(xí)器的每個在由單個行動器生成的經(jīng)驗元組上操作。

      此外,盡管在圖2的示例中,強化學(xué)習(xí)訓(xùn)練系統(tǒng)200包括多個行動器和多個學(xué)習(xí)器,但在一些實施方式中,強化學(xué)習(xí)訓(xùn)練系統(tǒng)200能包括多個行動器和單個學(xué)習(xí)器。在這種情況下,強化學(xué)習(xí)訓(xùn)練系統(tǒng)200可以不包括參數(shù)服務(wù)器250。即,單個學(xué)習(xí)器能處理來自回放存儲器240的元組并且計算梯度和經(jīng)更新的參數(shù)值。然后,強化學(xué)習(xí)訓(xùn)練系統(tǒng)200中的單個學(xué)習(xí)器或另一過程能將經(jīng)更新的參數(shù)值提供給多個行動器中的每個。

      圖3是用于在訓(xùn)練強化學(xué)習(xí)系統(tǒng)期間生成經(jīng)驗元組的示例過程300的流程圖。為了方便,過程300將被描述為由行動器,例如圖1的行動器120a-n中的一個或圖2的行動器220a-n中的一個執(zhí)行。

      行動器接收對與行動器交互的環(huán)境副本的當(dāng)前狀態(tài)進行特征化的當(dāng)前觀察(步驟302)。

      行動器使用由行動器保持的q網(wǎng)絡(luò)的副本,處理當(dāng)前觀察來選擇響應(yīng)于當(dāng)前觀察執(zhí)行的動作(步驟304)。特別地,由行動器保持的q網(wǎng)絡(luò)副本為被配置成將動作和觀察用作輸入的深度神經(jīng)網(wǎng)絡(luò),并且根據(jù)深度神經(jīng)網(wǎng)絡(luò)的參數(shù)的當(dāng)前值,生成神經(jīng)網(wǎng)絡(luò)輸出。為了選擇待執(zhí)行的動作,行動器確定當(dāng)前觀察被提供為q網(wǎng)絡(luò)副本的輸入時,導(dǎo)致行動器q網(wǎng)絡(luò)副本生成最高神經(jīng)網(wǎng)絡(luò)輸出的動作。在一些實施方式中,行動器將ε貪心策略用在選擇該動作中,即,以概率1-ε選擇生成最高神經(jīng)網(wǎng)絡(luò)輸出的動作并且以概率ε從預(yù)定動作集隨機地選擇動作。

      響應(yīng)于被執(zhí)行的動作,行動器接收回報和對環(huán)境副本的下一狀態(tài)(例如,執(zhí)行被選動作后的環(huán)境副本的狀態(tài))進行特征化的下一觀察(步驟306)。

      行動器生成包括當(dāng)前觀察、被選動作、接收的回報和下一觀察的經(jīng)驗元組(步驟308)。

      行動器將經(jīng)驗元組存儲在回放存儲器中(步驟310)。在一些實施方式中,回放存儲器是行動器本地的,即,僅行動器而不是任何其他行動器可訪問。在一些其他實施方式中,回放存儲器與一個或多個其他行動器共享,即,多個行動器將它們的經(jīng)驗元組存儲在相同回放存儲器中。

      行動器接收經(jīng)更新的參數(shù)值并且利用經(jīng)更新的參數(shù)值,更新由行動器保持的行動器q網(wǎng)絡(luò)副本的參數(shù)(步驟312)。在分布式強化學(xué)習(xí)訓(xùn)練系統(tǒng)包括參數(shù)服務(wù)器的實施方式中,行動器從參數(shù)服務(wù)器接收經(jīng)更新的參數(shù)值。在分布式強化學(xué)習(xí)訓(xùn)練系統(tǒng)不包括參數(shù)服務(wù)器的實施方式中,即,在系統(tǒng)僅包括單個學(xué)習(xí)器的實施方式中,行動器能直接從單個學(xué)習(xí)器接收經(jīng)更新的參數(shù)值。

      在訓(xùn)練強化學(xué)習(xí)訓(xùn)練系統(tǒng)期間,包括在分布式強化學(xué)習(xí)訓(xùn)練系統(tǒng)中的每個行動器能多次執(zhí)行過程300。因為在訓(xùn)練期間,每個行動器獨立于其他行動器執(zhí)行過程300的每個迭代,每個行動器探索環(huán)境的狀態(tài)空間中,與其他行動器不同的部分。由此,在分布式強化學(xué)習(xí)訓(xùn)練系統(tǒng)包括多個行動器的實施方式中,能在比使用非分布式的強化學(xué)習(xí)訓(xùn)練系統(tǒng)時更多的經(jīng)驗元組上訓(xùn)練強化學(xué)習(xí)系統(tǒng)。

      圖4是在訓(xùn)練強化學(xué)習(xí)系統(tǒng)期間,計算梯度的示例過程400的流程圖。為了方便,過程400將被描述為由學(xué)習(xí)器執(zhí)行,例如,由圖1的學(xué)習(xí)器130a-n中的一個或圖2的學(xué)習(xí)器230a-n中的一個執(zhí)行。

      學(xué)習(xí)器從回放存儲器選擇經(jīng)驗元組(步驟402)。在一些實施方式中,例如,當(dāng)學(xué)習(xí)器為包括回放存儲器的捆綁束的一部分時,回放存儲器專用于該學(xué)習(xí)器。在一些其他實施方式中,回放存儲器由多個學(xué)習(xí)器共享并且每個學(xué)習(xí)器從相同回放存儲器選擇經(jīng)驗元組。在任一情況下,學(xué)習(xí)器可以通過從在回放存儲器中存儲的元組隨機地采樣元組,從回放存儲器選擇經(jīng)驗元組。

      學(xué)習(xí)器使用經(jīng)驗元組選擇梯度(步驟404)。特別地,學(xué)習(xí)器保持學(xué)習(xí)器q網(wǎng)絡(luò)副本和目標(biāo)q網(wǎng)絡(luò)副本。學(xué)習(xí)器q網(wǎng)絡(luò)副本和目標(biāo)q網(wǎng)絡(luò)副本均是具有與q網(wǎng)絡(luò)相同網(wǎng)絡(luò)架構(gòu)以及與由每個行動器保持的行動器q網(wǎng)絡(luò)副本相同網(wǎng)絡(luò)架構(gòu)的深度神經(jīng)網(wǎng)絡(luò),但其可能具有相互不同并且不同于行動器q網(wǎng)絡(luò)副本的深度神經(jīng)網(wǎng)絡(luò)的參數(shù)值。由此,類似于由行動器保持的行動器q網(wǎng)絡(luò)副本,目標(biāo)q網(wǎng)絡(luò)副本和學(xué)習(xí)器q網(wǎng)絡(luò)副本被配置成將動作和觀察用作輸入并且根據(jù)相應(yīng)深度神經(jīng)網(wǎng)絡(luò)的參數(shù)的當(dāng)前值,生成神經(jīng)網(wǎng)絡(luò)輸出。特別地,如下文更詳細所述,與由學(xué)習(xí)器保持的目標(biāo)q網(wǎng)絡(luò)副本的參數(shù)值相比,在訓(xùn)練強化學(xué)習(xí)系統(tǒng)期間,更頻繁地更新由學(xué)習(xí)器保持的學(xué)習(xí)器q網(wǎng)絡(luò)副本的參數(shù)值。

      為了使用經(jīng)驗元組計算梯度,學(xué)習(xí)器使用學(xué)習(xí)器q網(wǎng)絡(luò)副本,處理來自元組的所選擇的動作和當(dāng)前觀察來確定用于被選動作的學(xué)習(xí)器q網(wǎng)絡(luò)輸出。

      學(xué)習(xí)器還確定通過處理來自元組的下一觀察與預(yù)定動作集中的任一動作而生成的最大目標(biāo)q網(wǎng)絡(luò)輸出。

      然后,學(xué)習(xí)器使用來自元組的回報、學(xué)習(xí)器q網(wǎng)絡(luò)輸出和最大目標(biāo)q網(wǎng)絡(luò)輸出,計算損失函數(shù)的梯度。在mnih,volodymyr,kavukcuoglu,koray,silver,david,graves,alex,antonoglou,ioannis,wierstra,daan,andriedmiller,martin,playingatariwithdeepreinforcementlearning,innipsdeeplearningworkshop,2013和2013年12月5日提交的,名為“computersystem”的us專利申請no.14/097,862中描述了損失函數(shù)和計算損失函數(shù)的梯度,其全部內(nèi)容通過引用合并于此。

      學(xué)習(xí)器將梯度提供給參數(shù)服務(wù)器(步驟406)。即,學(xué)習(xí)器通過網(wǎng)絡(luò)將梯度傳送到參數(shù)服務(wù)器。如果共享參數(shù)服務(wù)器,學(xué)習(xí)器將與由分片保持的參數(shù)分區(qū)相對應(yīng)的梯度部分傳送到每個分片。

      學(xué)習(xí)器從參數(shù)服務(wù)器接收經(jīng)更新的參數(shù)值(408)。參數(shù)更新包括用于由學(xué)習(xí)器保持的學(xué)習(xí)器q網(wǎng)絡(luò)副本的參數(shù)的更新值,并且可選地,用于由學(xué)習(xí)器保持的目標(biāo)q網(wǎng)絡(luò)副本的參數(shù)的更新值。特別地,如果學(xué)習(xí)器以多個元組成批地處理經(jīng)驗元組,在處理給定批量期間,學(xué)習(xí)器可以一次或多次地接收用于學(xué)習(xí)器q網(wǎng)絡(luò)副本的參數(shù)更新。然而,學(xué)習(xí)器可以以更長間隔接收用于目標(biāo)q網(wǎng)絡(luò)副本的參數(shù)的更新。由此,并非從參數(shù)服務(wù)器接收的每個參數(shù)值更新都將包括用于目標(biāo)q網(wǎng)絡(luò)副本的參數(shù)的更新值。

      學(xué)習(xí)器更新學(xué)習(xí)器q網(wǎng)絡(luò)副本的參數(shù),并且可選地,使用參數(shù)更新,更新目標(biāo)q網(wǎng)絡(luò)副本(步驟410)。

      分布式強化學(xué)習(xí)訓(xùn)練系統(tǒng)中的每個學(xué)習(xí)器能在訓(xùn)練期間,執(zhí)行過程400的多次迭代。特別地,每個學(xué)習(xí)器能獨立于系統(tǒng)中的每個其他學(xué)習(xí)器并且異步地執(zhí)行過程400。

      在分布式強化學(xué)習(xí)訓(xùn)練系統(tǒng)僅包括單個學(xué)習(xí)器并且不包括參數(shù)服務(wù)器,而不是將梯度提供給參數(shù)服務(wù)器,然后從參數(shù)服務(wù)器接收參數(shù)值更新的實施方式中,學(xué)習(xí)器計算經(jīng)更新的參數(shù)值,例如,如下文參考圖5所述,并且將經(jīng)更新的參數(shù)值提供給包括在分布式強化學(xué)習(xí)訓(xùn)練系統(tǒng)中的行動器。

      圖5是在訓(xùn)練強化學(xué)習(xí)系統(tǒng)期間更新參數(shù)值的示例過程500的流程圖。為了方便,過程500將被描述為由參數(shù)服務(wù)器執(zhí)行,例如由圖1的參數(shù)服務(wù)器150或圖2的參數(shù)服務(wù)器250執(zhí)行。

      參數(shù)服務(wù)器保持q網(wǎng)絡(luò)的參數(shù)的當(dāng)前值(步驟502)。在離線執(zhí)行訓(xùn)練的實施方式中,只要終止訓(xùn)練過程,由參數(shù)保持的q網(wǎng)絡(luò)的參數(shù)的值變?yōu)樵谂c環(huán)境交互中由代理使用的訓(xùn)練值。在一些實施方式中,然而,在線地執(zhí)行訓(xùn)練,系統(tǒng)中的行動器為正被訓(xùn)練的強化學(xué)習(xí)系統(tǒng)的代理。在這些情況下,不是確定參數(shù)的訓(xùn)練值,然后終止訓(xùn)練,而是當(dāng)繼續(xù)與環(huán)境交互時,連續(xù)地更新代理的參數(shù)值。

      參數(shù)服務(wù)器從一個或多個學(xué)習(xí)器接收梯度(步驟504)。當(dāng)在訓(xùn)練期間,每個學(xué)習(xí)器獨立于每個其他學(xué)習(xí)器操作時,參數(shù)服務(wù)器從學(xué)習(xí)器異步地接收梯度。

      可選地,參數(shù)服務(wù)器能對每個接收的梯度,確定接受還是丟棄該梯度(步驟506)。例如,在一些實施方式中,參數(shù)服務(wù)器能跟蹤由學(xué)習(xí)器使用的、計算梯度的參數(shù)值與由參數(shù)服務(wù)器保持的參數(shù)值之間的時間延遲。然后,參數(shù)服務(wù)器能丟棄延遲大于閾值的所有梯度。由此,丟棄使用過于陳舊的參數(shù)值計算的梯度,而不是由參數(shù)服務(wù)器接受。作為另一示例,每個學(xué)習(xí)器能對所看到的數(shù)據(jù),保持絕對dqn損失的運行平均和標(biāo)準(zhǔn)偏差。然后,學(xué)習(xí)器或者參數(shù)服務(wù)器能丟棄高于平均值加上閾值數(shù)目的標(biāo)準(zhǔn)偏差的梯度。

      參數(shù)服務(wù)器通過接收的梯度確定參數(shù)值更新(步驟508)并且將參數(shù)值更新應(yīng)用于由參數(shù)服務(wù)器保持的參數(shù)的當(dāng)前值來確定參數(shù)的更新值(步驟510)。特別地,參數(shù)服務(wù)器使用常見的機器學(xué)習(xí)訓(xùn)練技術(shù),例如隨機梯度下降訓(xùn)練技術(shù),從接收的梯度確定參數(shù)值更新??蛇x地,訓(xùn)練技術(shù)能包括自適應(yīng)學(xué)習(xí)率。在j.c.duchi,e.hazan,andy.singer,adaptivesubgradientmethodsforonlinelearningandstochasticoptimization,journalofmachinelearningresearch,12:2121–2159,2011,和v.p.plagianakos,

      d.g.sotiropoulosandm.n.vrahatis,animprovedbackpropagationmethodwithadaptivelearningrate.proceedingofthe2ndintern.confer.on:circuits,systemsandcomputers,1998中描述使用自適應(yīng)學(xué)習(xí)率的示例機器學(xué)習(xí)訓(xùn)練技術(shù)。

      參數(shù)服務(wù)器將經(jīng)更新的參數(shù)值提供給分布式強化學(xué)習(xí)訓(xùn)練系統(tǒng)中的每個行動器和每個學(xué)習(xí)器(步驟512)。特別地,在參數(shù)的每次更新后,參數(shù)服務(wù)器將經(jīng)更新的參數(shù)值提供給行動器和學(xué)習(xí)器,用在更新由行動器和學(xué)習(xí)器保持的行動器q網(wǎng)絡(luò)副本和學(xué)習(xí)器q網(wǎng)絡(luò)副本的參數(shù)中。參數(shù)服務(wù)器還確定是否滿足用于對由學(xué)習(xí)器保持的目標(biāo)q網(wǎng)絡(luò)副本提供更新參數(shù)值的標(biāo)準(zhǔn),如果滿足標(biāo)準(zhǔn),將指示經(jīng)更新的參數(shù)將被用來更新目標(biāo)q網(wǎng)絡(luò)副本的參數(shù)值的數(shù)據(jù)提供給學(xué)習(xí)器。在一些實施方式中,當(dāng)自最后一次更新目標(biāo)q網(wǎng)絡(luò)副本參數(shù)以來,服務(wù)器完成對由服務(wù)器保持的值的閾值數(shù)目的參數(shù)更新時或當(dāng)自最后一次更新目標(biāo)q網(wǎng)絡(luò)副本參數(shù)以來,閾值時間量流逝時,服務(wù)器確定滿足標(biāo)準(zhǔn)。

      在訓(xùn)練強化學(xué)習(xí)系統(tǒng)期間,多次執(zhí)行過程500。例如,參數(shù)服務(wù)器能在接收的梯度上重復(fù)地執(zhí)行過程500,直到不再接收到梯度為止、直到參數(shù)更新滿足預(yù)定終止條件為止,或直到通過例如系統(tǒng)管理員,終止訓(xùn)練為止。

      在一些實施方式中,參數(shù)服務(wù)器包括多個分片,每個分片獨立于其他分片操作,以及每個分片保持用于q網(wǎng)絡(luò)的參數(shù)的相應(yīng)不相交分區(qū)的值。在這些實施方式中,對由分片保持的參數(shù)值,參數(shù)服務(wù)器的每個分片能獨立于每個其他分片執(zhí)行過程500。

      在一些情況下,在訓(xùn)練期間,修改包含在訓(xùn)練中的行動器、學(xué)習(xí)器或兩者的數(shù)目是有利的。例如,分布式訓(xùn)練系統(tǒng)能確定應(yīng)當(dāng)通過監(jiān)視對回放存儲器的讀寫次數(shù),調(diào)整行動器或?qū)W習(xí)器的數(shù)目。即,當(dāng)對存儲器的寫次數(shù)和從存儲器讀取的次數(shù)相差超出閾值時,系統(tǒng)能確定相對于行動器的數(shù)目,需要增加學(xué)習(xí)器的數(shù)目。當(dāng)讀次數(shù)和寫次數(shù)相差超出閾值時,系統(tǒng)能確定相對于學(xué)習(xí)器的數(shù)目,應(yīng)當(dāng)增加行動器的數(shù)目。

      如另一示例,系統(tǒng)能監(jiān)視參數(shù)服務(wù)器的吞吐量來確定何時應(yīng)當(dāng)調(diào)整行動器或?qū)W習(xí)器的數(shù)目。例如,如果對q網(wǎng)絡(luò)的參數(shù)的更新次數(shù)小于添加到回放存儲器的新經(jīng)驗元組的數(shù)目,系統(tǒng)能確定應(yīng)當(dāng)相對于行動器的數(shù)目,增加學(xué)習(xí)器的數(shù)目。

      如另一示例,系統(tǒng)能監(jiān)視在訓(xùn)練期間丟棄的梯度數(shù)。如果被丟棄的梯度的部分超出閾值比例,那么系統(tǒng)能確定應(yīng)當(dāng)減少學(xué)習(xí)器的數(shù)目或應(yīng)當(dāng)增加參數(shù)服務(wù)器的性能,例如通過為參數(shù)服務(wù)器分配更多計算資源或增加參數(shù)分片的數(shù)目。

      在未捆綁系統(tǒng)中的學(xué)習(xí)器和行動器的架構(gòu)中,只要系統(tǒng)確定應(yīng)當(dāng)調(diào)整學(xué)習(xí)器或行動器的數(shù)目,能在不改變行動器的數(shù)目的情況下,增加或去除學(xué)習(xí)器,或反之亦然。在每個學(xué)習(xí)器與行動器捆綁的架構(gòu)中,能通過將捆綁束添加到該系統(tǒng)或從該系統(tǒng)去除捆綁束,改變行動器和學(xué)習(xí)器的數(shù)目。

      能在數(shù)字電子電路中或者在有形地體現(xiàn)的計算機軟件、固件或者在計算機硬件,包括在本說明書中公開的結(jié)構(gòu)及其結(jié)構(gòu)等效物中或者在它們中的一項或者多項的組合中實施在本說明書中描述的主題和功能操作的實施例。能將在本說明書中描述的主題的實施例實施為一個或者多個計算機程序,即編碼在有形非暫時性程序載體上的用于由數(shù)據(jù)處理裝置執(zhí)行或者控制數(shù)據(jù)處理裝置的操作的計算機程序指令的一個或者多個模塊。替選地或者附加地,能在人為生成的傳播的信號,例如,機器生成的電、光或者電磁信號上對程序指令編碼,該信號被生成用于對信息編碼以用于向適當(dāng)接收器裝置傳送以供數(shù)據(jù)處理裝置執(zhí)行。計算機存儲介質(zhì)能是機器可讀存儲設(shè)備、機器可讀存儲基板、隨機或者串行存取存儲器設(shè)備或者它們中的一項或者多項的組合。

      術(shù)語“數(shù)據(jù)處理裝置”是指數(shù)據(jù)處理硬件并且涵蓋各種用于處理數(shù)據(jù)的裝置、設(shè)備和機器,舉例而言包括可編程處理器、計算機、多個處理器或計算機。該裝置還能是或進一步包括專用邏輯電路,例如,fpga(現(xiàn)場可編程門陣列)或者asic(專用集成電路)。該裝置除了硬件之外,可選地,也能包括為計算機程序創(chuàng)建執(zhí)行環(huán)境的代碼,例如,構(gòu)成處理器固件、協(xié)議棧、數(shù)據(jù)庫管理系統(tǒng)、操作系統(tǒng)的代碼或者它們中的一項或者多項的組合。

      計算機程序(也可以被稱為或描述為程序、軟件、軟件應(yīng)用、應(yīng)用、模塊、軟件模塊、腳本或者代碼)能用任何形式的編程語言編寫,包括編譯或者解譯語言、或說明或者過程語言,并且計算機程序能用任何形式部署,包括部署為獨立程序或者部署為適合于在計算環(huán)境中使用的模塊、組件、子例程或者其他單元。計算機程序可以,但是無需對應(yīng)于文件系統(tǒng)中的文件。程序能被存儲于保持其他程序或者數(shù)據(jù)的文件(例如,存儲于標(biāo)記語言文檔中的一個或者多個腳本)的一部分中、專用于討論的程序的單個文件中,或者多個協(xié)同文件,例如,存儲一個或者多個模塊、子程序或者代碼部分的文件中。計算機程序能被部署以在一個計算機上或者在位于一個地點或者跨多個地點分布并且由通信網(wǎng)絡(luò)互連的多個計算機上執(zhí)行。

      在本說明書中描述的過程和邏輯流程能由一個或者多個可編程計算機執(zhí)行,該一個或者多個可編程計算機執(zhí)行一個或者多個計算機程序以通過對輸入數(shù)據(jù)操作并且生成輸出來執(zhí)行功能。該過程和邏輯流也能由專用邏輯電路,例如,fpga(現(xiàn)場可編程門陣列)或者asic(專用集成電路)執(zhí)行,并且裝置還能夠被實現(xiàn)為專用邏輯電路,例如,fpga(現(xiàn)場可編程門陣列)或者asic(專用集成電路)。

      例如,適合于執(zhí)行計算機程序的計算機包括例如,能基于通用微處理器或者專用微處理器,或者其兩者,或者任何其他種類的中央處理單元。通常,中央處理單元將從只讀存儲器或者隨機存取存儲器或者二者接收指令和數(shù)據(jù)。計算機的必要元件是用于執(zhí)行指令的中央處理單元以及用于存儲指令和數(shù)據(jù)的一個或者多個存儲器設(shè)備。通常,計算機還將包括用于存儲數(shù)據(jù)的一個或者多個海量存儲裝置(例如,磁盤、磁光盤或者光盤),或者被操作地耦合用于從該一個或者多個海量存儲設(shè)備接收數(shù)據(jù)或者向該一個或者多個海量存儲設(shè)備發(fā)送數(shù)據(jù)或者接收和發(fā)送二者。然而,計算機無需具有這樣的設(shè)備。另外,計算機能被嵌入于另一設(shè)備中,聊舉數(shù)例,例如,移動電話、個人數(shù)字助理(pda)、移動音頻或者視頻播放器、游戲控制臺、全球定位系統(tǒng)(gps)接收器或者便攜存儲設(shè)備,例如,通用串行總線(usb)閃存驅(qū)動。

      適合于存儲計算機程序指令和數(shù)據(jù)的計算機可讀介質(zhì)包括所有形式的非易失性存儲器、介質(zhì)和存儲器設(shè)備,舉例而言包括半導(dǎo)體存儲器設(shè)備,例如,eprom、eeprom和閃速存儲器設(shè)備;磁盤,例如,內(nèi)部硬盤或者可移動盤、磁光盤、以及cd-rom和dvd-rom盤。處理器和存儲器能由專用邏輯電路補充或并入專用邏輯電路中。

      為了提供與用戶的交互,能在計算機上實施在本說明書中描述的主題的實施例,該計算機具有用于向用戶顯示信息的顯示設(shè)備(例如,crt(陰極射線管)或者lcd(液晶顯示器)監(jiān)視器)以及用戶能用來向計算機提供輸入的鍵盤和指針設(shè)備,例如,鼠標(biāo)或者軌跡球。其他種類的設(shè)備也能用來提供與用戶的交互;例如,向用戶提供的反饋能是任何形式的感覺反饋,例如,視覺反饋、聽覺反饋或者觸覺反饋;并且能用包括聲音、語音或者觸覺輸入的任何形式接收來自用戶的輸入。此外,計算機能通過向用戶使用的設(shè)備發(fā)送文檔和從該設(shè)備接收文檔,例如,通過響應(yīng)于從用戶的客戶端設(shè)備上的web瀏覽器接收的請求向web瀏覽器發(fā)送網(wǎng)頁來與用戶交互。

      在本說明書中描述的主題的實施例能在計算系統(tǒng)中實施,該計算系統(tǒng)包括后端組件(例如作為數(shù)據(jù)服務(wù)器),或者包括中間件組件(例如,應(yīng)用服務(wù)器)或者包括前端組件(例如,具有關(guān)系圖形用戶交互接口或者web瀏覽器,用戶能通過它與在本說明書中描述的主題的實現(xiàn)方式交互的客戶端計算機)或者一個或者多個這樣的后端、中間件或者前端組件的任何組合。系統(tǒng)的組件能通過任何數(shù)字數(shù)據(jù)通信形式或者介質(zhì)(例如,通信網(wǎng)絡(luò))互連。通信網(wǎng)絡(luò)的示例包括局域網(wǎng)(lan)和廣域網(wǎng)(wan),例如,互聯(lián)網(wǎng)。

      計算系統(tǒng)能包括客戶端和服務(wù)器??蛻舳撕头?wù)器一般相互遠離并且通常通過通信網(wǎng)絡(luò)交互??蛻舳撕头?wù)器的關(guān)系借助在相應(yīng)計算機上運行并且相互具有客戶端-服務(wù)器關(guān)系的計算機程序而產(chǎn)生。

      盡管本說明書包含許多具體實現(xiàn)方式細節(jié),但是不應(yīng)將這些解釋為限制任何發(fā)明的范圍或可以要求保護的內(nèi)容的范圍,而是解釋為對具體發(fā)明的具體實現(xiàn)方式特有的特征的描述。在本說明書中在分開的實施例的場境中描述的某些特征也能在單個實施例中被組合實施。相反地,在單個實施例的場境中描述的各種特征也能在多個實施例中分開地或者在任何適當(dāng)子組合中被實施。另外,雖然上文能將特征描述為在某些組合中動作并且甚至起初這樣要求保護,但是來自要求保護的組合的一個或者多個特征能在一些情況下從該組合中被刪除,并且要求保護的組合能涉及子組合或者子組合的變型。

      類似地,盡管在附圖中以特定順序描繪操作,但是這不應(yīng)被理解為要求以所示特定順序或者以依次順序執(zhí)行這樣的操作或者執(zhí)行所有所示操作以實現(xiàn)希望的結(jié)果。在某些境況中,多任務(wù)和并行處理會是有利的。另外,在上文描述的實施例中的各種系統(tǒng)模塊和組件的分離不應(yīng)被理解為在所有實施例中要求這樣的分離,并且應(yīng)當(dāng)理解描述的程序組件和系統(tǒng)一般能一起集成于單個軟件產(chǎn)品中或者被封裝到多個軟件產(chǎn)品中。

      描述了主題的具體實施例。其他實施例在所附權(quán)利要求的范圍內(nèi)。例如,在權(quán)利要求中記載的動作能按不同順序被執(zhí)行而仍然實現(xiàn)希望的結(jié)果。作為一個示例,在附圖中描繪的過程未必需要所示特定順序或者依次順序以實現(xiàn)希望的結(jié)果。在某些實施方式中,多任務(wù)和并行處理會是有利的。

      當(dāng)前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1