使用目標(biāo)和觀察來選擇強(qiáng)化學(xué)習(xí)動作的制作方法
【專利摘要】本發(fā)明涉及一種用于使用目標(biāo)和觀察的強(qiáng)化學(xué)習(xí)的方法、系統(tǒng)和裝置,包括在計算機(jī)存儲介質(zhì)上編碼的計算機(jī)程序。所述方法中的一個包括接收表征環(huán)境的當(dāng)前狀態(tài)的觀察;接收表征來自環(huán)境的目標(biāo)狀態(tài)集的目標(biāo)狀態(tài)的目標(biāo);使用觀察神經(jīng)網(wǎng)絡(luò)處理觀察以生成觀察的數(shù)字表示;使用目標(biāo)神經(jīng)網(wǎng)絡(luò)處理目標(biāo)以生成目標(biāo)的數(shù)字表示;組合所觀察的數(shù)字表示和目標(biāo)的數(shù)字表示以生成組合的表示;使用動作分值神經(jīng)網(wǎng)絡(luò)處理組合的表示以為預(yù)定的動作集中的每個動作生成相應(yīng)的分值;以及使用預(yù)定的動作集中的動作的相應(yīng)的分值來選擇要執(zhí)行的動作。
【專利說明】
使用目標(biāo)和觀察來選擇強(qiáng)化學(xué)習(xí)動作
[0001 ]技術(shù)領(lǐng)域本說明書涉及通過強(qiáng)化學(xué)習(xí)代理來選擇要執(zhí)行的動作。
【背景技術(shù)】
[0002]強(qiáng)化學(xué)習(xí)代理通過接收表征環(huán)境的當(dāng)前狀態(tài)的觀察、并且作為響應(yīng)而執(zhí)行來自預(yù)定的動作集的動作來與環(huán)境交互。響應(yīng)于接收任何給定的觀察,某些強(qiáng)化學(xué)習(xí)代理使用神經(jīng)網(wǎng)絡(luò)來選擇要執(zhí)行的動作。
[0003]神經(jīng)網(wǎng)絡(luò)為采用一個或多個層的非線性單元來為所接收的輸入預(yù)測輸出的機(jī)器學(xué)習(xí)模型。某些神經(jīng)網(wǎng)絡(luò)為深度神經(jīng)網(wǎng)絡(luò),該深度神經(jīng)網(wǎng)絡(luò)除輸出層外還包括一個或多個隱藏層。每個隱藏層的輸出用作網(wǎng)絡(luò)中的下一層(即下一隱藏層或輸出層)的輸入。網(wǎng)絡(luò)的每個層根據(jù)相應(yīng)的參數(shù)集的當(dāng)前值而由所接收的輸入生成輸出。
【發(fā)明內(nèi)容】
[0004]本說明書描述了涉及強(qiáng)化學(xué)習(xí)的技術(shù)。
[0005]對于被配置為執(zhí)行特定操作或動作的一個或多個計算機(jī)的系統(tǒng),意指所述系統(tǒng)具有在其上安裝的、在操作中使所述系統(tǒng)執(zhí)行操作或動作的軟件、固件、硬件或其組合。對于被配置為執(zhí)行特定操作或動作的一個或多個計算機(jī)程序,意指所述一個或多個程序包括當(dāng)由數(shù)據(jù)處理裝置執(zhí)行時使裝置執(zhí)行操作或動作的指令。
[0006]本說明書中描述的主題能夠在特定實施例中實現(xiàn),從而實現(xiàn)一個或多個以下優(yōu)點。強(qiáng)化學(xué)習(xí)系統(tǒng)能夠有效且直接地考慮強(qiáng)化代理響應(yīng)于所接收的觀察而試圖達(dá)到選擇要由代理執(zhí)行的操作的目標(biāo)狀態(tài)。另外,強(qiáng)化學(xué)習(xí)系統(tǒng)能夠有效地為學(xué)習(xí)期間未遇到的目標(biāo)選擇動作。選擇動作時,強(qiáng)化學(xué)習(xí)系統(tǒng)能夠利用目標(biāo)空間與觀察空間之間的共享結(jié)構(gòu)。
[0007]附圖和下面的描述中陳列了本說明書的主題的一個或多個實施例的細(xì)節(jié)。本主題的其它特征、方面和優(yōu)點將從描述、附圖、和權(quán)利要求變得顯而易見。
[0008]附圖描述
[0009]圖1示出了實例強(qiáng)化學(xué)習(xí)系統(tǒng)。
[0010]圖2為用于響應(yīng)于接收的觀察而選擇動作的實例過程的流程圖。
[0011 ]圖3為用于生成目標(biāo)和觀察的組合表示的實例過程的流程圖。
[0012]圖4為用于訓(xùn)練動作分值神經(jīng)網(wǎng)絡(luò)、目標(biāo)神經(jīng)網(wǎng)絡(luò)和觀察神經(jīng)網(wǎng)絡(luò)的實例過程的流程圖。
[0013]在各個附圖中類似的附圖標(biāo)記及名稱表示類似的元件。
[0014]具體的實施方式本說明書概括地描述了強(qiáng)化學(xué)習(xí)系統(tǒng),其選擇動作以由與環(huán)境交互的強(qiáng)化學(xué)習(xí)代理(agent)執(zhí)行。為了與環(huán)境交互,代理接收表征環(huán)境的當(dāng)前狀態(tài)的數(shù)據(jù),并響應(yīng)于所接收的數(shù)據(jù),從要執(zhí)行的預(yù)定的動作集選擇動作。本說明書中,將表征環(huán)境的狀態(tài)的數(shù)據(jù)稱作觀察。
[0015]具體地,代理與環(huán)境交互以試圖達(dá)到環(huán)境的預(yù)定的目標(biāo)狀態(tài)集。本說明書中,將表征來自目標(biāo)狀態(tài)集的狀態(tài)的數(shù)據(jù)稱作目標(biāo)。例如,當(dāng)環(huán)境為視頻游戲并且代理為與視頻游戲交互的計算機(jī)程序時,每個目標(biāo)狀態(tài)可能為視頻游戲的玩游戲期間的路點(waypoint),例如表示收集玩游戲所必需的特定物品或顯示一條信息的級別或狀態(tài)的結(jié)束的狀態(tài)。作為另一實例,當(dāng)環(huán)境為真實世界的環(huán)境并且代理為與環(huán)境交互以完成特定任務(wù)的機(jī)器人時,每個目標(biāo)狀態(tài)可能是由機(jī)器人已完成子任務(wù)的狀態(tài),例如當(dāng)機(jī)器人將物品從一個位置移動至另一位置或以其他方式向完成任務(wù)取得進(jìn)展時。
[0016]圖1示出了實例強(qiáng)化學(xué)習(xí)系統(tǒng)100。強(qiáng)化學(xué)習(xí)系統(tǒng)100為實現(xiàn)為處于一個或多個位置的一個或多個計算機(jī)上的計算機(jī)程序的系統(tǒng)的實例,其中實現(xiàn)了下面描述的系統(tǒng)、部件和技術(shù)。
[0017]強(qiáng)化學(xué)習(xí)系統(tǒng)100選擇由與環(huán)境104交互的強(qiáng)化學(xué)習(xí)代理102所執(zhí)行的動作。具體地,強(qiáng)化學(xué)習(xí)系統(tǒng)100接收觀察,其中每個觀察表征環(huán)境104的狀態(tài),并且響應(yīng)于每個觀察而從預(yù)定的動作集選擇要由強(qiáng)化學(xué)習(xí)代理102執(zhí)行的動作。
[0018]具體地,強(qiáng)化學(xué)習(xí)系統(tǒng)100使用目標(biāo)神經(jīng)網(wǎng)絡(luò)110、觀察神經(jīng)網(wǎng)絡(luò)120和動作分值神經(jīng)網(wǎng)絡(luò)130來選擇動作。
[0019]目標(biāo)神經(jīng)網(wǎng)絡(luò)110為配置為接收目標(biāo)并且處理目標(biāo)以生成目標(biāo)的數(shù)字表示的神經(jīng)網(wǎng)絡(luò)。目標(biāo)的數(shù)字表示為來自嵌入(embedding)的η維向量空間的向量。
[0020]觀察神經(jīng)網(wǎng)絡(luò)120為配置為接收觀察以生成觀察的數(shù)字表示的神經(jīng)網(wǎng)絡(luò)。觀察的數(shù)字表示也是來自嵌入的η維向量空間的向量。
[0021]在某些實現(xiàn)中,觀察神經(jīng)網(wǎng)絡(luò)120、目標(biāo)神經(jīng)網(wǎng)絡(luò)110或兩者都是多層感知(MLP)神經(jīng)網(wǎng)絡(luò)。
[0022]另外,在某些實現(xiàn)中,觀察神經(jīng)網(wǎng)絡(luò)120和目標(biāo)神經(jīng)網(wǎng)絡(luò)110共享一個或多個參數(shù)。例如,可以共享觀察神經(jīng)網(wǎng)絡(luò)120和目標(biāo)神經(jīng)網(wǎng)絡(luò)110的第一層的參數(shù)。
[0023]在某些實現(xiàn)中,動作分值神經(jīng)網(wǎng)絡(luò)130是被配置為接收目標(biāo)和觀察的組合表示并且為動作集中的每個動作生成相應(yīng)的分值的神經(jīng)網(wǎng)絡(luò)。
[0024]在某些實現(xiàn)中,動作分值神經(jīng)網(wǎng)絡(luò)130是被配置為接收組合表示和動作并且為動作生成分值的神經(jīng)網(wǎng)絡(luò)。
[0025]下面將參考圖2更詳細(xì)地描述使用目標(biāo)神經(jīng)網(wǎng)絡(luò)110、觀察神經(jīng)網(wǎng)絡(luò)120和動作分值神經(jīng)網(wǎng)絡(luò)130來選擇動作。
[0026]組合表示由強(qiáng)化學(xué)習(xí)系統(tǒng)100根據(jù)目標(biāo)的數(shù)字表示和觀察的數(shù)字表示所生成。在某些實現(xiàn)中,為了生成組合的表示,系統(tǒng)將η維目標(biāo)表示和η維觀察表示映射為標(biāo)量值,以生成組合的表示。下面將參考圖3更詳細(xì)描述生成組合的表示。
[0027]圖2為用于響應(yīng)于所接收的觀察而選擇動作的實例過程200的流程圖。為方便起見,將過程200描述為由位于一個或多個位置的一個或多個計算機(jī)的系統(tǒng)所執(zhí)行。例如,強(qiáng)化學(xué)習(xí)系統(tǒng),例如圖1的強(qiáng)化學(xué)習(xí)系統(tǒng)100,根據(jù)本說明書適當(dāng)編程,能夠執(zhí)行過程200。
[0028]系統(tǒng)接收表征環(huán)境的當(dāng)前狀態(tài)的觀察(步驟202)。
[0029]系統(tǒng)從一組環(huán)境的目標(biāo)集接收表征目標(biāo)狀態(tài)的目標(biāo)(步驟204)。在某些實現(xiàn)中,系統(tǒng)提供允許用戶選擇目標(biāo)狀態(tài)的界面。一旦被選擇,表征目標(biāo)狀態(tài)的目標(biāo)將被系統(tǒng)用于選擇要由代理執(zhí)行的動作,直到用戶通過界面切換目標(biāo)狀態(tài)為止。在其它實現(xiàn)中,系統(tǒng)從另一系統(tǒng)接收狀態(tài),例如,例如使用基于當(dāng)前觀察而選擇目標(biāo)狀態(tài)的策略、從目標(biāo)狀態(tài)集選擇要到達(dá)的目標(biāo)狀態(tài)的系統(tǒng)。
[0030]系統(tǒng)生成觀察的和目標(biāo)的組合表示(步驟206)。下面將參考圖3更詳細(xì)地描述生成組合的表示。
[0031]系統(tǒng)通過使用動作分值神經(jīng)網(wǎng)絡(luò)來處理組合的表示,根據(jù)組合的表示為動作集中的每個動作生成相應(yīng)的分值(步驟208)。
[0032]在動作分值神經(jīng)網(wǎng)絡(luò)被配置為接收組合的表示作為輸入并且處理組合的表示以為所述集中的每個動作生成相應(yīng)的分值的實現(xiàn)中,系統(tǒng)使用動作分值神經(jīng)網(wǎng)絡(luò)來處理組合的表不以生成相應(yīng)的分值。
[0033]在動作分值神經(jīng)網(wǎng)絡(luò)被配置為接收組合的表示和動作作為輸入并且處理組合的表示和動作以為動作集中的每個動作生成動作的分值的實現(xiàn)中,系統(tǒng)使用動作分值神經(jīng)網(wǎng)絡(luò)來處理動作和組合的表示以為動作生成相應(yīng)的分值。
[0034]系統(tǒng)使用預(yù)定的動作集中動作的相應(yīng)的分值,響應(yīng)于觀察而選擇要由代理執(zhí)行的動作(步驟210)。
[0035]在某些情況下,系統(tǒng)選擇得分最高的動作,即具有動作集中的任何動作的最高分值的動作,作為要由代理執(zhí)行的動作。
[0036]在某些其它情況下,例如在學(xué)習(xí)期間,系統(tǒng)可以不時的選擇除得分最高的動作之外的動作作為要執(zhí)行的動作。例如在學(xué)習(xí)期間,系統(tǒng)可以以概率ε從動作集選擇隨機(jī)動作,并且以概率1-£選擇得分最高的動作。
[0037]圖3為用于生成目標(biāo)和觀察的組合表示的實例過程300的流程圖。為方便起見,將過程300描述為由位于一個或多個位置的一個或多個計算機(jī)的系統(tǒng)執(zhí)行。例如,強(qiáng)化學(xué)習(xí)系統(tǒng),例如圖1的強(qiáng)化學(xué)習(xí)系統(tǒng)100,根據(jù)本說明書適當(dāng)編程,能夠執(zhí)行過程300。
[0038]系統(tǒng)使用觀察神經(jīng)網(wǎng)絡(luò)來處理觀察,以生成觀察的數(shù)字表示(步驟302)。
[0039]系統(tǒng)使用目標(biāo)神經(jīng)網(wǎng)絡(luò)來處理目標(biāo),以生成目標(biāo)的數(shù)字表示(步驟304)。
[0040]系統(tǒng)根據(jù)觀察的數(shù)字表示和目標(biāo)的數(shù)字表示來生成組合的表示(步驟306)。
[0041]系統(tǒng)可以以各種方式中的任何一個根據(jù)觀察的和目標(biāo)的數(shù)字表示來生成組合的表不。
[0042]例如,系統(tǒng)可以通過計算觀察的數(shù)字表示和目標(biāo)的數(shù)字表示之間的點積來生成組合的表不。
[0043]作為另一實例,系統(tǒng)可以通過使用組合神經(jīng)網(wǎng)絡(luò)來處理觀察的數(shù)字表示和目標(biāo)的數(shù)字表示來生成組合的表示,組合神經(jīng)網(wǎng)絡(luò)被配置為接收觀察的數(shù)字表示和目標(biāo)的數(shù)字表示并且處理觀察的數(shù)字表示和目標(biāo)的數(shù)字表示以生成組合的表示。
[0044]為了確定觀察神經(jīng)網(wǎng)絡(luò)、目標(biāo)神經(jīng)網(wǎng)絡(luò)、動作分值神經(jīng)網(wǎng)絡(luò)、和可選的組合神經(jīng)網(wǎng)絡(luò)的參數(shù)的訓(xùn)練值,系統(tǒng)訓(xùn)練觀察神經(jīng)網(wǎng)絡(luò)、目標(biāo)神經(jīng)網(wǎng)絡(luò)、動作分值神經(jīng)網(wǎng)絡(luò)、以及可選的組合神經(jīng)網(wǎng)絡(luò)。
[0045]在某些實現(xiàn)中,系統(tǒng)聯(lián)合地使用首尾相連的訓(xùn)練過程來直接訓(xùn)練神經(jīng)網(wǎng)絡(luò),即通過獲得標(biāo)記的訓(xùn)練數(shù)據(jù)和執(zhí)行神經(jīng)網(wǎng)絡(luò)訓(xùn)練技術(shù)例如隨機(jī)梯度下降,來經(jīng)過觀察神經(jīng)網(wǎng)絡(luò)和目標(biāo)神經(jīng)網(wǎng)絡(luò)從動作分值神經(jīng)網(wǎng)絡(luò)反向傳播錯誤。
[0046]在某些其它實現(xiàn)中,系統(tǒng)基于矩陣分解使用二階訓(xùn)練過程來訓(xùn)練神經(jīng)網(wǎng)絡(luò)。
[0047]圖4為用于訓(xùn)練動作分值神經(jīng)網(wǎng)絡(luò)、目標(biāo)神經(jīng)網(wǎng)絡(luò)和觀察神經(jīng)網(wǎng)絡(luò)的實例過程400的流程圖。為方便起見,將過程400表示為由位于一個或多個位置的一個或多個計算機(jī)的系統(tǒng)執(zhí)行。例如,強(qiáng)化學(xué)習(xí)系統(tǒng),例如圖1的強(qiáng)化學(xué)習(xí)系統(tǒng)100,根據(jù)本說明書適當(dāng)編程,能夠執(zhí)tx過程400。
[0048]系統(tǒng)訓(xùn)練動作分值神經(jīng)網(wǎng)絡(luò)以確定動作分值神經(jīng)網(wǎng)絡(luò)的參數(shù)的訓(xùn)練值,并且確定理想化目標(biāo)嵌入和理想化觀察嵌入(步驟402)。
[0049]在某些實現(xiàn)中,系統(tǒng)使用部落架構(gòu)(Hordearchitecture)為動作分值神經(jīng)網(wǎng)絡(luò)的訓(xùn)練確定目標(biāo)。在部落架構(gòu)中,為來自目標(biāo)集的每個目標(biāo)維持不同的神經(jīng)網(wǎng)絡(luò)。用于每個目標(biāo)的神經(jīng)網(wǎng)絡(luò)基于所接收的觀察生成動作分值。系統(tǒng)使用常規(guī)強(qiáng)化學(xué)習(xí)技術(shù),獨立且離線地(off policy)訓(xùn)練部落中的每個神經(jīng)網(wǎng)絡(luò)。在第10屆自治代理及多代理系統(tǒng)國際會議--2011年卷2第761-768頁中的Sutton、Richard S、Modayil、Joseph、Delp、Michae1、
Degris、Thomas、Pilarsk1、Patrick M、White、Adam和Precup、Doina的《部落:用于根據(jù)無人監(jiān)督的感覺運動的交互學(xué)習(xí)知識的可擴(kuò)展實時架構(gòu)》(《Horde:A scalable real-timearchitecture for learning knowledge from unsupervised sensorimotorinteract1n》)中,更詳細(xì)描述了用于學(xué)習(xí)部落中的神經(jīng)網(wǎng)絡(luò)的實例部落架構(gòu)和實例技術(shù)。
[0050]—旦學(xué)習(xí)了部落中的神經(jīng)網(wǎng)絡(luò),系統(tǒng)能夠基于部落中被學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)的輸出而為動作分值神經(jīng)網(wǎng)絡(luò)的訓(xùn)練確定目標(biāo),即應(yīng)該由動作分值神經(jīng)網(wǎng)絡(luò)生成的動作分值。系統(tǒng)接著使用神經(jīng)網(wǎng)絡(luò)訓(xùn)練技術(shù)例如隨機(jī)梯度下降而在由部落確定的目標(biāo)上訓(xùn)練動作分值神經(jīng)網(wǎng)絡(luò)。
[0051]在某些其它實現(xiàn)中,系統(tǒng)例如使用Q學(xué)習(xí)技術(shù)的變量,通過為訓(xùn)練集中每個目標(biāo)由受訪問轉(zhuǎn)換(transit1n)中的下一狀態(tài)引導(dǎo)指令,為動作分值神經(jīng)網(wǎng)絡(luò)的訓(xùn)練確定目標(biāo)。
[0052]為了確定理想化目標(biāo)嵌入和理想化觀察嵌入,系統(tǒng)生成數(shù)據(jù)矩陣,其中一行對應(yīng)于在動作分值神經(jīng)網(wǎng)絡(luò)的訓(xùn)練期間遇到的每個觀察,并且一列對應(yīng)于在動作分值神經(jīng)網(wǎng)絡(luò)的訓(xùn)練期間遇到的每個目標(biāo)。所述矩陣中的項目為用于對應(yīng)的目標(biāo)、觀察組合的目標(biāo)動作分值。系統(tǒng)接著分解矩陣以確定為狀態(tài)和目標(biāo)兩者定義嵌入空間的低秩逼近。
[0053]系統(tǒng)在理想化目標(biāo)嵌入上訓(xùn)練目標(biāo)神經(jīng)網(wǎng)絡(luò)(步驟404)。也就是說,系統(tǒng)訓(xùn)練目標(biāo)神經(jīng)網(wǎng)絡(luò)以生成使用常規(guī)技術(shù)來匹配理想化目標(biāo)嵌入的數(shù)字表示。
[0054]系統(tǒng)在理想化觀察嵌入上訓(xùn)練觀察神經(jīng)網(wǎng)絡(luò)(步驟406)。也就是說,系統(tǒng)訓(xùn)練觀察神經(jīng)網(wǎng)絡(luò)以生成使用常規(guī)技術(shù)來匹配理想化觀察嵌入的數(shù)字表示。
[0055]對于配置為執(zhí)行特定操作或動作的一個或多個計算機(jī)的系統(tǒng),意指系統(tǒng)在其上安裝的、在操作中使系統(tǒng)執(zhí)行操作或動作的軟件、固件、硬件或其組合。對于配置為執(zhí)行特定操作或動作的一個或多個計算機(jī)程序,意指一個或多個程序包括指令,當(dāng)由數(shù)據(jù)處理裝置執(zhí)行時,該指令使得裝置執(zhí)行操作或動作。
[0056]能夠以數(shù)字電子電路、有形體現(xiàn)的計算機(jī)軟件或固件、包括本說明書中公開的結(jié)構(gòu)及其結(jié)構(gòu)等效物的計算機(jī)硬件、或其一個或多個的組合,實現(xiàn)本說明書中描述的主題和功能操作的實施例。本說明書中描述的主題的實施例能夠?qū)崿F(xiàn)為一個或多個計算機(jī)程序,即在有形的非暫時性程序載體上編碼的一個或多個計算機(jī)程序指令的模塊,用于由數(shù)據(jù)處理裝置執(zhí)行或控制其操作。替代或另外地,程序指令能夠在人工生成的傳播信號、例如機(jī)器生成的電、光或電磁信號上編碼,其生成以編碼用于傳送給適當(dāng)?shù)慕邮掌餮b置從而由數(shù)據(jù)處理裝置執(zhí)行的信息。計算機(jī)存儲介質(zhì)能夠為機(jī)器可讀存儲設(shè)備、機(jī)器可讀存儲基板、隨機(jī)或串行存取存儲器設(shè)備、或其一個或多個的組合。
[0057]術(shù)語“數(shù)據(jù)處理裝置”指的是數(shù)據(jù)處理硬件,并且包含用于處理數(shù)據(jù)的各種裝置、設(shè)備和機(jī)器,舉例來說包括可編程處理器、計算機(jī)、或多個處理器或計算機(jī)。裝置還能夠或進(jìn)一步包括專用邏輯電路,例如FPGA(現(xiàn)場可編程門陣列)或ASICX專用集成電路)。除了硬件以外,裝置能夠可選地包括為計算機(jī)程序創(chuàng)建執(zhí)行環(huán)境的代碼,例如構(gòu)成處理器固件、協(xié)議桟、數(shù)據(jù)庫管理系統(tǒng)、操作系統(tǒng)、或其一個或多個組合的代碼。
[0058]計算機(jī)程序(還可以稱作或描述為程序、軟件、軟件應(yīng)用程序、模塊、軟件模塊、腳本、或代碼)能夠以任何形式的編程語言編寫,包括匯編或解釋語言、或說明性或過程語言,并且它能夠以任何形式部署,包括作為獨立程序或作為模塊、組件、子例程、或適用于在計算環(huán)境中使用的其它單元。計算機(jī)程序可以但無需對應(yīng)于文件系統(tǒng)中的文件。程序能夠存儲在保存其它程序或數(shù)據(jù)、例如存儲在標(biāo)記語言文檔中的一個或多個腳本的文件的部分中、在專用于所討論的程序的單個文件中、或多個協(xié)調(diào)文件中,例如存儲一個或多個模塊、子程序或代碼段的文件。計算機(jī)程序能夠部署為在一個計算機(jī)上或在位于一個地點或分布跨越多個地點并且由通信網(wǎng)絡(luò)互連的多個計算機(jī)上執(zhí)行。
[0059]本說明書中描述的過程和邏輯流能夠由一個或多個可編程計算機(jī)執(zhí)行,其執(zhí)行一個或多個計算機(jī)程序以通過對輸入數(shù)據(jù)和生成的輸出進(jìn)行操作來執(zhí)行功能。過程和邏輯流還能夠由例如FPGA(現(xiàn)場可編程門陣列)或ASIC(專用集成電路)的專用邏輯電路來執(zhí)行,并且裝置也可以實現(xiàn)為專用邏輯電路。
[0060]適于計算機(jī)程序執(zhí)行的計算機(jī)包括,舉例來說,能夠基于通用或?qū)S梦⑻幚砥骰騼烧?,或任何其它種類的中央處理單元。通常,中央處理單元會從只讀存儲器或隨機(jī)存取存儲器或兩者接收指令和數(shù)據(jù)。計算機(jī)的基本元件為用于運行或執(zhí)行指令的中央處理單元和用于存儲指令和數(shù)據(jù)的一個或多個存儲器設(shè)備。通常,計算機(jī)還會包括用于存儲數(shù)據(jù)的一個或多個大容量存儲設(shè)備,例如磁、磁光盤或光盤,或操作地耦接以從其接收數(shù)據(jù)或向其傳輸數(shù)據(jù),或兩者兼有。然而,計算機(jī)無需具有這種設(shè)備。而且,計算機(jī)能夠體現(xiàn)在另一設(shè)備中,只舉幾例,例如移動電話、個人數(shù)字助理(PDA)、移動音頻或視頻播放器、游戲機(jī)、全球定位系統(tǒng)(GPS)接收器、或可攜帶存儲設(shè)備,例如通用串行總線(USB)閃存驅(qū)動器。
[0061]適于存儲計算機(jī)程序指令及數(shù)據(jù)的計算機(jī)可讀介質(zhì)包括所有形式的非易失性存儲器、介質(zhì)及存儲器設(shè)備,舉例來說包括:半導(dǎo)體存儲器設(shè)備,例如EPR0M、EEPR0M和閃存設(shè)備;磁盤,例如內(nèi)部硬盤或可去除盤;磁光盤;以及⑶-ROM和DVD-ROM盤。處理器和存儲器能夠由專用邏輯電路補(bǔ)充,或并入專用邏輯電路。
[0062]為了提供與用戶的交互,本說明書中描述的的主題的實施例能夠在計算機(jī)上實現(xiàn),其具有用于給用戶顯示信息的顯示設(shè)備例如CPRT(陰極射線管)或LCD(液晶顯示)監(jiān)視器、和鍵盤、以及用戶能夠通過其給計算機(jī)提供輸入的指示設(shè)備例如鼠標(biāo)或軌跡球。其它類型的設(shè)備也能夠用于提供與用戶的交互;例如,提供給用戶的反饋能夠為任何形式的感覺的反饋,例如視覺反饋、聽覺反饋、或觸覺反饋;以及來自用戶的輸入能夠以任何形式接收,包括聲音、語音或觸覺輸入。另外,計算機(jī)能夠通過發(fā)送文檔給由用戶使用的設(shè)備或從其接收文檔來與用戶交互;例如,通過響應(yīng)于從用戶客戶端設(shè)備上的網(wǎng)頁瀏覽器接收的請求而發(fā)送網(wǎng)頁給網(wǎng)頁瀏覽器。
[0063]本說明書中描述的主題的實施例能夠在計算系統(tǒng)中實現(xiàn),其包括例如作為數(shù)據(jù)服務(wù)器的后端部件,或包括例如應(yīng)用服務(wù)器的中間件部件,或包括例如具有關(guān)系圖形用戶界面或通過其用戶能夠與本說明書中描述的主題的實現(xiàn)交互的網(wǎng)頁瀏覽器的客戶端計算機(jī)的前端部件,或一個或多個這種后端、中間件或前端部件的任何組合。系統(tǒng)的部件能夠通過任何形式或通過數(shù)字?jǐn)?shù)據(jù)通信的介質(zhì)例如通信網(wǎng)絡(luò)來互連。通信網(wǎng)絡(luò)的實例包括局域網(wǎng)(“LAN” )和例如互聯(lián)網(wǎng)的廣域網(wǎng)(“WAN” )。
[0064]計算系統(tǒng)能夠包括客戶端和服務(wù)器??蛻舳撕头?wù)器通常彼此遠(yuǎn)離,并且一般通過通信網(wǎng)絡(luò)交互??蛻舳撕头?wù)器的關(guān)系借助于在各自的計算機(jī)上運行并且具有彼此客戶端-服務(wù)器關(guān)系的計算機(jī)程序而產(chǎn)生。
[0065]盡管本說明書包含許多具體的實現(xiàn)細(xì)節(jié),但不應(yīng)該將這些解釋為對任何發(fā)明或可能請求保護(hù)的范圍的限制,而是作為可能對于特定發(fā)明的特定實施例是具體的特征的描述。在各個的實施例的上下文中,本說明書中描述的某些特征在單個實施例中還能夠組合實現(xiàn)。相反,在單個實施例的上下文中描述的各種特征也能夠在多個實施例中獨立地或以任何適當(dāng)?shù)淖咏M合實現(xiàn)。而且,雖然上面可能將特征描述為以某些組合作用,并且甚至最初也如此請求保護(hù)的,但根據(jù)請求保護(hù)的組合的一個或多個特征在某些情況下能夠從組合刪去,并且請求保護(hù)的組合可以導(dǎo)向子組合或子組合的變型。
[0066]類似地,盡管附圖中按特定次序描繪操作,但不該將這理解為要求這種操作按所示的特定次序或順序次序執(zhí)行、或執(zhí)行所有示出的操作以實現(xiàn)期望的結(jié)果。某些情形下,多任務(wù)和并行處理可能是有利的。而且,上面描述的實施例中各種系統(tǒng)模塊及部件的分離,不該理解為要求所有實施例中都這樣分離,并且應(yīng)該理解描述的程序組件及系統(tǒng)一般能夠一起集成在單個軟件產(chǎn)品中、或封裝到多個軟件產(chǎn)品中。
[0067]已描述了本主題的特定實施例。其它實施例在隨后的權(quán)利要求的范圍內(nèi)。例如,所附權(quán)利要求中記載的動作能夠以不同的次序執(zhí)行,且仍能夠獲得期望的結(jié)果。作為一個實例,附圖中描繪的過程未必需要所示的特定次序或順序次序來獲得期望的結(jié)果。在某些實現(xiàn)中,多任務(wù)和并行處理可能是有利的。
【主權(quán)項】
1.一種用于選擇要由強(qiáng)化學(xué)習(xí)代理執(zhí)行的動作的方法,所述強(qiáng)化學(xué)習(xí)代理通過接收表征環(huán)境的當(dāng)前狀態(tài)的觀察、并且作為響應(yīng)而執(zhí)行來自預(yù)定的動作集的動作來與所述環(huán)境交互,其中所述方法包括: 接收表征所述環(huán)境的當(dāng)前狀態(tài)的觀察; 接收表征來自所述環(huán)境的目標(biāo)狀態(tài)集的目標(biāo)狀態(tài)的目標(biāo); 使用觀察神經(jīng)網(wǎng)絡(luò)處理所述觀察以生成所述觀察的數(shù)字表示; 使用目標(biāo)神經(jīng)網(wǎng)絡(luò)處理所述目標(biāo)以生成所述目標(biāo)的數(shù)字表示; 組合所述觀察的數(shù)字表示和所述目標(biāo)的數(shù)字表示以生成組合的表示; 使用動作分值神經(jīng)網(wǎng)絡(luò)處理所述組合的表示以為所述預(yù)定的動作集中的每個動作生成相應(yīng)的分值;以及 使用所述預(yù)定的動作集中的動作的相應(yīng)的分值來選擇要執(zhí)行的動作。2.根據(jù)權(quán)利要求1所述的方法,其中,所述動作分值神經(jīng)網(wǎng)絡(luò)被配置為接收所述組合的表示作為輸入,并且處理所述組合的表示以為所述預(yù)定的動作集中的每個動作生成相應(yīng)的分值。3.根據(jù)權(quán)利要求1所述的方法,其中,所述動作分值神經(jīng)網(wǎng)絡(luò)被配置為接收所述組合的表示和來自所述預(yù)定的動作集的動作作為輸入,并且處理所述組合的表示和所接收的動作以為所述動作生成分值,并且其中,使用所述動作分值神經(jīng)網(wǎng)絡(luò)來處理所述組合的表示包括對于所述預(yù)定的動作集中的每個動作: 使用所述動作分值神經(jīng)網(wǎng)絡(luò)來處理所述動作和所述組合的表示以為所述動作生成相應(yīng)的分值。4.根據(jù)權(quán)利要求1-3中的任一項所述的方法,其中,選擇所述要執(zhí)行的動作包括: 選擇得分最高的動作。5.根據(jù)權(quán)利要求1-3中的任一項所述的方法,其中,選擇所述要執(zhí)行的動作包括: 以概率£從所述動作集選擇隨機(jī)動作;以及 以概率1- ε選擇得分最高的動作。6.根據(jù)權(quán)利要求1-5中的任一項所述的方法,其中,所述觀察神經(jīng)網(wǎng)絡(luò)為多層感知(MLP)神經(jīng)網(wǎng)絡(luò)。7.根據(jù)權(quán)利要求6所述的方法,其中,所述目標(biāo)神經(jīng)網(wǎng)絡(luò)為多層感知(MLP)神經(jīng)網(wǎng)絡(luò)。8.根據(jù)權(quán)利要求1-7中的任一項所述的方法,其中,所述目標(biāo)神經(jīng)網(wǎng)絡(luò)和所述觀察神經(jīng)網(wǎng)絡(luò)共享一個或多個參數(shù)。9.根據(jù)權(quán)利要求1-8中的任一項所述的方法,其中,所述組合的表示為所述觀察的數(shù)字表示與所述目標(biāo)的數(shù)字表示的點積。10.根據(jù)權(quán)利要求1-8中的任一項所述的方法,其中,組合所述觀察的數(shù)字表示與所述目標(biāo)的數(shù)字表示以生成所述組合的表示包括: 使用組合神經(jīng)網(wǎng)絡(luò)處理所述觀察的數(shù)字表示和所述目標(biāo)的數(shù)字表示以生成所述組合的表示。11.根據(jù)權(quán)利要求1-10中的任一項所述的方法,進(jìn)一步包括: 訓(xùn)練所述動作分值神經(jīng)網(wǎng)絡(luò)、所述觀察神經(jīng)網(wǎng)絡(luò)和所述目標(biāo)神經(jīng)網(wǎng)絡(luò)。12.根據(jù)權(quán)利要求11所述的方法,其中,所述訓(xùn)練包括: 訓(xùn)練所述動作分值神經(jīng)網(wǎng)絡(luò)以確定理想化的目標(biāo)嵌入和理想化的觀察嵌入; 在所述理想化的觀察嵌入上訓(xùn)練所述觀察神經(jīng)網(wǎng)絡(luò);以及 在所述理想化的目標(biāo)嵌入上訓(xùn)練所述目標(biāo)神經(jīng)網(wǎng)絡(luò)。13.根據(jù)權(quán)利要求12所述的方法,其中,訓(xùn)練所述動作分值神經(jīng)網(wǎng)絡(luò)包括使用矩陣分解技術(shù)來確定所述理想化的目標(biāo)嵌入和理想化的觀察嵌入。14.根據(jù)權(quán)利要求12或13所述的方法,其中,通過為所述預(yù)定的目標(biāo)集中的每個目標(biāo)學(xué)習(xí)分離的動作分值神經(jīng)網(wǎng)絡(luò)來確定用于所述動作分值神經(jīng)網(wǎng)絡(luò)的訓(xùn)練的目標(biāo)。15.根據(jù)權(quán)利要求12或13所述的方法,其中,通過從為訓(xùn)練集中的每個目標(biāo)的受訪問轉(zhuǎn)換中的狀態(tài)引導(dǎo)指令來確定用于所述動作分值神經(jīng)網(wǎng)絡(luò)的訓(xùn)練的目標(biāo)。16.根據(jù)權(quán)利要求1-15中的任一項所述的方法,進(jìn)一步包括: 提供用于選擇目標(biāo)狀態(tài)的界面,使得所選擇的目標(biāo)用于選擇要執(zhí)行的動作直到通過所述界面切換所選擇的目標(biāo)為止。17.一種系統(tǒng),包括一個或多個計算機(jī)和一個或多個存儲設(shè)備,所述存儲設(shè)備存儲可操作的指令,所述指令在由所述一個或多個計算機(jī)執(zhí)行時使所述一個或多個計算機(jī)執(zhí)行根據(jù)權(quán)利要求1-16中的任一項所述的相應(yīng)方法的操作。18.—種編碼有指令的計算機(jī)存儲介質(zhì),所述指令在由一個或多個計算機(jī)執(zhí)行時使所述一個或多個計算機(jī)執(zhí)行根據(jù)權(quán)利要求1-16中的任一項所述的相應(yīng)方法的操作。
【文檔編號】G06N3/04GK106056213SQ201610328938
【公開日】2016年10月26日
【申請日】2016年4月6日
【發(fā)明人】湯姆·紹爾, 丹尼爾·喬治·霍根, 卡羅爾·格雷戈爾, 大衛(wèi)·西爾韋
【申請人】谷歌公司