999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于多層憶阻脈沖神經(jīng)網(wǎng)絡(luò)的強(qiáng)化學(xué)習(xí)及應(yīng)用

2019-09-15 23:58:34張耀中胡小方周躍段書(shū)凱
自動(dòng)化學(xué)報(bào) 2019年8期
關(guān)鍵詞:動(dòng)作智能游戲

張耀中 胡小方 周躍 段書(shū)凱

強(qiáng)化學(xué)習(xí),是智能體通過(guò)與環(huán)境交互、試錯(cuò)的過(guò)程來(lái)學(xué)習(xí)的行為.它是一種以環(huán)境反饋?zhàn)鳛檩斎氲淖赃m應(yīng)的機(jī)器學(xué)習(xí)方法[1],目前已廣泛應(yīng)用于控制科學(xué)、運(yùn)籌學(xué)等諸多領(lǐng)域[2?3].在強(qiáng)化學(xué)習(xí)過(guò)程中,智能體最初對(duì)環(huán)境一無(wú)所知,通過(guò)與環(huán)境交互的方式獲取獎(jiǎng)賞.智能體在這個(gè)過(guò)程中學(xué)習(xí)策略,使得最終能在某種評(píng)價(jià)體系下達(dá)到最優(yōu)目標(biāo).Q 學(xué)習(xí)是一種典型的無(wú)需模型的強(qiáng)化學(xué)習(xí)算法,智能體根據(jù)動(dòng)作價(jià)值即Q 值函數(shù),通過(guò)對(duì)狀態(tài)–動(dòng)作序列進(jìn)行足夠多的訪問(wèn),學(xué)習(xí)到最優(yōu)策略[4].通常,在Q 學(xué)習(xí)任務(wù)中,Q 值函數(shù)由表格的方式實(shí)現(xiàn),在狀態(tài)為連續(xù)值的情況下,則通過(guò)離散化狀態(tài)以存儲(chǔ)動(dòng)作價(jià)值,然而傳統(tǒng)的表格法有如下缺點(diǎn):1)狀態(tài)的離散度難以控制.2)狀態(tài)維數(shù)較多時(shí)會(huì)導(dǎo)致維數(shù)災(zāi)難.

將神經(jīng)網(wǎng)絡(luò)作為Q 值函數(shù)擬合器可以有效解決以上問(wèn)題.神經(jīng)網(wǎng)絡(luò)可以分為三代:第一代把McCulloch-Pitts 神經(jīng)元模型作為計(jì)算單元;第二代為人工神經(jīng)網(wǎng)絡(luò)(Artificial neural network,ANN),它們的計(jì)算單元中帶有激活函數(shù);脈沖神經(jīng)網(wǎng)絡(luò)(Spiking neural network,SNN)將脈沖神經(jīng)元作為計(jì)算單元,被稱(chēng)為第三代神經(jīng)網(wǎng)絡(luò)[5].SNN 的學(xué)習(xí)方式與哺乳動(dòng)物的學(xué)習(xí)方式非常類(lèi)似[6].此外,SNN能量效率高,有報(bào)道證明SNN 芯片比用現(xiàn)場(chǎng)可編程門(mén)陣列(Field programmable gate array,FPGA)實(shí)現(xiàn)的ANN 能耗低兩個(gè)數(shù)量級(jí)[7].因此,基于SNN的強(qiáng)化學(xué)習(xí)算法更容易進(jìn)行低功耗–硬件實(shí)現(xiàn).

與ANN 類(lèi)似,SNN 的學(xué)習(xí)算法也分為監(jiān)督學(xué)習(xí)算法和非監(jiān)督學(xué)習(xí)算法.非監(jiān)督學(xué)習(xí)算法僅僅基于數(shù)據(jù)的特征,這類(lèi)算法對(duì)計(jì)算能力要求較低,因?yàn)椴恍枰獢?shù)據(jù)集的多次迭代,脈沖神經(jīng)網(wǎng)絡(luò)中典型的非監(jiān)督學(xué)習(xí)算法是脈沖時(shí)間依賴(lài)可塑性(Spiketiming dependent plasticity,STDP)學(xué)習(xí)規(guī)則[8].而監(jiān)督學(xué)習(xí)算法需要帶有標(biāo)簽的數(shù)據(jù)集,需要多次迭代運(yùn)算,主要有遠(yuǎn)程監(jiān)督學(xué)習(xí)算法(ReSuMe)等[9].

目前許多訓(xùn)練SNN 的學(xué)習(xí)算法都只能用于不含隱含層的網(wǎng)絡(luò),且沒(méi)有通用的方法[10].對(duì)于訓(xùn)練多層SNN,一種方式是先訓(xùn)練ANN,再將其轉(zhuǎn)換為SNN[11],這種基于映射的學(xué)習(xí)方式會(huì)導(dǎo)致局部最優(yōu),因?yàn)橛?xùn)練在ANN 上進(jìn)行,而不是SNN[12].也有人提出了利用突觸延遲的監(jiān)督學(xué)習(xí)算法,并行調(diào)整隱含層和輸出層權(quán)重[13].由于本文基于多層SNN 實(shí)現(xiàn)強(qiáng)化學(xué)習(xí)算法,因此設(shè)計(jì)有效的多層SNN 的訓(xùn)練方法是一個(gè)必須要解決的問(wèn)題.

基于傳統(tǒng)半導(dǎo)體器件和集成技術(shù)實(shí)現(xiàn)的神經(jīng)網(wǎng)絡(luò)電路復(fù)雜度高、規(guī)模小、處理能力有限,難以真正用于嵌入式智能體.本文進(jìn)一步引入新型納米信息器件憶阻器,探求強(qiáng)化學(xué)習(xí)算法的硬件加速新方案.憶阻器是除電阻、電容、電感以外的第四種基本電路元件,由Chua[14]于1971 年基于電路完備性理論提出,其定義憶阻器的電阻值為流經(jīng)憶阻器的磁通量和電荷的比值(M=dφ/dq).然而,由于沒(méi)有物理實(shí)物,憶阻器一直沒(méi)有引起太多的關(guān)注.直到2008 年,美國(guó)惠普(HP)實(shí)驗(yàn)室制造出了基于二氧化鈦的交叉存儲(chǔ)陣列,并聲稱(chēng)交叉點(diǎn)處的存儲(chǔ)單元即為預(yù)言的憶阻器[15],立即引起了學(xué)術(shù)界和工業(yè)界的深厚興趣.之后,研究者對(duì)憶阻器的模型、特性進(jìn)行了廣泛的研究[16?17].此外由于憶阻器具有記憶力和類(lèi)似突觸的可變導(dǎo)電性,使其成為構(gòu)建硬件神經(jīng)網(wǎng)絡(luò)關(guān)鍵部件—電子突觸的理想器件.近年來(lái),Jo等[18]證明了CMOS 神經(jīng)元和憶阻突觸構(gòu)成的神經(jīng)網(wǎng)絡(luò)能夠?qū)崿F(xiàn)一些重要的突觸行為,如STDP.在此基礎(chǔ)上,研究者提出了多種用憶阻器實(shí)現(xiàn)STDP 的方法,例如Panwar 等[19]實(shí)現(xiàn)了對(duì)任意STDP 波形的模擬.Serrano-Gotarredona 等[20]僅用一個(gè)憶阻器實(shí)現(xiàn)并完成了對(duì)STDP 的仿真.

