日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Deep Reinforcement Learning: Pong from Pixels

發(fā)布時(shí)間:2023/12/15 编程问答 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Deep Reinforcement Learning: Pong from Pixels 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

這是一篇遲來很久的關(guān)于增強(qiáng)學(xué)習(xí)(Reinforcement Learning, RL)博文。增強(qiáng)學(xué)習(xí)最近非常火!你一定有所了解,現(xiàn)在的計(jì)算機(jī)能不但能夠被全自動(dòng)地訓(xùn)練去玩兒ATARI(譯注:一種游戲機(jī))游戲(直接輸入游戲的原生的像素?cái)?shù)據(jù)),還能擊敗圍棋的世界冠軍、模擬四足動(dòng)物上躥下跳。機(jī)器人還能學(xué)習(xí)如何進(jìn)行復(fù)雜的控制任務(wù),甚至比直接編寫的程序效果還要好。這些在各個(gè)方面的領(lǐng)先都應(yīng)該被歸功于增強(qiáng)學(xué)習(xí)遍地開花般的研究。我本人在過去幾年中也對(duì)增強(qiáng)學(xué)習(xí)非常感興趣:我完成了Richard Sutton的書,看完了David Silver的課程,看了John Schulmann的講義,寫了一個(gè)基于Javascript的增強(qiáng)學(xué)習(xí)的庫(kù),并且在DeepMind公司的DeepRL組實(shí)習(xí)了一個(gè)夏天,而最近的工作有些涉及到一個(gè)全新的增強(qiáng)學(xué)習(xí)評(píng)測(cè)工具箱OpenAI Gym的設(shè)計(jì)和開發(fā)。所以我實(shí)際上已經(jīng)在這條賊船上帶了一整年,但是直到現(xiàn)在我還沒抽出時(shí)間去寫一篇簡(jiǎn)短的博客來闡述增強(qiáng)學(xué)習(xí)是什么、為什么增強(qiáng)學(xué)習(xí)這么重要、如何開發(fā)一個(gè)增強(qiáng)學(xué)習(xí)的程序,以及它的應(yīng)用背景會(huì)是什么。

幾個(gè)增強(qiáng)學(xué)習(xí)的例子。從左到右:深度Q學(xué)習(xí)網(wǎng)絡(luò)玩兒ATARI,AlphaGo,伯克利堆積木機(jī)器人Legos,物理模擬的四足動(dòng)物在地面奔跑。

