亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于自適應(yīng)噪聲的最大熵進化強化學(xué)習(xí)方法

        2023-01-16 07:35:54王君逸李華雄陳春林
        自動化學(xué)報 2023年1期
        關(guān)鍵詞:散度實例梯度

        王君逸 王 志 李華雄 陳春林

        近年來,深度強化學(xué)習(xí)作為一種能夠有效解決機器學(xué)習(xí)問題的方法[1],在自動駕駛[2-3],軌跡追蹤[4-5]與目標(biāo)定位[6]問題,復(fù)雜多對象任務(wù)[7],組合優(yōu)化問題[8],自動控制[9-10]等領(lǐng)域都得到了廣泛應(yīng)用.而作為這一方法的核心,深度神經(jīng)網(wǎng)絡(luò)的更新方法一直以來都備受學(xué)界的關(guān)注[11-12].其中,許多研究中提出的方法在更新網(wǎng)絡(luò)參數(shù)時都采用了基于梯度的策略迭代方法[13],這些研究結(jié)果表明基于梯度的策略迭代方法能夠有效解決非線性系統(tǒng)[14],多智能體強化學(xué)習(xí)[15]等問題.基于梯度的策略迭代方法即通過計算目標(biāo)函數(shù)的梯度對深度神經(jīng)網(wǎng)絡(luò)進行反向傳播,例如蒙特卡洛策略梯度[1],近端策略優(yōu)化(Proximal policy optimization,PPO)[16]以及它們的改進方法[17-18].其他一些相關(guān)研究成果則大多著眼于將PPO的思想應(yīng)用于諸如參數(shù)分布優(yōu)化的更多領(lǐng)域[19].但這些方法都仍然是以基于梯度的策略迭代方法為核心的.然而,隨著機器學(xué)習(xí)問題日趨復(fù)雜,深度強化學(xué)習(xí)所需要處理的目標(biāo)函數(shù)的維度也隨之不斷增大,導(dǎo)致基于梯度的策略迭代方法的訓(xùn)練速度和收斂性受到較大影響[20].

        為了找到一種更容易探索到全局最優(yōu)、提高收斂速度的方法,一些研究者開始嘗試使用無梯度優(yōu)化方法.2017 年,OpenAI 發(fā)表的論文[20]中采用進化計算中的進化策略(Evolution strategies,ES)對深度神經(jīng)網(wǎng)絡(luò)參數(shù)進行更新,并借助多線程并行運算來提高效率,為強化學(xué)習(xí)問題提供了一種新型的解決方案—進化強化學(xué)習(xí)方法.不同于傳統(tǒng)強化學(xué)習(xí)通過對動作進行擾動來優(yōu)化參數(shù),進化方法則是直接對網(wǎng)絡(luò)參數(shù)進行擾動,在每次循環(huán)中根據(jù)計算得到的適應(yīng)性函數(shù)的大小對參數(shù)添加噪聲,因此進化方法不需要通過梯度下降的反向傳播.此外,進化策略由于高度的并行性并且只需要在不同進程中傳遞隨機種子,相對于策略梯度而言訓(xùn)練速度較快.但相較于傳統(tǒng)深度強化學(xué)習(xí)方法而言具有比較大的隨機性,因此被稱為 “黑盒優(yōu)化”[20].在2018 年Uber 發(fā)表的論文[21]中,研究者提出了利用進化方法中的另外一個方法—遺傳算法來實現(xiàn)對網(wǎng)絡(luò)參數(shù)的優(yōu)化.后續(xù)的研究中一般更多采用相對更為容易實現(xiàn)的ES 來作為新算法的框架基礎(chǔ)和用于對比的基準(zhǔn)算法.

        研究者們通過理論論證分析了在深度強化學(xué)習(xí)中使用進化策略的若干優(yōu)勢.Lehman 等[22]解釋了為何進化策略能夠探索到與梯度優(yōu)化的搜索范圍不同的區(qū)域,從而可以使進化強化學(xué)習(xí)求解到與梯度優(yōu)化方法不同的最優(yōu)點.Zhang 等[23]通過一系列基于混合國家標(biāo)準(zhǔn)和技術(shù)研究所(Mixed National Institute of Standards and Technology,MNIST)數(shù)據(jù)庫的實驗來揭示進化策略和隨機梯度下降之間的聯(lián)系與區(qū)別,并證明了進化強化學(xué)習(xí)的高準(zhǔn)確度.在理論工作完成之后,眾多學(xué)者們不斷嘗試將進化策略應(yīng)用于多種強化學(xué)習(xí)前沿問題.Khadka等[24]提出了用于改進深度確定性策略梯度[1]的進化強化學(xué)習(xí)方法.Shi 等[25]將進化策略應(yīng)用于最大熵強化學(xué)習(xí),提出了最大熵策略搜索方法.Song 等[26]用進化策略改進了元學(xué)習(xí)方法,提出了基于進化策略的模型無關(guān)的元學(xué)習(xí).Majumdar 等[27]提出的多智能體進化強化學(xué)習(xí)和Long 等[28]提出的進化種群學(xué)習(xí)模式都是利用進化策略對多智能體強化學(xué)習(xí)方法的改進.Wang 等[29]提出的實例加權(quán)增量進化策略是一種將進化策略應(yīng)用于動態(tài)空間中的學(xué)習(xí)問題的方法.

        然而,大多數(shù)上面所提及的方法把重點放在將自然進化策略(Natural ES,NES)[30]最基本的形式用在不同的強化學(xué)習(xí)算法上,只有較少的研究涉及對進化強化學(xué)習(xí)本身的方法改進上[31-32].盡管使用NES 能夠使方法的結(jié)構(gòu)相對得到簡化,但是同時也將進化策略本身具有的一些問題帶到了深度強化學(xué)習(xí)方法中.目前進化策略的問題主要包括:

        1)進化策略的梯度下降方向與最優(yōu)下降方向存在偏差,導(dǎo)致了進化強化學(xué)習(xí)收斂速度較慢[33-34];

        2) 進化策略的探索性較弱,容易陷入局部最優(yōu)[25,33];

        3)進化策略對超參數(shù)變化比較敏感,方法需要依賴超參數(shù)設(shè)計上的先驗知識,魯棒性需要提升[32-33].

        為了提高進化強化學(xué)習(xí)算法在這3 個方面的性能,本文提出了一種基于自適應(yīng)噪聲的最大熵進化強化學(xué)習(xí)方法(Adaptive noise-based evolutionary reinforcement learning with maximum entropy,AERL-ME),這一方法的貢獻如下:

        1)通過改進進化策略的更新公式,在傳統(tǒng)算法只注重 “優(yōu)勝”的基礎(chǔ)上增加了自然選擇中的 “劣汰”,削弱了由于隨機探索帶來的下降方向偏移問題的影響,提高了方法的收斂速度;

        2)通過在目標(biāo)函數(shù)中引入策略最大熵來鼓勵智能體對于新策略的探索,使智能體在探索新策略和利用已知策略的達到平衡,提升了方法跳出局部最優(yōu)的能力;

        3)提出了一種基于Kullback-Leibler (KL)散度的自適應(yīng)噪聲控制機制,這一機制能夠根據(jù)當(dāng)前進化的情形智能地調(diào)節(jié)算法的一個關(guān)鍵參數(shù)—噪聲標(biāo)準(zhǔn)差的值來調(diào)整進化策略的探索范圍,改善了傳統(tǒng)進化策略方法由于依賴超參數(shù)設(shè)計上的先驗知識而導(dǎo)致的魯棒性較弱的缺陷.

        本文的組織結(jié)構(gòu)如下:第1 節(jié)介紹進化強化學(xué)習(xí)相關(guān)背景知識;第2 節(jié)介紹本文提出的改進方法AERL-ME;第3 節(jié)介紹實驗中用到的模擬環(huán)境和實驗設(shè)計思路,給出了對比實驗,消融實驗和靈敏度分析實驗的結(jié)果和分析;第4 節(jié)總結(jié)全文,說明本文方法仍存在的不足和可以改進的方向.

        1 背景知識-進化強化學(xué)習(xí)

        強化學(xué)習(xí)是基于馬爾科夫決策過程的一種應(yīng)用于解決機器學(xué)習(xí)問題的方法[1].一個馬爾科夫決策過程由一個五元組<S,A,T,R,γ >組成,其中S代表狀態(tài)集合,A代表動作集合,T:S×A×S →[0,1]代表狀態(tài)轉(zhuǎn)移概率矩陣,R:S×A →R代表獎勵函數(shù),γ∈(0,1] 代表折扣因子,策略π被定義為一種將狀態(tài)映射到動作集上的概率分布函數(shù):S×A →[0,1],并且?s∈S.強化學(xué)習(xí)的目標(biāo)在于找到能夠使長期收益J(π) 最大的最優(yōu)策略π*:

        式中,τ=(s0,a0,s1,···) 被 稱為一個學(xué)習(xí)片段,π(τ)=r指的是在狀態(tài)si下執(zhí)行動作ai之后得到的即時獎勵,r=R(si,ai),γ為衰減因子.

        受自然界生物進化的啟發(fā),進化強化學(xué)習(xí)被提出以解決具有高維深度強化學(xué)習(xí)的問題.不同的進化強化學(xué)習(xí)方法在種群表示形式和更新方式上各有差異,本文所使用的進化強化學(xué)習(xí)方法基于的是自然進化策略NES,其核心思想是利用期望適應(yīng)度的抽樣梯度迭代更新搜索分布的參數(shù).定義搜索分布為基于參數(shù)θ的密度函數(shù)p(z|θ). 用f(z) 表示在實例z下計算得到的適應(yīng)性函數(shù)值(一般取為蒙特卡洛估計下的目標(biāo)函數(shù)值).在每一次迭代中,通過參數(shù)化的搜索分布抽樣生成新的種群,并對種群中的每個實例評估適應(yīng)性函數(shù)值.由此,在特定的搜索分布上適應(yīng)性函數(shù)值的期望可以寫作:

        與策略梯度方法的更新公式類似,自然進化策略根據(jù)下式對θ進行梯度更新:

        顯然,通過遍歷所有可能的實例來求期望的準(zhǔn)確值是不現(xiàn)實的.一般常用的方法是通過隨機抽樣之后對期望值進行估計.對于一個由m個實例組成的種群 (z1,z2,···,zm),式(3) 中的搜索梯度可被估計為:

        在每一次迭代中,自然進化策略向著能夠獲得更大適應(yīng)性函數(shù)的方向估計參數(shù)的搜索梯度.而在強化學(xué)習(xí)領(lǐng)域,自然進化策略將直接在神經(jīng)網(wǎng)絡(luò)的參數(shù)空間中搜索有效的策略,種群(z1,z2,···,zm)通常被實例化為一個具有以θ為中心的對角協(xié)方差矩陣特征的多元高斯分布,即zi=θ+?i,?i~N(0,σ2).根據(jù)多元高斯分布的密度函數(shù),式(3)中的搜索梯度公式在多元高斯分布下就可表示為:

        沿用式(4)的思路,通過隨機抽樣之后就可以根據(jù)抽樣樣本將式(5)中的搜索梯度估計為:

        根據(jù)式(6),在每次迭代中,網(wǎng)絡(luò)參數(shù)的更新公式就可以表示為:

        式中,lr代表學(xué)習(xí)率.

        通過應(yīng)用自然進化策略,傳統(tǒng)強化學(xué)習(xí)梯度優(yōu)化的過程就簡化成了通過高斯擾動向量?~N(0,σ2I)進行采樣,評估被擾動之后的各個搜索實例的表現(xiàn)(以適應(yīng)性函數(shù)為評價標(biāo)準(zhǔn)),匯總一系列搜索實例的結(jié)果并迭代更新幾個步驟.

        在應(yīng)用進化強化學(xué)習(xí)方法時,一般會將所有實例以隨機種子的方式一一分配給子線程去處理,如果主線程預(yù)先記錄了分配給各個子線程的隨機種子,那么主線程就能知道所有子線程生成的擾動.這樣,子線程就只需要向主線程回傳該實例的適應(yīng)性函數(shù)值,這大大提高了通信效率,從而實現(xiàn)高度的并行化.

        2 本文的方法

        2.1 本文方法總體框架

        盡管進化強化學(xué)習(xí)算能夠高效的利用并行化處理來進行無梯度優(yōu)化,但這一方法仍存在若干不足之處.為了進一步增強進化強化學(xué)習(xí)方法的學(xué)習(xí)性能.本文根據(jù)一系列改進思路,提出了AERL-ME方法,該方法通過3 個貢獻點分別對傳統(tǒng)進化強化學(xué)習(xí)的3 個不足之處做出了改進.AERL-ME 方法的整體結(jié)構(gòu)如圖1 所示.

        圖1 基于自適應(yīng)噪聲的最大熵進化強化學(xué)習(xí)方法的結(jié)構(gòu)Fig.1 The structure of AERL-ME

        1) 傳統(tǒng)進化強化學(xué)習(xí)的收斂速度相對較慢,這主要是因為方法在更新時采用了所有實例的信息,這導(dǎo)致了方法的下降方向會受到一些進化方向錯誤的實例的影響而產(chǎn)生偏移.而這樣的偏移會減慢算法的收斂速度.為此,本文引入了一種進化策略的改進方法,該方法除了沿用進化策略的更新方法,即適應(yīng)性越好的樣本占有更大權(quán)重之外,還進一步采取了淘汰種群中排名靠后的實例的方法,使這些實例不會在更新時對下降方向產(chǎn)生干擾,從而提高了方法的收斂速度.

        2) 進化強化學(xué)習(xí)在中后期容易陷入局部最優(yōu),這是因為傳統(tǒng)進化強化學(xué)習(xí)的目標(biāo)中僅包含了適應(yīng)性函數(shù).這導(dǎo)致了智能體更傾向于直接利用已經(jīng)學(xué)習(xí)到的策略而忽視了對新策略的探索.為了鼓勵智能體在學(xué)習(xí)過程中對新策略進行探索,本文在方法的目標(biāo)函數(shù)中增加了最大熵正則化項,平衡了智能體的探索能力和利用能力,使方法更容易跳出局部最優(yōu),獲得更好的學(xué)習(xí)結(jié)果.

        3) 進化強化學(xué)習(xí)對于參數(shù)噪聲標(biāo)準(zhǔn)差σ的變化比較敏感.隨著初始的σ選取的不同,方法的學(xué)習(xí)性能會有相當(dāng)大的偏差,甚至導(dǎo)致無法收斂.進化強化學(xué)習(xí)方法的魯棒性需要提升.在實際應(yīng)用中進化強化學(xué)習(xí)方法相當(dāng)依賴參數(shù)設(shè)置的先驗知識,為了得到更好的結(jié)果需要實現(xiàn)花費許多時間在調(diào)參上.本文仿照自適應(yīng)學(xué)習(xí)率的形式,提出了一種基于KL 散度的自適應(yīng)噪聲控制機制,該機制能夠在學(xué)習(xí)過程中根據(jù)當(dāng)前情形智能地調(diào)整噪聲標(biāo)準(zhǔn)差σ的值,從而改變進化策略的探索范圍.從結(jié)果來看,能夠使噪聲標(biāo)準(zhǔn)差在學(xué)習(xí)過程中慢慢調(diào)整到使性能更好的范圍之內(nèi).這樣即使是在初始參數(shù)設(shè)置不合理的情況下也能獲得更好的學(xué)習(xí)性能,提升了方法的魯棒性.

        2.2 進化策略的改進方法

        為了提升方法的收斂速度,本文引入了一種進化策略的改進方法(Canonical ES,CES)[34],這一方法主要是在子代實例的生成和迭代更新上采取了一些改進措施.

        1)在傳統(tǒng)進化強化學(xué)習(xí)方法中,生成的子代種群 (z1,z2,···,zm) 中的m個實例都將根據(jù)式(7)參與到網(wǎng)絡(luò)參數(shù)的更新中.但實際上,在這些實例中有一部分的性能并沒有比擾動前的性能更好.用生物學(xué)的觀點來看,這些實例實際上是朝著錯誤的方向進行了進化.但方法中這些進化方向錯誤的子代實例仍然會根據(jù)式(6)影響方法的梯度下降方向.這樣的結(jié)果會導(dǎo)致方法的梯度下降方向向著錯誤的方向產(chǎn)生了偏移.盡管這樣的偏移可以通過權(quán)重的調(diào)節(jié)來削弱,但仍然無法徹底無視.這一問題就是導(dǎo)致進化強化學(xué)習(xí)前期收斂速度較慢的原因.

        CES 采用了進化策略的一種改進形式 (μ,λ) -ES 來改進傳統(tǒng)方法,在每一次迭代中生成λ個子代實例,但僅選擇其中適應(yīng)性函數(shù)值前μ個子代實例參與更新.這樣的做法在傳統(tǒng)方法 “優(yōu)勝” (即適應(yīng)性函數(shù)值越高的實例在更新時擁有更大的權(quán)重)的基礎(chǔ)上補上了 “劣汰” (即種群排名較后的實例將直接被淘汰,不參與網(wǎng)絡(luò)更新).從而一定程度上提高了進化強化學(xué)習(xí)的收斂速度.

        2)如果仔細考慮子代種群的生成過程時,會注意到進化強化學(xué)習(xí)的噪聲擾動機制有可能導(dǎo)致有偏的搜索.比如當(dāng)大部分子代實例的搜索方向都是與正確的下降方向相反的,那么方法的更新就會收到較大的影響.盡管根據(jù)大數(shù)定理,當(dāng)子代實例足夠多時,能夠保證搜索是無偏的.但是在實際應(yīng)用中,進化強化學(xué)習(xí)用到的線程數(shù)畢竟是有限的,仍然不能忽視有偏搜索可能帶來的影響.

        為了防止有偏搜索,CES 運用了對偶抽樣法,根據(jù)這一方法,在主線程每一次抽樣完成后,將同時生成正負兩個噪聲,即對偶抽樣法有2 個優(yōu)勢:a)根據(jù)對偶抽樣法生成的子代種群中的實例始終是兩兩對稱的,這就避免了可能存在的有偏搜索;b)通過運用對偶抽樣法,對于方法本身來說也只需要進行原先一半次數(shù)的抽樣,提高了運行和存儲效率.

        3) 式(7) 參數(shù)更新時?i的權(quán)重f(θ+?i) 的取值一般根據(jù)的是蒙特卡洛估計下的目標(biāo)函數(shù)值(具體形式見第3 節(jié)),但目標(biāo)函數(shù)在不同問題下的取值范圍會有比較大的區(qū)別,如果直接將其直接作為權(quán)重可能會使得方法更新的結(jié)果會受到問題本身的影響.這可能會影響進化強化學(xué)習(xí)對于不同問題的學(xué)習(xí)能力.CES 運用了一種更為通用的歸一化方法來避免這一問題,歸一化后第i個實例的權(quán)重f(θ+?i) 被表示為:

        式中,j表示J(πθ+?i) 在所有J(πθ+?) 中的排名.通過這樣的歸一化方法,更新時的權(quán)重就只和該實例的排名有關(guān),而與它在具體問題下的目標(biāo)函數(shù)取值無關(guān),從而增強了方法對于不同問題的學(xué)習(xí)能力.

        2.3 最大熵搜索

        在第2 節(jié)中已經(jīng)給出了歸一化后的權(quán)重f(θ+?i)的形式,而它是根據(jù)的排名得到的,在本節(jié)中將介紹的改進方法.

        與一般的強化學(xué)習(xí)問題一樣,傳統(tǒng)的進化強化學(xué)習(xí)的目標(biāo)仍然是找到長期期望收益最大的策略π*,因此類比式(1),進化強化學(xué)習(xí)的目標(biāo)函數(shù)可以表示為:

        但實際應(yīng)用中是不可能通過遍歷的方式求得這個期望的精確值,所以一般通過蒙特卡洛估計法,通過貪心策略獲取一個學(xué)習(xí)片段τ=(s0,a0,s1,···),并根據(jù)這個片段計算得到的回報作為的估計:

        然而,因為這一估計方法依據(jù)的的是貪心策略,因此在任一狀態(tài)智能體只會選擇當(dāng)前已知期望回報最大的動作,而不會去探索其他未知的策略,這樣僅僅追求利用的方法會導(dǎo)致方法學(xué)習(xí)到一個局部最優(yōu)的策略后就不再對新的策略進行學(xué)習(xí).因此傳統(tǒng)的進化強化學(xué)習(xí)的探索性不足,容易陷入局部最優(yōu).

        為了盡可能在學(xué)習(xí)過程中平衡探索與利用,本文參考了柔性行為—評判模型[35]和最大熵策略搜索[25]的工作,在目標(biāo)函數(shù)中添加了熵正則化項,以此增強方法對于未知策略的探索性.

        根據(jù)香農(nóng)的的信息論,對于一個有著n個可能結(jié)果的隨機事件X,它的信息熵H(X) 可以表示為:

        式中,pi(i=1,2,···,n) 為第i個結(jié)果發(fā)生的概率.根據(jù)式(11),信息熵H(X) 的值越大,事件X的結(jié)果越不確定.而在深度強化學(xué)習(xí)領(lǐng)域,一個離散隨機性策略π可以表示為一個在不同狀態(tài)下的隨機事件.當(dāng)智能體處于某一狀態(tài)si時,它根據(jù)策略π選擇執(zhí)行動作aj的概率可以表示為π(aj|si).由式(11) 就可以給出該策略π在狀態(tài)si時信息熵H(π(·|si)):

        式中,m為可選動作的數(shù)量.

        由于離散隨機性策略同樣是一個隨機事件,它也遵循上文提到的信息熵的性質(zhì).也就是說,如果一個策略在某一狀態(tài)的信息熵越大,當(dāng)智能體到達這一狀態(tài)時,它所選擇的動作就越無法確定,這在一定程度上就增加了方法的探索性,這就是引入最大熵模型的作用.但如果僅僅考慮將信息熵最大化,獲得的將是一個一個完全隨機的策略,這也沒有任何的利用價值.綜上所述,本文方法所使用的目標(biāo)函數(shù)將傳統(tǒng)的獎勵函數(shù)與信息熵函數(shù)進行了結(jié)合,在蒙特卡洛估計的情況下可表示為:

        式中,α表示溫度因子,它衡量了目標(biāo)函數(shù)中獎勵函數(shù)與信息熵函數(shù)的相對重要性.在這一目標(biāo)函數(shù)中,獎勵函數(shù)衡量的是智能體在整個過程中收獲的獎勵,它更加鼓勵智能體去利用已經(jīng)學(xué)習(xí)到的策略,更傾向于學(xué)到一個確定性的策略;而信息熵函數(shù)則相反,更加鼓勵智能體去探索新的策略.而溫度因子α就是為了平衡這兩者.在本文中,為了更方便實現(xiàn),將溫度因子設(shè)置一個固定的超參數(shù).

        2.4 噪聲自適應(yīng)控制

        在進化強化學(xué)習(xí)方法中,噪聲標(biāo)準(zhǔn)差σ是一個對方法性能相當(dāng)重要超參數(shù).根據(jù)前面的進化強化學(xué)習(xí)方法可以看出,這一超參數(shù)在整個方法中發(fā)揮了2 個作用:1)在生成噪聲擾動的時候,擾動量?是由高斯分布 N (0,σ2) 產(chǎn)生的,因此σ的大小決定了噪聲生成的范圍,反映到方法中就相當(dāng)于每次迭代中生成新一批網(wǎng)絡(luò)的搜索范圍,所以本文一般習(xí)慣稱σ為噪聲標(biāo)準(zhǔn)差;2)在網(wǎng)絡(luò)參數(shù)的更新公式中,σ還起到了修正學(xué)習(xí)率lr的作用:

        這樣做的目的相當(dāng)于是為方法的穩(wěn)定性提供了一定的反饋調(diào)節(jié),當(dāng)方法的σ過大時,每次迭代的探索范圍就會比較大,那這時就需要一個較小的學(xué)習(xí)率;反之當(dāng)方法的σ過小時,那么學(xué)習(xí)率就相應(yīng)取一個較大的值.

        但是,實驗表明進化強化學(xué)習(xí)對于σ的變化仍然比較敏感,隨著初始的σ的改變,方法的學(xué)習(xí)性能會有比較明顯的差異.而在實際應(yīng)用中,就必須通過反復(fù)實驗不斷調(diào)參來找到在當(dāng)前環(huán)境下使進化強化學(xué)習(xí)性能最優(yōu)的σ,這樣的做法大大增加了進化強化學(xué)習(xí)準(zhǔn)備工作的工作量.本文希望找到一種方法能降低進化強化學(xué)習(xí)對于初始σ設(shè)置的敏感性,減小方法對于超參數(shù)相關(guān)的先驗知識的依賴性.

        許多研究者在機器學(xué)習(xí)問題中引入了自適應(yīng)控制方法[36-37],這些方法包括參數(shù)空間搜索[38],啟發(fā)式函數(shù)[39],狀態(tài)估計反饋[40]等,根據(jù)這些方法提出了一種基于KL 散度的對σ進行自適應(yīng)控制的機制,這一機制在主線程完成一次迭代更新之后,能夠根據(jù)當(dāng)前的結(jié)果來智能地修正σ的值,通過計算迭代前后兩個網(wǎng)絡(luò)的KL 散度來決定是增大還是減小σ,最終將噪聲調(diào)整到能夠使方法學(xué)習(xí)性能更好的范圍之內(nèi),同時也為下一次實驗提供了可行的調(diào)參方向.具體來說σ的更新公式如下:

        式中,DKL(πk||πk+1) 表示迭代前后兩個網(wǎng)絡(luò)πk和πk+1的KL 散度.K為噪聲自適應(yīng)控制的系數(shù),本文K取值為1.01.

        噪聲自適應(yīng)控制機制能夠發(fā)揮作用的關(guān)鍵在于找到一種合適的方法來估計更新前后兩個策略網(wǎng)絡(luò)的距離.在這一機制中選擇KL 散度作為距離度量,一方面是因為KL 散度是所有概率分布距離度量方法中計算量和復(fù)雜度較小的方法,不會對方法整體性能造成過大的影響;另一方面也是參考了深度強化學(xué)習(xí)領(lǐng)域一些前沿方法的經(jīng)驗.KL 散度又被稱為相對熵,它可以將兩個策略之間的差異轉(zhuǎn)換為計算這兩個策略生成的概率分布具有的信息熵的差異,對于兩個離散概率分布P和Q,它們之間的KL散度被定義為:

        這一方法大大降低了距離度量計算的復(fù)雜度,并且實現(xiàn)起來相對容易,因此KL 散度被廣泛應(yīng)用于機器學(xué)習(xí)領(lǐng)域中,很多機器學(xué)習(xí)任務(wù)的損失函數(shù)都選擇使用KL 散度來估計預(yù)測分布與真實分布的差異.而一些前沿的深度強化學(xué)習(xí)方法,比如信賴域策略優(yōu)化[41]和PPO[16]都運用了KL 散度來將網(wǎng)絡(luò)的更新限制在一定范圍之內(nèi).這些研究成果表明,通過KL 散度來估計更新前后網(wǎng)絡(luò)的距離從而實現(xiàn)對σ進行控制是可行的.

        本文依據(jù)式(16)給出DKL(πk||πk+1) 的具體計算式,當(dāng)智能體處于某一狀態(tài)si時,它根據(jù)策略π選擇執(zhí)行動作aj的概率可以表示為π(aj|si),則DKL(πk||πk+1) 在狀態(tài)si的公式為:

        為了盡可能的準(zhǔn)確的計算出兩個網(wǎng)絡(luò)在整個環(huán)境下的KL 散度,本文仿照第3 節(jié)中最大熵搜索的方法,利用一個完整的片段進行估計.在實際操作中,方法在舊網(wǎng)絡(luò)πk上進行一次蒙特卡洛抽樣,記錄該片段經(jīng)過的所有狀態(tài)s0,s1,···,sn,結(jié)合式(17)就可以估計KL 散度為:

        式(15)本身是一個 “正反饋”,當(dāng)KL 散度大于閾值δ時方法會增大σ.但根據(jù)前文所述,σ會起到控制探索范圍和調(diào)整學(xué)習(xí)率兩個作用,所以它對KL 散度的影響同樣是這兩個方面協(xié)同作用的結(jié)果.通過實驗發(fā)現(xiàn),從整個方法來看,噪聲標(biāo)準(zhǔn)差與KL 散度是 “負相關(guān)”的關(guān)系,即σ越大,KL 散度反而越小.根據(jù)這個結(jié)論,本文提出的噪聲自適應(yīng)控制機制實際上仍然是一種 “負反饋”.這一機制的作用與自適應(yīng)學(xué)習(xí)率是相似的,但是自適應(yīng)學(xué)習(xí)率只能對lr進行修改,而通過改變σ還能夠在調(diào)整學(xué)習(xí)率的同時改變探索范圍,從而能夠進一步提升方法的魯棒性.

        在進一步的實驗中也發(fā)現(xiàn)由于閾值δ的選取不當(dāng)可能導(dǎo)致方法會過度地調(diào)整σ.為了盡可能避免這一情況的發(fā)生,為噪聲的調(diào)整范圍設(shè)定了上界和下界,分別為初始噪聲標(biāo)準(zhǔn)差σ0的2 倍和1/2:

        另外本文還為噪聲自適應(yīng)控制機制增加了一個終止條件—未擾動網(wǎng)絡(luò)的目標(biāo)函數(shù)Je(πθ)在種群中排名第1.當(dāng)運行結(jié)果滿足這一條件時,基于KL 散度的噪聲自適應(yīng)控制機制就被終止并且方法保持在當(dāng)前噪聲下運行直到重新不滿足該條件,這樣做是為了防止方法早探索到最優(yōu)解之后由于繼續(xù)調(diào)整噪聲標(biāo)準(zhǔn)差可能導(dǎo)致的結(jié)果不穩(wěn)定.通過添加上述兩個終止條件,減弱了由于閾值δ的不同取值對實驗結(jié)果的影響,因此在實驗中沒有必要刻意追求最為合理的δ取值,本文在后續(xù)實驗中均選取δ=1.

        根據(jù)上述對傳統(tǒng)進化強化學(xué)習(xí)3 個方面的改進與設(shè)計,本節(jié)給出AERL-ME 的整體方法偽代碼,見算法1.

        算法1.AERL-ME 方法的偽代碼

        在一輪迭代開始時,主線程隨機生成n/2 個隨機種子(步驟2),根據(jù)當(dāng)前的噪聲標(biāo)準(zhǔn)差通過對偶抽樣法得到n個兩兩相反的噪聲(步驟3~4);接著將噪聲及其對應(yīng)的隨機種子一一發(fā)送給各個子線程,這樣做就確保了主線程能夠獲知子線程的擾動信息(步驟5).

        每一個子線程在接收到主線程發(fā)來的信息后生成新的子代實例,然后在該實例上通過蒙特卡洛抽樣形成一個學(xué)習(xí)片段τ=(s0,a0,s1,···) (步驟7~8),之后根據(jù)第3 節(jié)最大熵搜索中式(13)計算該實例目標(biāo)函數(shù)的估計值并回傳給主線程(步驟9~10).這一部分通過實現(xiàn)并行化處理,所有子線程能夠同時進行采樣和計算,從而大大提高了運算效率.

        當(dāng)主線程收到所有子線程的目標(biāo)函數(shù)值之后,首先需要對這些值進行排序(步驟12),再根據(jù)第2節(jié)中的 (μ,λ) -ES,歸一化算法和更新公式對主線程的網(wǎng)絡(luò)參數(shù)進行更新(步驟13,17).而在網(wǎng)絡(luò)更新前,為了自適應(yīng)控制機制中相關(guān)條件的判斷,還需要在舊網(wǎng)絡(luò)上提前生成一個學(xué)習(xí)片段(步驟14).在網(wǎng)絡(luò)更新后再根據(jù)這個片段估計新舊兩個網(wǎng)絡(luò)的KL散度和確認終止條件(步驟15~16,18),并根據(jù)結(jié)果計算新的噪聲標(biāo)準(zhǔn)差(步驟19).

        3 實驗

        為了測試AERL-ME 的方法性能并證明其相對于其基準(zhǔn)方法的性能優(yōu)勢,本文利用Python 的Gym 包中提供的多種模擬環(huán)境進行了實驗.在第3.1 節(jié)簡單介紹本次實驗所用到的所有模擬環(huán)境的信息.本文設(shè)計了3 個實驗來解答對AERL-ME 方法的性能所提出的3 個疑問:

        問題1.AERL-ME 較之當(dāng)前強化學(xué)習(xí)領(lǐng)域前沿的方法,尤其是其基準(zhǔn)方法進化強化學(xué)習(xí)是否有性能上的提升?

        問題2.AERL-ME 的3 個貢獻點是否都能夠從不同角度提升整體方法的性能,它們各自對方法性能起到了何種作用?

        問題3.AERL-ME 對于主要超參數(shù)變化的敏感程度如何?

        在實驗的初始設(shè)置上,由于不同方法的結(jié)構(gòu)存在差異,除了作為基準(zhǔn)的進化強化學(xué)習(xí)方法之外,對于其它方法只能盡可能使得實驗在完全相同的條件下進行.比如在無梯度優(yōu)化方法和策略梯度方法中,都能應(yīng)用多線程來加速學(xué)習(xí)性能,所以在這些方法下都使用了相同的線程數(shù),并且迭代相同的次數(shù).而對于無法應(yīng)用多線程的方法,則只能在輸出數(shù)據(jù)上做一些整理,確保在同一評估點上,各個方法經(jīng)歷了相同的訓(xùn)練次數(shù),以此確保實驗結(jié)果的相對公平.而作為對比實驗的關(guān)鍵,AERL-ME 與其基準(zhǔn)方法使用了完全一致的公共超參數(shù).此外,為了防止實驗的偶然性,對每種方法在每個環(huán)境下以不同的隨機種子為初始條件進行了10 次完全隨機的實驗,在后續(xù)數(shù)據(jù)處理中通過取平均繪制學(xué)習(xí)曲線.而實驗的數(shù)值結(jié)果也以表格的形式給出附在學(xué)習(xí)曲線之后,以此更為清晰地展現(xiàn)不同方法學(xué)習(xí)結(jié)果的差異.

        3.1 實驗環(huán)境簡介

        Gym 是由OpenAI 開發(fā)的基于Python 語言的開源代碼庫.被廣泛應(yīng)用于訓(xùn)練和比較深度強化學(xué)習(xí)方法的性能.在Gym 包中內(nèi)置了眾多模擬環(huán)境,包括經(jīng)典的控制模型(如倒立擺、爬山小車),Atrai 2 600 像素游戲,Mujoco 仿真環(huán)境和一些簡單的機械臂模型.實驗采用了Gym 包中的Cart-Pole-v1、Acrobot-v1、LunarLander-v2和Qbertram-v0 共4 個環(huán)境.

        1) CartPole-v1:CartPole-v1 (CP)是一個經(jīng)典的倒立擺模型,如圖2(a)所示,一根桿連接在小車上,而小車在光滑的水平面上.系統(tǒng)通過對小車施加正向或負向的力來進行控制,桿每保持一個時間單位的直立就獲得一分,而當(dāng)桿偏離豎直的角度或是小車距起始點的距離超過了一定范圍,當(dāng)次實驗就結(jié)束.最大的時間單位為 5 00,即該模型的最大得分也為 5 00.

        圖2 實驗環(huán)境Fig.2 Experimental environments

        2) Acrobot-v1:Acrobot-v1 (AB)如圖2(b)所示,該系統(tǒng)包括兩個關(guān)節(jié)和兩個連桿,其中兩個連桿之間的關(guān)節(jié)被驅(qū)動.最初,連桿是向下懸掛的,目標(biāo)是將較低連桿的末端向上擺動到給定的高度.

        3) LunarLander-v2:LunarLander-v2 (LL)是一個登月模型,如圖2(c)所示,登月器從屏幕頂部開始移動,最終以零速度到著陸臺的獎勵大約是在100 到 1 40 分之間,墜毀或成功著陸都將停止學(xué)習(xí)并分別獲得額外的-100 或+100 分,每條腿著陸+10分,每次發(fā)動引擎-0.3 分,一般將實驗成功的標(biāo)準(zhǔn)定為 2 00 分.

        4) Qbert-ram-v0:Qbert-ram-v0 (Qbert)是一個雅達利2 600 像素游戲,如圖2(d)所示,玩家控制主角在一個由正方體構(gòu)成的三角立面上來回跳躍,每一次地面接觸都會改變方塊表層的顏色,只要將所有色塊踩成規(guī)定的顏色即告勝利.狀態(tài)觀測選用雅達利的隨機存儲器(Random access memory,RAM)狀態(tài).

        3.2 對比實驗結(jié)果

        本文將AERL-ME 與以下方法進行了對比:

        1) ES[20]:進化強化學(xué)習(xí)的基準(zhǔn)方法,通過隨機生成子代進行網(wǎng)絡(luò)更新.

        2)深度Q 學(xué)習(xí)(Deep Q-learning,DQN)[42]:基于值函數(shù)的強化學(xué)習(xí)經(jīng)典方法,通過訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)來擬合狀態(tài)動作價值函數(shù),并根據(jù)該網(wǎng)絡(luò)依貪心策略選取最優(yōu)動作.

        3) PPO[16]:策略梯度方法中的前沿方法之一,能夠通過重要性采樣利用離線數(shù)據(jù)進行學(xué)習(xí).并通過計算行為策略與當(dāng)前策略的KL 散度防止迭代前后兩個策略差距較大.

        上面這3 種方法分別代表了無梯度優(yōu)化方法和基于價值的強化學(xué)習(xí)方法和策略梯度強化學(xué)習(xí)方法.通過這些對比,可以更為全面地展示AERLME 與當(dāng)前深度強化學(xué)習(xí)主流方法之間的性能優(yōu)劣.實驗結(jié)果如圖3 所示.

        通過實驗數(shù)據(jù)整理的部分數(shù)值結(jié)果表1 所示.在此表中,給出了4 種方法在終止評估點上10 次實驗結(jié)果的平均回報,而置信區(qū)間是由相應(yīng)的標(biāo)準(zhǔn)誤差給出.最佳性能(以均值作為判別依據(jù))以粗體的形式給出.

        根據(jù)圖3和表1 的對比實驗結(jié)果,可以得到以下結(jié)論:

        表1 以平均回報表示的數(shù)值結(jié)果Table 1 The numerical results in terms of average received returns

        圖3 對比實驗結(jié)果Fig.3 Comparative experimental results

        1)對AERL-ME 與其基準(zhǔn)方法ES 之間的性能差異進行比較.總結(jié)來看,AERL-ME 的性能優(yōu)勢在簡單環(huán)境和復(fù)雜環(huán)境下的表現(xiàn)并不一樣的.在一些簡單環(huán)境下,環(huán)境基本沒有太多局部最優(yōu)點,此時大部分強化學(xué)習(xí)方法在一定時間之后都能學(xué)習(xí)到最優(yōu)的策略.而AERL-ME 的優(yōu)勢在于它相對于基準(zhǔn)方法有著更快的收斂速度.比如在CartPolev1 環(huán)境中,AERL-ME 用了不到10 次迭代就找到了最優(yōu)的策略,而ES 在30 次迭代之后仍然沒有收斂到最優(yōu)策略.而在復(fù)雜環(huán)境下,包括傳統(tǒng)ES 在內(nèi)的一些基于策略的方法容易陷入局部最優(yōu),而AERL-ME 能夠在這一情況下更為有效地搜索到更好的策略,方法規(guī)避局部最優(yōu)的能力得到了一定的加強.

        2)將AERL-ME 與策略梯度的代表方法PPO進行比較.從網(wǎng)絡(luò)輸出來看,進化強化學(xué)習(xí)方法與策略梯度是一致的,均是根據(jù)當(dāng)前狀態(tài)輸出一個動作的概率分布列.PPO 方法的最大優(yōu)勢就在它的學(xué)習(xí)曲線相對來說較為穩(wěn)定,在各個環(huán)境的實驗全過程中都沒有出現(xiàn)明顯的振蕩.實驗結(jié)果表明AERLME 較之PPO 有兩個優(yōu)勢:a) 在大部分環(huán)境下,AERL-ME 的的學(xué)習(xí)性能都優(yōu)于PPO,并且AERLME 的前期收斂速度要比PPO 快,尤其是在一些較為簡單的環(huán)境下表現(xiàn)得更為明顯.b)即使PPO在多輪迭代后也能獲得一個不錯的學(xué)習(xí)結(jié)果,但PPO 這樣的梯度優(yōu)化方法為了學(xué)習(xí)到這樣的結(jié)果較之AERL-ME 需要更多的算力要求和運算時間.為了展現(xiàn)AERL-ME 在運算時間上的優(yōu)勢,本文在Qbert 的實驗過程中記錄了4 種方法的運算時間并根據(jù)實驗結(jié)果繪制了圖4.其中,進化策略類算法AERL-ME 以及其基準(zhǔn)算法都使用了并行化處理,在每一次迭代過程中使用了40 個子線程進行并行運算.在同樣的實驗條件下,AERL-ME 的時間花費不到PPO 的1/3,更是遠低于DQN 的時間花費.盡管需要進行額外的蒙特卡洛抽樣以進行噪聲的自適應(yīng)控制,AERL-ME 的學(xué)習(xí)時間會略高于基準(zhǔn)算法,但進化強化學(xué)習(xí)方法的高并行化效率仍然使其能夠在相當(dāng)短的時間內(nèi)完成策略的學(xué)習(xí),這是梯度優(yōu)化算法難以做到的.

        圖4 運算時間對比(n=40)Fig.4 Comparison of operation time (n=40)

        3)將AERL-ME 與基于值函數(shù)方法的代表DQN進行比較,以價值為基礎(chǔ)一類的方法盡管在復(fù)雜環(huán)境下能夠更好的規(guī)避局部最優(yōu),但它的最大缺點就是收斂性較弱而且學(xué)習(xí)結(jié)果不穩(wěn)定,但它前期的收斂速度遠遠慢于其他三種方法.進化強化學(xué)習(xí)本身的短板就是探索性,然而通過引入最大熵模型,AERLME 一定程度上彌補了原有方法在規(guī)避局部最優(yōu)上的缺陷,從結(jié)果來看在復(fù)雜環(huán)境下反而能比DQN學(xué)到更好的策略.

        3.3 消融實驗結(jié)果

        為了進一步研究方法中各個部分對方法性能的貢獻,本文還設(shè)計了消融實驗,實驗中每次使用減少一個貢獻點的方法與完整方法在相同環(huán)境和初始設(shè)置下進行對比實驗,實驗環(huán)境為CartPole-v1,實驗結(jié)果如圖5 所示.為了凸顯各個方法之間上升趨勢的差異,主要選取了方法從開始學(xué)習(xí)到收斂到一個相對穩(wěn)定的策略這一過程內(nèi)的數(shù)據(jù)作圖.對于不同的初始條件,這一過程的長度是不一致的,因此圖5 中子圖的橫坐標(biāo)范圍各不相同.

        通過消融實驗結(jié)果可以看出3 個貢獻各自對原有方法性能起到的優(yōu)化作用:

        1)進化策略的改進方法(Canonical evolution strategies,CES),它主要是加快了方法在運算開始時的收斂速度,實驗結(jié)果表明這一優(yōu)化方法必須要在初始參數(shù)設(shè)置(尤其是σ0)較為合適的情況下才能發(fā)揮出更大的作用,否則反而可能因為搜索方向的不準(zhǔn)確影響方法的性能.

        2)最大熵搜索(Maximum entropy,ME),它的作用是提升方法對新策略的探索能力,避免陷入局部最優(yōu),所以在一些復(fù)雜環(huán)境下或是當(dāng)初始設(shè)置的σ0偏小導(dǎo)致進化策略方法本身的探索性能不足時,ME 能夠一定程度上彌補這一缺陷.

        3)噪聲自適應(yīng)控制(Adaptive noise,AN),在正常情況下AN 不會發(fā)揮明顯的作用,但它的價值在于當(dāng)初始σ0的設(shè)置較為不合理尤其是偏大時,能夠幫助方法緩慢地將這個超參數(shù)調(diào)整到一個更為合理的值,從而提高學(xué)習(xí)性能,這一點從圖5(a)、(d)兩個相對極端的σ0的學(xué)習(xí)曲線能夠看出.總之,AERL-ME 的三個貢獻點對于傳統(tǒng)方法各有針對性的優(yōu)化,三者是相輔相成,缺一不可的.

        圖5 消融實驗結(jié)果Fig.5 Ablation experimental results

        3.4 超參數(shù)靈敏度分析

        在最后一部分,本文對AERL-ME 中的最關(guān)鍵的兩個超參數(shù)初始噪聲標(biāo)準(zhǔn)差σ0和溫度因子α進行了靈敏度分析實驗,實驗環(huán)境為CartPole-v1,實驗結(jié)果如圖6 所示.

        盡管自適應(yīng)機制一定程度上使得AERL-ME較之其基準(zhǔn)方法對于超參數(shù)的敏感性已經(jīng)有所下降,但是圖6(a)的學(xué)習(xí)曲線表明,初始噪聲標(biāo)準(zhǔn)差σ0的設(shè)置仍然對方法的性能有著較大的影響.

        圖6 初始噪聲標(biāo)準(zhǔn)差 σ0和溫度因子 α 的靈敏度分析Fig.6 Sensitivity analysis of initial noise standard deviation σ0 and temperature factorα

        初始噪聲標(biāo)準(zhǔn)差σ0的變化主要影響了方法的收斂性和收斂速度,當(dāng)σ0取值在較為合適的范圍之內(nèi)時,方法能夠?qū)崿F(xiàn)快速穩(wěn)定的收斂;當(dāng)σ0的取值與最優(yōu)區(qū)間有了一定偏差之后,方法的收斂速度有一個相當(dāng)明顯的下降,并且在前期出現(xiàn)了一些微小的振蕩.而當(dāng)σ0的取值與最優(yōu)區(qū)間的偏差過大時,方法將不收斂.如果σ0取值過大,根據(jù)式(12),方法的學(xué)習(xí)率過小,網(wǎng)絡(luò)基本沒有明顯的更新;而如果σ0取值過小,則學(xué)習(xí)率反而過大但探索范圍小,方法有可能選擇錯誤的下降方向,導(dǎo)致學(xué)習(xí)曲線出現(xiàn)振蕩.

        在實際應(yīng)用中,如果事先不確定初始噪聲標(biāo)準(zhǔn)差σ0的合理區(qū)間,可以先隨機取一個值進行測試,由于自適應(yīng)噪聲機制,方法在運行過程中會逐漸將噪聲調(diào)整到更接近合理區(qū)間的位置.在測試結(jié)束后就可以通過實驗結(jié)果進一步調(diào)整σ0,這一定程度上降低了調(diào)參的難度與工作量.

        與初始噪聲標(biāo)準(zhǔn)差σ0相比,方法對于溫度因子α的變化不敏感.當(dāng)溫度因子α取值過大或過小時,主要是輕微影響了方法的前期收斂速度,但對整體的收斂趨勢沒有太明顯的影響.所以在實際應(yīng)用中,沒有必要刻意追求最為合理的α取值.

        4 結(jié)束語

        本文提出了一種對基于自適應(yīng)噪聲的最大熵進化強化學(xué)習(xí)方法AERL-ME.首先,該方法引入了一種進化策略的改進方法CES 削弱了進化方向錯誤的子代實例對網(wǎng)絡(luò)更新造成的影響;其次,通過在方法的目標(biāo)函數(shù)中添加熵正則化項,有效地平衡了方法的探索與利用的能力,使方法能夠跳出局部最優(yōu);最后,該方法提出了一種對噪聲標(biāo)準(zhǔn)差的自適應(yīng)控制機制,能夠在網(wǎng)絡(luò)更新后根據(jù)KL 散度智能地調(diào)整方法的探索范圍.實驗結(jié)果表明,這一方法在繼承了進化強化學(xué)習(xí)的高效率,低運算成本和高并行化等優(yōu)點的同時,又一定程度上解決了傳統(tǒng)方法收斂速度慢,探索性不足和依賴先驗知識而導(dǎo)致的魯棒性較弱的缺點.

        未來可以改進的方向是:1)本文方法只能在離散狀態(tài)—動作空間的模型下進行學(xué)習(xí).如果需要將之拓展連續(xù)空間,就必須要修改方法中的一些公式,比如信息熵就需要改成積分的形式.2)本文方法在面對具有稀疏獎勵模型時,比如在Gym 中的爬山小車環(huán)境中,會由于在初始網(wǎng)絡(luò)周圍搜索不到更優(yōu)的策略而導(dǎo)致在多步迭代之后仍然無法實現(xiàn)網(wǎng)絡(luò)的更新.3)可以探索能夠進一步降低方法對于超參數(shù)初始設(shè)置敏感性的自適應(yīng)控制機制.

        猜你喜歡
        散度實例梯度
        帶勢加權(quán)散度形式的Grushin型退化橢圓算子的Dirichlet特征值的上下界
        一個改進的WYL型三項共軛梯度法
        一種自適應(yīng)Dai-Liao共軛梯度法
        具有部分BMO系數(shù)的非散度型拋物方程的Lorentz估計
        一類扭積形式的梯度近Ricci孤立子
        H型群上一類散度形算子的特征值估計
        H?rmander 向量場上散度型拋物方程弱解的Orlicz估計
        完形填空Ⅱ
        完形填空Ⅰ
        河南科技(2014年3期)2014-02-27 14:05:45
        国产艳妇av在线出轨| 加勒比hezyo黑人专区| 大肉大捧一进一出好爽视频| 久久韩国漫画无删减漫画歪歪漫画| av草草久久久久久久久久久| 视频区一区二在线观看| 久久婷婷五月综合色丁香| 国产精品无码一区二区三区免费 | 午夜婷婷国产麻豆精品| 国产一区二区在线观看视频免费| 亚洲国产综合在线亚洲区亚洲av| 51看片免费视频在观看| 亚洲av日韩精品久久久久久| 国产内射视频在线播放| 国模91九色精品二三四| 99热爱久久99热爱九九热爱| 伊人网综合在线视频| 和少妇人妻邻居做爰完整版 | 亚洲av日韩精品久久久久久a| 青草国产精品久久久久久| 一区二区三区免费视频网站| 久久精品亚洲精品国产区| 国产午夜福利久久精品| 精品日韩国产欧美在线观看| 按摩女内射少妇一二三区| 久久精品色福利熟妇丰满人妻91| 午夜成人鲁丝片午夜精品| 亚洲国产A∨无码影院| 韩国黄色三级一区二区| 一本久久综合亚洲鲁鲁五月天 | 9l国产自产一区二区三区| 日本真人边吃奶边做爽动态图| 69久久夜色精品国产69| 中国产无码一区二区三区| 亚洲国产综合在线亚洲区亚洲av| 小荡货奶真大水真多紧视频| 九九九影院| 国产韩国一区二区三区| 色偷偷亚洲第一成人综合网址| 亚洲国产一区二区在线| 国产99久久久国产精品免费|