本文提出并研究了基于多層SNN 的強(qiáng)化學(xué)習(xí)算法,并利用憶阻器設(shè)計(jì)了其硬件實(shí)現(xiàn)方案,下文稱(chēng)之為憶阻脈沖強(qiáng)化學(xué)習(xí)(Memristive spiking reinforcement learning,MSRL).首先,為了實(shí)現(xiàn)數(shù)據(jù)和脈沖之間的轉(zhuǎn)換,設(shè)計(jì)了用于數(shù)據(jù)–脈沖轉(zhuǎn)換的脈沖神經(jīng)元;然后,通過(guò)改進(jìn)基本STDP 學(xué)習(xí)規(guī)則,將SNN 與強(qiáng)化學(xué)習(xí)算法有效結(jié)合,并設(shè)計(jì)相應(yīng)的憶阻突觸以期實(shí)現(xiàn)硬件加速.此外,為了進(jìn)一步提高網(wǎng)絡(luò)的學(xué)習(xí)效率,構(gòu)建了可動(dòng)態(tài)調(diào)整的網(wǎng)絡(luò)結(jié)構(gòu).最后基于brian2 框架[21]完成了對(duì)MSRL 的實(shí)驗(yàn)仿真.結(jié)果顯示,MSRL 控制的智能體可以以較低的計(jì)算資源消耗,高效地完成強(qiáng)化學(xué)習(xí)任務(wù).

本文結(jié)構(gòu)如下:第1 節(jié)介紹了Q 學(xué)習(xí)和SNN以及憶阻器的背景知識(shí),第2 節(jié)給出MSRL 算法的基礎(chǔ),第3 節(jié)詳細(xì)地介紹了MSRL 算法設(shè)計(jì).第4節(jié)給出仿真結(jié)果,第5 節(jié)總結(jié)全文.

1 背景知識(shí)

1.1 Q 學(xué)習(xí)

強(qiáng)化學(xué)習(xí)的理論基礎(chǔ)是馬爾科夫決策過(guò)程(Markov decision process,MDP).MDP 可以表示為:(S,A,Pa(st,st+1),Ra(st,st+1)),其中S是狀態(tài)集,A是動(dòng)作集,Pa(st,st+1)表示若智能體在時(shí)間t時(shí)處于狀態(tài)st,采取動(dòng)作a可以在時(shí)間t+1 時(shí)轉(zhuǎn)換到st+1的概率;Ra(st,st+1)表示通過(guò)動(dòng)作a,狀態(tài)st轉(zhuǎn)換到st+1所帶來(lái)的及時(shí)獎(jiǎng)賞.

強(qiáng)化學(xué)習(xí)中的Q 學(xué)習(xí)是一種經(jīng)典的在線學(xué)習(xí)方法.在學(xué)習(xí)過(guò)程中,智能體在每一個(gè)時(shí)間步(step)內(nèi)嘗試動(dòng)作,獲得來(lái)自環(huán)境的獎(jiǎng)賞,從而更新Q 值和優(yōu)化行動(dòng)策略π(s)(如圖1).這個(gè)學(xué)習(xí)過(guò)程稱(chēng)為時(shí)間差分(Temporal difference,TD)學(xué)習(xí)[22].

圖1 Q 學(xué)習(xí)過(guò)程Fig.1 The process of Q-learning

強(qiáng)化學(xué)習(xí)的目標(biāo)是讓智能體通過(guò)與環(huán)境的交互學(xué)到最優(yōu)的行動(dòng)策略π?(s),使累積獎(jiǎng)賞即回報(bào)最大.回報(bào)定義為

其中,折扣因子γ ∈[0,1],表示我們對(duì)未來(lái)獎(jiǎng)賞的重視程度.γ=0 時(shí)智能體只關(guān)注當(dāng)前獎(jiǎng)賞值,γ=1時(shí)未來(lái)獎(jiǎng)賞與當(dāng)前獎(jiǎng)賞同樣重要.

Q 學(xué)習(xí)算法中的Q 值是智能體按照行動(dòng)策略π(s)執(zhí)行動(dòng)作后所得回報(bào)的期望,定義為

智能體通過(guò)Q 值的更新優(yōu)化行動(dòng)策略π(s),使其所得回報(bào)增大.Q 值更新公式為

除此之外,在Q 學(xué)習(xí)中選擇動(dòng)作的基本策略也即本文采取的策略是策略,該策略也是Q學(xué)習(xí)同其他機(jī)器學(xué)習(xí)所不同之處,它反映了Q 學(xué)習(xí)中智能體探索(Exploration)和利用(Exploitation)之間的權(quán)衡.前者是指隨機(jī)嘗試動(dòng)作,以期獲得更高的回報(bào),即;后者是執(zhí)行根據(jù)歷史經(jīng)驗(yàn)學(xué)習(xí)到的可獲得最大收益的動(dòng)作,即greedy.智能體以概率隨機(jī)選擇動(dòng)作,而以1?的概率選取最大價(jià)值所對(duì)應(yīng)的動(dòng)作.

基本Q 學(xué)習(xí)的算法流程可描述為

算法1.基本Q 學(xué)習(xí)算法

1.2 脈沖神經(jīng)網(wǎng)絡(luò)

