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

基于雙自編碼器和Transformer網絡的異常檢測方法

2023-02-03 03:01:18周佳航邢紅杰
計算機應用 2023年1期
關鍵詞:特征檢測方法

周佳航,邢紅杰*

(1.河北大學 數學與信息科學學院,河北 保定 071002;2.河北省機器學習與計算智能重點實驗室(河北大學),河北 保定 071002)

0 引言

在實際生活中,異常檢測模型被廣泛地應用于視頻異常檢測、欺詐檢測、醫療檢測、文本檢測等領域[1-5]。異常檢測問題可被視為“單類分類”任務,即在訓練階段,利用僅由正常數據構成的訓練集訓練異常檢測模型;在測試階段,由所訓練的模型將待測樣本識別為正常數據或異常數據。常用的異常檢測方法被分為四類[6]:1)基于密度的異常檢測方法;2)基于距離的異常檢測方法;3)基于邊界的異常檢測方法;4)基于重構的異常檢測方法。

近年來,深度學習得到了廣泛關注,而基于深度學習的異常檢測方法[7]也日益流行起來。作為一種常用的深度學習方法,自編碼器(AutoEncoder,AE)被應用于許多異常檢測任務。自編碼器由編碼器和解碼器組成,編碼器從輸入樣本中獲得壓縮后的瓶頸特征;解碼器從瓶頸特征中重構樣本。基于自編碼器的異常檢測方法僅能學習正常數據的特征,因此在測試階段對正常數據重構的效果較好,而對異常數據重構的效果較差。基于自編碼器的異常檢測方法利用上述特點計算異常得分并進行檢測,異常得分高的樣本被視為異常數據,異常得分低的樣本被視為正常數據。

基于自編碼器的異常檢測方法取得了較優的檢測性能,然而它在正常數據上取得的重構誤差與部分異常數據的重構誤差非常接近,導致這些異常數據很難被正確檢測[8]。為解決上述問題,相關學者提出許多改進方法。An 等[9]使用變分自編碼器對訓練樣本進行建模,提出一種基于變分自編碼器重構概率的異常檢測方法,使用數據分布的概率度量替代傳統自編碼器的重構誤差以區分正常數據和異常數據。Sakurada 等[10]將自編碼器用于異常檢測,發現自編碼器可以通過數據在隱藏層的非線性表示很好地區分正常數據和異常數據。Xia 等[11]提出基于自編碼器的異常檢測模型,在自編碼器的訓練過程中逐步添加判別信息,使內點和離群點更加可分,并通過重構誤差使內點和離群點分離。Zong 等[12]提出一種用于異常檢測的深度自編碼高斯混合模型(Deep Autoencoding Gaussian Mixture Model,DAGMM),利用深度自編碼器生成樣本的低維表示和重構誤差,將其輸入高斯混合模型,以端到端的方式聯合優化深度自編碼器和混合模型的參數,并利用估計網絡即高斯混合模型對樣本進行預測。受魯棒主成分分析[13]的啟發,Zhou 等[14]提出一種魯棒自編碼器,將訓練樣本拆分為正常數據和包含離群點以及噪聲的數據,通過提取正常數據的特征和稀疏化包含離群點和噪聲的數據來提高自編碼器的魯棒性。Gong 等[15]提出深度自編碼器和內存模塊的結合,稱為記憶增強自編碼器(Memoryaugmented AutoEncoder,MemAE),訓練時鼓勵內存模塊存儲更多樣的正常數據的瓶頸特征,測試時通過樣本的瓶頸特征從內存模塊中檢索與其相關性最大的存儲項進行重構,由于存儲項全為正常數據的瓶頸特征,異常數據無法通過存儲項有效重構,因此可以通過重構誤差分類異常數據。Lai 等[16]將魯棒子空間恢復(Robust Subspace Recovery,RSR)層添加到Vanilla 自編碼器中,RSR 層從數據的潛在表示中提取子空間,并刪除遠離該空間的數據,編碼器將數據映射到潛在空間,RSR 層從中提取子空間,然后解碼器將子空間映射回原始空間,根據原始位置和經過解碼器映射的位置之間的距離來區分正常數據和異常數據。

