一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

深度強化學(xué)習(xí)綜述(上)

 精誠至_金石開 2020-11-23

人工智能中的很多應(yīng)用問題需要算法在每個時刻做出決策并執(zhí)行動作。對于圍棋,每一步需要決定在棋盤的哪個位置放置棋子,以最大可能的戰(zhàn)勝對手;對于自動駕駛算法,需要根據(jù)路況來確定當(dāng)前的行駛策略以保證安全的行駛到目的地;對于機械手,要驅(qū)動手臂運動以抓取到設(shè)定的目標物體。這類問題有一個共同的特點:要根據(jù)當(dāng)前的條件作出決策和動作,以達到某一預(yù)期目標。解決這類問題的機器學(xué)習(xí)算法稱為強化學(xué)習(xí)(reinforcement learning,RL)。雖然傳統(tǒng)的強化學(xué)習(xí)理論在過去幾十年中得到了不斷的完善,但還是難以解決現(xiàn)實世界中的復(fù)雜問題。

深度強化學(xué)習(xí)(DRL,deep reinforcement learning)是深度學(xué)習(xí)與強化學(xué)習(xí)相結(jié)合的產(chǎn)物,它集成了深度學(xué)習(xí)在視覺等感知問題上強大的理解能力,以及強化學(xué)習(xí)的決策能力,實現(xiàn)了端到端學(xué)習(xí)。深度強化學(xué)習(xí)的出現(xiàn)使得強化學(xué)習(xí)技術(shù)真正走向?qū)嵱茫靡越鉀Q現(xiàn)實場景中的復(fù)雜問題。從2013年DQN(深度Q網(wǎng)絡(luò),deep Q network)出現(xiàn)到目前為止,深度強化學(xué)習(xí)領(lǐng)域出現(xiàn)了大量的算法,以及解決實際應(yīng)用問題的論文。在這篇文章中,SIGAI將對深度強化學(xué)習(xí)的算法與應(yīng)用進行總結(jié)。整個綜述分為上下兩篇,本篇介紹強化學(xué)習(xí)的基本原理,深度強化學(xué)習(xí)的基本思想,以及基于價值函數(shù)的深度強化學(xué)習(xí)算法。下篇介紹基于策略的深度強化學(xué)習(xí)算法,基于搜索與監(jiān)督的深度強化學(xué)習(xí)算法,以及深度強化學(xué)習(xí)算法的應(yīng)用情況與未來的方向。

什么是強化學(xué)習(xí)

強化學(xué)習(xí)[1]是一類特殊的機器學(xué)習(xí)算法,借鑒于行為主義心理學(xué)。與有監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí)的目標不同,算法要解決的問題是智能體(agent,即運行強化學(xué)習(xí)算法的實體)在環(huán)境中怎樣執(zhí)行動作以獲得最大的累計獎勵。例如,對于自動行駛的汽車,強化學(xué)習(xí)算法控制汽車的動作,保證安全行駛到目的地。對于圍棋算法,算法要根據(jù)當(dāng)前的棋局來決定如何走子,以贏得這局棋。對于第一個問題,環(huán)境是車輛當(dāng)前行駛狀態(tài)(如速度)、路況這樣的參數(shù)構(gòu)成的系統(tǒng)的抽象,獎勵是我們期望得到的結(jié)果,即汽車正確的在路面上行駛,到達目的地而不發(fā)生事故。

很多控制、決策問題都可以抽象成這種模型。和有監(jiān)督學(xué)習(xí)類似,強化學(xué)習(xí)也有訓(xùn)練過程,需要不斷的執(zhí)行動作,觀察執(zhí)行動作后的效果,積累經(jīng)驗形成一個模型。與有監(jiān)督學(xué)習(xí)不同的是,這里每個動作一般沒有直接標定的標簽值作為監(jiān)督信號,系統(tǒng)只給算法執(zhí)行的動作一個反饋,這種反饋一般具有延遲性,當(dāng)前的動作所產(chǎn)生的后果在未來才會完全體現(xiàn),另外未來還具有隨機性,例如下一個時刻路面上有哪些行人、車輛在運動,算法下一個棋子之后對手會怎么下,都是隨機的而不是確定的。當(dāng)前下的棋產(chǎn)生的效果,在一局棋結(jié)束時才能體現(xiàn)出來。

強化學(xué)習(xí)應(yīng)用廣泛,被認為是通向強人工智能/通用人工智能的核心技術(shù)之一。所有需要做決策和控制的地方,都有它的身影。典型的包括游戲與博弈,如打星際爭霸、Atari游戲:

算法需要根據(jù)當(dāng)前的游戲畫面和狀態(tài)決定其要執(zhí)行的動作,如按游戲的鍵盤、手柄,鼠標。

圍棋,象棋等棋類游戲:

算法需要根據(jù)當(dāng)前的棋局決定當(dāng)前該怎么走子。

自動駕駛系統(tǒng)/無人車:

算法需要根據(jù)當(dāng)前的路況,無人車自身的狀態(tài)(如速度、加速度)決定其行駛的行為,如控制方向盤,油門,剎車等。

機器人控制:

機器人要根據(jù)當(dāng)前所處的環(huán)境,自身的狀態(tài),決定其要執(zhí)行的動作。