脈沖神經(jīng)網(wǎng)絡(luò)(Spiking neural network,SNN)起源于神經(jīng)科學(xué),廣泛用于構(gòu)建類(lèi)腦神經(jīng)系統(tǒng)模型,例如用于設(shè)計(jì)模擬大腦皮層中的信息傳遞和時(shí)間動(dòng)態(tài)可觀測(cè)過(guò)程[23].與ANN 類(lèi)似,SNN 也是由神經(jīng)元和突觸構(gòu)成,本文利用經(jīng)典的LIF(Leaky integrate-and-fire)神經(jīng)元模型和具有STDP 學(xué)習(xí)規(guī)則的突觸模型來(lái)構(gòu)建SNN.

在流經(jīng)離子通道的電流作用下,脈沖神經(jīng)元(Spiking neuron,SN)的細(xì)胞膜將會(huì)產(chǎn)生動(dòng)作電位u(t)[24].當(dāng)動(dòng)作電位達(dá)到閾值后,神經(jīng)元將會(huì)發(fā)放脈沖,這個(gè)過(guò)程可以描述為

其中,t(f)是神經(jīng)元發(fā)放脈沖的時(shí)間,uth是閾值電壓.

圖2 LIF 模型Fig.2 LIF model

LIF 模型將神經(jīng)元抽象為一個(gè)RC 電路(圖2).圖2 中,為來(lái)自突觸前神經(jīng)元i的脈沖信號(hào),而為突觸后神經(jīng)元j的輸出脈沖.神經(jīng)元收到輸入電流后,由于積分電路的作用,動(dòng)作電位會(huì)升高,直到達(dá)到激活閾值,發(fā)放脈沖,這個(gè)過(guò)程稱(chēng)為積分點(diǎn)火.在脈沖發(fā)放后,由于漏電流的作用,神經(jīng)元的動(dòng)作電位會(huì)立即恢復(fù)至靜息電位,這一過(guò)程是對(duì)真實(shí)生物神經(jīng)元中的離子擴(kuò)散效應(yīng)的模擬[25].LIF 模型的微分方程描述如下

其中,Cm為神經(jīng)元膜電容,I(t)為外界輸入電流,I1(t)為漏電流,Rm(t)為神經(jīng)元膜電阻.

在LIF 模型中,外部輸入電流I(t)通常為的加權(quán)和,因此,神經(jīng)元j收到第i個(gè)神經(jīng)元的輸入電流可以表示為

其中,wij為神經(jīng)元i和j之間的突觸權(quán)重;為突觸前神經(jīng)元i發(fā)出第f個(gè)脈沖的時(shí)間.

STDP 規(guī)則是SNN 的基本學(xué)習(xí)規(guī)則之一,具有良好的生物學(xué)基礎(chǔ).Hebb 等[26]于1949 年提出通過(guò)改變神經(jīng)元相互之間的連接強(qiáng)度來(lái)完成神經(jīng)系統(tǒng)學(xué)習(xí)過(guò)程的假設(shè),稱(chēng)為Hebb 規(guī)則.Hebb 規(guī)則指出,如果兩個(gè)神經(jīng)元同時(shí)發(fā)放脈沖,則它們之間的突觸權(quán)重會(huì)增加,反之會(huì)減少.這一假設(shè)描述了生物神經(jīng)元突觸可塑性的基本原理.隨后在海馬趾上進(jìn)行的研究發(fā)現(xiàn)了長(zhǎng)時(shí)增強(qiáng)(Long-term potentiation,LTP)效應(yīng)和長(zhǎng)時(shí)抑制(Long-term depression,LTD)效應(yīng):在一個(gè)時(shí)間窗口內(nèi),如果突觸后神經(jīng)元發(fā)放脈沖晚于突觸前神經(jīng)元發(fā)放脈沖,則會(huì)導(dǎo)致LTP 效應(yīng),而反之則會(huì)導(dǎo)致LTD 效應(yīng).前者稱(chēng)為“突觸前先于突觸后”事件(“Pre before post”event),后者稱(chēng)為“突觸后先于突觸前”事件(“Post before pre”event).LTP 和LTD 有力地支持了Hebb 的假設(shè).

LTP 和LTD 效應(yīng)是與脈沖發(fā)放時(shí)間高度相關(guān)的,基于這兩種效應(yīng)和相關(guān)實(shí)驗(yàn),Markram[27]于1997 年定義了STDP 規(guī)則,在STDP 規(guī)則中權(quán)重的變化量是前后兩個(gè)神經(jīng)元激活的時(shí)間差的函數(shù),該函數(shù)稱(chēng)為學(xué)習(xí)窗函數(shù)ξ(?t),STDP 學(xué)習(xí)窗函數(shù)ξ(?t)以及權(quán)重變化量?wij如下所示

式(9)中,?t=tpost?tpre為突觸后神經(jīng)元與突觸前神經(jīng)元發(fā)放脈沖時(shí)間差,而τpre,τpost分別為突觸前后的時(shí)間常數(shù),權(quán)重增強(qiáng)的增益A+>0,減弱的增益A?<0.?t≥0 對(duì)應(yīng)LTP 效應(yīng)而?t<0 對(duì)應(yīng)LTD 效應(yīng).STDP 學(xué)習(xí)規(guī)則可以看作是Hebb 規(guī)則在時(shí)間上的改進(jìn)版本,因?yàn)樗紤]了輸入脈沖和輸出脈沖調(diào)整突觸權(quán)重時(shí)時(shí)間上的相關(guān)性,換句話說(shuō),STDP 強(qiáng)調(diào)了脈沖之間的因果聯(lián)系.

1.3 憶阻器模型

HP 實(shí)驗(yàn)室于2008 年制造出了能夠工作的物理憶阻器,并提出了HP 憶阻器模型(圖3).

圖3 HP 憶阻器模型示意圖Fig.3 HP memristor

圖3 中,D是二氧化鈦薄膜的厚度,亦為憶阻器的全長(zhǎng),W是摻雜層的寬度,會(huì)在電場(chǎng)作用下改變,并與流過(guò)憶阻器的電荷數(shù)有關(guān).當(dāng)摻雜寬度W增大,憶阻值減小,反之憶阻值增大.憶阻器的總電阻值可表示為

其中,Ron和Roff分別為摻雜區(qū)和非摻雜區(qū)的長(zhǎng)度達(dá)到全長(zhǎng)時(shí)的電阻,也稱(chēng)為極值電阻.由于在時(shí)間t時(shí),摻雜區(qū)的寬度取決于通過(guò)憶阻器的電荷量,而電流為電荷的導(dǎo)數(shù),因此,內(nèi)部狀態(tài)變量x的變化可以表示為電流的函數(shù)