盡管上述基于自編碼器的異常檢測方法及其改進方法取得了較優的檢測性能,但是這些方法的模型結構中僅有一個自編碼器,在訓練階段僅能通過最小化自編碼器輸入輸出間的重構誤差對編碼器和解碼器中的參數進行更新,由于訓練集僅由正常數據構成,因此自編碼器無法學習到異常數據。當異常數據與正常數據較為相似,或者異常數據的重構誤差較小時,上述方法則會取得較差的檢測性能。為了解決上述問題,提出一種基于并行雙自編碼器和Transformer 網絡的異常檢測方法DATN-ND(Novelty Detection method based on Dual Autoencoders and Transformer Network,該方法使用雙自編碼器在最小化重構誤差的基礎上添加新的損失函數來聯合優化自編碼器;Tramsformer 網絡則將輸入樣本的瓶頸特征變換為與正常數據差別較大的瓶頸特征,稱為偽異常瓶頸特征,等同于在訓練集中增加了異常數據。在訓練階段,編碼器將輸入樣本映射到特征空間,Transformer 網絡將特征空間的瓶頸特征映射到距離輸入樣本特征空間較遠的特征空間,生成偽異常瓶頸特征,通過偽異常瓶頸特征所提供的異常數據信息,解碼器將帶有異常數據信息的瓶頸特征盡可能映射為正常數據;在測試階段,當異常樣本經過編碼后得到帶有異常數據信息的瓶頸特征輸入解碼器時,解碼器會將該瓶頸特征盡可能重構為正常數據,從而提高異常數據的重構誤差。

1 基于自編碼器的異常檢測方法

自編碼器是一種由編碼器fθE(·)和解碼器gθD(·)構成的前饋神經網絡,其任務是使網絡的輸出盡可能地等于輸入x,即以盡可能小的誤差重構輸入。自編碼器中有一個描述樣本非線性表示的隱藏層,樣本的非線性表示稱為瓶頸特征,自編碼器從樣本中學習到的瓶頸特征越好,重構樣本的能力越強,自編碼器通過最小化x和之間的誤差來更新編碼器和解碼器的參數以學習更好的樣本瓶頸特征,表示如下:

其中:θE和θD是編碼器和解碼器的參數集;x是輸入樣本,是自編碼器的輸出,即輸入樣本經過編碼和解碼之后的重構樣本;‖·‖2表示L2 范數。令z表示自編碼器學習到的樣本瓶頸特征,即:

則重構樣本可以表示為:

自編碼器重構樣本的能力主要依賴于學習到的樣本瓶頸特征,但是不同類別的樣本存在不同的特征,假如自編碼器只學習了正常數據的瓶頸特征,那么它對異常數據的重構能力就不如正常數據,導致正常數據重構的誤差較小而異常數據重構的誤差較大,所以基于自編碼器的異常檢測方法利用該特性將重構誤差作為數據的異常得分,根據異常得分對正常數據和異常數據進行分類,如圖1 所示。當自編碼器訓練完成之后,給定一個輸入樣本x,x的重構誤差S(x)即為異常得分,表示為:

圖1 基于自編碼器的異常檢測方法Fig.1 Novelty detection method based on autoencoder

基于自編碼器的異常檢測方法通過該異常得分對樣本進行分類,算法1 和算法2 給出了它的實現過程。

算法1 自編碼器訓練。

已有基于自編碼器的異常檢測方法有時在正常數據與部分異常數據上產生的重構誤差非常接近,導致部分異常數據很容易被錯分為正常數據。為了解決該問題,本文提出了基于雙自編碼器和Transformer 網絡的異常檢測(DATN-ND)方法。

2 DATN-DN

2.1 模型結構

DATN-ND 的模型由編碼器、解碼器和Transformer 網絡組成。首先定義輸入樣本域? 和特征域Z,令fE(·):? →Z表示編碼器;fD(·):Z →? 表示解碼器。給定一個輸入樣本x∈?,編碼器將其編碼為瓶頸特征z∈Z;解碼器將z映射到樣本域? 得到輸入樣本x的重構樣本,如下所示:

Transformer 網絡由前饋神經網絡組成,其目的是找到與輸入樣本對應的特征空間Z 距離較遠的另一個特征空間Zt,將輸入樣本的瓶頸特征z∈Z 變換成偽異常瓶頸特征zt∈Zt,Transformer 網絡定義為fT(·):Z →Zt,則有:

由式(7)即可得到與正常數據的瓶頸特征z距離較遠的特征空間中的偽異常瓶頸特征zt,因此,zt被視為帶有異常數據的瓶頸特征,模型通過得到zt為訓練集中增加異常數據。

DATN-ND 的模型訓練模塊如圖2 所示,模型通過最小化樣本x的重構誤差使編碼器E1能夠獲得更好的瓶頸特征,從而通過解碼器D1獲得更優的重構樣本,表示如下:

圖2 本文方法的訓練模塊Fig.2 Training module of proposed method

其中:為重構樣本;θE,θD是編碼器、解碼器的參數集。

為了使Transformer 網絡獲得遠離正常數據特征空間Z的特征空間Zt,并生成帶有異常數據信息的偽異常瓶頸特征,通過最大化輸入樣本的瓶頸特征z和其通過Transformer網絡變換后的瓶頸特征zt之間的誤差來訓練Transformer 網絡,表示如下:

其中:θT是Transformer 網絡的參數集。

此外,為了使解碼器盡可能將帶有異常數據信息的瓶頸特征映射為正常數據而非其本身,模型通過最小化和之間的誤差使解碼器D2將變換后的瓶頸特征zt映射為,使與正常數據盡可能地相似。表示如下:

綜合考慮式(8)~(11),本文方法的模型訓練目標是最小化損失函數:

其中:N為訓練樣本個數;α,β,γ分別是各個損失函數的權重。圖2 中的編碼器E1、E2和E3采用相同的網絡結構且參數共享;解碼器D1和D2使用相同的網絡結構且參數共享。

測試模塊如圖3 所示,假設給定的測試樣本是正常數據,編碼器將其映射為正常數據的瓶頸特征,然后解碼器會將其映射回正常數據,使正常數據獲得較小的重構誤差;假設給定的測試樣本是異常數據,編碼器將其映射為異常數據的瓶頸特征,解碼器會將帶有異常數據信息的瓶頸特征盡可能解碼為正常數據而非重構其本身,使異常數據獲得較大的重構誤差,因此DATN-ND 方法可以使用樣本的重構誤差作為異常得分對樣本進行分類。

圖3 本文方法的測試模塊Fig.3 Test module of proposed method

由于訓練階段使用的編碼器結構相同且參數共享,解碼器亦結構相同且參數共享,因此測試階段僅需使用訓練好的任意一組編碼器和解碼器就可以構成圖3 中的模型,并對待測樣本進行分類。給定一個測試樣本xtest,由圖3 中的模型獲得xtest的重構樣本,計算xtest的重構誤差,并使用該重構誤差作為異常得分S(xtest)對xtest進行分類,表示如下:

2.2 算法描述

基于雙自編碼器和Transformer 網絡的異常檢測方法訓練階段和測試階段的算法實現過程如算法3 和算法4 所示。

算法3 DATN-ND 訓練。

3 實驗與結果分析

為了檢驗DATN-ND 方法的性能,與對比方法在4 個數據集上進行了實驗對比,并通過消融實驗驗證了DATN-ND中Transformer 網絡的有效性。使用Adam 優化器[17]并設置學習率為10-4對模型進行訓練,DATN-ND 損失函數的權重參數α取值為0.1,β取值為0.01,γ取值為-0.000 1,訓練階段最大迭代次數為500,模型分類閾值δ為約登指數最大時的取值。

3.1 圖像數據集

實驗使用MNIST[18]、Fashion-MNIST[19]和CIFAR-10[20]圖像數據集,都包含10 個類別的圖像。每個數據集按順序抽取10 個類別中的一類圖像作為正常數據,其余類別的圖像作為異常數據,因此每個圖像數據集可構造10 個用于異常檢測的數據集,所構建的異常檢測數據集的訓練集僅由正常數據構成,測試集既有正常數據也有異常數據。

與DATN-ND 對比的方法有:MemAE、自編碼器(AE)、單類支持向量機(One-class Classification Support Vector Machine,OCSVM)[21]、RSR 自編碼器(RSR-based AE,RSRAE)、深度支持向量描述(Deep Support Vector Data Description,Deep SVDD)[22]、深度結構保存支持向量描述(Deep Structure Preservation SVDD,DSPSVDD)[23]、變分自編碼深度支持向量描述(Deep Support Vector Data Description based on Variational AE,Deep SVDD-VAE)[24]、f-AnoGAN(fast unsupervised Anomaly detection with Generative Adversarial Network)[25]、GANomaly[26]、記憶增強生成對抗網絡(Memory augmented Generative Adversarial Network,MemGAN)[27]、RLDA(Representation Learning with Dual Autoencoder)[28]。

DATN-ND 與AE 使用相同結構的編碼器和解碼器,在灰度圖像數據集MNIST 和Fashion-MNIST 上使用全連接網絡構建模型,如表1 所示,其中:FC 代表全連接層,括號里的第1~3 個參數分別為全連接網絡的輸入層、輸出層大小與激活函數,none 為沒有激活函數。

DATN-ND 在彩色圖像數據集CIFAR-10 上使用卷積網絡構建模型,如表1 所示,其中:Conv2d 代表卷積層;Dconv2d代表轉置卷積層,括號里的第1~4 個參數分別是卷積核大小、步長、輸入通道數與輸出通道數。

表1 模型結構Tab.1 Model structure

測試時,DATN-ND 通過歸一化將重構誤差縮放到[0,1]內,使用重構誤差作為異常得分進行異常檢測,并將ROC 曲線下面積(Area Under the Receiver Operating Characteristic curve,AUC)用作評估各方法性能的度量。表2~4 分別展示了由MNIST、Fashion-MNIST、CIFAR-10 圖像數據集構建的10個異常檢測數據集上的AUC 對比結果。

由表2 可知,對于MNIST 數據集,除了類別“2”“3”“8”,DATN-ND 在其余7 個類別的數據集上均取得了優于其他11種方法的AUC;由表3 可知,對于Fashion-MNIST 數據集,除了類別“Coat”“Bag”和“Ankle Boot”,DATN-ND 在其余7 個類別的數據集上均取得了優于其他11 種方法的AUC;由表3 可知,對 于CIFAR-10 數據集,除了類 別“car”“cat”“horse”和“truck”,DATN-ND 在其余6 個類別的數據集上均取得了優于其他11 種方法的AUC 結果。與RSRAE、RLDA、MemAE 和AE 這四種基于AE 的異常檢測方法相比,DATN-ND 在所有的數據集上均取得了較優的性能。因此,由表2~4 可知:1)與傳統的異常檢測方法OCSVM 相比,DATN-ND 的計算能力更強,能夠更好地處理高維復雜的數據。2)與基于深度學習的異常檢測方法相比(包括RSRAE、Deep SVDD、DSPSVDD、Deep SVDD-VAE、f-AnoGAN、GANomaly、MemGAN、RLDA、MemAE、AE),DATN-ND 中的Transformer網絡模塊為僅有正常數據的訓練階段提供異常數據,使模型能夠學習更多用于判別正常數據和異常數據的有用信息;另外,DATN-ND 中的雙自編碼器模塊使異常數據的重構接近正常數據,提高了異常數據的重構誤差,提高了模型的檢測性能。針對MNIST、Fashion-MNIST 和CIFAR-10 三個數據集上所構建的異常檢測數據集,DATN-ND 在一些數據集上的檢測性能并非最優,因為Transformer 網絡模塊的變換方法并不適用于上述所有的異常檢測數據集。