所有這些問題總計起來都有一個特點,即智能體需要觀察環(huán)境和自身的狀態(tài),然后決定要執(zhí)行的動作,以達到想要的目標:

智能體是強化學(xué)習(xí)的動作實體。對于自動駕駛的汽車,環(huán)境是當(dāng)前的路況;對于圍棋,狀態(tài)是當(dāng)前的棋局。在每個時刻,智能體和環(huán)境有自己的狀態(tài),如汽車當(dāng)前位置和速度,路面上的車輛和行人情況。智能體根據(jù)當(dāng)前狀態(tài)確定一個動作,并執(zhí)行該動作。之后它和環(huán)境進入下一個狀態(tài),同時系統(tǒng)給它一個反饋值,對動作進行獎勵或懲罰,以迫使智能體執(zhí)行期望的動作。

強化學(xué)習(xí)是解決這種決策問題的一類方法。算法要通過樣本學(xué)習(xí)得到一個映射函數(shù),稱為策略函數(shù),其輸入是當(dāng)前時刻環(huán)境信息,輸出是要執(zhí)行的動作:

其中s為狀態(tài),a為要執(zhí)行的動作,狀態(tài)和動作分別來自狀態(tài)集合和動作集合。動作和狀態(tài)可以是離散的,如左轉(zhuǎn)30度、右轉(zhuǎn)30度,也可以是連續(xù)的實數(shù),如左轉(zhuǎn)30度、右轉(zhuǎn)30度。對于前者,動作和狀態(tài)集合是有限集,對于后者,是無限集。執(zhí)行動作的目標是要達到某種目的,如無人汽車安全的行駛,贏得本次圍棋比賽,用回報函數(shù)對此進行建模。

馬爾可夫決策過程

強化學(xué)習(xí)要解決的問題可以抽象成馬爾可夫決策過程(Markov Decision Process,簡稱MDP)。馬爾可夫過程的特點是系統(tǒng)下一個時刻的狀態(tài)由當(dāng)前時刻的狀態(tài)決定,與更早的時刻無關(guān)。與馬爾可夫過程不同的是,在MDP中系智能體可以執(zhí)行動作,從而改變自己和環(huán)境的狀態(tài),并且得到懲罰或獎勵。馬爾可夫決策過程可以表示成一個五元組:

其中S和A分別為狀態(tài)和動作的集合。假設(shè)t時刻狀態(tài)為st,智能體執(zhí)行動作a,下一時刻進入狀態(tài)st+1。這種狀態(tài)轉(zhuǎn)移與馬爾可夫模型類,不同的是下一時刻的狀態(tài)由當(dāng)前狀態(tài)以及當(dāng)前采取的動作決定,是一個隨機性變量,這一狀態(tài)轉(zhuǎn)移的概率為:

這是當(dāng)前狀態(tài)為s時行動作a,下一時刻進入狀態(tài)s'的條件概率。下一時刻的狀態(tài)與更早時刻的狀態(tài)和動作無關(guān),狀態(tài)轉(zhuǎn)換具有馬爾可夫性。有一種特殊的狀態(tài)稱為終止狀態(tài)(也稱為吸收狀態(tài)),到達該狀態(tài)之后不會再進入其他后續(xù)狀態(tài)。對于圍棋,終止狀態(tài)是一局的結(jié)束。

執(zhí)行動作之后,智能體會收到一個立即回報:

立即回報與當(dāng)前狀態(tài)、當(dāng)前采取的動作以及下一時刻的狀態(tài)有關(guān)。在每個時刻t,智能體選擇一個動作at執(zhí)行,之后進入下一狀態(tài)st+1,環(huán)境給出回報值。智能體從某一初始狀態(tài)開始,每個時刻選擇一個動作執(zhí)行,然后進入下一個狀態(tài),得到一個回報,如此反復(fù):

問題的核心是執(zhí)行動作的策略,它可以抽象成一個函數(shù)π,定義了在每種狀態(tài)時要選擇執(zhí)行的動作。這個函數(shù)定義了在狀態(tài)s所選擇的動作為:

這是確定性策略。對于確定性策略,在每種狀態(tài)下智能體要執(zhí)行的動作是唯一的。另外還有隨機性策略,智能體在一種狀態(tài)下可以執(zhí)行的動作有多種,策略函數(shù)給出的是執(zhí)行每種動作的概率:

即按概率從各種動作中隨機選擇一種執(zhí)行。策略只與當(dāng)前所處的狀態(tài)有關(guān),與時間點無關(guān),在不同時刻對于同一個狀態(tài)所執(zhí)行的策略是相同的。

強化學(xué)習(xí)的目標是要達到某種預(yù)期,當(dāng)前執(zhí)行動作的結(jié)果會影響系統(tǒng)后續(xù)的狀態(tài),因此需要確定動作在未來是否能夠得到好的回報,這種回報具有延遲性。對于圍棋,當(dāng)前走的一步棋一般不會馬上結(jié)束,但會影響后續(xù)的棋局,需要使得未來贏的概率最大化,而未來又具有隨機性,這為確定一個正確的決策帶來了困難。

選擇策略的目標是按照這個策略執(zhí)行后,在各個時刻的累計回報值最大化,即未來的預(yù)期回報最大。按照某一策略執(zhí)行的累計回報定義為:

這里使用了帶衰減系數(shù)的回報和。按照策略π,智能體在每個時刻t執(zhí)行的動作為:

其中γ稱為折扣因子,是[0, 1]之間的一個數(shù)。在每個時刻t執(zhí)行完動作at得到的回報為:

使用折扣因子是因為未來具有更大的不確定性,所以回報值要隨著時間衰減。另外如果不加上這種按照時間的指數(shù)級衰減會導(dǎo)致整個求和項趨向于無窮大。這里假設(shè)狀態(tài)轉(zhuǎn)移概率以及每個時刻的回報是已知的,算法要尋找最佳策略來最大化上面的累計回報。

如果每次執(zhí)行一個動作進入的下一個狀態(tài)是確定的,則可以直接用上面的累計回報計算公式。如果執(zhí)行完動作后進入的下一個狀態(tài)是隨機的,則需要計算各種情況的數(shù)學(xué)期望。類似于有監(jiān)督學(xué)習(xí)中需要定義損失函數(shù)來評價預(yù)測函數(shù)的優(yōu)劣,在強化學(xué)習(xí)中也需要對策略函數(shù)的優(yōu)劣進行評價。為此定義狀態(tài)價值函數(shù)的概念,它是在某個狀態(tài)s下,按照策略π執(zhí)行動作,累計回報的數(shù)學(xué)期望,衡量的是按照某一策略執(zhí)行之后的累計回報。狀態(tài)價值函數(shù)的計算公式為:

這是一個遞歸的定義,函數(shù)的自變量是狀態(tài)與策略函數(shù),將它們映射成一個實數(shù),每個狀態(tài)的價值函數(shù)依賴于從該狀態(tài)執(zhí)行動作后能到達的后續(xù)狀態(tài)的價值函數(shù)。在狀態(tài)s時執(zhí)行動作π(s),下一時刻的狀態(tài)s'是不確定的,進入每個狀態(tài)的概率為pπ(s)(s,s'),當(dāng)前獲得的回報是Rπ(s)(s,s'),因此需要對下一時刻所有狀態(tài)計算數(shù)學(xué)期望即概率意義上的均值,而總的回報包括當(dāng)前的回報,以及后續(xù)時刻的回報值之和即(s')。在這里R(s)表示當(dāng)前時刻獲得的回報。如果是非確定性策略,還要考慮所有的動作,這種情況的狀態(tài)價值函數(shù)計算公式為:

對于終止狀態(tài),無論使用什么策略函數(shù),其狀態(tài)價值函數(shù)為0。類似的可以定義動作價值函數(shù)。它是智能體按照策略π執(zhí)行,在狀態(tài)s時執(zhí)行具體的動作a后的預(yù)期回報,計算公式為:

動作價值函數(shù)除了指定初始狀態(tài)s與策略π之外,還指定了在當(dāng)前的狀態(tài)s時執(zhí)行的動作a。這個函數(shù)衡量的是按照某一策略,在某一狀態(tài)時執(zhí)行各種動作的價值。這個值等于在當(dāng)前狀態(tài)s下執(zhí)行一個動作后的立即回報Ra(s,s'),以及在下一個狀態(tài)s'時按照策略π執(zhí)行所得到的狀態(tài)價值函數(shù)(s')之和,此時也要對狀態(tài)轉(zhuǎn)移pa(s,s')概率求數(shù)學(xué)期望。狀態(tài)價值函數(shù)和動作值函數(shù)的計算公式稱為貝爾曼方程,它們是馬爾可夫決策過程的核心。

因為算法要尋找最優(yōu)策略,因此需要定義最優(yōu)策略的概念。因為狀態(tài)價值函數(shù)定義了策略的優(yōu)劣,因此我們可以根據(jù)此函數(shù)值對策略的優(yōu)劣進行排序。對于兩個不同的策略ππ',如果對于任意狀態(tài)s都有:

則稱策略π優(yōu)于策略π'。對于任意有限狀態(tài)和動作的馬爾可夫決策過程,都至少存在一個最優(yōu)策略,它優(yōu)于其他任何不同的策略。

一個重要結(jié)論是,所有的最優(yōu)策略有相同的狀態(tài)價值函數(shù)和動作價值函數(shù)值。最優(yōu)動作價值函數(shù)定義為:

對于狀態(tài)-動作對(s,a),最優(yōu)動作價值函數(shù)給出了在狀態(tài)s時執(zhí)行動作a,后續(xù)狀態(tài)時按照最優(yōu)策略執(zhí)行時的預(yù)期回報。找到了最優(yōu)動作價值函數(shù),根據(jù)它可以得到最優(yōu)策略,具體做法是在每個狀態(tài)時執(zhí)行動作價值函數(shù)值最大的那個動作:

因此可以通過尋找最優(yōu)動作價值函數(shù)而得到最優(yōu)策略函數(shù)。如果只使用狀態(tài)價值函數(shù),雖然能找到其極值,但不并知道此時所采用的策略函數(shù)。

最優(yōu)狀態(tài)價值函數(shù)和最優(yōu)動作價值函數(shù)都滿足貝爾曼最優(yōu)性方程。對于狀態(tài)價值函數(shù),有:

上式的意義是對任何一個狀態(tài)s,要保證一個策略π能讓狀態(tài)價值函數(shù)取得最大值,則需要本次執(zhí)行的動作a所帶來的回報與下一狀態(tài)s'的最優(yōu)狀態(tài)價值函數(shù)值之和是最優(yōu)的。對于動作價值函數(shù),類似的有:

其意義是要保證一個策略使得動作價值函數(shù)是最優(yōu)的,則需要保證在執(zhí)行完本動a之后,在下一個狀態(tài)s'所執(zhí)行的動作a'是最優(yōu)的。對于任意有限狀態(tài)和動作的馬爾可夫決策過程,貝爾曼最優(yōu)方程有唯一解,且與具體的策略無關(guān)??梢詫⒇悹柭顑?yōu)性方程看成一個方程組,每個狀態(tài)有一個方程,未知數(shù)的數(shù)量也等于狀態(tài)的數(shù)量。