其中,UD是摻雜區(qū)和非摻雜區(qū)之間邊界移動(dòng)的速度,μ是平均離子漂移率,E是摻雜區(qū)的電場(chǎng)強(qiáng)度,i(t)為流經(jīng)憶阻器的電流,f(x)為窗函數(shù),已存在多種多樣的函數(shù)表達(dá)形式,通常用于模擬離子漂移的非線性,限制器件邊緣特性等.本文的主要目的并非提出新的憶阻器模型,而是利用合適的模型實(shí)現(xiàn)憶阻突觸,后文詳述,這里不做過(guò)多討論.

2 基于憶阻SNN 的強(qiáng)化學(xué)習(xí)

憶阻脈沖神經(jīng)網(wǎng)絡(luò)強(qiáng)化學(xué)習(xí)(MSRL)算法的目標(biāo)在于減小TD 誤差的絕對(duì)值,使回報(bào)最大.訓(xùn)練SNN 所需樣本來(lái)自對(duì)過(guò)往經(jīng)驗(yàn)的回放,這些經(jīng)驗(yàn)存放在記憶池中.經(jīng)驗(yàn)回放減少了需要學(xué)習(xí)的經(jīng)驗(yàn)數(shù)目,學(xué)習(xí)效率高于智能體直接與環(huán)境交互學(xué)習(xí)的方式[28].由此,設(shè)計(jì)MSRL 算法的首先任務(wù)是設(shè)計(jì)學(xué)習(xí)效率較高的SNN 并使之與Q 學(xué)習(xí)結(jié)合.

2.1 憶阻SNN

MSRL 算法的設(shè)計(jì)是基于一個(gè)三層的SNN,如圖4 所示.圖中省略號(hào)表示神經(jīng)元的數(shù)量隨著任務(wù)的不同而變化.網(wǎng)絡(luò)中輸入神經(jīng)元將狀態(tài)值轉(zhuǎn)換為狀態(tài)脈沖δS(t),其數(shù)量等于狀態(tài)的維數(shù).輸出神經(jīng)元的輸出為Q 值脈沖δQ(t),其數(shù)量等于動(dòng)作數(shù).這樣的結(jié)構(gòu)意味著每個(gè)輸入神經(jīng)元對(duì)應(yīng)每個(gè)狀態(tài)維度,每個(gè)輸出神經(jīng)元對(duì)應(yīng)每個(gè)動(dòng)作.相鄰層神經(jīng)元之間用憶阻器連接,憶阻器可工作在三種狀態(tài):a)權(quán)重不可更改狀態(tài);b)權(quán)重調(diào)節(jié)狀態(tài);c)斷開(kāi)狀態(tài).

適當(dāng)調(diào)節(jié)隱含層節(jié)點(diǎn)數(shù)量是有必要的,如果隱含層節(jié)點(diǎn)數(shù)過(guò)少,網(wǎng)絡(luò)的學(xué)習(xí)能力和信息處理能力不足.反之,如果節(jié)點(diǎn)過(guò)多可能會(huì)增加網(wǎng)絡(luò)結(jié)構(gòu)的復(fù)雜性,減慢運(yùn)行速度.具體的隱含層神經(jīng)元數(shù)量對(duì)網(wǎng)絡(luò)性能的影響將在第4 節(jié)討論.

圖4 脈沖神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)Fig.4 The structure of SNN

2.2 數(shù)據(jù)?脈沖轉(zhuǎn)換

考慮到脈沖神經(jīng)元接受、處理和傳遞的信息是脈沖信號(hào),因此有必要設(shè)計(jì)數(shù)據(jù)與脈沖之間的轉(zhuǎn)換關(guān)系.在本文中,模擬數(shù)據(jù)轉(zhuǎn)換為脈沖時(shí)間序列的過(guò)程為編碼,其逆過(guò)程為解碼.一個(gè)時(shí)間窗口T為10 ms.

1)輸入層神經(jīng)元

生物學(xué)研究表明,在生物視覺(jué)神經(jīng)網(wǎng)絡(luò)中,神經(jīng)元對(duì)信息的編碼與首次發(fā)放脈沖的時(shí)間有關(guān),發(fā)放時(shí)間越提前說(shuō)明輸入脈沖與輸出脈沖之間的相關(guān)性越強(qiáng)[29].由此引入一維編碼方式[30]:狀態(tài)值s ∈[smin,smax],編碼后首次發(fā)放時(shí)間t(s)∈[0,T],則編碼規(guī)則為

這種編碼方式使輸入神經(jīng)元在一個(gè)T內(nèi)只發(fā)放一個(gè)脈沖.基于式(14),并結(jié)合式(8)得到隱含層輸入電流Ih(t)為

其中,wih為輸入層與隱含層神經(jīng)元之間的突觸權(quán)重.輸入神經(jīng)元用于將狀態(tài)值轉(zhuǎn)換為單個(gè)的狀態(tài)脈沖,沒(méi)有解碼過(guò)程.

2)隱含層神經(jīng)元

研究以下情形:兩個(gè)LIF 神經(jīng)元i,j由一個(gè)突觸連接.突觸前神經(jīng)元i為輸入神經(jīng)元而突觸后神經(jīng)元j為輸出神經(jīng)元,它們的初始電壓均為0,神經(jīng)元i在t0時(shí)間電壓達(dá)到閾值而發(fā)放脈沖,根據(jù)式(8),脈沖將通過(guò)突觸轉(zhuǎn)換為輸入至神經(jīng)元j的電流,如果輸入電流能使突觸后電位達(dá)到閾值,則突觸后神經(jīng)元j將發(fā)放脈沖.通過(guò)神經(jīng)元不應(yīng)期的設(shè)置,在一個(gè)時(shí)間窗口的時(shí)間內(nèi),神經(jīng)元j只會(huì)發(fā)放一個(gè)脈沖,如圖5(a)所示.

對(duì)于隱含層神經(jīng)元,設(shè)置激發(fā)態(tài)時(shí)其只發(fā)放一個(gè)脈沖,解碼時(shí)將其脈沖發(fā)放時(shí)間th直接作為輸出數(shù)據(jù),從而可得輸出層輸入電流Io(t)

其中,who是隱含層與輸出層之間的突觸權(quán)重,編碼時(shí)則根據(jù)發(fā)放時(shí)間還原脈沖即可.

3)輸出層神經(jīng)元