表2 不同方法在MNIST圖像數據集上的AUC 單位:%Tab.2 AUC for different methods on MNIST image dataset unit:%

表3 不同方法在Fashion-MNIST圖像數據集上的AUC 單位:%Tab.3 AUC for different methods on Fashion-MNIST image dataset unit:%

表4 不同方法在CIFAR-10圖像數據集上的AUC 單位:%Tab.4 AUC for different methods on CIFAR-10 image dataset unit:%

為直觀地展示DATN-ND 的訓練和測試過程,使用MNIST 圖像數據集中所構造的第10 組異常檢測數據集進行訓練和測試,即將數字“9”的圖像用作正常數據,其余數字的圖像用作異常數據。在訓練階段,從數字“9”的訓練圖像中選取前9 個正常數據進行展示,如圖4(a)所示。訓練樣本對應的瓶頸特征z經過Transformer 網絡變換后得到與z距離較遠的特征空間中的瓶頸特征zt,zt可以被視為具有異常數據信息的瓶頸特征,解碼器將zt映射為數字“9”。因此DATNND 能夠通過Transformer 網絡獲得具有異常數據信息的瓶頸特征,并將其解碼為正常數據。

在測試階段,從9 個異常類別的測試圖像中分別隨機選取一幅圖像,如圖4(b)所示。假設給定的測試樣本是異常數據,編碼器將其映射為異常數據的瓶頸特征,因為異常數據的瓶頸特征與訓練時Transformer 網絡變換后的具有異常信息的瓶頸特征相似,所以異常數據的瓶頸特征通過解碼器映射后的重構樣本與正常數據相似,而沒有Transformer 網絡的模型不能達到相同的效果。如圖4(b)所示,異常數據通過DATN-ND 模型的重構樣本比AE 模型接近正常數據,使異常數據獲得更大的重構誤差,更容易被模型識別。