時序差分算法

如果能知道所有狀態(tài)的狀態(tài)轉(zhuǎn)移概率,以及回報值,則理論上可以用動態(tài)規(guī)劃算法求解,這是一種迭代法,從一個隨機設(shè)定的初始值開始,用某種規(guī)則進行迭代,直到收斂到狀態(tài)價值函數(shù)或者動作價值函數(shù)的極大值。迭代的規(guī)則一般是貝爾曼方程或貝爾曼最優(yōu)性方程。

但在很多實際應(yīng)用中,我們無法得到所有狀態(tài)的轉(zhuǎn)移概率,例如自動駕駛、圍棋,此時無法使用動態(tài)規(guī)劃算法求解,只能采用隨機算法,其核心思想是:從一個初始的隨機策略開始隨機的執(zhí)行一些動作,然后觀察回報和狀態(tài)轉(zhuǎn)移,以此估計價值函數(shù)的值,或者更新價值函數(shù)的值。形象的說,就是加大效果的動作的執(zhí)行力度,減小效果不好的動作的執(zhí)行力度。蒙特卡洛算法和時序差分算法是典型的代表,在這里我們重點介紹時序差分算法的一種實現(xiàn)-Q學(xué)習(xí)。

時序差分算法(Temporal Difference learning,簡稱TD學(xué)習(xí))[2]在執(zhí)行一個動作之后進行動作價值函數(shù)更新。TD算法無需依賴狀態(tài)轉(zhuǎn)移概率,直接通過生成隨機的樣本來計算。TD算法用貝爾曼方程估計價值函數(shù)的值,然后構(gòu)造更新項。其典型實現(xiàn)有SARSA算法和Q學(xué)習(xí)算法。

Q學(xué)習(xí)算法[3]是時序差分算法的一種,它估計每個動作價值函數(shù)的最大值,通過迭代可以直接找到Q函數(shù)的極值,從而確定最優(yōu)策略。Q學(xué)習(xí)訓(xùn)練算法的流程如下:

初始化,將所有非終止狀態(tài)的Q(s, a)初始化為任意值,終止狀態(tài)的初始化為0

實現(xiàn)時需要根據(jù)當(dāng)前的動作價值函數(shù)的估計值為每個狀態(tài)選擇一個動作來執(zhí)行,有3種方案。第1種是隨機選擇一個動作,稱為探索(exploration)。第2種是根據(jù)當(dāng)前的動作函數(shù)值選擇一個價值最大的動作執(zhí)行:

稱為利用(exploitation)。第3種是前兩者的結(jié)合,即ε-貪心策略。執(zhí)行完動作之后,進入狀態(tài)s',然后尋找狀態(tài)s'下所有動作的價值函數(shù)的極大值,構(gòu)造更新項。算法最終會收斂到動作價值函數(shù)的最優(yōu)值。

用于預(yù)測時,在每個狀態(tài)下選擇函數(shù)值最大的動作執(zhí)行,這就是最優(yōu)策略,具體實現(xiàn)時同樣可以采用ε-貪心策略。

具體實現(xiàn)時,將所有狀態(tài)、動作的Q(s, a)存儲在一個二維表格中,先初始化,然后通過此表格來確定一些動作執(zhí)行,然后更新表格的值,直到收斂。

深度強化學(xué)習(xí)的早期探索

前面介紹的Q學(xué)習(xí)都只能用于狀態(tài)和動作的集合是有限的離散基且狀態(tài)和動作數(shù)量較少的情況,狀態(tài)和動作需要人工預(yù)先設(shè)計,Q函數(shù)值需要存儲在一個二維表格中。實際應(yīng)用中的場景可能會很復(fù)雜,很難定義出離散的狀態(tài);即使能夠定義,數(shù)量也非常大,無法用數(shù)組存儲。

對于強化學(xué)習(xí)來說,很多實際應(yīng)用問題的輸入數(shù)據(jù)是高維的,如圖像,聲音,算法要根據(jù)它們來選擇一個動作執(zhí)行以達到某一預(yù)期的目標。比如,對于自動駕駛算法,要根據(jù)當(dāng)前的畫面決定汽車的行駛方向和速度。經(jīng)典的強化學(xué)習(xí)算法如Q學(xué)習(xí)需要列舉出所有可能的情況(稱為狀態(tài),這是對當(dāng)前所處環(huán)境的抽象),然后進行迭代。Q學(xué)習(xí)的經(jīng)典實現(xiàn)是列舉出所有的狀態(tài)和動作,構(gòu)建Q函數(shù)表,這是一個二維的表,然后迭代計算各種狀態(tài)下執(zhí)行各種動作的預(yù)期回報的最大值。對于高維的輸入數(shù)據(jù),顯然是不現(xiàn)實的,因為如果直接以原始數(shù)據(jù)作為狀態(tài),維數(shù)太高,而且狀態(tài)數(shù)量太多。