由于首次發(fā)放時(shí)間越提前說(shuō)明輸入輸出相關(guān)性越強(qiáng),則可以認(rèn)為在一個(gè)時(shí)間窗口內(nèi),輸出層中最早發(fā)放脈沖的神經(jīng)元為動(dòng)作價(jià)值最大的動(dòng)作,這意味著首次發(fā)放時(shí)間和動(dòng)作價(jià)值呈反相關(guān)關(guān)系,解碼時(shí)直接將首次發(fā)放時(shí)間作為輸出數(shù)據(jù)則需要修改Q 值更新公式.為了減少算法設(shè)計(jì)的復(fù)雜度,輸出層神經(jīng)元發(fā)放脈沖的形式設(shè)置為連續(xù)發(fā)放.如圖5(b)所示,進(jìn)而計(jì)算其平均發(fā)放率(Mean firing rate)[24]

其中,nsp是輸出層神經(jīng)元在一個(gè)時(shí)間窗口T內(nèi)發(fā)放脈沖的數(shù)量.事實(shí)上,平均發(fā)放率和首次發(fā)放時(shí)間是等效的,一個(gè)神經(jīng)元的平均發(fā)放率越高,由于脈沖時(shí)間間隔均等,則說(shuō)明它的首次發(fā)放時(shí)間就越提前[24].因而如果設(shè)置輸出層神經(jīng)元總是在一個(gè)時(shí)間窗口內(nèi),連續(xù)發(fā)放時(shí)間間隔相同的脈沖,那么可以直接將nsp作為輸出動(dòng)作價(jià)值.進(jìn)一步,近似認(rèn)為輸出脈沖時(shí)間將T均等分,所以輸出脈沖序列的發(fā)放時(shí)間為等差數(shù)列,在已知數(shù)列項(xiàng)數(shù)即脈沖數(shù)量nsp的情況下可還原脈沖序列.

圖5 脈沖神經(jīng)元響應(yīng)Fig.5 The response of spiking neurons

2.3 改進(jìn)STDP 與憶阻突觸設(shè)計(jì)

神經(jīng)科學(xué)領(lǐng)域的主要研究問(wèn)題之一是對(duì)生物學(xué)習(xí)過(guò)程的解釋.例如,STDP 學(xué)習(xí)規(guī)則的提出是基于對(duì)單個(gè)生物突觸的實(shí)驗(yàn),但對(duì)于STDP 規(guī)則如何在脈沖神經(jīng)網(wǎng)絡(luò)中實(shí)現(xiàn)權(quán)重調(diào)整并沒(méi)有統(tǒng)一且詳盡的描述[31].為了實(shí)現(xiàn)STDP 規(guī)則對(duì)脈沖神經(jīng)網(wǎng)絡(luò)的權(quán)重調(diào)整,進(jìn)而應(yīng)用于強(qiáng)化學(xué)習(xí)中,需要對(duì)基本STDP規(guī)則加以改進(jìn).其思路在于引入第三方信號(hào)(可以是獎(jiǎng)賞信號(hào)或TD 誤差信號(hào)),作為突觸權(quán)重的調(diào)節(jié)信號(hào)[31].

以獎(jiǎng)賞信號(hào)為調(diào)節(jié)信號(hào)的STDP 規(guī)則稱(chēng)作Reward STDP,例如文獻(xiàn)[32]提出如下權(quán)重調(diào)節(jié)規(guī)則

方案中獎(jiǎng)賞為一個(gè)時(shí)間函數(shù)Srp,tre是獎(jiǎng)賞出現(xiàn)的時(shí)間而tt是智能體執(zhí)行動(dòng)作的時(shí)間.Te是每次迭代持續(xù)的時(shí)間.Reward STDP 實(shí)現(xiàn)了在虛擬環(huán)境中對(duì)覓食行為這一生物問(wèn)題的建模.但是,這種方案不適用于強(qiáng)化學(xué)習(xí)任務(wù),因?yàn)樵趶?qiáng)化學(xué)習(xí)任務(wù)中,執(zhí)行動(dòng)作的事件和獎(jiǎng)賞之間可能達(dá)到上千步的延遲,導(dǎo)致學(xué)習(xí)效率非常低.

以TD 誤差信號(hào)作為調(diào)節(jié)信號(hào)的STDP 規(guī)則稱(chēng)作TD STDP 規(guī)則,為了方便討論,將TD 誤差重寫(xiě)

利用式(19),文獻(xiàn)[33]提出如下的權(quán)重調(diào)節(jié)方案

其中,ρ(stdpij(t))為突觸前發(fā)放脈沖與突觸后發(fā)放脈沖的概率之差,η ∈[0,1]為學(xué)習(xí)率.此改進(jìn)方案的立足點(diǎn)在于,TD 誤差反映了目標(biāo)值和實(shí)際輸出值的偏離程度.如果TD 誤差為正,說(shuō)明目標(biāo)值優(yōu)于實(shí)際值,當(dāng)前的突觸權(quán)重應(yīng)該加強(qiáng),反之應(yīng)該減弱,但是,這種權(quán)重調(diào)節(jié)方案并不能直接應(yīng)用于MSRL算法,原因在于,此方案限制每個(gè)神經(jīng)元僅發(fā)放一個(gè)脈沖,而MSRL 中輸出層神經(jīng)元發(fā)放的是連續(xù)脈沖.另外,直接將TD 誤差作為權(quán)重調(diào)節(jié)系數(shù)不能最小化誤差,需要定義損失函數(shù).

我們?cè)谑?20)基礎(chǔ)上提出改進(jìn)的STDP 規(guī)則.首先,將ξ(?t)簡(jiǎn)化如下

式(21)不考慮輸入和輸出脈沖的時(shí)間差,只考慮輸入和輸出脈沖之間的相關(guān)性.進(jìn)一步,按照文獻(xiàn)[34],定義損失函數(shù)如下

在此基礎(chǔ)上,本文還設(shè)計(jì)了對(duì)應(yīng)的基于憶阻器的人工突觸,以期進(jìn)一步實(shí)現(xiàn)所提出算法的硬件加速.定義非線性窗函數(shù)如下

其中,vMR為憶阻器兩端電壓,vth為憶阻器的閾值電壓,調(diào)整憶阻器兩端電壓大小可使憶阻器處于權(quán)重調(diào)節(jié)或不可更改兩個(gè)狀態(tài).

進(jìn)一步,設(shè)置權(quán)重調(diào)節(jié)狀態(tài)時(shí)vMR為

而突觸權(quán)重的更新如下

即可實(shí)現(xiàn)改進(jìn)后的STDP 學(xué)習(xí)規(guī)則.