為了驗證DATN-ND 模型擴大異常數據與正常數據重構誤差差別的有效性,將DATN-ND 模型上異常測試樣本與正常測試樣本重構誤差之間的差值與AE 上的差值進行對比,如圖5 所示,DATN-ND 模型上異常測試樣本的重構誤差與正常測試樣本的重構誤差之間的差值更大,因此更易檢測異常數據。表5 通過MNIST 數據集展示了基于深度學習的相關方法時間對比,由于DAGMM、AE、DATN-ND 均采用全連接網絡,所以優于其他方法,而DATN-ND 方法僅次于AE,主要原因是添加了Transformer 網絡,網絡復雜性要高于AE。

圖5 正常數據與異常數據重構誤差的差值Fig.5 Difference of reconstruction error between normal data and novel data

表5 MNIST數據集上不同方法的時間 單位:sTab.5 Time of different methods on MNIST dataset unit:s

3.2 網絡安全數據集

為了進一步驗證DATN-ND 的性能,在網絡安全數據集KDD-CUP99[29]上將它與其他6 種相關方法OCSVM、DCN(Deep Clustering Network)[30]、DAGMM 的變體PAE、DSEBM(Deep Structured Energy Based Model)[31]、DAGMM 和AE 進行實驗比較,結果如表6 所示。本實驗中將平均精度(Precision)、召回率(Recall)和F1 度量(F1)用作性能指標,而非AUC,因為文獻[12]中的相關方法(包括DCN、PAE、DSEBM、DAGMM)采用了這些性能指標。按照文獻[12]的設置,DATN-ND 只用KDD-CUP99 數據集中的正常數據對模型訓練,KDD-CUP99 數據集中只有20%的樣本標記為“正常”,其余樣本的標記都為“攻擊”,正常數據比較少,所以異常檢測任務中,標記為“正?!钡臉颖颈灰暈楫惓祿?,標記為“攻擊”的樣本被視為正常數據。訓練階段模型從正常數據中隨機抽取50%用于訓練,剩余50%和異常數據用于測試。