回憶一下增強(qiáng)學(xué)習(xí)近期進(jìn)展的本質(zhì)是一件很有趣的事情。我比較直白地認(rèn)為人工智能受到了以下一個(gè)因素的掣肘(此處原文為hold back AI,總覺得有些怪怪的):

  • 計(jì)算能力(顯而易見:摩爾定律、顯卡、專用集成電路)
  • 數(shù)據(jù)(帶有良好的結(jié)構(gòu),而不是散落在互聯(lián)網(wǎng)上 - 比如說ImageNet)
  • 算法(研究和一些點(diǎn)子,比如說BP反向傳播,CNN,LSTM)
  • 基礎(chǔ)設(shè)施(軟件,比如Linux,TCP/IP,Git,ROS,PR2,AWS,AMT,TensorFlow等等)
  • 與計(jì)算機(jī)視覺界所經(jīng)歷的一樣,增強(qiáng)學(xué)習(xí)的發(fā)展進(jìn)程不像想你想的那樣起源于什么驚世駭俗的靈感。在計(jì)算機(jī)視覺界,2012年的AlexNet幾乎就是1990年代卷積神經(jīng)網(wǎng)絡(luò)(ConvNets)的高規(guī)格版本。與之相似的是,2013年ATARI的深度Q學(xué)習(xí)(Deep Q Learning)的論文實(shí)際上在功能上近似于一個(gè)標(biāo)準(zhǔn)的算法(Q學(xué)習(xí),Q Learning,函數(shù)逼近,你可以在Sutton1998年編寫的標(biāo)準(zhǔn)的增強(qiáng)學(xué)習(xí)書籍上找到),函數(shù)逼近實(shí)際上使用了一個(gè)卷積網(wǎng)絡(luò)。AlphaGo使用了帶有蒙特卡洛樹搜索的策略梯度(Policy Gradients),其實(shí)這些也是慣用的組件。當(dāng)然,也還需要用到大量的技巧和一點(diǎn)兒耐心讓它能夠正確地運(yùn)轉(zhuǎn)起來,同時(shí)也需要在那些之前被提出的傳統(tǒng)算法中應(yīng)用上一些聰明的小技巧,但是對(duì)于一階近似來說,能產(chǎn)生如此巨大的成就并不是取決于算法,而是(與計(jì)算機(jī)視覺類似)據(jù)取決計(jì)算能力、數(shù)據(jù)和基礎(chǔ)設(shè)施。

    話題回到增強(qiáng)學(xué)習(xí)。我很喜歡去寫博客來說明一件看上去很夢(mèng)幻的東西和其背后的簡(jiǎn)單的原理。【譯注:這句話的原話語法結(jié)構(gòu)太復(fù)雜了,駕馭不住啊】。我見過很多人不敢相信我們能夠全自動(dòng)地讓機(jī)器像人類一樣學(xué)會(huì)去玩兒大部分ATARI游戲,甚至只需要一個(gè)算法、直接輸入像素、從零做起,效果非常震驚,我自己嘗試過。但是我們所用的核心方法其實(shí)非常的簡(jiǎn)單粗暴(盡管我知道現(xiàn)在回想起來好像這么說會(huì)引發(fā)一些爭(zhēng)議)。無論如何,我將會(huì)帶你了解Policy Gradients算法(PG),即在這個(gè)時(shí)候了解增強(qiáng)學(xué)習(xí)的最佳切入點(diǎn)。如果還是個(gè)怎強(qiáng)學(xué)習(xí)的門外漢,你一定會(huì)好奇為什么我不去介紹DQN算法呢?它可是一個(gè)更廣為人知的增強(qiáng)學(xué)習(xí)算法,并且在玩兒ATARI游戲的論文中經(jīng)常出鏡。這是由于Q學(xué)習(xí)并不是一個(gè)非常強(qiáng)大的算法(你可以說DQN在2013年很強(qiáng)大(好吧我是在半開玩笑地說~))。事實(shí)上,大多數(shù)人更傾向于使用策略梯度算法,甚至包括最早DQN論文的作者,他發(fā)現(xiàn)如果參數(shù)調(diào)的好,則它比Q學(xué)習(xí)效果還要好。我們首選PG算法是因?yàn)樗嵌说蕉?End to end)的:有一個(gè)顯式的策略,和一個(gè)能夠直接優(yōu)化期望回報(bào)(expected reward)的規(guī)范的方法。好的,作為例子,我們將會(huì)從零開始,在像素級(jí)別,使用一個(gè)深度神經(jīng)網(wǎng)絡(luò),并用PG來學(xué)習(xí)去玩兒ATARI的游戲(Pong!)。所有這些事情只需要130行的Python就能搞定,并且只用到了numpy庫(kù)。讓我們?cè)囋嚢?#xff01;

    Pong from pixels

    Pong這個(gè)游戲。

    Pong是馬爾可夫決策過程(Markov Descision Process, MDP)的一個(gè)例子:圖中的每一個(gè)結(jié)點(diǎn)都是游戲過程中的一個(gè)特定狀態(tài),每一條邊都是一個(gè)(通常是概率意義上的)可能的變換。每一條邊帶有一個(gè)“回報(bào)”(reward),而任務(wù)的目標(biāo)是在任意狀態(tài)計(jì)算出一條最優(yōu)的路徑來最大化回報(bào)。

    Pong這個(gè)游戲非常適合用來解釋一個(gè)簡(jiǎn)單的增強(qiáng)學(xué)習(xí)的任務(wù)。在ATARI2600版本的這個(gè)游戲中,你需要控制一側(cè)的擋板(另一側(cè)由一個(gè)還算靠譜的AI控制)然后你需要通過撞擊擋板將球反彈給對(duì)方(我貌似不用解釋的太詳細(xì)了對(duì)吧?)。我們可以用更加底層角度看待這個(gè)任務(wù):我們接收到了一幀圖像(一個(gè)210x160x3的字節(jié)數(shù)組(從0到255的整數(shù)值表示像素值)),然后我們來決定是要讓擋板向上還是向下(這是一個(gè)二進(jìn)制的選擇)。在每一次選擇之后,游戲模擬器執(zhí)行動(dòng)作然后給我們一個(gè)回報(bào):一個(gè)+1回報(bào)表示我們成功將球擊向?qū)κ?#xff0c;一個(gè)-1回報(bào)表示丟了球,或者一個(gè)0回報(bào)表示其他情況。當(dāng)然,我們的目標(biāo)是通過移動(dòng)擋板來得到很多很多的回報(bào)。

    在我們解決這個(gè)問題的時(shí)候,我們要做幾個(gè)假設(shè),因?yàn)槲覀兊年P(guān)注點(diǎn)并不是Pong這個(gè)游戲,而是在于研究一個(gè)復(fù)雜的高維問題,比如說操縱機(jī)器人,裝配和導(dǎo)航。Pong只是一個(gè)有趣的測(cè)試?yán)?#xff0c;而總有一天我們會(huì)寫出一個(gè)非常通用并且能做很多有用的任務(wù)的AI系統(tǒng)。

    策略網(wǎng)絡(luò)(Policy Network)

    首先,我們要去定義“策略網(wǎng)絡(luò)”這個(gè)概念。它能作為我們的“玩家”(或者“代理”,即agent)。這個(gè)網(wǎng)絡(luò)能夠以當(dāng)前的游戲狀態(tài)為輸入,并且能夠決定我們應(yīng)該采取什么動(dòng)作(向上或者向下)。為了計(jì)算方便,我們使用了一個(gè)兩層神經(jīng)網(wǎng)絡(luò),接受原生的圖像像素作為輸入(一共100,800個(gè)數(shù)(210*160*3)),然后產(chǎn)生一個(gè)數(shù)字來表示“向上移動(dòng)擋板”的概率。通常情況下我們會(huì)用“stochastic”策略,就是說我們只產(chǎn)生一個(gè)向上移動(dòng)的概率值。每一次迭代我們都會(huì)從這個(gè)概率分布去采樣(就好像投擲一枚不均勻的硬幣)來決定到底是向上還是向下(譯注:這個(gè)產(chǎn)生出來的值只是一個(gè)向上的概率,而不是說當(dāng)這個(gè)值大于某個(gè)閾值就向上,小于閾值就向下。真正使用的時(shí)候就是以這個(gè)概率值去拋硬幣。也就是說幾遍這個(gè)概率告訴你百分之90要向上,你也是有可能采樣獲得“向下”這個(gè)決策的)。這么做的原因我們會(huì)在講解訓(xùn)練算法部分仔細(xì)說明。

    我們的策略網(wǎng)絡(luò)(Policy Network)是一個(gè)兩層的全連接網(wǎng)絡(luò)。

    為了更加詳實(shí)地闡述,這里我們用Python/Numpy來實(shí)現(xiàn)這個(gè)策略網(wǎng)絡(luò)。假設(shè)我們有一個(gè)變量x,里面有(經(jīng)過預(yù)處理之后的)像素信息。這時(shí)候我們可以計(jì)算:

    h = np.dot(W1, x) # 計(jì)算隱層單元激活值 h[h<0] = 0 # 使用Relu非線性變換:閾值是0 logp = np.dot(W2, h) # 第二層 p = 1.0 / (1.0 + np.exp(-logp)) # sigmoid 函數(shù)(輸出一個(gè)概率值)

    在代碼中,W1和W2是兩個(gè)隨機(jī)初始化的矩陣。這里沒有用到偏置因?yàn)椴皇呛苤匾R⒁馕覀冊(cè)谧詈笠粚邮褂昧藄igmoid非線性變換,它能將輸出值修整到[0,1]區(qū)間(譯注:這樣才是概率嘛!)。從直覺上來說,隱藏單元的神經(jīng)元(在W1上的每一行權(quán)重)應(yīng)該能探測(cè)到不同的游戲場(chǎng)景(比如說球在頂部,擋板在中間),而在W2中的權(quán)值應(yīng)該能在各種情況下決定我們是要向上移動(dòng)還是向下移動(dòng)。我們現(xiàn)在講W1和W2隨機(jī)初始化之后,將會(huì)導(dǎo)致這個(gè)AI抽風(fēng)式地運(yùn)動(dòng)。所以我們需要做的就是找到一個(gè)合適的W1和W2讓這個(gè)AI稱為Pong的專家!

    額外說一下preprocessing。我們其實(shí)需要至少將兩幀輸入到策略網(wǎng)絡(luò)中,否則網(wǎng)絡(luò)將沒法探測(cè)到運(yùn)動(dòng)(譯注:一張照片并不能表示球的運(yùn)動(dòng)方向等)。為了讓這件事更簡(jiǎn)單一些(我在我的Macbook上測(cè)試過),我將會(huì)做一個(gè)微小的預(yù)處理。比如說我們實(shí)際輸入的是兩幀的“區(qū)別”(比如說將當(dāng)前幀減上一幀得到的結(jié)果)。

    聽起來不太可能

    現(xiàn)在我需要讓你明白一個(gè)增強(qiáng)學(xué)習(xí)任務(wù)到底有多難。我們有100,800個(gè)數(shù)(210*160*3)在我們的策略網(wǎng)絡(luò)中(這個(gè)網(wǎng)絡(luò)的W1和W2很容易就會(huì)包含上百萬個(gè)參數(shù))。假設(shè)我們決定向上移動(dòng)擋板。在當(dāng)前時(shí)間幀,游戲認(rèn)為獲得0回報(bào)(譯注:因?yàn)榍蜻€沒撞到擋板,所以并不是成功反擊的+1回報(bào),也不是丟球的-1回報(bào),而是0回報(bào)),而在下一個(gè)時(shí)間幀,又將會(huì)有100,800個(gè)數(shù)字。我們需要重復(fù)這個(gè)步驟高達(dá)上百次,直到出現(xiàn)一次非0的回報(bào)(譯注:成功反彈或者丟球)。假設(shè)我們最終得到了+1回報(bào)。這很棒,但是我們?nèi)绾沃谰烤故鞘裁磳?dǎo)致了這個(gè)回報(bào)的發(fā)生?我們?cè)趧倓偰菐隽诵┦裁?#xff1f;或者說在第76幀做了什么?或者是不是我們?cè)诘?0幀時(shí)的操作和第90幀時(shí)做了某個(gè)至關(guān)重要的動(dòng)作?那么我們?cè)撊绾沃肋@上百萬的參數(shù)該調(diào)整那些、該如何調(diào)整才能后續(xù)的測(cè)試中達(dá)到更好的效果?我們將這個(gè)問題稱為“credit assignment”問題(credit assignment problem)。以Pong為例我們知道,一個(gè)+1回報(bào)表示球成功地傳給了對(duì)手。真實(shí)情況是我們將球反擊出了一個(gè)正確的軌跡,但實(shí)際上這是因?yàn)槲覀兒芫靡郧澳骋粠龀隽苏_的決定,比如說,有可能是20幀之前的某個(gè)操作就決定了最后能將球擊中。而在這之后的操作可能對(duì)是否能得到回報(bào)并不起作用(譯注:如果能預(yù)測(cè)球的落點(diǎn),在地20幀的時(shí)候把擋板放對(duì)就ok了,后面不論擋板怎么調(diào)整,只要擊球時(shí)還在這個(gè)位置,就能得到回報(bào)了)。說了這么多就是為了告訴你,我們面臨的這個(gè)問題非常之復(fù)雜,并且看起來是很難解決的。

    有監(jiān)督學(xué)習(xí) (Supervised Learning)

    在深入了解用到Policy Gradients的解決方案之前,我還想帶你回憶一下有監(jiān)督學(xué)習(xí)的基本知識(shí),因?yàn)樗鰪?qiáng)學(xué)習(xí)非常相似。參考下圖。在傳統(tǒng)的有監(jiān)督學(xué)習(xí)中,我們將一張圖片輸入到網(wǎng)絡(luò)中,然后獲取一些概率值。比如說“向上”、“向下”的二類分類問題。我所展示的是log概率(-1.2, -0.36)而不是概率(30%和70%),因?yàn)槲覀兘?jīng)常去優(yōu)化正確類別的log概率,這在數(shù)學(xué)上要更好一些,而且這對(duì)于優(yōu)化問題來說是等價(jià)的,因?yàn)閘og是單調(diào)的。現(xiàn)在,在有監(jiān)督學(xué)習(xí)中,我們必須要用到label。例如,我們被告知了現(xiàn)在應(yīng)該讓擋板向上(label 0)。此時(shí)我們需要將UP對(duì)應(yīng)的log概率設(shè)為1,然后運(yùn)行梯度下降算法去計(jì)算?Wlogp(y=UP|x)。這個(gè)梯度將會(huì)告訴我們這上百萬個(gè)參數(shù)中的每一個(gè)都應(yīng)該如何調(diào)整,來讓網(wǎng)絡(luò)稍微傾向于輸出“向上”。例如。網(wǎng)絡(luò)中上百萬個(gè)參數(shù)中的一個(gè)有可能具有梯度-2.1,這就意味著如果我們?cè)谶@個(gè)參數(shù)上增加一個(gè)很小的正值(比如0.001),那么log概率將會(huì)增加2.1*0.001(如果是負(fù)值則就會(huì)減小)。如果我們這樣更新參數(shù),那么網(wǎng)絡(luò)在下次看到一張非常相似的圖片的時(shí)候,就會(huì)更加傾向于去輸出“向上”。

    策略梯度 (Policy Gradients)

    但是,在增強(qiáng)學(xué)習(xí)的過程中,我們沒有正確的label那該怎么辦?所以我要介紹一種被稱作是Policy Gradients的方法(如下圖所示)。當(dāng)我們的策略網(wǎng)絡(luò)計(jì)算出向上的概率是30%(log概率是-1.2),向下的概率是70%(log概率是-0.36).我們現(xiàn)在從這個(gè)分布中去采樣;比如說,假設(shè)我們采樣得到的結(jié)果是“向下”(譯注:采樣方法比如說,產(chǎn)生一個(gè)0~1的均勻分布的隨機(jī)數(shù),判斷這個(gè)數(shù)>=0.7還是<0.7,對(duì)應(yīng)決定輸出是“向上”還是“向下”)
    ,然后我們?cè)谟螒蛑袌?zhí)行這個(gè)操作。這時(shí)候我們會(huì)注意到一個(gè)有趣的現(xiàn)象:我們可以像有監(jiān)督學(xué)習(xí)中那樣,立刻在“向下”的梯度上賦值1.0,然后去找到能讓網(wǎng)絡(luò)以后略微傾向做出“向下”動(dòng)作的梯度向量。但是問題是,直到目前為止,我們也不知道“向下”這個(gè)操作是好是壞。但這不是個(gè)大問題,我們可以等一陣然后看看結(jié)果。比如對(duì)Pong這個(gè)游戲來說,我們能夠一直等到游戲結(jié)束,然后獲得收益(如果贏了就是+1,如果輸了就是-1),然后認(rèn)為相對(duì)應(yīng)的值就是我們所做的操作的梯度(本例中是“向下”)。在下面的例子里,“向下”最終會(huì)導(dǎo)致游戲失敗。所以如果我們用-1表示“向下”對(duì)應(yīng)的log概率然后進(jìn)行反向傳播我們將會(huì)讓網(wǎng)絡(luò)對(duì)這個(gè)輸入在以后不鼓勵(lì)做出“向下”的操作(顯然是這樣,因?yàn)檫@個(gè)動(dòng)作將會(huì)導(dǎo)致最后輸?shù)粲螒?#xff09;。

    也就是說:我們用一個(gè)隨機(jī)的策略來產(chǎn)生動(dòng)作,如果這個(gè)動(dòng)作在未來最終帶來好的結(jié)果那么將會(huì)被鼓勵(lì),如果這個(gè)動(dòng)作在未來最終帶來壞的結(jié)果那么將會(huì)被壓制。除此之外,甚至在我們贏得或輸?shù)粲螒驎r(shí),回報(bào)不一定要求是+1或者-1。它可以是任何表示最終效果的度量手段。例如我們可以認(rèn)為如果任務(wù)做的好,那么回報(bào)就是10.0,如果最終結(jié)果還不錯(cuò),那我們就把它作為梯度而不用-1,然后進(jìn)行反向傳播算法。這就是神經(jīng)網(wǎng)絡(luò)美妙的地方;使用它們就好像在作弊一樣:你能夠?qū)⒁话偃f個(gè)參數(shù)綁定在一個(gè)運(yùn)算速度高達(dá)1 teraflop的機(jī)器上然后用上SGD(隨機(jī)梯度下降)。它看起來并不靠譜,但神奇的是我們正生活在一個(gè)讓他能靠譜運(yùn)轉(zhuǎn)的世界。

    Training Protocol (譯注:實(shí)在不知道怎么翻譯了)

    下面詳細(xì)介紹一下訓(xùn)練過程。首先我們初始化策略網(wǎng)絡(luò)的W1,W2然后進(jìn)行100次Pong的游戲(我們稱這些策略叫做“rollouts”)。假設(shè)每一次游戲由200幀組成,所以我們一共要進(jìn)行20,000次“向上”或者“向下”的決定,而且對(duì)于每個(gè)決定,我們都能夠知道梯度,這個(gè)梯度則告訴了我們想要在未來做出更好的決策應(yīng)該做出怎樣的調(diào)整。現(xiàn)在只剩下去對(duì)我們做的每個(gè)決策標(biāo)記上是“好”還是“壞”了。例如我們贏了12場(chǎng)游戲,輸了88場(chǎng)游戲。我們將會(huì)用在贏的游戲過程中做出的200*12=2400個(gè)決策做出“正”的更新(對(duì)采樣得到的動(dòng)作賦值+1的梯度,然后進(jìn)行BP算法,參數(shù)更新將會(huì)鼓勵(lì)我們所采取的這些動(dòng)作)。然后我們會(huì)將其他在輸?shù)舻挠螒蛑兴龅?00*88=17600個(gè)決策標(biāo)記為“負(fù)”的更新(不鼓勵(lì)采取這些動(dòng)作)。然后網(wǎng)絡(luò)將會(huì)逐漸偏向做出有用的動(dòng)作,而減少做出無用的動(dòng)作。然后我們?cè)儆梦覀冚p微修正過的新的策略網(wǎng)絡(luò)進(jìn)行100場(chǎng)游戲,然后再去輕微地更新策略網(wǎng)絡(luò)。

    策略梯度:讓動(dòng)作執(zhí)行一會(huì)兒,看看什么動(dòng)作將會(huì)產(chǎn)生高回報(bào),那么就提高這部分動(dòng)作在當(dāng)前情況下出現(xiàn)的概率。

    圖中展示了4場(chǎng)游戲。每一個(gè)黑色的圓圈就是一個(gè)游戲的狀態(tài)(圖的下部有三個(gè)例子),每一個(gè)箭頭代表一次狀態(tài)轉(zhuǎn)換,上面標(biāo)注的是采樣得到的動(dòng)作。在這個(gè)例子中,我們贏了兩場(chǎng)游戲,輸了兩場(chǎng)游戲。通過策略梯度算法,我們用兩場(chǎng)贏了的游戲的數(shù)據(jù)來稍微鼓勵(lì)網(wǎng)絡(luò)做出這兩個(gè)episode(譯注一場(chǎng)游戲的一系列決策稱為一個(gè)episode)中的每一步。相反的,我們用輸?shù)舻膬蓤?chǎng)游戲的數(shù)據(jù)來稍微抵制網(wǎng)絡(luò)做出這兩個(gè)episode中的每一步。

    如果你仔細(xì)想想這個(gè)過程,你會(huì)發(fā)現(xiàn)一些有趣的事情。比如說如果我們?cè)诘?0幀時(shí)做了一個(gè)“正確”的動(dòng)作(比如將球正確地反擊回去),但是在第150幀的時(shí)候卻丟了球該怎么辦?如果此時(shí)每一個(gè)動(dòng)作都被標(biāo)記成“不好”的動(dòng)作(因?yàn)槲覀儊G了球),那么會(huì)不會(huì)在第50幀的動(dòng)作也會(huì)被壓制?是的,它會(huì)被抵制。然而其實(shí)你可以考慮一下當(dāng)游戲進(jìn)行了成千次甚至上百萬次時(shí),雖然你第一次正確的反擊本應(yīng)讓你偏向贏得游戲,但平均來說,正確更新的數(shù)量還是要大于錯(cuò)誤更新的數(shù)量的,所以最終你的策略將會(huì)學(xué)習(xí)到做出正確的動(dòng)作。

    2016年12月9日更新:從另一個(gè)視角解釋

    在上面解釋中,我用到了諸如“將梯度設(shè)置成xx然后用反向傳播算法”這樣的話,這是基于你們很熟悉如何編寫你自己的反向傳播的算法,或者經(jīng)常使用Torch之類的需要自己顯示地寫出梯度的框架。然而,如果你經(jīng)常用的是Theano或者TensorFlow,你有可能會(huì)對(duì)這句話有些困惑,因?yàn)樵谶@些框架中,代碼是圍繞著損失函數(shù)組織的,而反向傳播算法是全自動(dòng)進(jìn)行的,并且很難去對(duì)它做修改。在這種情況下,從另一個(gè)角度解釋這件事或許更加直觀。在最簡(jiǎn)單的有監(jiān)督學(xué)習(xí)任務(wù)中,目標(biāo)函數(shù)是最大化ilogp(yi|xi),其中xiyi是訓(xùn)練樣本(比如說是圖片和它們的標(biāo)簽)。策略梯度與有監(jiān)督學(xué)習(xí)除了這兩點(diǎn)以外是完全一樣的:1)我們沒有正確的標(biāo)簽yi,所以我們用網(wǎng)絡(luò)看到xi時(shí)采樣的動(dòng)作作為“假標(biāo)簽”來代替。2)我們基于最終的結(jié)果(譯注:贏或輸)來調(diào)整基于多個(gè)樣本相乘的損失函數(shù)(譯注:因?yàn)樽罱K的損失函數(shù)會(huì)由多個(gè)樣本相乘組成,參見極大似然估計(jì)MLE),就是說,我們要對(duì)有效的動(dòng)作提高它的log概率,對(duì)無效的動(dòng)作降低它的log概率。綜上所述,我們的損失函數(shù)現(xiàn)在應(yīng)該是這樣:iAilogp(yi|xi),其中yi是我們采樣得到的動(dòng)作,Ai是一個(gè)被稱為“advantage”的數(shù)。比如在Pong例子中,當(dāng)我們經(jīng)過整個(gè)episode最終贏得了勝利Ai就是+1,反之如果我們輸了就是-1.這能保證我們動(dòng)作的log概率在好結(jié)果中會(huì)被最大化,壞結(jié)果中會(huì)被最小化。所以說,增強(qiáng)學(xué)習(xí)完全就是有監(jiān)督學(xué)習(xí),只不過區(qū)別在于數(shù)據(jù)集是在不斷變化的(每次都會(huì)有不同的episode),然后與"advantage"相乘,然后我們每次采樣得到的數(shù)據(jù)集只會(huì)做一次(或者少量的)更新。
    (譯注:與有監(jiān)督學(xué)習(xí)相比,RL重點(diǎn)在于在整個(gè)episode結(jié)束前,是不能確定每個(gè)標(biāo)簽的。所以說,產(chǎn)生一個(gè)episode->更新策略網(wǎng)絡(luò)->再基于最新的策略網(wǎng)絡(luò)產(chǎn)生新的episode->循環(huán)進(jìn)行。)

    更加通用的“advantage”函數(shù)

    我之前說過要多講一講“回報(bào)”。目前為止,我們?nèi)ピu(píng)價(jià)一個(gè)動(dòng)作的好壞都是依據(jù)最終會(huì)不會(huì)贏得游戲。一個(gè)更加通用的增強(qiáng)學(xué)習(xí)的設(shè)計(jì)是我們將會(huì)在每一個(gè)時(shí)間步都獲得一個(gè)回報(bào)rt。一個(gè)常用的選擇就是“discounted reward”。所以上圖的最終回報(bào)(eventual reward)就會(huì)變成Rt=k=0γkrt+k。其中,γ是一個(gè)0~1之間的數(shù),稱作是discount factor(取值比如說0.99)。這個(gè)表達(dá)式說明,我們對(duì)于一個(gè)采樣動(dòng)作的鼓勵(lì)強(qiáng)度,是后續(xù)所有回報(bào)的加權(quán)求和決定的,但是后面回報(bào)的重要性是以指數(shù)級(jí)衰減的。在實(shí)踐中,標(biāo)準(zhǔn)化這些回報(bào)也非常重要。比如說我們要計(jì)算所有100場(chǎng)Pong游戲中的20,000個(gè)動(dòng)作的回報(bào)Rt。一個(gè)比較好的做法就是在把這些數(shù)據(jù)送到BP算法之前,對(duì)這些回報(bào)做一下標(biāo)準(zhǔn)化的操作(比如通過減均值除標(biāo)準(zhǔn)差的方法)。這樣我們總能大約鼓勵(lì)一半的動(dòng)作、壓制一半的動(dòng)作。從數(shù)學(xué)上來說,這也可以被認(rèn)為是一種控制策略梯度的方差的一個(gè)技巧。更加相近的解釋可以參考這里

    推導(dǎo)策略梯度

    下面我會(huì)大概說一說策略梯度是怎樣從數(shù)學(xué)中得到的。策略梯度是一個(gè)更加廣義的概念——“score function gradient estimator”的特殊形式。通常的情況下我們需要計(jì)算形如Exp(x|θ)[f(x)]的表達(dá)式,比如說計(jì)算一個(gè)標(biāo)量值函數(shù)(scalar valued score function) f(x)服從以θ為參數(shù)的概率分布p(x;θ)的期望。提示:f(x)可以作為我們的回報(bào)函數(shù)(或者更通用地說,可以作為advantage函數(shù)),而p(x)是策略網(wǎng)絡(luò),也就是給定任意圖象I后對(duì)動(dòng)作a的分布函數(shù)p(a|I)。那么,我們感興趣的是我們應(yīng)該如何通過參數(shù)θ來修正這個(gè)分布,使得它能對(duì)樣本有著更高的得分,而這個(gè)得分是由f決定的(即,我們應(yīng)該如何修改網(wǎng)絡(luò)的參數(shù)才能讓動(dòng)作樣本得到更高的分?jǐn)?shù))。我們有下面的公式:

    ?θEx[f(x)]=?θxp(x)f(x)=x?θp(x)f(x)=xp(x)?θp(x)p(x)f(x)=xp(x)?θlogp(x)f(x)=Ex[f(x)?θlogp(x)]definition of exceptionswap sum and gradientboth multiply and divide byp(x)use the face that?θlog(z)=1z?θzdefinition of exception

    譯注:經(jīng)過上面的公式,我們想要計(jì)算 ?θE[f(x)],不再需要真的去計(jì)算帶有函數(shù)f(x)的梯度了。只需要1)按照某個(gè)概率分布采樣,2)直接計(jì)算Ex[f(x)?θlogp(x)]來代替即可。這么做的好處是我們可以定義一個(gè)非常復(fù)雜的打分函數(shù)f(x),甚至這個(gè)函數(shù)可以不可微,因?yàn)槲覀冊(cè)诤罄m(xù)的求導(dǎo)中,完全沒有這個(gè)函數(shù)的參與,只要概率分布可微就行了。所以,在實(shí)際應(yīng)用中,f(x)常常是一個(gè)復(fù)雜的函數(shù),而p(x)則可以是一個(gè)由神經(jīng)網(wǎng)絡(luò)組成的策略網(wǎng)絡(luò)等模型,因?yàn)樯窠?jīng)網(wǎng)絡(luò)一般是可微的。

    說人話就是:我們有某個(gè)概率分布p(x;θ)(為了簡(jiǎn)便所以寫成p(x)),并且可以從中進(jìn)行采樣(比如說從一個(gè)高斯分布)。對(duì)于每一個(gè)樣本,我們可以對(duì)其用評(píng)分函數(shù)(score function)f打分,即輸入樣本到函數(shù)中,得到一個(gè)標(biāo)量值作為分?jǐn)?shù)。這個(gè)等式告訴了我們應(yīng)該如何調(diào)整分布(由參數(shù)θ控制)才能得到用f評(píng)價(jià)的更高的分?jǐn)?shù)。特別地,它像是在說:抽一些樣本x,然后評(píng)價(jià)一下它們的分?jǐn)?shù)f(x),然后對(duì)每個(gè)x再計(jì)算一下第二項(xiàng)?θlogp(x;θ)。第二項(xiàng)的內(nèi)容是啥?它是一個(gè)向量:也就是能夠知道我們?cè)趨?shù)空間應(yīng)該如何調(diào)整才能使x出現(xiàn)的概率盡可能大。換句話說,如果我們有在?θlogp(x;θ)的方向有連續(xù)不斷的θ,我們將會(huì)看到產(chǎn)生x的概率將會(huì)稍稍增加。在回顧一下公式,它還告訴我們我們要把這個(gè)方向與那個(gè)標(biāo)量打分函數(shù)(scalar-valued score)f(x)相乘。這會(huì)使得具有更高得分的樣本對(duì)概率密度的“拖拽”力度要比分?jǐn)?shù)低的樣本大一些。所以如果我們基于多個(gè)從p中采樣的樣本去更新概率密度函數(shù),我們將會(huì)在想得分更高的樣本方向多偏離一些,這能夠讓得分更高的樣本更有可能被采樣出來。

    一張關(guān)于分?jǐn)?shù)梯度函數(shù)的可視化圖。:一個(gè)高斯分布,在其中采樣了幾個(gè)樣本(藍(lán)色點(diǎn))。在每一個(gè)藍(lán)色點(diǎn)上,我們也畫出了對(duì)應(yīng)高斯均值參數(shù)的log概率的梯度(譯注:即 ?θlogp(x;θ))。箭頭指向了想要使分布更容易采樣到樣本的調(diào)整方向的均值。:一些打分函數(shù)對(duì)樣本給出了-1分,而在一些小區(qū)域中給出了+1分(注意此處不必須是一個(gè)可微的標(biāo)量值函數(shù))。現(xiàn)在箭頭被染色了,因?yàn)樵诟轮邪顺朔?#xff0c;我們會(huì)將所有綠色和紅色的箭頭分別取平均。:經(jīng)過參數(shù)更新之后,綠色的箭頭和相反的紅色箭頭(譯注:與-1相乘表示取向量的反方向)會(huì)將分布向左下角輕輕推動(dòng)。正如我們所希望的一樣,現(xiàn)在再?gòu)倪@個(gè)分布中取值,將會(huì)更容易得到更高的分?jǐn)?shù)。

    希望我講明白了這與增強(qiáng)學(xué)習(xí)之間的連接。我們的策略網(wǎng)絡(luò)就是讓我么能夠采樣出一系列比其他動(dòng)作更好的動(dòng)作(通過advantage函數(shù)判斷好壞)。這些數(shù)學(xué)公式的片段告訴我們了一種能夠修正策略參數(shù)的方法就是先讓動(dòng)作執(zhí)行一會(huì)兒,然后計(jì)算采樣的動(dòng)作的梯度,乘上它們的得分,然后將他們加起來,這就是上面做的事情。想要了解更詳盡的來龍去脈,我推薦你去閱讀John Schulman's lecture.

    學(xué)習(xí)

    好了,我們已經(jīng)介紹了策略梯度的直觀想法并且簡(jiǎn)單了解了它的起源。我實(shí)現(xiàn)了一個(gè)總共130行的Python腳本,它使用了OpenAI Gym的ATARI2600 Pong游戲。我訓(xùn)練了一個(gè)包括了200個(gè)隱層單元的兩層策略梯度網(wǎng)絡(luò),并且用RMSProp算法在batch大小為10的episodes上訓(xùn)練(每一個(gè)episode都包含了幾場(chǎng)游戲,因?yàn)楸荣愖罡叱煽?jī)就是21分)。我并沒有調(diào)整太多的代碼,然后在我的Macbook(非常慢)上運(yùn)行了3個(gè)晚上,最終得到的策略網(wǎng)絡(luò)能比AI玩家稍微好一點(diǎn)。Episode的數(shù)量共計(jì)8,000左右,算法大約玩兒了200,000場(chǎng)Pone的游戲(非常多!對(duì)不?),大約做了800次梯度的更新。我朋友告訴我說如果你在GPU上用卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練幾天,你能更加頻繁地打敗AI玩家,如果你要是能把參數(shù)調(diào)的好一些,你就能永遠(yuǎn)處于支配地位(就是說,贏得每一場(chǎng)游戲)。然而,我沒有話太多的時(shí)間去計(jì)算或者調(diào)優(yōu),在用Pong AI成功驗(yàn)證了主要的思想并且效果還不錯(cuò)我就停掉了程序。

    學(xué)習(xí)到的權(quán)重

    我們可以看一看學(xué)習(xí)到的權(quán)重的內(nèi)容。經(jīng)過預(yù)處理,我們輸入的都是80x80大小的圖片(當(dāng)前幀減去上一幀。譯注:保留一部分運(yùn)動(dòng)信息)。我們現(xiàn)在取W1的每一行,把他們展開成80x80的大小然后畫出來(譯注:此處可能跟之前提到的210x160x3的結(jié)構(gòu)不太一樣。這里的輸入圖片單張只存為80x80=6400,然后傳輸?shù)?00個(gè)神經(jīng)元中,所以矩陣W1的維度是6400x200)。下圖表示了40個(gè)(共計(jì)200個(gè))神經(jīng)元的可視化結(jié)果。白色的像素表示正值,黑色的像素表示負(fù)值。我們會(huì)發(fā)現(xiàn)有幾個(gè)神經(jīng)元被調(diào)整出了特定的球的運(yùn)動(dòng)路徑,并被編碼成了“黑白相間”的線段。由于球只能在一點(diǎn)處被擊中,所以這些神經(jīng)元能處理多個(gè)任務(wù)并且會(huì)在球沿著線的多個(gè)位置“激發(fā)”(譯注:此處的激發(fā)應(yīng)該不是指擊球。而是說當(dāng)球沿著這些路徑的時(shí)候,這些神經(jīng)元將會(huì)活躍起來,處于激發(fā)的狀態(tài))。“黑白相間”很有趣,因?yàn)樵谇蜻\(yùn)動(dòng)的過程中,神經(jīng)元像sin函數(shù)一樣波動(dòng)是由于使用了ReLU作為激活函數(shù),它會(huì)在軌跡的不同位置上離散式地激活(譯注:ReLU在x大于0的時(shí)候是線性,小于0時(shí)就是0,所以不是隨時(shí)激活)。圖片看起來有一些噪聲,我覺得或許用上L2正則效果會(huì)好一些(譯注:加上L2正則項(xiàng)能一定程度上避免過擬合,即避免了圖像“記住”一些特例,更容易分辨一些“普遍的特征”。這些特例可能就會(huì)產(chǎn)生圖像上的噪聲)。

    哪些事情沒發(fā)生

    所以說,到目前為止,我們從原始像素點(diǎn)去學(xué)習(xí)到了如何利用策略梯度去進(jìn)行Pong游戲,并且效果也非常好。這個(gè)方法時(shí)“guess-and-check”的一種理想形式。“guess”表示從我們當(dāng)前的策略出發(fā)產(chǎn)生一個(gè)動(dòng)作序列,而“check”表示我們要估計(jì)能產(chǎn)生正回報(bào)的動(dòng)作。講的更詳細(xì)一些,這代表了我們目前這個(gè)增強(qiáng)學(xué)習(xí)問題所能達(dá)到的最好的效果。能夠?qū)W習(xí)到這樣的行為令人印象深刻,但是如果你能直觀地了解到這個(gè)算法并且知道它如何工作的,你會(huì)有一點(diǎn)兒遺憾。尤其是,什么情況下它會(huì)不好使?

    與人類如何學(xué)習(xí)進(jìn)行Pong游戲相對(duì)比。你向人們展示這個(gè)游戲,然后告訴他們規(guī)則“你要控制這個(gè)擋板,它能向上向下運(yùn)動(dòng),你的任務(wù)就是將球傳給其他由AI控制的玩家”,然后就準(zhǔn)備就緒可以開始了。注意其中由這么幾個(gè)區(qū)別:

    • 在實(shí)踐種,我們通常會(huì)用某種方式來交流溝通這個(gè)任務(wù),但是對(duì)于標(biāo)準(zhǔn)的增強(qiáng)學(xué)習(xí)來說,你只能假設(shè)一個(gè)回報(bào)函數(shù)然后從與環(huán)境的交互中進(jìn)行探索。而當(dāng)人類參與到Pong中時(shí),如果沒有明確的關(guān)于回報(bào)函數(shù)的知識(shí)(尤其是回報(bào)函數(shù)是靜態(tài)但是隨機(jī)的)時(shí),人類在學(xué)習(xí)的過程中將會(huì)面臨很多困難。但是策略梯度就則不關(guān)心這些,并且可能比人類做的還優(yōu)秀。相似地,如果我們把各幀的像素隨機(jī)地置換,對(duì)于人類來說很有可能玩兒不好,但是對(duì)于策略梯度來說甚至可能都感覺不出什么區(qū)別(如果它們用的都是全連接網(wǎng)絡(luò)的話)
    • 人類是帶有大量先驗(yàn)知識(shí)的,比如基本的物理學(xué)(球會(huì)反彈而不會(huì)瞬間移動(dòng),也不太可能會(huì)突然停住,因?yàn)樗鼛в幸恍┧俣?#xff09;。和一些基本的心理學(xué)(AI對(duì)手“渴望”去贏,那就有可能用某種顯而易見的策略去移動(dòng)球等等)。而且你心中有“控制”擋板的這個(gè)概念,并且會(huì)反映在向上向下的按鍵上。與此相反,我們的算法從零開始但很快就讓人印象深刻(因?yàn)樗_實(shí)有效)和沮喪(因?yàn)槲覀儾⒉恢浪裁磿r(shí)候就失效了)
    • 策略梯度是一種暴力搜索的方法,正確的動(dòng)作最終會(huì)被發(fā)現(xiàn)并且固化到策略中。人類會(huì)構(gòu)建一個(gè)強(qiáng)大又抽象的模型,然后用它做規(guī)劃。在Pong中,我們能推理出對(duì)手比較慢,所以“將球高速反擊”將會(huì)是一個(gè)比較好的策略,這可能會(huì)導(dǎo)致對(duì)手無法在足夠的時(shí)間內(nèi)碰到球。然而,我們也會(huì)最終將這策略以肌肉記憶的形式固化在身體里。例如,當(dāng)我們想要學(xué)習(xí)一種新的需要移動(dòng)的任務(wù)(比如說學(xué)習(xí)駕駛一輛手動(dòng)變速的車)你在剛開始會(huì)需要經(jīng)常思考,但是最終會(huì)變得不需要思考,自動(dòng)就能進(jìn)行了。
    • 策略梯度必須直接輸入正回報(bào),并且需要經(jīng)常體驗(yàn)到正匯報(bào),以便于它能慢慢地推動(dòng)策略參數(shù)偏向能重復(fù)產(chǎn)生高回報(bào)動(dòng)作的狀態(tài)。而人類能在不需要直接體驗(yàn)的回報(bào)(譯注:知道最終結(jié)果前)就能知道那些動(dòng)作更容易獲得高回報(bào)。我不用將我的汽車撞毀幾百次才能緩慢地學(xué)會(huì)如何避免碰撞。

    蒙特祖瑪?shù)膹?fù)仇(Montezuma's Revenge):一個(gè)對(duì)我們的增強(qiáng)學(xué)習(xí)算法來說非常復(fù)雜的游戲。玩家必須跳躍、攀爬、拿到鑰匙然后打開門。計(jì)算機(jī)隨機(jī)采樣了幾十億次的移動(dòng),但是99%都是會(huì)掉下去摔死或者被怪物殺死。換句話說,它非常難以進(jìn)入到獎(jiǎng)勵(lì)狀態(tài)(譯注:絕大部分的采樣最終都是負(fù)回報(bào),幾乎沒有正回報(bào),所以沒法訓(xùn)練)。

    另一個(gè)非常難的游戲Frostbite,人類能理解運(yùn)動(dòng),一些東西可以接觸,另外一些東西不能接觸,游戲的目標(biāo)是一塊一塊搭建一個(gè)冰屋。Building Machines That Learn and Think Like People是一個(gè)不錯(cuò)的關(guān)于這個(gè)游戲的分析和關(guān)于人與機(jī)器之間區(qū)別的討論。

    我想要強(qiáng)調(diào)一點(diǎn),相反地,有很多游戲策略梯度能輕易打敗人類。特別是任何會(huì)經(jīng)常有回報(bào)信號(hào),并且需要精準(zhǔn)操控、快速反應(yīng)的游戲。那些不需要做長(zhǎng)期規(guī)劃的游戲很合適。這些短期的游戲的動(dòng)作與回報(bào)之間的關(guān)系能夠被算法輕易地“發(fā)掘”到,然后悄悄地被策略驅(qū)使著完善自己。這在我們開發(fā)的Pong的智能體中已經(jīng)出現(xiàn):它能學(xué)習(xí)到一種策略,等待球靠近然后在邊緣將它接到,因?yàn)檫@樣能以很高的速度將球傳回去。我們的智能體多次用到了這個(gè)策略。深度Q學(xué)習(xí)在很多ATARI游戲上都用這樣的方式打敗了人類,比如說Pinball, Breakout等等。

    總結(jié)一下,一旦你理解這些算法工作的“技巧”,你就能推理出它們的強(qiáng)項(xiàng)和弱項(xiàng)。現(xiàn)在人類距離構(gòu)建一個(gè)抽象、并且具有豐富的游戲表示來幫助我們進(jìn)行規(guī)劃并且能快速學(xué)習(xí)的系統(tǒng)還差得遠(yuǎn)。總有一天,一臺(tái)計(jì)算機(jī)將會(huì)意識(shí)到一個(gè)像素?cái)?shù)組是一把鑰匙、一扇門,并且能意識(shí)到要撿起鑰匙去開門。但是現(xiàn)在我們里這個(gè)還是非常遙遠(yuǎn)的,而這個(gè)領(lǐng)域是一個(gè)熱門的研究領(lǐng)域。

    神經(jīng)網(wǎng)絡(luò)中的不可導(dǎo)運(yùn)算

    我想提一個(gè)跟策略梯度玩兒游戲無關(guān)的應(yīng)用:它能夠讓我們?nèi)ピO(shè)計(jì)并訓(xùn)練一個(gè)由不可導(dǎo)單元組成的神經(jīng)網(wǎng)絡(luò)。這個(gè)概念第一次由Williams于1992年介紹,并且最近在《Recurrent Models of Visual Attention》中用“hard attention”這個(gè)名字重新發(fā)展起來。這個(gè)模型用一系列低解析度的“foveal glances”來處理圖像。特別是在每一次迭代中,RNN都會(huì)收到圖像的一個(gè)小片段,然后隨機(jī)采樣一個(gè)下一次會(huì)看到的位置。比如說,RNN有可能正在看(5, 30)這個(gè)位置,然后看到了圖像的一個(gè)小片段,然后決定去看(24, 50)這個(gè)未知,以此類推。這個(gè)想法有個(gè)問題就是這將會(huì)產(chǎn)生一個(gè)“下一次看哪里”的分布,然后從這個(gè)分布采樣一個(gè)位置。但不幸的是,這個(gè)操作是一個(gè)不可導(dǎo)的操作,因?yàn)槲覀儾恢廊绻蓸拥玫狡渌奈恢脤?huì)有什么變化。具體一些地說,考慮一個(gè)神經(jīng)網(wǎng)絡(luò),接受一些輸入產(chǎn)生一些輸出:

    我們會(huì)發(fā)現(xiàn)大部分的箭頭(藍(lán)色的)像往常一樣都是可導(dǎo)的,但是一些變換形式有可能包含一些不可導(dǎo)的采樣操作(紅色的)。我們能正確地對(duì)藍(lán)色箭頭用BP算法,但是紅色箭頭所表示的依賴關(guān)系我們是沒法用BP算法的。

    而策略梯度則則解決了這個(gè)問題!我們可以將網(wǎng)絡(luò)的一部分看作是嵌入在一個(gè)大網(wǎng)絡(luò)中的隨機(jī)策略。因此,在訓(xùn)練過程中我們將會(huì)產(chǎn)生幾個(gè)樣本(就是下圖中的分支),然后我們會(huì)去鼓勵(lì)產(chǎn)生那些最終能帶來正回報(bào)的樣本(比如說需要在整個(gè)過程結(jié)束后才能評(píng)價(jià)損失函數(shù)值的時(shí)候)。換句話說,我們將會(huì)像平時(shí)一樣去用BP算法來訓(xùn)練藍(lán)色箭頭表示的參數(shù),而對(duì)于紅色箭頭中的參數(shù),我們現(xiàn)在會(huì)用策略梯度的方法來向前傳遞,然后鼓勵(lì)能采樣出使最終損失降低的樣本。這個(gè)想法有一個(gè)很好的形式化說明:《Gradient Estimation Using Stochastic Computation Graphs》

    可訓(xùn)練的存儲(chǔ)I/O

    你可能會(huì)在很多其他的論文中見到這個(gè)想法。比如說,神經(jīng)圖靈機(jī)(Neural Turing Machine)有一個(gè)“磁帶存儲(chǔ)器”,并且能從上面讀取數(shù)據(jù),向上面寫入數(shù)據(jù)。執(zhí)行寫操作一般會(huì)執(zhí)行形如m[i] = x的操作,其中的i和x是通過一個(gè)RNN控制器網(wǎng)絡(luò)(RNN controller network)來產(chǎn)生的。然而,這個(gè)操作是一個(gè)不可導(dǎo)操作,因?yàn)椴]有一個(gè)信號(hào)告訴我們?nèi)绻覀兿蛞粋€(gè)不同的位置j != i寫入,損失函數(shù)會(huì)有什么變化。因此,神經(jīng)圖靈機(jī)必須去做“soft”讀和寫操作。它要預(yù)測(cè)產(chǎn)生一個(gè)分布a(每一個(gè)元素都是0~1之間,而且和為1,然后在我們要寫入的索引附近的位置應(yīng)該有很多峰值。譯注:表示這個(gè)位置更容易被采樣得到),然后執(zhí)行for all i: m[i] = a[i]\*x。雖然現(xiàn)在可導(dǎo)了,但是我們不得不付出很大的計(jì)算代價(jià),因?yàn)楸仨氃L問每一個(gè)內(nèi)存單元去寫入。想象一下,當(dāng)每一次賦值操作都會(huì)訪問整個(gè)內(nèi)存!
    (譯注:這一段是說,神經(jīng)圖靈機(jī)不能像真的計(jì)算機(jī)一樣,直接就能向某個(gè)內(nèi)存單元寫入。因?yàn)檫@樣的操作是不可導(dǎo)的。解決方法就是通過產(chǎn)生一個(gè)分布,然后從這個(gè)分布中采樣得到每一個(gè)“每一個(gè)內(nèi)存單元內(nèi)是否寫入數(shù)據(jù)”的樣本,然后通過遍歷每一個(gè)內(nèi)存單元與這個(gè)樣本共同控制是否寫入內(nèi)容。這樣雖然讓這個(gè)問題變得可導(dǎo)、能用BP算法運(yùn)算,但是每一次操作都會(huì)伴隨著對(duì)所有內(nèi)存單元的訪問。)

    然而,我們能用策略梯度(在理論上)來解決這個(gè)問題,而RL-NTM也就是這么做的。我們現(xiàn)在還是預(yù)測(cè)一個(gè)attention分布a,但是現(xiàn)在我們不再做soft寫入,而是采樣得到一個(gè)寫入的位置:i=sample(a); m[i]=x。在訓(xùn)練過程中,我們將會(huì)對(duì)一個(gè)小批i進(jìn)行這個(gè)操作,而最終要看哪一個(gè)分支工作的最好。而且在測(cè)試階段,我們只需要對(duì)一個(gè)位置進(jìn)行寫入/讀取就可以了,這回打來巨大的計(jì)算力的解放。然而,就像這篇論文中指出的一樣,這個(gè)策略非常難以發(fā)揮作用,因?yàn)椴蓸涌倳?huì)導(dǎo)致意外的錯(cuò)誤。現(xiàn)在,大家一致認(rèn)為策略網(wǎng)絡(luò)只有在只包含了幾個(gè)離散的選擇時(shí)才有效,當(dāng)需要從巨大的搜索空間中搜索時(shí),這個(gè)方法就變得毫無希望了。

    然而,我們擁有策略梯度算法和大量的數(shù)據(jù)和計(jì)算能力,我們現(xiàn)在能想的長(zhǎng)遠(yuǎn)一些,比如說我們能夠設(shè)計(jì)一個(gè)神經(jīng)網(wǎng)絡(luò),去學(xué)習(xí)如何與一個(gè)巨大的、不可導(dǎo)的模塊進(jìn)行交互,例如LaTeX的編譯器(比如說你可以做一個(gè)字符級(jí)的RNN然后產(chǎn)生LaTeX代碼然后編譯),或者一個(gè)SLAM(Simultaneous Localization and Mapping)系統(tǒng)、一個(gè)LQR(Linear Quadratic Regulator)求解器,或者其他的什么東西。再比如說,一個(gè)超級(jí)智能的東西能夠?qū)W習(xí)如何用TCP/IP協(xié)議與互聯(lián)網(wǎng)進(jìn)行交互(這顯然是一個(gè)沒法求導(dǎo)的問題)去了解如何接管這個(gè)世界的致命信息。

    結(jié)語

    我們看到了策略梯度這個(gè)功能強(qiáng)大,適用范圍廣泛的算法,并且作為例子我們從零開始用130行Python代碼實(shí)現(xiàn)并訓(xùn)練了一個(gè)ATARI Pong的像素級(jí)智能體。同樣的算法還可以被用來訓(xùn)練很多其他的游戲,總有一天它會(huì)為很多現(xiàn)實(shí)世界中復(fù)雜控制問題的解決帶來希望。我想要在這篇文章的結(jié)尾處再寫幾句:

    關(guān)于推動(dòng)AI

    我們已經(jīng)了解到這些算法使用了包里搜索的方法,也就是剛開始隨機(jī)地游走,然后一定會(huì)跌跌撞撞地得到至少一次回報(bào),然后再理想情況下,這個(gè)過程要重復(fù)很多次,直到策略分布通過調(diào)整它的參數(shù)能夠做出合理的動(dòng)作。我們也了解到這些問題對(duì)人類來說也是非常困難的。這就好像快速構(gòu)建一個(gè)抽象模型——我們僅僅在研究中觸及冰山一角(盡管很多然都在嘗試)。這些抽象模型非常難(如果不是不可能的話)以明確地被評(píng)注,這也就是為什么我們最近在(無監(jiān)督)生成模型和程序歸納(Program Induction)領(lǐng)域表現(xiàn)出極大興趣的原因。

    關(guān)于復(fù)雜機(jī)器人的應(yīng)用

    算法并不能簡(jiǎn)單地推廣到需要大量探索的場(chǎng)景中。比如說,一個(gè)機(jī)器人應(yīng)用中有可能包含了一個(gè)(或幾個(gè))機(jī)器與現(xiàn)實(shí)世界中的實(shí)時(shí)交流。我們上面提到的算法在這個(gè)場(chǎng)景中可能沒法使用。一個(gè)試圖解決這個(gè)問題的相關(guān)工作是deterministic policy gradients。這個(gè)方法不是通過從隨機(jī)策略中采樣然后鼓勵(lì)這個(gè)采樣能獲得更高的分?jǐn)?shù),而是通過確定的策略直接從第二個(gè)網(wǎng)絡(luò)(稱為critic)中獲得梯度信息并對(duì)打分函數(shù)建模。這個(gè)方法能夠在高維動(dòng)作場(chǎng)景中取得更好的效果,而動(dòng)作采樣的方法收斂性不強(qiáng)。但是目前從經(jīng)驗(yàn)上看來想要讓它有效果還是需要很多繁瑣的工作需要做的。另一個(gè)相關(guān)的方法是規(guī)模化機(jī)器人(scale up robotics),就像谷歌的機(jī)械臂農(nóng)場(chǎng),或許還包括Tesla的Model S和自動(dòng)駕駛技術(shù)

    還有另一種方法能使得搜索過程更加容易,那就是加上額外的監(jiān)督信息。在一些特定的情況,機(jī)器能獲取到人類專家的指導(dǎo)。比如說AlphaGo就首度利用了監(jiān)督學(xué)習(xí)的方法去預(yù)測(cè)人類圍棋專家的落子,然后去再通過策略梯度針對(duì)贏得游戲的“真實(shí)的”目標(biāo)函數(shù)微調(diào)之后,模仿人類的落子策略。在一些情況下只需要不多的專家指導(dǎo)(比如遠(yuǎn)程操作機(jī)器人),話有一些其他技術(shù)通過apprenticeship learning利用這些數(shù)據(jù)。最后如果沒有任何人類提供的監(jiān)督數(shù)據(jù),仍然有些代價(jià)很高的優(yōu)化算法可以用。比如說trajectory optimization就是一個(gè)廣為人知的動(dòng)力模型(比如說物理引擎中的F=ma),或者其他可以通過學(xué)習(xí)局部近似的動(dòng)態(tài)模型(常見于非常靠譜的框架Guided Policy Search)

    關(guān)于使用策略梯度的最佳實(shí)踐

    在上面我提到過,我想做一些在RNN那篇博文中做過的事情。我在那篇文章中展示了RNN的魔力,并且展示了一個(gè)自動(dòng)序列生成問題。但事實(shí)上,想要讓這些模型正確工作起來是需要很多小技巧的,它需要小心而又專業(yè)地調(diào)參,并且在很多時(shí)候,用這么復(fù)雜的模型就像大炮轟蚊子。可能一個(gè)更簡(jiǎn)單的方法在90%的情況下都是有效的。同樣,對(duì)于策略梯度來說,它也不是全自動(dòng)就能用的:你需要大量的樣本,然后永遠(yuǎn)訓(xùn)練下去,當(dāng)它不好使的時(shí)候也很難去debug。你應(yīng)該在決定使用火箭筒之前先試試玩具槍。在增強(qiáng)學(xué)習(xí)的例子中,有一個(gè)很厲害的基準(zhǔn)方法你應(yīng)該先試試,那就是交叉熵方法(Cross-entropy Method, CEM)。它是一個(gè)由進(jìn)化算法啟發(fā)而成的簡(jiǎn)單的隨機(jī)向上的“猜測(cè)、驗(yàn)證”方法。如果你一定要在你的問題中嘗試使用策略梯度,那就一定要多花些經(jīng)歷在很多論文tricks的章節(jié)。從最簡(jiǎn)單的開始,使用一種PG的變種TRPO。它在實(shí)踐中幾乎總是比最普通的策略梯度算法有效。它的核心思想是避免因參數(shù)更新導(dǎo)致策略變化的太頻繁,強(qiáng)制增加了一個(gè)子一組數(shù)據(jù)上得到的新老兩個(gè)分布KL距離的約束(而不是結(jié)合上所有的梯度,關(guān)于這個(gè)想法最簡(jiǎn)單的例子就是線搜索(line search)然后一直檢查KL距離)。

    好的!我希望我已經(jīng)大致給你講明白了什么是增強(qiáng)學(xué)習(xí),以及其中的難點(diǎn)是什么。如果你非常渴望去幫助增強(qiáng)學(xué)習(xí)的發(fā)展,那我邀請(qǐng)你在OpenAI Gym中嘗試一下:)下次見。


    原文: http://karpathy.github.io/2016/05/31/rl/?_utm_source=1-2-2

    總結(jié)

    以上是生活随笔為你收集整理的Deep Reinforcement Learning: Pong from Pixels的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    日韩影片在线观看 | 亚洲欧美日韩一二三区 | a级片韩国 | 成年人免费在线观看 | 国产一区二区三区免费在线观看 | 天天插视频 | a v在线观看 | 免费福利在线 | 人人澡人人澡人人 | 国产精品久99 | 日本精品在线看 | a级国产乱理伦片在线观看 亚洲3级 | 久久艹艹 | 91精品91 | 欧美日韩一级视频 | 亚洲三级在线播放 | 国产精品欧美久久久久久 | 日韩午夜小视频 | 97中文字幕 | 免费成人在线网站 | 国产美女视频免费 | 免费视频网 | 四虎成人精品永久免费av九九 | 国产精品初高中精品久久 | 久久国产午夜精品理论片最新版本 | 亚洲精品一区二区三区在线观看 | 伊人色综合久久天天网 | 91激情视频在线 | 色婷丁香| 国产福利一区二区在线 | 久久久精品视频网站 | 91看片在线免费观看 | 免费日韩电影 | 中文字幕视频一区 | 欧美日韩亚洲第一 | 精品xxx | 国内精自线一二区永久 | 91av久久| 亚洲伊人网在线观看 | av免费观看网站 | 五月天视频网站 | 色爱成人网 | 一区av在线播放 | 香蕉视频一级 | 91精品视频在线观看免费 | 亚洲国产视频网站 | 手机av看片 | 亚洲一级片 | 色欧美视频| 国产一级淫片免费看 | 欧美大码xxxx| 婷婷亚洲综合五月天小说 | 青春草免费在线视频 | 午夜神马福利 | 欧美高清视频不卡网 | 亚洲成人999 | 亚洲激情综合网 | 亚洲成人在线免费 | 国产涩涩在线观看 | 欧美激情视频一区 | 亚州视频在线 | 最近字幕在线观看第一季 | 成年美女黄网站色大片免费看 | 蜜臀av免费一区二区三区 | 91免费黄视频 | 精品美女久久久久 | 欧美激情精品久久久久久免费 | 亚洲精品九九 | 日韩中文字幕免费电影 | 国产精品丝袜久久久久久久不卡 | 国产午夜三级一二三区 | 日韩网站视频 | 天天操天天操天天操天天操天天操天天操 | 看片黄网站| 91视频高清完整版 | av免费在线观看网站 | 中文字幕资源站 | 五月天电影免费在线观看一区 | 日本精品免费看 | 日本久久久影视 | 色偷偷中文字幕 | 人人澡人人爽 | 国产精品免费在线 | 六月丁香激情网 | av先锋中文字幕 | 久久综合电影 | 日韩精品字幕 | 欧美日韩国产网站 | 国产毛片在线 | 狠狠色丁香九九婷婷综合五月 | 日韩精品91偷拍在线观看 | 日韩高清一 | 国产在线a视频 | 久久午夜色播影院免费高清 | 日韩在线第一区 | 视频 天天草 | 日韩精品 在线视频 | 久久九九影视网 | 一区二区三区精品在线视频 | 免费网站看v片在线a | 国产精品a级 | 成人黄色小视频 | 精品久久久精品 | 免费观看完整版无人区 | 国产精品毛片一区视频 | 久久久久区| 成人av资源网 | 成年人黄色免费视频 | 最新国产精品亚洲 | 国产高清精品在线观看 | 国内精品久久久久久中文字幕 | 成人午夜影视 | 日韩天天干 | 91尤物国产尤物福利在线播放 | 青青草华人在线视频 | 国产精品久久久久久久久久尿 | 免费三级a| 天天操夜| 国产精品成人免费精品自在线观看 | 玖玖在线免费视频 | 激情久久久 | 在线观看亚洲精品 | 欧美一区三区四区 | 婷婷精品在线视频 | 国产免费一区二区三区最新6 | 精品久久久一区二区 | 国产一区二区精品久久 | 国产只有精品 | 99精品在线看 | 免费视频一区 | 久久有精品 | 国产视频一区二区在线播放 | 国产一级三级 | 蜜桃麻豆www久久囤产精品 | 亚洲国产色一区 | 999电影免费在线观看2020 | a在线播放 | 国产精品99久久久久久有的能看 | 国产99在线免费 | 亚洲日韩精品欧美一区二区 | 91久久精品一区 | 免费黄色看片 | 51久久夜色精品国产麻豆 | 中文字幕在线观看完整版电影 | 一区二区三区在线播放 | 亚洲女人天堂成人av在线 | 夜夜夜影院 | 国产精品久久久久久超碰 | 亚洲国产精品女人久久久 | 日韩av电影一区 | 综合久久久久久久久 | 国产精品18久久久久久不卡孕妇 | 青青草国产成人99久久 | 国产亚洲aⅴaaaaaa毛片 | 国产一区二区在线观看免费 | 日韩免费精品 | 97视频在线免费观看 | 18久久久 | 我爱av激情网 | 久久国产三级 | 欧美99精品 | 久草视频中文 | 国精产品999国精产品岳 | 中文字幕在线观看完整版电影 | 欧美久久精品 | 成人av视屏 | 国产精品国产三级国产 | 国产精品免费视频久久久 | 国产综合精品一区二区三区 | 欧美污污视频 | 成人三级av | 91激情视频在线 | 国产91在线播放 | 国产精品美女久久久久久 | 久久一本综合 | 一区二区三区四区精品 | 亚洲高清国产视频 | 亚洲三区在线 | 国产69精品久久app免费版 | 成人黄色在线电影 | 色中色亚洲 | 天天要夜夜操 | 中文字幕91在线 | 日韩高清 一区 | 一本一本久久aa综合精品 | 久久综合狠狠综合久久狠狠色综合 | 亚洲成av人影院 | 久久久精品久久 | 久久不卡国产精品一区二区 | 国产三级在线播放 | 国产精品毛片一区视频播不卡 | 视频在线观看入口黄最新永久免费国产 | 美女免费视频网站 | 麻豆免费在线播放 | 亚洲天天在线日亚洲洲精 | 色a在线观看 | 国产99久久久国产精品 | 国产亚洲视频在线观看 | 久草在线观看资源 | 成人免费视频a | 国产亚州精品视频 | 超碰大片 | 久艹在线免费观看 | 人人爽影院| 国产精品自产拍在线观看桃花 | 亚洲精品高清一区二区三区四区 | 日韩1级片 | 西西444www大胆高清图片 | 色94色欧美 | 中文字幕免费观看全部电影 | 国产91精品高清一区二区三区 | 国产在线专区 | 国产超碰在线 | 亚洲欧洲日韩在线观看 | 九九热在线精品视频 | 啪啪凸凸| 国产在线观看不卡 | 三级黄色在线 | 91日本在线播放 | 超级碰碰免费视频 | 最新91在线视频 | 99国产精品免费网站 | 国产一区免费观看 | 91亚洲精品乱码久久久久久蜜桃 | 久久视频这里有精品 | 国产精品日韩欧美 | 人成在线免费视频 | 欧美孕交vivoestv另类 | 亚洲涩涩涩| 色综合天天干 | www.狠狠插.com | 国产又粗又硬又爽视频 | 在线亚洲午夜片av大片 | 久久香蕉电影 | 美女福利视频网 | 免费观看黄 | 日韩欧美在线观看一区二区三区 | 亚洲爱爱视频 | 黄色av免费电影 | 国产精品激情 | 中文字幕国产一区 | 精品国产一区二区三区久久久蜜臀 | 国内外成人免费在线视频 | 免费精品人在线二线三线 | 在线播放国产一区二区三区 | 人人dvd| 亚洲黄色一级视频 | 国产黄在线免费观看 | 久久久久久97三级 | 久草影视在线观看 | 日韩av资源在线观看 | 午夜久久 | 国产精品久久久99 | 在线观看成人网 | 婷婷丁香综合 | 天天骚夜夜操 | 国产精品久久久久久久久久久杏吧 | 亚洲三级黄色 | 波多野结衣网址 | 亚洲精品久久久久999中文字幕 | 色在线网站 | 69精品在线| 精品人妖videos欧美人妖 | 四虎成人精品永久免费av | 亚洲精品福利在线 | 日韩久久久久久久久久 | 日韩欧美综合精品 | 福利视频在线看 | 成人91在线 | 精品亚洲午夜久久久久91 | www色com| 午夜久久久久久久久久影院 | 午夜国产一区二区 | 亚洲视频久久久 | 免费观看9x视频网站在线观看 | 欧美一区二区三区在线看 | 天天操天天操天天操天天操天天操天天操 | 欧美日韩视频在线一区 | 美女搞黄国产视频网站 | 碰超在线 | 国产91在线观 | 欧美亚洲免费在线一区 | 日日爽天天爽 | 91av短视频 | 久久五月天婷婷 | 日本中文字幕高清 | 国产精品99久久久久久小说 | 国产免费又爽又刺激在线观看 | 亚洲精品国偷自产在线91正片 | 99精品视频免费全部在线 | 在线黄色国产电影 | 亚洲高清国产视频 | 黄色一区三区 | 97精品超碰一区二区三区 | 亚洲精品88欧美一区二区 | 黄色com| 国产黄色精品视频 | 国产精品成人av电影 | 午夜av剧场 | 黄色免费大片 | 国产精品毛片一区 | 国产丝袜制服在线 | 亚洲色综合 | 国产一区高清在线 | 午夜久久精品 | 国产精品一区二区三区在线播放 | 激情 一区二区 | 免费福利视频网站 | 久久精品爱爱视频 | 人人射人人爱 | 91最新在线 | 国产日韩欧美在线观看视频 | 久久久久国产精品午夜一区 | 视频在线日韩 | 成人免费网视频 | 正在播放 国产精品 | 欧美日韩高清国产 | 狠狠地操 | 久久久国产一区二区三区四区小说 | 欧美成天堂网地址 | 国产精品18久久久久vr手机版特色 | 国产一区二区在线免费视频 | 成人av资源网站 | 国产视频一区二区在线观看 | 国产日韩中文字幕 | 久精品视频在线观看 | 91av在线免费播放 | 国产99在线 | 九九免费观看视频 | 精品国产午夜 | www色网站| 国产美女精品视频 | 黄色一级大片在线免费看国产一 | 亚洲综合色av | 国产精品第二页 | 国产理论在线 | 亚洲蜜桃在线 | 最新国产一区二区三区 | 国产精品国产三级国产不产一地 | 亚洲国产成人精品在线 | 国内精品视频一区二区三区八戒 | 亚洲精品一区二区18漫画 | 久久国产精品免费 | 婷久久 | 激情影院在线观看 | 亚洲少妇久久 | 精品国产一区二区三区四 | 91资源在线播放 | 久久精品精品 | 国产亚洲午夜高清国产拍精品 | 看污网站 | 人交video另类hd | 在线亚洲高清视频 | 欧美日韩免费在线视频 | 日韩精品中文字幕有码 | 亚洲国产免费看 | 青草视频在线 | av黄色av | 亚洲精品自在在线观看 | 在线免费观看的av网站 | 99久久999久久久精玫瑰 | 亚洲国产mv | 中文永久免费观看 | 中文字幕国产在线 | 国产99一区视频免费 | 亚洲视频在线观看 | 日韩精品中文字幕有码 | 精品无人国产偷自产在线 | 国产中文视频 | 久久高清免费 | 亚洲视频播放 | 六月丁香激情综合色啪小说 | av中文字幕第一页 | 中文字幕av在线电影 | 91av视频| 三上悠亚一区二区在线观看 | 四虎亚洲精品 | 日韩久久视频 | 国产精品成人一区 | 91超碰在线播放 | 黄色在线观看网站 | 欧美一区免费观看 | 在线不卡中文字幕播放 | 97国产大学生情侣白嫩酒店 | 激情婷婷在线观看 | 黄色官网在线观看 | 欧美一区二区三区特黄 | 国产精品人人做人人爽人人添 | www.操.com | 国产精品久久久久久久久软件 | 97超碰精品 | a成人v在线 | 国产日韩欧美综合在线 | 操操操夜夜操 | 99久久激情视频 | 国产精品综合久久久久 | 欧美精品xxx| 国产一级二级在线播放 | 成人av网站在线观看 | 激情综合婷婷 | 成年人视频免费在线 | 欧美激情第28页 | 国产午夜精品免费一区二区三区视频 | 在线观看你懂的网址 | 精品在线小视频 | av一区二区三区在线观看 | 在线观看免费色 | www.888.av | 欧美日韩国产一区二区在线观看 | 国产一区二区三区免费视频 | 亚洲国产视频网站 | 天天操,夜夜操 | 美女黄频 | 伊人中文网 | 999电影免费在线观看2020 | 亚洲精品视频网站在线观看 | 天天插视频 | 久久99亚洲精品久久久久 | 国内精品视频免费 | av综合站 | 免费在线播放 | 亚洲人成人在线 | 99久久久久成人国产免费 | 色婷婷综合成人av | 国产色婷婷 | 久久在线观看视频 | 久久人人爽人人爽人人片av免费 | 久久婷婷激情 | 国产精成人品免费观看 | av官网| 激情视频综合网 | 色资源网免费观看视频 | 成人黄色片免费看 | 精品国产自在精品国产精野外直播 | 在线欧美a| av三级av| 国产麻豆传媒 | 一区二区精品在线 | 在线视频在线观看 | 久久精品www人人爽人人 | 人人插人人看 | 久久久久久久久久久久国产精品 | 美女国产精品 | 蜜桃传媒一区二区 | 亚洲精品视频二区 | av在线播放不卡 | 成人免费观看视频网站 | 91超碰在线播放 | 日韩电影在线观看一区二区三区 | 久久夜夜夜 | 五月激情久久 | 人人揉人人揉人人揉人人揉97 | 久久国产精品第一页 | 亚洲国产wwwccc36天堂 | 国产精品区一区 | 精品国产乱码久久久久久久 | 97国产电影 | 国产一区私人高清影院 | 中文字幕电影网 | 日韩三级视频在线观看 | 最新午夜电影 | www.91av在线| 免费看黄的视频 | 日韩欧美在线免费观看 | 久久激情视频 久久 | 99精品久久99久久久久 | 中文字幕高清免费日韩视频在线 | 在线播放视频一区 | 国产精品美女久久久久久久久 | 国产成人精品一区一区一区 | 美女网站黄在线观看 | zzijzzij亚洲日本少妇熟睡 | 国内亚洲精品 | 婷婷婷国产在线视频 | 亚洲精品视频网站在线观看 | 国产精品久久久久永久免费观看 | 免费午夜网站 | 在线不卡中文字幕播放 | 亚洲精品高清视频在线观看 | 成人在线一区二区 | 国产精品成人国产乱 | 高清视频一区二区三区 | 日韩高清av在线 | 欧美一级免费 | 99久久99视频只有精品 | 免费观看一级成人毛片 | 日日碰夜夜爽 | 麻豆94tv免费版 | 亚洲五月婷婷 | 99久久99久久精品国产片果冰 | 久久综合狠狠综合久久狠狠色综合 | 欧美精品久久久久 | 人人爽人人搞 | 日本中文一级片 | 最近最新中文字幕视频 | 在线看成人av | 99精品观看 | 天天综合中文 | 久色小说 | 亚洲永久国产精品 | av一区在线 | 天天色天天| 久久任你操 | 欧美 高跟鞋交 xxxxhd | 久久久人人人 | 久久久久二区 | 91视频a| 久久久久免费精品国产小说色大师 | 在线一区电影 | 精品国产亚洲一区二区麻豆 | 在线免费观看的av网站 | 国产成人精品国内自产拍免费看 | 91大神精品视频在线观看 | 久久久91精品国产一区二区三区 | 2019久久精品 | 99在线热播精品免费99热 | 国产精品 亚洲精品 | 深爱婷婷| 久久久久久久久久久久久影院 | 成人h动漫在线看 | 五月天久久婷 | 四虎免费在线观看视频 | 激情黄色av| 高清精品在线 | 99精品电影| 福利视频第一页 | 国产精品9999久久久久仙踪林 | 欧美一级激情 | 草免费视频 | 永久免费av在线播放 | 国产精品免费视频观看 | 久久久精品欧美 | 国产在线综合视频 | 狠狠插狠狠操 | 免费网站黄色 | 精品一区二区三区在线播放 | 69亚洲乱 | 免费看黄在线看 | 日韩免费播放 | 国产一区在线视频观看 | 91一区一区三区 | 爱爱一区 | 天天激情综合网 | 日韩欧美综合 | 永久av免费在线观看 | 久久色网站 | 日韩毛片在线免费观看 | 狠狠狠狠狠干 | 91香蕉亚洲精品 | 丁香五香天综合情 | 肉色欧美久久久久久久免费看 | 91在线免费公开视频 | 中文字幕网站视频在线 | 综合色中色| 欧美怡红院视频 | 欧美精品小视频 | 久久久久久免费网 | 亚洲国产精品资源 | 高潮久久久 | 日韩在线观看三区 | 中文字幕第一 | 一区二区三区在线看 | 国产精品福利av | 国产日韩一区在线 | 欧美性春潮 | 不卡精品 | 97视频中文字幕 | 国产一级电影在线 | 天天干天天玩天天操 | 亚洲成年人av| 久草视频免费在线观看 | 亚洲精品乱码久久久久久蜜桃91 | 国产 亚洲 欧美 在线 | 久久天天综合网 | 久久免费99| 国产日本三级 | 久久久香蕉视频 | 久久免费视频在线 | 丁香色综合 | 五月天婷婷视频 | 亚洲国产成人在线 | 天天操狠狠操夜夜操 | 午夜精品视频在线 | 国内外激情视频 | 欧美与欧洲交xxxx免费观看 | 成年人黄色大片在线 | 国产精品激情在线观看 | 成人免费在线播放视频 | 欧美性天天 | 99产精品成人啪免费网站 | 草莓视频在线观看免费观看 | 午夜视频在线观看一区二区三区 | 久久国精品 | 国产丝袜一区二区三区 | 久久综合狠狠 | 91麻豆高清视频 | 日韩欧美在线视频一区二区三区 | 国产一级二级在线播放 | 干干干操操操 | 国产剧情av在线播放 | 亚洲精品午夜久久久久久久久久久 | 亚洲国产中文字幕 | 91福利试看 | 成人av高清 | 黄色美女免费网站 | 808电影免费观看三年 | 国产精品一区二区三区免费视频 | 狠狠狠色丁香婷婷综合久久88 | 精品久久久久国产免费第一页 | 国产99久久久国产精品 | 奇米影视四色8888 | 国产精品av久久久久久无 | 黄色小说在线观看视频 | 日韩成人免费在线 | 88av视频| 国产精品久久久久久a | 精品国产乱码久久久久久天美 | 91免费版在线观看 | 91看片淫黄大片91 | 国产三级香港三韩国三级 | 亚洲精品美女在线 | 五月开心婷婷网 | 国产成人一二三 | 免费看国产视频 | 97色视频在线 | 久久亚洲私人国产精品 | 国产高清视频在线 | 免费黄色在线播放 | 中文字幕在线免费观看 | 黄色软件在线看 | 五月婷婷综合在线视频 | 国产成人无码AⅤ片在线观 日韩av不卡在线 | 色婷婷视频在线观看 | 国产精品久久精品国产 | 99久久er热在这里只有精品15 | www91在线| 久久这里精品视频 | 中文字幕视频网 | 亚洲精选在线观看 | 天天操天操 | 精品国产成人在线影院 | 香蕉视频啪啪 | 久章操| 9幺看片| 免费黄色在线网址 | 69久久久久久久 | 国产91大片 | 这里有精品在线视频 | 日韩欧美在线视频一区二区三区 | 人人爱爱| 天天综合视频在线观看 | 成年人在线观看 | 婷婷综合网| 日本久久电影 | 久久精品欧美一区二区三区麻豆 | 最近日本字幕mv免费观看在线 | 免费h在线观看 | 亚洲国产字幕 | 成人福利在线播放 | 免费的黄色av | 婷婷新五月 | 免费观看黄 | 欧美在线观看视频免费 | 日韩精品久久中文字幕 | 日本久久成人中文字幕电影 | www.久久免费视频 | 欧美国产日韩一区 | 国产一级大片免费看 | 日韩视频一区二区 | 成人黄色小说在线观看 | 久久av网址 | 久久电影中文字幕视频 | 97精品视频在线 | 日日日天天天 | 日韩中文在线电影 | 国产精品毛片一区二区在线 | 丁香婷婷激情网 | 日本特黄一级 | 成人免费视频网址 | 国产成人高清 | 日韩欧美在线高清 | 婷婷色综 | 婷婷激情五月 | 九九免费在线观看视频 | 91大神在线看 | 亚洲精品高清一区二区三区四区 | 久久资源在线 | 91福利视频网站 | 欧美一级视频在线观看 | 国产亚洲精品久久久久久电影 | 日韩av高清在线观看 | 午夜少妇一区二区三区 | 欧美在线视频一区二区三区 | 中文字幕亚洲欧美日韩 | 欧美性性网 | 国产高清av在线播放 | 综合久久久久 | 天堂av免费 | 国产精品二区在线观看 | 国产精品高清一区二区三区 | 国产精品久久久久久久婷婷 | 欧美精品一级视频 | 香蕉视频久久 | 天天综合色天天综合 | 天天综合狠狠精品 | 深爱婷婷| 午夜免费福利视频 | 日韩欧美一区二区三区黑寡妇 | 在线观看免费国产小视频 | 亚洲欧美日韩中文在线 | 亚洲国产成人在线观看 | 国产精品欧美久久久久无广告 | 91久久国产自产拍夜夜嗨 | 久久精品免费观看 | 97理论片 | 中文字幕麻豆 | 亚洲精选视频免费看 | 一区中文字幕电影 | 激情久久综合网 | 日韩三级免费 | 91成人在线看 | 亚洲午夜精品在线观看 | 免费亚洲视频在线观看 | 精品久久久久久久久久 | 日韩免费高清在线 | 黄污污网站| 福利网在线| av色一区| 日韩视频在线一区 | 成人免费视频免费观看 | av高清网站在线观看 | 91天天操| 一区二区国产精品 | 色视频网站免费观看 | 日韩免费中文字幕 | 亚洲综合射| 99亚洲天堂 | 日韩久久一区 | 91av视频在线观看免费 | 国产精品成人一区 | 亚洲三级网 | 在线亚洲成人 | 国产生活一级片 | 成人在线中文字幕 | 成人av地址 | 国产精品久久久久久久久久白浆 | 色综合咪咪久久网 | 精品在线一区二区三区 | 一级成人免费 | 91视频电影| 国产在线视频一区 | 中文字幕2021 | 欧美淫视频 | 天天性天天草 | 黄色特一级 | 国产一级免费在线观看 | 日韩免费观看av | 日韩免费av网址 | 国产综合片 | 日韩簧片在线观看 | 伊人射 | 国产精品1区2区在线观看 | 成人在线超碰 | a电影免费看 | 久久久一本精品99久久精品66 | 99免费在线观看视频 | 男女激情网址 | 久久无码精品一区二区三区 | 97影视| 婷色| 欧美在线观看视频免费 | 久久夜av | 国产精品18久久久久久久久久久久 | 天堂视频一区 | 日日夜夜爱 | 丰满少妇一级 | 日韩3区 | 超黄视频网站 | 国产在线色 | 日产乱码一二三区别在线 | 亚洲美女视频网 | 亚洲精品在线免费播放 | 日韩av一区二区三区在线观看 | 91精品在线看 | 国产日韩视频在线播放 | 久久精品成人 | 96看片 | 亚洲va韩国va欧美va精四季 | 毛片99 | 久久夜夜操| 久久呀 | 国产精品涩涩屋www在线观看 | 久久久国产一区 | 最新久久免费视频 | 九九在线视频免费观看 | 日韩精品一区二区久久 | 91黄色小网站| 日韩中文字幕一区 | av日韩国产| 欧美一区二区在线刺激视频 | 国产小视频在线观看免费 | 色香com.| av黄色在线播放 | 欧美激情奇米色 | 国产美女视频网站 | 一区二区三区免费在线观看视频 | 日韩亚洲精品电影 | 毛片网在线观看 | 成人免费大片黄在线播放 | 色99中文字幕 | 久久精品国产成人精品 | 人人舔人人干 | 国产亚洲欧美一区 | 国产91勾搭技师精品 | 欧美一级性 | 国产精品一区二区三区四区在线观看 | av电影在线观看 | 91免费在线播放 | 精品一区电影 | 婷婷 综合 色 | 久久不卡国产精品一区二区 | av高清在线观看 | 91精品导航 | 91色亚洲 | 最近字幕在线观看第一季 | 欧美日韩国产mv | 五月天综合色 | 亚洲国产精品激情在线观看 | www.五月天激情 | 中文字幕免费国产精品 | 久久久久久久av | 麻豆高清免费国产一区 | 五月激情六月丁香 | 狠狠色狠狠色终合网 | 午夜丁香网| 亚洲 欧洲 国产 精品 | 97成人在线观看 | 最近更新中文字幕 | 天天色天天操天天爽 | 免费中文字幕 | 成人h在线 | 日韩免费观看视频 | 免费看网站在线 | 大胆欧美gogo免费视频一二区 | 中文字幕在线看视频 | 国产精品不卡 | 综合色中文| 国产欧美中文字幕 | 欧美午夜剧场 | 日韩一区二区免费在线观看 | 在线视频区 | 亚洲va在线va天堂va偷拍 | 人人爽人人澡人人添人人人人 | 久草在线在线视频 | 久久99精品久久久久婷婷 | a电影在线观看 | 国产成人a亚洲精品v | 高清中文字幕 | 欧美亚洲精品在线观看 | 亚洲精品在线电影 | 亚洲精品1区2区3区 超碰成人网 | 亚洲视频在线看 | 国产成人三级 | 999男人的天堂| 久久久久久久网 | 亚洲综合成人婷婷小说 | 一区二区三区四区五区在线视频 | 久久精品久久久久久久 | 亚洲一二区视频 | 国产第页 | 国产精品久免费的黄网站 | 欧美精品第一 | 日日夜夜综合网 | 国产精品久久久久久影院 | 天天天色综合 | 亚洲精品玖玖玖av在线看 | 欧美片一区二区三区 | 久久综合色婷婷 | 国内外成人免费在线视频 | 人人草天天草 | 91福利试看 | 亚洲日本三级 | 久久久久久久久久久网站 | 天天爽天天射 | 日韩免费看 | 色99导航 | 久久国产日韩 | 亚洲欧洲一区二区在线观看 | 日日夜夜免费精品视频 | 日韩精品久久久久久中文字幕8 | 日韩久久精品一区二区 | 日本黄区免费视频观看 | 国内精品久久久久影院一蜜桃 | 欧美性色黄 | 97综合网| 国产在线观看免费观看 | 中文字幕免费观看全部电影 | 久久久夜色 | 午夜影院在线观看18 | 久久精品国产一区 | 精品久久久久久亚洲综合网站 | 91色亚洲| 精品在线视频观看 | 午夜av免费 | 欧美另类xxxxx | 免费看一级黄色大全 | 狠狠色丁香久久婷婷综合_中 | www中文在线 | 美女黄频网站 | 日日爽日日操 | 日韩视频专区 | 日韩国产高清在线 | 国产v在线| 国产亚洲免费观看 | 亚洲欧洲xxxx| 久久观看免费视频 | 精品久久一 | 五月婷香蕉久色在线看 | 久久黄色网址 | 日韩亚洲精品电影 | 欧美孕妇视频 | a级成人毛片 | 国产精品18久久久久久久久久久久 | 国产精品99久久久久久小说 | 亚洲第一成网站 | 国产视频在线观看免费 | 最近高清中文在线字幕在线观看 | 在线观看国产亚洲 | 国产成年人av | 久久久99精品免费观看乱色 | 欧美日韩国产精品久久 | www视频免费在线观看 | 奇米网444| 日韩精品一二三 | 中国成人一区 | 狠狠色伊人亚洲综合网站色 | 黄色片免费看 | 日本一区二区高清不卡 | 中文字幕一区二区三区乱码在线 | 丁香高清视频在线看看 | 免费高清在线视频一区· | 亚洲成a人片77777kkkk1在线观看 | 成人免费xyz网站 | 日韩精品视频免费看 | 亚洲国产精品成人va在线观看 | 一区二区不卡视频在线观看 | 亚洲欧洲精品一区二区精品久久久 | 亚洲精品视频一 | 国产理论片在线观看 | 国产区精品视频 | 日韩视频免费播放 | 久久精品三 | 国产精品久久久久久久久久久久午夜 | 久久久精品高清 | 黄色三级视频片 | 日韩理论在线观看 | 国产精品完整版 | 国产成人黄色 | 91福利视频免费 | 中文视频一区二区 | a'aaa级片在线观看 | 国产一级精品在线观看 | 欧美日韩中 | 亚洲黄色大片 | 中文字幕在线播放av | 亚洲国产小视频在线观看 | 国产成人不卡 | a黄色大片| 狠狠躁夜夜躁人人爽视频 | av天天色 | 日本黄色大片免费 | 日韩激情综合 | 91九色视频国产 | 欧美日韩一区三区 | 六月激情婷婷 | 日本久久中文 | 99色资源 | 操一草| 久久九九久久九九 | 久久综合九色综合97婷婷女人 | 亚洲精品乱码久久久久久蜜桃动漫 | 亚洲视频 在线观看 | 国产成人精品免高潮在线观看 | 精品国内自产拍在线观看视频 | 日本精a在线观看 | av中文字幕第一页 | 成年人在线观看 | 午夜精品一区二区三区免费视频 | 91在线麻豆| 九九久久久 | 美腿丝袜av | 97视频在线看 | 久久电影国产免费久久电影 | 午夜av不卡| 99热手机在线观看 | 激情欧美一区二区三区免费看 | 日本最大色倩网站www | 精品久久久久久久久久久久久久久久久久 |