一種解決方案是從高維數(shù)據(jù)中抽象出特征,作為狀態(tài),然后用強化學(xué)習(xí)建模,但這種做法很大程度上依賴于人工特征的設(shè)計。如從畫面中提取出目標的位置、速度等信息,也非常困難,這也是一個難題。

用一個函數(shù)來逼近價值函數(shù)或策略函數(shù)成為解決這個問題的一種思路,函數(shù)的輸入是原始的狀態(tài)數(shù)據(jù),函數(shù)的輸出是價值函數(shù)值或策略函數(shù)值。

在有監(jiān)督學(xué)習(xí)中,我們用神經(jīng)網(wǎng)絡(luò)來擬合分類或回歸函數(shù),同樣的,也可以用神經(jīng)網(wǎng)絡(luò)可來擬合強化學(xué)習(xí)中的價值函數(shù)和策略函數(shù),這就是深度強化學(xué)習(xí)的基本思想。

將神經(jīng)網(wǎng)絡(luò)與強化學(xué)習(xí)進行結(jié)合并不是一個新的想法,早在1995年就有人進行了這一的嘗試。首先是TD-gammon算法[4],這是一種用強化學(xué)習(xí)玩西洋雙陸棋的方法,取得了比人類選手更好的成績。這種方法采用了與Q學(xué)習(xí)類似的策略,用多層感知器模型來逼近狀態(tài)價值函數(shù)(V函數(shù)而不是Q函數(shù))。

對這個算法感興趣的話,可以閱讀文獻[4]。然而,后來將這種算法用于國際象棋,圍棋,西洋跳棋時,效果卻非常差。這使得人們認為TD-gammon算法只是一個特例,而不具有通用性。

后面的分析表明,將Q學(xué)習(xí)這樣的無模型強化學(xué)習(xí)算法(即不知道環(huán)境的狀態(tài)轉(zhuǎn)移概率,以及回報函數(shù))與非線性價值函數(shù)逼近結(jié)合使用時會導(dǎo)致Q網(wǎng)絡(luò)不收斂。即在訓(xùn)練時Q網(wǎng)絡(luò)無法收斂到Q函數(shù)的極大值。相比之下,用線性函數(shù)來逼近價值函數(shù),會有更好的收斂性。對于收斂性問題,文獻[5]有詳細的分析與證明。

深度學(xué)習(xí)出現(xiàn)之后,將深度神經(jīng)網(wǎng)絡(luò)用于強化學(xué)習(xí)是一個很自然的想法。深度神經(jīng)網(wǎng)絡(luò)能夠?qū)崿F(xiàn)端到端的學(xué)習(xí),直接從圖像,聲音等高維數(shù)據(jù)中學(xué)習(xí)得到有用的特征,這比人工設(shè)計的特征更為強大和通用。

在文獻[6]中,受限玻爾茲曼機被用于表示價值函數(shù),在文獻[7]中,被用于表示策略函數(shù)。神經(jīng)網(wǎng)絡(luò)用于Q學(xué)習(xí)時不收斂的問題被gradient temporal-difference算法部分解決。用非線性函數(shù)來學(xué)習(xí)一個固定的策略時,這些方法的收斂性是可以得到保證的,感興趣的可以閱讀文獻[]。用線性函數(shù)來近似價值函數(shù),采用Q學(xué)習(xí)訓(xùn)練,收斂性也可以得到保證,文獻[]對此有詳細的分析與論證。

文獻[8]提出了neural fitted Q-learning (NFQ)。這種方法優(yōu)化方程上面定義的目標函數(shù),采用 RPROP算法更新Q網(wǎng)絡(luò)的參數(shù)。需要強調(diào)的是,它采用了批量梯度下降法進行更新迭代,即每次進行梯度下降法迭代時使用了所有訓(xùn)練樣本,因此單次迭代的計算量太大。這種方法需要反復(fù)的對神經(jīng)網(wǎng)絡(luò)進行從頭開始的上百次的迭代,因此不適合訓(xùn)練大規(guī)模的神經(jīng)網(wǎng)絡(luò),因為效率太低。

NFQ也被用于現(xiàn)實世界中的控制任務(wù)[9]。以自動編碼器作為提取特征的網(wǎng)絡(luò),直接接收視覺輸入信號,然后將NFQ算法作用于提取出的特征表示。文獻[10]將Q學(xué)習(xí)與經(jīng)驗回放機制進行整合,采用簡單的神經(jīng)作為逼近器。這里還是用低維的狀態(tài)向量作為神經(jīng)網(wǎng)絡(luò)的輸入,而不是高維的圖像等原始數(shù)據(jù)。