從表6 中的結果可以看出,DATN-ND 的平均精度、召回率和F1 評分均優于其他6 種方法。因此,與傳統的異常檢測方法OCSVM 相比,驗證了DATN-ND 的計算能力更強,且能更好地處理高維復雜的數據;與基于深度學習的異常檢測方法(DCN、PAE、DSEBM、DAGMM 和AE)相 比,驗證了在DATN-ND 中所添加的Transformer 網絡模塊和雙自編碼器模塊可以為僅存在正常數據的訓練階段提供異常數據的信息,使模型將異常數據重構為正常數據,提高異常數據的重構誤差,有效提高異常檢測的性能。

表6 不同方法在KDD-CUP99數據集上的結果Tab.6 Results of different methods on KDD-CUP99 dataset

3.3 消融實驗

為檢驗DATN-ND 中各組成模塊、Transformer 網絡模塊以及損失函數權重取值的有效性,在Fashion-MNIST 數據集上進行消融實驗,實驗結果如表7 所示。

DATN-ND-nonT:即無Transformer 網絡的DATN-ND。由表7 中的結果可知,與DATN-ND-nonT 相比,DATN-ND 在10個類別的數據集上均取得了更優的AUC,驗證了DATN-ND中Transformer 網絡對于提高檢測性能是有效的。

