今天,你AI了沒? 0.來源說明 來源 | CSDN 作者 | 謝宜廷 開講前,先給大家看個(gè)深度強(qiáng)化學(xué)習(xí)的例子,下面是深度學(xué)習(xí)cnn和強(qiáng)化學(xué)習(xí)結(jié)合玩吃豆人的游戲。 看圖像我們會(huì)發(fā)現(xiàn)吃豆人會(huì),吃掉一閃一閃的豆子來消滅怪物,仔細(xì)觀察會(huì)發(fā)現(xiàn),經(jīng)過訓(xùn)練的吃豆人,甚至?xí)T谀硞€(gè)角落來躲避怪物,這是一個(gè)非常有趣的現(xiàn)象,后面會(huì)附有個(gè)人深度強(qiáng)化學(xué)習(xí)項(xiàng)目地址。下面我們開始正式介紹強(qiáng)化學(xué)習(xí)。 強(qiáng)化學(xué)習(xí)的原理和解釋強(qiáng)化學(xué)習(xí)任務(wù)通常使用馬爾可夫決策過程(Markov Decision Process,簡稱MDP)來描述,具體而言:機(jī)器處在一個(gè)環(huán)境中,每個(gè)狀態(tài)為機(jī)器對當(dāng)前環(huán)境的感知;機(jī)器只能通過動(dòng)作來影響環(huán)境,當(dāng)機(jī)器執(zhí)行一個(gè)動(dòng)作后,會(huì)使得環(huán)境按某種概率轉(zhuǎn)移到另一個(gè)狀態(tài);同時(shí),環(huán)境會(huì)根據(jù)潛在的獎(jiǎng)賞函數(shù)反饋給機(jī)器一個(gè)獎(jiǎng)賞。綜合而言,強(qiáng)化學(xué)習(xí)主要包含四個(gè)要素:狀態(tài)、動(dòng)作、轉(zhuǎn)移概率以及獎(jiǎng)賞函數(shù)。 根據(jù)上圖,agent(智能體)在進(jìn)行某個(gè)任務(wù)時(shí),首先與environment進(jìn)行交互,產(chǎn)生新的狀態(tài)state,同時(shí)環(huán)境給出獎(jiǎng)勵(lì)reward,如此循環(huán)下去,agent和environment不斷交互產(chǎn)生更多新的數(shù)據(jù)。強(qiáng)化學(xué)習(xí)算法就是通過一系列動(dòng)作策略與環(huán)境交互,產(chǎn)生新的數(shù)據(jù),再利用新的數(shù)據(jù)去修改自身的動(dòng)作策略,經(jīng)過數(shù)次迭代后,agent就會(huì)學(xué)習(xí)到完成任務(wù)所需要的動(dòng)作策略。 強(qiáng)化學(xué)習(xí)和機(jī)器學(xué)習(xí)強(qiáng)化學(xué)習(xí)是機(jī)器學(xué)習(xí)的分支之一,但是又區(qū)別于其他機(jī)器學(xué)習(xí),主要體現(xiàn)在:
從1.1基本原理我們可以看的強(qiáng)化學(xué)習(xí)和其他機(jī)器學(xué)習(xí)算法監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí)的差別。監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí)都需要靜態(tài)的數(shù)據(jù),不需要與環(huán)境交互,數(shù)據(jù)輸入到相關(guān)函數(shù)訓(xùn)練就行。而且對于有監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí)來說,有監(jiān)督學(xué)習(xí)強(qiáng)調(diào)通過學(xué)習(xí)有標(biāo)簽的數(shù)據(jù),預(yù)測新數(shù)據(jù)的標(biāo)簽,無監(jiān)督學(xué)習(xí)更多是挖掘數(shù)據(jù)中隱含的規(guī)律。 主要算法和相關(guān)分類根據(jù)上面的原理,其實(shí)我們可以得到,強(qiáng)化學(xué)習(xí)關(guān)鍵要素:agent(智能體),reward(獎(jiǎng)勵(lì)),action(行為),state(狀態(tài)),environment(環(huán)境)。
強(qiáng)化學(xué)習(xí)算法按照agent分類,可以分為下面幾類:
從不同角度也可以繼續(xù)細(xì)分,具體可以看下圖: 下面我們簡單介紹分析一下Qlearning和Sarsa (1) Qlearning (2)Sarsa 從表格我們知道,Qlearning是on-policy,而Saras是off-policy。 對于Saras,當(dāng)agent處于狀態(tài)s時(shí),根據(jù)當(dāng)前Q網(wǎng)絡(luò)以及一定的策略來選取動(dòng)作a,進(jìn)而觀測到下一步狀態(tài)s',并再次根據(jù)當(dāng)前Q網(wǎng)絡(luò)及相同的策略選擇動(dòng)作a',而Qlearning則是,根據(jù)當(dāng)前Q網(wǎng)絡(luò)計(jì)算出下一步采取哪個(gè)動(dòng)作會(huì)得到maxQ值,并用這個(gè)Q值作為當(dāng)前狀態(tài)動(dòng)作對Q值的目標(biāo)。 簡單來說,Saras是agent處于新狀態(tài)s',就知道要采取行動(dòng)a',并且執(zhí)行了,行動(dòng)的選擇根據(jù)策略,Q值的計(jì)算是根據(jù)動(dòng)作a',而Qlearning是agent處于新狀態(tài)s',只能知道采取哪個(gè)行動(dòng)可以得到maxQ,并沒有采取對應(yīng)行動(dòng),它是根據(jù)當(dāng)前Q和策略來采取行動(dòng)的。在后面我們會(huì)做詳細(xì)分析。 傳統(tǒng)的強(qiáng)化學(xué)習(xí)局限于動(dòng)作空間和樣本空間都很小,且一般是離散的情境下。然而比較復(fù)雜的、更加接近實(shí)際情況的任務(wù)則往往有著很大的狀態(tài)空間和連續(xù)的動(dòng)作空間。當(dāng)輸入數(shù)據(jù)為圖像,聲音時(shí),往往具有很高維度,傳統(tǒng)的強(qiáng)化學(xué)習(xí)很難處理,深度強(qiáng)化學(xué)習(xí)就是把深度學(xué)習(xí)對于的高維輸入與強(qiáng)化學(xué)習(xí)結(jié)合起來。 2013和2015年DeepMind的Deep Q Network(DQN)可謂是將兩者成功結(jié)合的開端,它用一個(gè)深度網(wǎng)絡(luò)代表價(jià)值函數(shù),依據(jù)強(qiáng)化學(xué)習(xí)中的Q-Learning,為深度網(wǎng)絡(luò)提供目標(biāo)值,對網(wǎng)絡(luò)不斷更新直至收斂。2015 DQN nature算法可以看下圖: DQN用到了兩個(gè)關(guān)鍵技術(shù)涉及到了兩個(gè)關(guān)鍵技術(shù): 1、樣本池(Experience Reply):將采集到的樣本先放入樣本池,然后從樣本池中隨機(jī)選出一條樣本用于對網(wǎng)絡(luò)的訓(xùn)練。這種處理打破了樣本間的關(guān)聯(lián),使樣本間相互獨(dú)立。 2、固定目標(biāo)值網(wǎng)絡(luò)(Fixed Q-target):計(jì)算網(wǎng)絡(luò)目標(biāo)值需用到現(xiàn)有的Q值,現(xiàn)用一個(gè)更新較慢的網(wǎng)絡(luò)專門提供此Q值。這提高了訓(xùn)練的穩(wěn)定性和收斂性。 DQN在Atari games上用原始像素圖片作為狀態(tài)達(dá)到甚至超越人類專家的表現(xiàn)、通過左右互搏(self-play)等方式在圍棋上碾壓人類、大大降低了谷歌能源中心的能耗等等。當(dāng)然DQN也有缺點(diǎn),它是高維輸入,低維輸出的,當(dāng)涉及到一次性輸出連續(xù)動(dòng)作時(shí),即高維度輸出,就束手無策了,DeepMind也在后續(xù)提出了DDPG。 根據(jù)前面知識(shí)可以意識(shí)到強(qiáng)化學(xué)習(xí)本身是非常通用了,智能體可以自己學(xué)習(xí),如果和深度學(xué)習(xí)結(jié)合豈不是萬能?錯(cuò)了,當(dāng)前深度強(qiáng)化學(xué)習(xí)也有許多難點(diǎn):
未來可能方向:
微信群&交流合作 |
|