深度學(xué)習(xí)取得了成功,在計算機視覺,語音識別領(lǐng)域,深度神經(jīng)網(wǎng)絡(luò)可以直接從場景數(shù)據(jù)如圖像、聲音中提取出高層特征,實現(xiàn)端到端的學(xué)習(xí),而無需再人工設(shè)計特征。一個很自然的想法是能否用深度學(xué)習(xí)來為強化學(xué)習(xí)的輸入原始數(shù)據(jù)進行建模。如果用神經(jīng)王來近似Q函數(shù),則網(wǎng)絡(luò)的輸入值為狀態(tài)數(shù)據(jù),如原始的游戲畫面,輸出值為在當(dāng)前狀態(tài)下執(zhí)行各種動作所得到的最大預(yù)期回報。訓(xùn)練樣本為狀態(tài),目標Q函數(shù)值對。但是將深度學(xué)習(xí)用于強化學(xué)習(xí)將面臨幾個挑戰(zhàn):

首先,深度學(xué)習(xí)需要大量的有標簽的訓(xùn)練樣本,而在強化學(xué)習(xí)中,算法要根據(jù)標量回報值進行學(xué)習(xí),這個回報值往往是稀疏的,即不是執(zhí)行每個動作都立刻能得到回報。例如對于打乒乓球這樣的游戲,只有當(dāng)自己或者對手失球時得分才會變化,此時才有回報,其他時刻沒有回報?;貓笾祹в性肼?,另外還具有延遲,當(dāng)前時刻的動作所得到的回報在未來才能得到體現(xiàn)。例如,在下棋時,當(dāng)前所走的一步的結(jié)果會延遲一段時間后才能得到體現(xiàn)。

第2個問題是有監(jiān)督學(xué)習(xí)一般要求訓(xùn)練樣本之間是相互獨立的,在強化學(xué)習(xí)中,經(jīng)常遇到的是前后高度相關(guān)的狀態(tài)序列。在某個狀態(tài)下執(zhí)行一個動作之后進入下一個狀態(tài),前后兩個狀態(tài)之間存在著明顯的概率關(guān)系,不是獨立的。

第3個問題是在強化學(xué)習(xí)中,隨著學(xué)習(xí)到新的動作,樣本數(shù)據(jù)的概率分布會發(fā)生變化,而在深度學(xué)習(xí)中,要求訓(xùn)練樣本的概率分布是固定的。

基于價值函數(shù)的算法

基于價值函數(shù)的深度強化學(xué)習(xí)的典型代表是DQN(深度Q網(wǎng)絡(luò)),由DeepMind公司在2013年提出,2015年其改進型發(fā)表在Nature上。這種方法用卷積神經(jīng)網(wǎng)絡(luò)擬合價值函數(shù),一般是Q函數(shù)。網(wǎng)絡(luò)的輸入為原始場景數(shù)據(jù),如游戲的畫面圖像,輸出為在這種場景下執(zhí)行各種動作時所能得到的Q函數(shù)的極大值。

文獻[11]第一次提出了DQN算法,是深度強化學(xué)習(xí)真正意義上的開山之作。這篇文章用Atari游戲?qū)λ惴ㄟM行了測試。算法用深度卷積神經(jīng)網(wǎng)絡(luò)來擬合Q函數(shù),這個網(wǎng)絡(luò)稱為Q網(wǎng)絡(luò)。網(wǎng)絡(luò)的輸入為經(jīng)過處理后的游戲畫面(最近4幀游戲畫面),輸出為在這種狀態(tài)下執(zhí)行各種動作的Q函數(shù)值。網(wǎng)絡(luò)結(jié)構(gòu)如下圖所示:

損失函數(shù)用神經(jīng)網(wǎng)絡(luò)的輸出值與Q學(xué)習(xí)每次迭代時的更新值構(gòu)造,是神經(jīng)網(wǎng)絡(luò)的輸出值與Q函數(shù)估計值之間的誤差,與Q學(xué)習(xí)中的更新項相同:

和Q學(xué)習(xí)類似,可以通過執(zhí)行動作來生成樣本。實現(xiàn)時,給定一個狀態(tài),用當(dāng)前的神經(jīng)網(wǎng)絡(luò)進行預(yù)測,得到所有動作的Q函數(shù),然后按照策略選擇一個動作執(zhí)行,得到下一個狀態(tài)以及回報值,以此構(gòu)造訓(xùn)練樣本。

確定網(wǎng)絡(luò)結(jié)構(gòu)和損失函數(shù)之后,剩下的就是神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,與普通的有監(jiān)督學(xué)習(xí)不同,這里的訓(xùn)練樣本是通過不停的執(zhí)行動作而動態(tài)生成的。為了解決訓(xùn)練樣本之間存在相關(guān)性,以及樣本的概率分布不固定的問題,采用了經(jīng)驗回放機制,具體做法是,先把執(zhí)行動作構(gòu)造的訓(xùn)練樣本存儲到一個大的集合中,在訓(xùn)練Q網(wǎng)絡(luò)時每次從這個集合中隨機抽取出部分樣本作為訓(xùn)練樣本,以此打破樣本之間的相關(guān)性。

訓(xùn)練算法的流程如下:

一旦訓(xùn)練出了神經(jīng)網(wǎng)絡(luò),便可以得到任何畫面下要執(zhí)行的動作,這通過使用Q函數(shù)值和貪心策略來實現(xiàn),從而完成游戲的控制。