3 算法流程

在第2 節(jié)基礎(chǔ)上,給出MSRL(算法2)的具體實(shí)現(xiàn)流程.如下所示:

1)數(shù)據(jù)收集

強(qiáng)化學(xué)習(xí)任務(wù)開(kāi)始時(shí),沒(méi)有足夠的樣本用于訓(xùn)練SNN,需要通過(guò)智能體與環(huán)境的交互以獲取樣本.此時(shí)使權(quán)重服從均值和方差均為0.1 的正態(tài)分布,并通過(guò)正則化提高權(quán)重收斂速率,即

其中,n為輸入神經(jīng)元的數(shù)量.另外,為了消除脈沖之間的相關(guān)性,每個(gè)神經(jīng)元注入了微量的噪聲[33].每一個(gè)時(shí)間步(step)內(nèi),神經(jīng)網(wǎng)絡(luò)的運(yùn)行時(shí)間為兩個(gè)時(shí)間窗口T.我們?cè)O(shè)置輸入層和隱含層只在第一個(gè)T內(nèi)發(fā)放脈沖,一個(gè)T的時(shí)間過(guò)后,輸出層再發(fā)放脈沖.一旦神經(jīng)網(wǎng)絡(luò)運(yùn)行完成,便得到了輸出脈沖數(shù)量Q,隱含層輸出脈沖時(shí)間th,根據(jù)策略,智能體有1?的概率選擇Q最多的神經(jīng)元所對(duì)應(yīng)的動(dòng)作,而以的概率隨機(jī)選擇動(dòng)作.中的值會(huì)隨著迭代次數(shù)的增加而遞減,以確保隨著任務(wù)的進(jìn)行智能體逐漸依賴(lài)于策略π(s)而不是無(wú)目的的選取動(dòng)作.

2)網(wǎng)絡(luò)訓(xùn)練

根據(jù)文獻(xiàn)[35],突觸權(quán)重變化會(huì)逆行而快速的傳播到突觸前神經(jīng)元樹(shù)突的突觸上,但并不會(huì)向前傳播到下一級(jí)突觸上,這表明類(lèi)似反向傳播算法的機(jī)制可以在脈沖神經(jīng)網(wǎng)絡(luò)中存在并發(fā)揮作用.因此提出如圖6 所示的訓(xùn)練方式.圖中畫(huà)出的憶阻器表示此時(shí)憶阻器處于權(quán)重調(diào)節(jié)狀態(tài),未畫(huà)出的憶阻器則處于斷開(kāi)狀態(tài).一次訓(xùn)練包含多個(gè)樣本,每一個(gè)樣本使神經(jīng)網(wǎng)絡(luò)運(yùn)行三個(gè)時(shí)間窗口T.訓(xùn)練時(shí),首先斷開(kāi)所有憶阻器.之后使目標(biāo)動(dòng)作對(duì)應(yīng)的輸出神經(jīng)元與隱含層之間的憶阻器導(dǎo)通,這類(lèi)似于監(jiān)督學(xué)習(xí)中利用標(biāo)簽進(jìn)行訓(xùn)練.令隱含層神經(jīng)元發(fā)放對(duì)應(yīng)的隱含層脈沖δh(t),運(yùn)行一個(gè)時(shí)間窗口后,在第二個(gè)時(shí)間窗口內(nèi)令輸出神經(jīng)元發(fā)放目標(biāo)脈沖(圖6(a)).網(wǎng)絡(luò)運(yùn)行完兩個(gè)時(shí)間窗口后,斷開(kāi)隱含層與輸出層之間的憶阻器,使輸入層和隱含層之間的憶阻器導(dǎo)通(圖6(b)),令輸入神經(jīng)元發(fā)放狀態(tài)脈沖δS(t),同時(shí)令隱含層神經(jīng)元再次發(fā)放隱含層脈沖δh(t).如此循環(huán)往復(fù),直到一次訓(xùn)練完成.

圖6 憶阻脈沖神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過(guò)程Fig.6 The training process of memristive spiking neural network

3)網(wǎng)絡(luò)測(cè)試

測(cè)試時(shí)憶阻突觸的權(quán)重將完全由訓(xùn)練結(jié)果決定,通過(guò)設(shè)置憶阻器電壓,可以使其工作在權(quán)重不可更改狀態(tài).神經(jīng)網(wǎng)絡(luò)的運(yùn)行步驟同訓(xùn)練前.

具體的MSRL 算法描述如下:

算法2.憶阻脈沖神經(jīng)網(wǎng)絡(luò)強(qiáng)化學(xué)習(xí)(MSRL)算法

4 實(shí)驗(yàn)與分析

4.1 實(shí)驗(yàn)設(shè)置

1)CartPole-v0

如圖7 所示,一輛小車(chē)上用鉸鏈裝有一只平衡桿,平衡桿可以自由移動(dòng).在力F的作用下,小車(chē)在離散時(shí)間區(qū)間內(nèi)向左或向右移動(dòng),從而改變小車(chē)自身的位置和桿的角度.這個(gè)模型的狀態(tài)有4 個(gè)維度:a)小車(chē)在軌道上的位置x;b)平衡桿與垂直方向的夾角θ;c)小車(chē)速度v;d)平衡桿角速度ω.

圖7 CartPole-v0 示意圖Fig.7 CartPole-v0

游戲中每移動(dòng)一個(gè)時(shí)間步(step),智能體都會(huì)通過(guò)觀察獲得下一個(gè)狀態(tài)的值,并且會(huì)獲得值為1的獎(jiǎng)賞.游戲終止的條件為:a)平衡桿的角度的絕對(duì)值大于12?;b)小車(chē)的位置與x=0 的位置的距離超出±2.4 的范圍;c)在一次迭代(episode)中step 數(shù)超過(guò)200.滿(mǎn)足條件c)則認(rèn)為游戲成功.由于擺桿角度和車(chē)位移的絕對(duì)值較小的情況下游戲容易成功,因而定義每一步的游戲得分為

每次游戲得分通過(guò)此次游戲總分除以此次游戲迭代步數(shù)得到.MSRL 參數(shù)設(shè)置如下:對(duì)設(shè)置=0.1,學(xué)習(xí)率η設(shè)置為0.1,記憶池容量為10 000,折扣因子γ為0.9.算法運(yùn)行500 次迭代.

2)MountainCar-v0