DATN-ND-nonL:DATN-ND 最大化損失函數(9)對Transformer 網絡中的參數進行優化,為了展示損失函數(9)對DATN-ND 性能的影響,在DATN-ND 的基礎上去除Transformer 網絡的損失函數(9)。如表7 所示,與DATN-NDnonL 相比,DATN-ND 在10 個類別的數據集上均取得了更優的AUC,驗證了DATN-NDTransformer 網絡的損失函數(9)對于提高性能的有效性。

DATN-ND-nonE:DATN-ND 有三個編碼器E1、E2和E3,編碼器E2、E3最小化式(11)從存在異常數據信息的重構樣本中獲取近似正常數據的瓶頸特征,使測試階段異常數據的重構樣本更接近正常數據,DATN-ND-nonE 表示在DATN-ND 的基礎上去除編碼器E2、E3。如表7 所示,與DATN-ND-nonE 相比,DATN-ND 在10 個類別的數據集上均取得了更優的AUC值,驗證了DATN-ND 編碼器E2、E3對于提高異常檢測性能的有效性。

表7 Fashion-MNIST數據集上消融實驗結果(AUC)Tab.7 AUC results of ablation experiment on Fashion-MNIST dataset

DATN-ND-sampleT:DATN-ND 利用Transformer 網絡對輸入樣本的瓶頸特征進行變換以獲取新的瓶頸特征,同樣它也能對輸入樣本進行變換以獲得新的樣本,為了比較兩者的分類性能,用Transformer 網絡對輸入樣本進行變換,記作DATN-ND-sampleT。由表7 中的結果可知,與DATN-NDsampleT 相比,DATN-ND 取得了更優的AUC 值,因此DATNND 的Transformer 網絡并未直接對輸入樣本進行變換,而是對輸入樣本的瓶頸特征進行變換。

此外,為了展示損失函數權重取值對DATN-ND 分類性能的影響,首先固定β=10-2,γ=-10-4,選取不同的α值,AUC 如圖6(a)所示,當α=10-1時,模型取得最優效果;固定α=10-2,γ=-10-4,選取不同的β值,AUC 如圖6(b)所示,當β=10-2時,模型取得最優結果;固定α=10-1,β=10-2,選取不同的γ值,AUC 如圖6(c)所示,當γ=-10-4時,模型取得最優效果。因此合理的超參數取值能夠有效提高模型分類性能,最終DATN-ND 超參數α取值為10-1,β取值為10-2,γ取值為-10-4。

圖6 分別固定α、β、γ 時的超參性能影響Fig.6 Effect of parameters on performance when fixing α,β or γ