實驗結(jié)果證明了DQN的收斂性,作者對此也進行了細致的分析。文章分析了游戲片段的平均回報值,隨著迭代的進行,回報會升高,雖然有震蕩。另外還分析了動作價值函數(shù)值,即Q函數(shù)的均值。同樣的,隨著迭代的進行會升高,雖然會震蕩。

另外還在實驗中比較了DQN與其他各種算法,以及人類選手的性能。參加比較的算法有SARSA算法,采用人工設(shè)計的特征。Contingency算法,采用和SARSA相同的方法,但是通過學(xué)習(xí)部分屏幕的表達增強了特征,特征提取采用圖像處理方法如背景減除。人類的得分是人類玩兩小時的結(jié)果。在絕大部分游戲上,DQN超過了之前最好的算法,在部分游戲上,甚至超過了人類玩家的水平。

DQN實現(xiàn)了端到端學(xué)習(xí),無需人工提取狀態(tài)和特征,整合了深度學(xué)習(xí)與強化學(xué)習(xí),深度學(xué)習(xí)用于感知任務(wù)??梢越鉀Q復(fù)雜環(huán)境下的決策問題。方法具有通用性,可以用于各種不同的問題。

DQN在隨機嘗試執(zhí)行動作,生成訓(xùn)練樣本的過程中,需要用當(dāng)前的Q網(wǎng)絡(luò)來計算訓(xùn)練樣本的標簽值,這存在著自身依賴:

即Q值與Q學(xué)習(xí)的目標值r+γmaxa'Q(s',a')之間的相關(guān)性。為了解決此問題,文獻[12]對DQN進行了改進。它提出的算法和2013年DQN主要的不同是計算目標值是使用了另外一個Q網(wǎng)絡(luò),兩個網(wǎng)絡(luò)周期性的進行同步。

Q學(xué)習(xí)在第i次迭代時的損失函數(shù)為:

其中γ為折扣因子,θi為Q網(wǎng)絡(luò)在第次迭代時的參數(shù)值,為第第次迭代時用于計算目標值的Q網(wǎng)絡(luò)的參數(shù)值,這個神經(jīng)網(wǎng)絡(luò)稱為目標網(wǎng)絡(luò)。目標網(wǎng)絡(luò)與當(dāng)前的Q網(wǎng)絡(luò)分離開來,這是與2013年DQN最大的區(qū)別,當(dāng)前Q網(wǎng)絡(luò)的值在訓(xùn)練時每次都迭代更新,而目標網(wǎng)絡(luò)則周期性的從當(dāng)前Q網(wǎng)絡(luò)同步過來,每多次迭代執(zhí)行一次拷貝。系統(tǒng)結(jié)構(gòu)如下圖所示:

除了分析訓(xùn)練算法的收斂性、與其他算法以及人類進行比較之外,文獻[12]還對DQN學(xué)習(xí)到的表達進行了分析,正是由它支撐了算法在游戲環(huán)境中的成功表現(xiàn)。這通過使用一種對高維數(shù)據(jù)進行可視化的方法-t-SNE而實現(xiàn)。t-SNE可以將感知上相似的狀態(tài)通過DQN學(xué)習(xí)到的表達映射為相鄰的點。作者發(fā)現(xiàn),對于有些畫面,t-SNE對DQN學(xué)習(xí)得到的表示的投影結(jié)果非常相近,這些游戲畫面不相似,但Q函數(shù)值很相似,這意味著在這些畫面下要采用類似的動作。這與我們的觀點一致,神經(jīng)網(wǎng)絡(luò)可以從場景數(shù)據(jù)中學(xué)習(xí)得到支撐自適應(yīng)行為的表示,即不同的場景下可能會使用相同的行為。
雖然DQN取得了成功,但還有很大的優(yōu)化空間,此后DQN出現(xiàn)了大量改進型算法,這些改進包括系統(tǒng)整體結(jié)構(gòu)、訓(xùn)練樣本的構(gòu)造、神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)等方面。

文獻[13]提出了Double DQN(DDQN)算法。DDQN中有兩組不同的參數(shù),和θ和θ-。θ用于選擇對應(yīng)最大Q值的動作,θ-用于評估最優(yōu)動作的Q值。這兩組參數(shù)將動作選擇和策略評估分離,降低了過高估計Q值的風(fēng)險。DDQN 使用當(dāng)前值網(wǎng)絡(luò)的參數(shù)θ選擇最優(yōu)動作,用目標值網(wǎng)絡(luò)的參數(shù)θ-評估該最優(yōu)動作。實驗結(jié)果證明,DDQN能更準確的估計Q函數(shù)值,使得訓(xùn)練算法和訓(xùn)練得到的策略更為穩(wěn)定。

文獻[14]提出了基于優(yōu)先級采樣的DQN,是對經(jīng)驗回放機制的改進。在之前的DQN中,經(jīng)驗回放通過經(jīng)驗池中的樣本等概率隨機抽樣來獲得每次迭代時的訓(xùn)練樣本。顯然,這沒有利用每個樣本的重要性。文獻[14]的方法為經(jīng)驗池中的每個樣本計算優(yōu)先級,增大有價值的訓(xùn)練樣本在采樣時的概率。樣本的優(yōu)先級用時序差分算法的誤差項進行構(gòu)造,計算公式為:

這個值的絕對值越大,樣本在采樣時的概率越大。實驗結(jié)果證明這種算法有更快的訓(xùn)練速度,并且在運行時有更好的效果。

文獻[15]提出了基于競爭架構(gòu)的 DQN。其主要改進是將CNN卷積層之后的全連接層替換為兩個分支,其中一個分支擬合狀態(tài)價值函數(shù),另外一個分支擬合動作優(yōu)勢函數(shù)。最后將兩個分支的輸出值相加,形成Q函數(shù)值。實驗表明,這種改進能夠更準確的估計價值函數(shù)值。

DQN中的深度神經(jīng)網(wǎng)絡(luò)是卷積神經(jīng)網(wǎng)絡(luò),不具有長時間的記憶能力。為此,文獻[16]提出了一種整合了循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的DQN算法(DRQN)。這種方法在CNN的卷積層之后加入了循環(huán)層(LSTM單元),能夠記住之前的信息。

參考文獻

[1] Sutton, R. & Barto, A. Reinforcement Learning: An Introduction (MIT Press, 1998).

[2] Richard Sutton. Learning to predict by the methods of temporal differences. Machine Learning. 3 (1): 9-44.1988.

[3] Christopher JCH Watkins and Peter Dayan. Q-learning. Machine learning, 8(3-4):279–292, 1992.

[4] Gerald Tesauro. Temporal difference learning and td-gammon. Communications of the ACM,

38(3):58–68, 1995.

[5] Tsitsiklis J N, Van R B. An analysis of temporal-difference learning with function approximation. IEEE Transactions on Automatic Control, 1997, 42(5): 674-690

[6] Brian Sallans and Geoffrey E. Hinton. Reinforcement learning with factored states and actions.

Journal of Machine Learning Research, 5:1063–1088, 2004.

[7] Nicolas Heess, David Silver, and Yee Whye Teh. Actor-critic reinforcement learning with

energy-based policies. In European Workshop on Reinforcement Learning, page 43, 2012.

[8] Riedmiller M. Neural fitted q iteration-first experiences with a data efficient neural reinforcement learning method. Proceedings of the Conference on Machine Learning. Berlin, German, 2005: 317-328

[9] Sascha Lange and Martin Riedmiller. Deep auto-encoder neural networks in reinforcement

learning. In Neural Networks (IJCNN), The 2010 International Joint Conference on, pages

1–8. IEEE, 2010.

[10] Long-Ji Lin. Reinforcement learning for robots using neural networks. Technical report, DTIC

Document, 1993.

[11] Volodymyr Mnih, Koray Kavukcuoglu, David Silver, Alex Graves, Ioannis Antonoglou. Playing Atari with Deep Reinforcement Learning. NIPS 2013.

[12] Mnih, Volodymyr, et al. Human-level control through deep reinforcement learning. Nature. 518 (7540): 529-533, 2015.

[13] Van H V, Guez A, Silver D. Deep reinforcement learning with double q-learning. Proceedings of the AAAI Conference on Artificial Intelligence. Phoenix, USA, 2016: 2094-2100.

[14] Schaul T, Quan J, Antonoglou I, Silver D. Prioritized experience replay. Proceedings of the 4th International Conference on Learning Representations. San Juan, Puerto Rico, 2016:322-355.

[15] Wang Z, Freitas N D, Lanctot M. Dueling network architectures for deep reinforcement learning. Proceedings of the International Conference on Machine Learning. New York, USA, 2016: 1995-2003.

[16] Hausknecht M, Stone P. Deep recurrent q-learning for partially observable MDPs. arXiv preprint arXiv:1507.06527, 2015.

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    国产精品成人一区二区在线| 亚洲精品中文字幕熟女| 免费在线播放不卡视频| 国产一区二区精品丝袜 | 丰满人妻一二区二区三区av| 国产内射一级一片内射高清| 国产一区二区不卡在线播放| 97人摸人人澡人人人超碰| 国产又粗又猛又爽又黄的文字| 欧美日韩国产欧美日韩| 91超频在线视频中文字幕| 色鬼综合久久鬼色88| 日本人妻免费一区二区三区| 精品推荐国产麻豆剧传媒| 国产盗摄精品一区二区视频| 国产日韩欧美在线播放| 粉嫩内射av一区二区| 日本在线视频播放91| 熟女中文字幕一区二区三区| 成年人黄片大全在线观看| 亚洲综合激情另类专区老铁性| 欧美乱码精品一区二区三| 亚洲熟女乱色一区二区三区| 免费在线播放一区二区| 国产自拍欧美日韩在线观看| 日本在线不卡高清欧美| 91久久精品国产成人| 在线免费观看一二区视频| 精品欧美在线观看国产| 国产精品涩涩成人一区二区三区 | 欧美尤物在线视频91| 午夜视频成人在线免费| 欧美一区二区三区五月婷婷| 伊人久久五月天综合网| 亚洲欧美日产综合在线网| 国产日韩熟女中文字幕| 一区二区三区国产日韩| 伊人欧美一区二区三区| 亚洲黄色在线观看免费高清| 91精品国产av一区二区| 又黄又爽禁片视频在线观看|