如圖8 所示,一輛小車(chē)被置于兩座山峰之間,小車(chē)的初始位置x0∈(?0.6,?0.4),山谷處的位置為?0.5.任務(wù)目標(biāo)是開(kāi)到右邊小旗處.但是,車(chē)的動(dòng)力不足以一次爬上山頂,因此,小車(chē)需要來(lái)回移動(dòng)以獲取足夠的速度到達(dá)目標(biāo)處.智能體的狀態(tài)由兩個(gè)維度組成:a)小車(chē)軌道位置x ∈(?1.2,0.6);b)小車(chē)的速度y ∈(?0.07,0.07).

圖8 MountainCar-v0 示意圖Fig.8 MountainCar-v0

每一個(gè)step 中,小車(chē)有三個(gè)動(dòng)作可供選擇:向右、停止、向左.小車(chē)移動(dòng)一步后會(huì)獲得觀察值和值為?1 的獎(jiǎng)賞.根據(jù)小車(chē)與終點(diǎn)的距離,定義每步游戲得分Sm為

每次游戲得分計(jì)算方式與CartPole-v0 相同.另外,設(shè)定當(dāng)一次迭代中步數(shù)超過(guò)300 游戲也會(huì)自動(dòng)結(jié)束.MSRL 參數(shù)設(shè)置如下:對(duì)?greedy,同樣設(shè)置=0.1,學(xué)習(xí)率η設(shè)置為0.1,記憶池容量為5 000,折扣因子γ為0.9.算法運(yùn)行100 次迭代.

3)隱含層神經(jīng)元數(shù)量

為了確定SNN 隱含層神經(jīng)元的數(shù)量,我們?cè)谄渌麑?shí)驗(yàn)參數(shù)相同的情況下分別獨(dú)立運(yùn)行了隱含層神經(jīng)元數(shù)量不同的MSRL 算法,并比較它們的TD 方差,結(jié)果見(jiàn)表1.表1 的列展示了隱含層神經(jīng)元數(shù)量不同的情況下TD 方差的大小,在其他參數(shù)相同的條件下進(jìn)行實(shí)驗(yàn).TD 方差小表明學(xué)習(xí)效率更高.CartPole-v0 的輸入神經(jīng)元為4 個(gè),MountainCarv0 為2 個(gè).

表1 不同隱含層神經(jīng)元數(shù)量TD 方差對(duì)比Table 1 The comparison of TD variance for different hidden neurons

從表1 中可以發(fā)現(xiàn),隱含層神經(jīng)元數(shù)量較少,TD 方差較大,但數(shù)量過(guò)多并沒(méi)有顯著提高學(xué)習(xí)效率,反而可能會(huì)增加網(wǎng)絡(luò)復(fù)雜度,減慢運(yùn)行速率.因此我們?cè)O(shè)置CartPole-v0 隱含層神經(jīng)元數(shù)量為6,MountainCar-v0 隱含層神經(jīng)元數(shù)量為4,作為折中的一種優(yōu)化選擇.

4.2 實(shí)驗(yàn)結(jié)果與分析

1)MSRL 有效性驗(yàn)證

在實(shí)驗(yàn)過(guò)程中智能體的狀態(tài)反映了學(xué)習(xí)效果.Cartpole-v0 游戲中,平衡桿的角度和小車(chē)的位移越小越好,這樣游戲才可能成功.而MountainCar-v0游戲中,小車(chē)在速率足夠大的情況下才能爬上右側(cè)山坡,到達(dá)目標(biāo).我們分別在訓(xùn)練開(kāi)始前和訓(xùn)練開(kāi)始后隨機(jī)抽取相同數(shù)量的樣本以觀察樣本的數(shù)值分布,結(jié)果如圖9 所示.可以看出,在CartPole-v0 中,當(dāng)完成了200 次游戲后,平衡桿的角度和小車(chē)的位置集中于原點(diǎn)附近.而在MountainCar-v0 中,完成了50 次游戲后,坐標(biāo)值的變化顯示小車(chē)學(xué)會(huì)了利用左側(cè)山坡獲得反向勢(shì)能,并且速率大于訓(xùn)練之前.

2)算法對(duì)比

圖9 MSRL 訓(xùn)練前后樣本狀態(tài)分布對(duì)比Fig.9 The comparison of sample states distribution before and after training of MSRL

為進(jìn)一步說(shuō)明MSRL 的特點(diǎn),我們將深度Q 網(wǎng)絡(luò)(Deep Q network,DQN)和離散狀態(tài)Q-learning作為比較的對(duì)象.三者折扣因子和學(xué)習(xí)率均相同,DQN 同樣采用三層全連接前向網(wǎng)絡(luò)結(jié)構(gòu),隱含層神經(jīng)元數(shù)量為10,且其記憶池容量與MSRL 相同.三個(gè)算法在同一臺(tái)計(jì)算機(jī)上分別獨(dú)立運(yùn)行.對(duì)比結(jié)果如圖10 和表2 所示.

根據(jù)游戲環(huán)境的設(shè)置,在CartPole-v0 游戲中每次游戲的迭代步數(shù)越高越好,而MountainCar-v0 則相反.圖10(a)和10(b)的結(jié)果顯示,在CartPolev0 游戲中,MSRL 算法所控制的倒立擺系統(tǒng)游戲成功率和得分高于另外兩種算法.盡管DQN 先于MSRL 算法完成游戲目標(biāo),但其收斂性較差.圖10(c)和10(d)的結(jié)果顯示,在MountainCar-v0 游戲中,MSRL 算法所控制的小車(chē)容易以較少的步數(shù)達(dá)到目標(biāo)處,且最少步數(shù)小于另外兩種算法,同時(shí)游戲得分為三者中的最高值.從兩個(gè)游戲的結(jié)果可以看出,離散狀態(tài)之后的Q-learning 算法難以達(dá)成目標(biāo).我們將結(jié)果列在表2 里以更清楚對(duì)比結(jié)果.

圖10 比較結(jié)果(A)Fig.10 The results of comparison(A)

表2 比較結(jié)果(B)Table 2 The results of comparison(B)