綜上可知,消融實驗驗證了DATN-ND 各組成模塊、Transformer 網絡模塊以及損失函數權重取值能有效提高異常檢測性能。

4 結語

在解決異常檢測問題時,由于訓練集中沒有異常數據,因此基于自編碼器的異常檢測方法在訓練階段無法學習異常數據的信息,導致檢測性能不佳。本文提出基于雙自編碼器和Transformer 網絡的異常檢測方法DATN-ND。DATN-ND通過Transformer 網絡為模型訓練階段提供異常數據信息,使異常數據的重構誤差增大,有效提高模型的檢測性能。盡管DATN-ND 在3 個圖像數據集取得了較優的性能,但是它并不適用于實驗中用到的所有異常檢測數據集,在未來的工作中,可以考慮為Transformer 網絡尋找更優的變換方法來解決上述問題。

猜你喜歡
特征檢測方法
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
如何表達“特征”
不忠誠的四個特征
當代陜西(2019年10期)2019-06-03 10:12:04
抓住特征巧觀察
小波變換在PCB缺陷檢測中的應用
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
捕魚
主站蜘蛛池模板: 亚洲视频四区| 亚洲三级电影在线播放| 久久久久无码国产精品不卡| 国产精品七七在线播放| 米奇精品一区二区三区| 日韩欧美在线观看| 欧美亚洲另类在线观看| 亚洲综合经典在线一区二区| 国产va在线观看免费| 人妻精品全国免费视频| 欧美一级黄片一区2区| 青青网在线国产| 免费看av在线网站网址| 国产第二十一页| 久久精品日日躁夜夜躁欧美| 日韩无码精品人妻| 国产免费久久精品44| 精品视频免费在线| 97se亚洲综合在线天天| 青青草原国产精品啪啪视频| 91啪在线| 精品国产一区二区三区在线观看 | 亚洲中文无码av永久伊人| 国产在线第二页| 92午夜福利影院一区二区三区| 99re热精品视频中文字幕不卡| 漂亮人妻被中出中文字幕久久| 在线观看av永久| av性天堂网| 伊人丁香五月天久久综合 | 欧美一级夜夜爽| 波多野结衣中文字幕久久| 国产精品亚洲一区二区三区z| 国产激爽爽爽大片在线观看| 久久久久亚洲AV成人人电影软件| 青青青草国产| 91成人在线观看视频| 自拍偷拍一区| 日韩国产一区二区三区无码| 最新国产精品鲁鲁免费视频| 亚洲日本中文字幕天堂网| 91年精品国产福利线观看久久| 国产精品女主播| jizz在线观看| 18禁黄无遮挡免费动漫网站| 国产亚洲精品97AA片在线播放| 99视频在线免费观看| 99热这里只有精品免费| 中文字幕日韩欧美| 久久久久国产精品嫩草影院| 99久久精品美女高潮喷水| 久久一本日韩精品中文字幕屁孩| 国产真实二区一区在线亚洲| 欧美在线精品一区二区三区| 无码有码中文字幕| 又爽又大又光又色的午夜视频| 亚洲精品无码AⅤ片青青在线观看| 久久国产V一级毛多内射| 激情无码字幕综合| 日韩精品欧美国产在线| 一区二区三区高清视频国产女人| 婷五月综合| 国内精品视频在线| 91原创视频在线| 国产小视频在线高清播放| 国产午夜精品一区二区三区软件| 亚洲欧美日韩视频一区| 国产精品漂亮美女在线观看| 中文字幕免费播放| 91丝袜美腿高跟国产极品老师| 精品无码人妻一区二区| 久久国产成人精品国产成人亚洲| 免费精品一区二区h| 久久久噜噜噜久久中文字幕色伊伊| 亚洲综合在线最大成人| 久久6免费视频| 99热这里都是国产精品| 亚洲欧洲日产国产无码AV| 国产免费黄| 五月婷婷导航| 啪啪永久免费av| 亚洲美女一区二区三区|