表2 中,平均迭代步數(shù)為實(shí)驗(yàn)中的累積步數(shù)除以迭代數(shù),而平均分?jǐn)?shù)為累積分?jǐn)?shù)除以累積步數(shù).在CartPole-v0 游戲中,MSRL 算法總平均迭代步數(shù)相比于DQN 和離散Q-learning 明顯增加,而在MountainCar-v0 游戲中,MSRL 算法總平均迭代步數(shù)相比于DQN 和離散Q-learning 明顯減少.兩個(gè)游戲中得分最高者均為MSRL.此外,我們還在游戲執(zhí)行的每一步中記錄CPU 利用率,最后用累積CPU 利用率除以累積步數(shù)以計(jì)算平均CPU 利用率.結(jié)果顯示,盡管Q-learning 能以較短的運(yùn)行時(shí)間和較低的CPU 利用率完成目標(biāo),但是其計(jì)算效果不如神經(jīng)網(wǎng)絡(luò)式強(qiáng)化學(xué)習(xí).而MSRL 算法CPU利用率低于DQN,但運(yùn)行時(shí)間長(zhǎng)于DQN.根據(jù)文獻(xiàn)[36],采用不同的模擬策略影響脈沖神經(jīng)網(wǎng)絡(luò)的運(yùn)行時(shí)間.而本文利用新型信息器件憶阻器的高密度、非易失性等優(yōu)勢(shì),融合優(yōu)化的網(wǎng)絡(luò)結(jié)構(gòu)和改進(jìn)的學(xué)習(xí)算法,有望以實(shí)現(xiàn)MSRL 的硬件加速,同時(shí)減少對(duì)計(jì)算資源的依賴(lài).

5 結(jié)論

盡管傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)與強(qiáng)化學(xué)習(xí)算法的結(jié)合提高了智能體的學(xué)習(xí)能力,但這些算法對(duì)計(jì)算能力依賴(lài)性較強(qiáng),同時(shí)網(wǎng)絡(luò)復(fù)雜度高,不適合硬件實(shí)現(xiàn).為了進(jìn)一步達(dá)到硬件加速,促進(jìn)嵌入式智能體在實(shí)際環(huán)境中獨(dú)立執(zhí)行任務(wù),本文設(shè)計(jì)了基于多層憶阻脈沖神經(jīng)網(wǎng)絡(luò)的強(qiáng)化學(xué)習(xí)(MSRL)算法.首先解決了數(shù)據(jù)與脈沖之間的轉(zhuǎn)換問(wèn)題;在前人工作基礎(chǔ)上,改進(jìn)了STDP 學(xué)習(xí)規(guī)則,使SNN 能夠與強(qiáng)化學(xué)習(xí)有機(jī)結(jié)合,同時(shí)也設(shè)計(jì)了相應(yīng)的憶阻突觸;進(jìn)一步,設(shè)計(jì)了結(jié)構(gòu)可動(dòng)態(tài)調(diào)整的多層憶阻脈沖神經(jīng)網(wǎng)絡(luò),這種網(wǎng)絡(luò)具有較高的學(xué)習(xí)效率和適應(yīng)能力.實(shí)驗(yàn)結(jié)果表明,MSRL 與傳統(tǒng)的強(qiáng)化學(xué)習(xí)算法相比能更高效地完成學(xué)習(xí)任務(wù),同時(shí)更節(jié)省計(jì)算資源.在未來(lái)的工作中,我們將研究深度SNN 與更復(fù)雜的強(qiáng)化學(xué)習(xí)算法例如Actor-Critic 算法的結(jié)合,并進(jìn)一步改進(jìn)學(xué)習(xí)算法以增強(qiáng)算法穩(wěn)定性.

猜你喜歡
動(dòng)作智能游戲
智能前沿
文苑(2018年23期)2018-12-14 01:06:06
智能前沿
文苑(2018年19期)2018-11-09 01:30:14
智能前沿
文苑(2018年17期)2018-11-09 01:29:26
智能前沿
文苑(2018年21期)2018-11-09 01:22:32
動(dòng)作描寫(xiě)要具體
畫(huà)動(dòng)作
動(dòng)作描寫(xiě)不可少
數(shù)獨(dú)游戲
瘋狂的游戲
飛碟探索(2016年11期)2016-11-14 19:34:47
爆笑游戲
主站蜘蛛池模板: 国产在线91在线电影| 国产一二三区视频| 看看一级毛片| 国产精品成人免费视频99| 99这里只有精品免费视频| 狠狠综合久久| 91精品国产91久无码网站| 亚亚洲乱码一二三四区| 亚洲国产成人久久77| 亚洲国产精品无码AV| 亚洲国产黄色| 免费在线国产一区二区三区精品| 国产成人亚洲毛片| 国产拍揄自揄精品视频网站| 亚洲香蕉在线| 免费高清毛片| 午夜限制老子影院888| 久久精品66| 久久99精品久久久久纯品| 欧美激情福利| yy6080理论大片一级久久| 四虎在线观看视频高清无码| 日本成人在线不卡视频| 日韩小视频在线播放| 亚洲中文久久精品无玛| 国内精品九九久久久精品| 成年午夜精品久久精品| 97色婷婷成人综合在线观看| 久久公开视频| 啊嗯不日本网站| 久久亚洲欧美综合| 日韩a级片视频| 国产伦精品一区二区三区视频优播| 国产精品女人呻吟在线观看| 91激情视频| 在线精品亚洲一区二区古装| a在线亚洲男人的天堂试看| 狠狠五月天中文字幕| 欧美日韩精品综合在线一区| 999在线免费视频| 久久综合AV免费观看| 粉嫩国产白浆在线观看| 黄色免费在线网址| 青青热久免费精品视频6| 国产精品伦视频观看免费| 成人在线天堂| 最新亚洲av女人的天堂| 欧美日本在线| 亚洲va欧美ⅴa国产va影院| 欧美影院久久| 无码人妻热线精品视频| 91视频首页| 制服丝袜无码每日更新| 久草青青在线视频| 免费看美女自慰的网站| 精品一区二区久久久久网站| 青青久视频| 91精品情国产情侣高潮对白蜜| 国产成人一区免费观看| 幺女国产一级毛片| 久久久久免费看成人影片| 强奷白丝美女在线观看| 成人综合在线观看| 四虎永久免费地址在线网站| 无码中文字幕加勒比高清| 真实国产乱子伦视频 | 中文精品久久久久国产网址| 99久久婷婷国产综合精| 成人在线观看一区| 国产福利拍拍拍| 一级毛片免费不卡在线| 麻豆精品在线播放| 国产精品9| 99热最新网址| 亚洲欧美另类日本| 欧美日韩国产在线观看一区二区三区| 欧美乱妇高清无乱码免费| 国产微拍一区| 中文字幕首页系列人妻| 国产日韩AV高潮在线| 中文字幕精品一区二区三区视频| 精品国产成人三级在线观看|