99久久全国免费观看_国产一区二区三区四区五区VM_久久www人成免费看片中文_国产高清在线a视频大全_深夜福利www_日韩一级成人av

徐土豆
認證:優(yōu)質(zhì)創(chuàng)作者
所在專題目錄 查看專題
緊致卷積網(wǎng)絡(luò)設(shè)計——Shift卷積算子
卷積網(wǎng)絡(luò)模型壓縮的若干總結(jié)
DenseNet的理解
一文搞懂反卷積,轉(zhuǎn)置卷積
作者動態(tài) 更多
給定計算預(yù)算下的最佳LLM模型尺寸與預(yù)訓(xùn)練數(shù)據(jù)量分配
05-19 09:33
大模型推理時的尺度擴展定律
05-18 10:32
世界多胞體與世界模型
05-13 09:42
獎勵模型中的尺度擴展定律和獎勵劫持
05-12 08:41
MeCo——給預(yù)訓(xùn)練數(shù)據(jù)增加源信息,就能減少33%的訓(xùn)練量并且提升效果
05-08 09:13

卷積網(wǎng)絡(luò)模型壓縮的若干總結(jié)

本文轉(zhuǎn)自徐飛翔的“卷積網(wǎng)絡(luò)模型壓縮的若干總結(jié)

版權(quán)聲明:本文為博主原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接和本聲明。

為什么要用模型壓縮

深度卷積神經(jīng)網(wǎng)絡(luò)CNN在一系列應(yīng)用特別是計算機視覺領(lǐng)域取得了很多最為先進的成果。一個限制這個技術(shù)更為廣泛發(fā)展的絆腳石就是巨大的數(shù)據(jù)儲存需求。原始的AlexNet網(wǎng)絡(luò)架構(gòu)需要大概240MB的內(nèi)存以儲存訓(xùn)練參數(shù),以用于對一張圖片進行分類,當考慮到其更為深層的網(wǎng)絡(luò)VGG時,其需要更多的內(nèi)存(528MB)[1,2]。這種種(海量內(nèi)存需求)的原因之一,特別是深度學(xué)習(xí)的發(fā)展早期,可能是受到了想要在ImageNet這個比賽中取得最好成績的欲望驅(qū)使,才設(shè)計出了這樣的網(wǎng)絡(luò)。然而,除了讓深度學(xué)習(xí)能夠正常工作外,還有許多是需要額外考慮的。

在一些基于云計算部署的環(huán)境中,因為有著冗余的計算資源,包括有著大量的GPU支持,以上談到的大量的內(nèi)存需求可能不是一個大問題。但是,考慮到在一些移動設(shè)備或者邊緣計算設(shè)備上時,情況可能就有所不同了,這些資源要求限制了深度神經(jīng)網(wǎng)絡(luò)不能真正地在應(yīng)用場景部署。最近,隨著深度學(xué)習(xí)應(yīng)用在移動物聯(lián)網(wǎng)設(shè)備上的蔓延(包括智能手機),人們發(fā)現(xiàn)已經(jīng)到了解決這個重要問題的時候了。

因此,嘗試使得深度神經(jīng)網(wǎng)絡(luò)的設(shè)計要求更少的內(nèi)存儲存和計算資源完成工作成為了一個新的研究方向。特別來說,這個研究方向指的就是,對大量笨重的模型(指的是參數(shù)量多)進行修改,以減少其內(nèi)存需求的同時盡量取得更多的其原來未修改模型的性能。另一個研究方向就是嘗試去從頭設(shè)計一個內(nèi)存使用更為緊湊的神經(jīng)網(wǎng)絡(luò)。接下來,我們會討論這些方法的一些細節(jié)。

內(nèi)存緊致的網(wǎng)絡(luò)

讓我們回顧CNN結(jié)構(gòu)的設(shè)計,我們會發(fā)現(xiàn)其壓縮模型的一個直接的方法就是考慮更為內(nèi)存緊致的模型。首先,我們知道對于一個標準的M輸入通道, N輸出通道的大小為的卷積核而言,其參數(shù)量為 ,對于全連接網(wǎng)絡(luò)而言,則是 i個輸入單元 j 個輸出單元的要求參數(shù)量為

舉例來說,在VGG16中,其最后一個卷積塊的一層的參數(shù)量為 ,而且最后還需要將這個 的特征圖喂給最后的4096個節(jié)點的全連接層,因此,光是在最后的全連接這一層,就需要 的參數(shù)量。因此,將最后一層的全連接層拋棄并且替換成其他網(wǎng)絡(luò)已經(jīng)成為了實踐中的常規(guī)操作,比如ResNet和Inception中都這樣做過,這樣可以使得內(nèi)存需求的大幅度下降,同時可以讓模型設(shè)計得更深。[3,4]

最近,有很多文章在嘗試解決這個導(dǎo)致卷積層復(fù)雜的因素,以壓縮模型大小。2016年發(fā)表的SqueezeNet是第一篇文章考慮設(shè)計一個內(nèi)存緊湊的架構(gòu)去解決這個問題的[5]。在這里,應(yīng)用了1x1卷積去壓縮輸入的通道數(shù)量以減少參數(shù)量。具體來說,就是在采用更加內(nèi)存不經(jīng)濟的3x3卷積之前,通過減少輸入特征圖的通道數(shù)量來減少參數(shù)量。說的更精確些就是,這個結(jié)構(gòu)包含了一系列連續(xù)的“Fire-Module”,這些模組包含了兩層卷積層,第一層是1x1卷積,通過將原來輸入特征圖的通道數(shù)從 N 轉(zhuǎn)化到 M (M < N),第二層是1x1卷積和3x3卷積的組合。通過這種手段,只需要4.8MB的參數(shù)量就可以達到AlexNet的精度水平。

在這里插入圖片描述Fig 1. SqueezeNet中的一個"Fire Module"。

Google的MobileNets在修改卷積操作的路上走得更遠些[6]。MobileNets的主要特點就是所謂的深度可分離卷積(depthwise separable convolutions)。在標準卷積里,如果我們將卷積核看成是一個三維的物件(如Fig 2所示),那么將輸入的 M M M個特征圖轉(zhuǎn)換成輸出的 N N N個特征圖,需要參數(shù)量為。在深度可分離卷積中,這個標準的卷積將被取代成下列兩步驟:

一個卷積,大小為(也就是只考慮輸入通道),應(yīng)用在輸入特征圖上(深度方向卷積,Depthwise Convolution),得到輸出特征圖?(譯者注:注意此處只有一個卷積核,而不同與標準卷積中的需要N個)    然后,在經(jīng)過了BatchNorm層和ReLU激活層后,N個1x1的卷積被分別應(yīng)用在第一步得到的輸出特征圖上,從而得到N 個輸出特征圖。

通過這個手段我們發(fā)現(xiàn)我們的參數(shù)量縮減為而不是標準卷積的,參數(shù)量幾乎減少了 N倍,大量的內(nèi)存和計算資源得到了節(jié)省。通過這個技術(shù),MobileNets在ImageNet上達到了70.6%的Top-1準確率(對比AlexNet的約57%),而且其內(nèi)存需求只要16MB(對比AlexNet的240MB)。整個過程如Fig 3所示。

在這里插入圖片描述Fig 2. 將卷積核看成三維的結(jié)構(gòu)。(考慮到通道之間的變換)

在這里插入圖片描述Fig 3. 深度可分離卷積和標準卷積的區(qū)別示意圖。

在MobileNets中的逐個深度的卷積(Depthwise Convolutions)的這個想法可以被更進一步演化成逐個組的卷積(Group-wise Convolutions),而這個就是SEP-Nets所做的[7]或者ShuffleNets[8]所做的。在MobileNets的逐深度卷積中,一個單獨的的卷積核被應(yīng)用于輸入特征圖。而逐組卷積考慮把這個輸入特征圖分為k個組,然后不同組之間共享不同的卷積核。通過這個手段可以達到常規(guī)卷積操作參數(shù)量的?。(即是當k=1時,逐組卷積=逐深度卷積,當k=M時,逐組卷積=常規(guī)卷積。)整個過程如Fig 4所示。這個對組的分割可以通過設(shè)置參數(shù),在PyTorch中簡單實現(xiàn)。

在這里插入圖片描述Fig 4. 逐組卷積示意圖。

從浮點數(shù)到更低位寬——通過量化實現(xiàn)壓縮

另一個直接的方法去實現(xiàn)壓縮參數(shù)儲存需求的方法就是通過減少參數(shù)的位寬,被稱之為量化(quantization)。我們可以把大型卷積網(wǎng)絡(luò)的參數(shù)數(shù)據(jù)類型從32bit的浮點數(shù)下降到8bit的浮點數(shù),而這個后處理步驟對性能影響不大。這個結(jié)論同樣在那些被設(shè)計成節(jié)省內(nèi)存的網(wǎng)絡(luò),如MobileNets和SqueezeNet中成立。事實上,這個叫做量化的功能已經(jīng)在TensorFlow中得到了支持[9]。然而,如果把32bit下降到8bit位寬,那么不可避免的是,在這么低的位寬下訓(xùn)練還再需要訓(xùn)練這個網(wǎng)絡(luò)。因為所有的優(yōu)化算法,比如SGD或者Adam,都是依賴于高精度的參數(shù)數(shù)據(jù)和梯度數(shù)據(jù)的,如何訓(xùn)練這種經(jīng)過量化的網(wǎng)絡(luò)成為了一個緊急需要研究的方向。

另一個和這個量化的想法強相關(guān)的是不僅僅是把參數(shù),而且把其激活值(既是輸入在卷積操作過后的輸出值)也進行量化。對于參數(shù)進行量化對于減少模型的內(nèi)存需求有著很好的表現(xiàn),如果附加地對激活值也進行量化,那么就可以對一些專用的硬件(如FPGAs)進行加速,這種硬件對于1或者2bits的參數(shù)或者激活值,其矩陣計算可以被邏輯運算完全代替,從而提高運算速度。部分因為這個原因,深度學(xué)習(xí)的硬件加速是一個獨立的研究領(lǐng)域,并且可以獨立寫成另一個博客,因此這里只考慮軟件角度上的量化。最為常見的想法就是首先在GPU上訓(xùn)練一個量化模型,然后在邊緣設(shè)備上部署推理。

最為極端一種情況就是二值量化,也就是在推理階段把參數(shù)限制在-1和+1兩個值,這個工作可以在Courbariaux et al. [10,11,12]中找到。在他們原始的BinaryConnect文章中,他們提出在訓(xùn)練過程中用完整精度的參數(shù)進行參數(shù)更新,但是在反向傳播時是根據(jù)二值參數(shù)進行傳遞的。換句話說,這個loss是根據(jù)二值參數(shù)進行計算的,但是參數(shù)更新卻用全精度的參數(shù)進行。這個二值操作在所有參數(shù)更新中都實施,其被簡單的被sign二值函數(shù)計算出來。(其有個隨機版本,就是將一個參數(shù)根據(jù)概率 設(shè)置為+1,以對訓(xùn)練進行正則化。)

在他們的BNN文章[11]中,這個二值激活的想法得到了擴展。在這個工作中,不僅僅是參數(shù)更新,而且反向傳播也是用全精度的參數(shù),因為梯度可能會因為使用了離散值而變得幾乎所有地方都變成0(導(dǎo)致無法訓(xùn)練)。在他們稱之為XNOR的文章中[13],Rastegari et al.將這個方法進行擴展,提出了二值卷積的尺度化因子,這個因子由每個卷積核的全精度參數(shù)的平均值所給定。

在他們的QNN文章[12]中,Courbariaux et al. 通過用signum函數(shù)將二值演化成線性量化,進一步擴展了嚴格的二值卷積到更高的位寬。

另一個方法由Ternary提出,其對模型參數(shù)可以取為0,+1和-1。Li et al. 提出了一個合適的尺度放縮因子和一個閾值(Threshold Delta)可以泛化這個BinaryConnect的方法到Ternary的那種情況,簡單描述為:在全精度參數(shù)的情況下,如果  ,w就設(shè)置為-1;如果 這個w設(shè)置為0,如果是 \delta" />則設(shè)置為1 [14]。

一個非線性量化的方法由Zhou et al.提出,其參數(shù)被2的指數(shù)或者0的指數(shù)所量化 [15]。這個想法允許有效的位移操作去替代浮點數(shù)的乘法操作,甚至對于更高的位寬而言。此外,這個作者還介紹了一種和上述文獻提到的不同的量化策略,與其同時量化所有的參數(shù),不如將量化遞增地進行實施。在每個迭代中,只有一些參數(shù)被量化,而其他的仍然保持浮點數(shù)形式的參數(shù)被重訓(xùn)練以補償精度上的損失。量化部分的參數(shù)逐步遞增直到100%。在ImageNet上用不同的架構(gòu)進行的實驗證實了在5bits上的量化有著比全精度模型更高的性能。采用位寬為2,ResNet-18可以被量化,然后其精度損失為2.3%。

最佳大腦損傷——通過剪枝移除冗余部分

即便有著強大的正則化技術(shù)如dropout或者參數(shù)衰減的應(yīng)用,我們?nèi)匀豢梢灾溃瑢Ρ绕渌麉?shù),神經(jīng)網(wǎng)絡(luò)中的一些參數(shù)總是可以對預(yù)測作出更大的貢獻。移除更小貢獻的參數(shù)以壓縮神經(jīng)網(wǎng)絡(luò)的過程因而被稱之為剪枝(Pruning)。在一些權(quán)值被剪枝掉之后,神經(jīng)網(wǎng)絡(luò)通常不得不經(jīng)過微調(diào)以適應(yīng)這個變化。

這個想法首先有Yann Le Cunn et. al 在1990提出,其著名的文獻名為Optimal Brain Damage(OBD),這個想法被后續(xù)很多現(xiàn)代深度模型所沿用。[16]

在剪枝上的研究大部分考慮的是如何度量參數(shù)對性能的貢獻。在OBD中,這個貢獻用對訓(xùn)練誤差的造成的影響進行度量,將特定的參數(shù)設(shè)置為0,然后觀察其訓(xùn)練誤差的變化。 顯然,這個方法是在深度網(wǎng)絡(luò)中不現(xiàn)實的,需要太大的計算量。在深度壓縮中,Han et. al簡單把最低絕對值的參數(shù)裁剪,在其全連接層上比原始尺寸減少了10%的參數(shù)量,在卷積層上減少了大概60%的參數(shù)量,而其預(yù)測性能沒有減少[17]。

Tu et la.提出了一種方法,聯(lián)合其參數(shù),其可以精準地度量Fisher信息,并且可以把它作為對貢獻的一種度量 [18]。最近,更為先進的逐個層的方法被提出 [19,20]。

從大模型到小模型——通過知識蒸餾的方法進行知識遷移

一個更為通用的方法去壓縮一個給定模型,是強制一個更小的模型去模擬它的表現(xiàn)。在深度學(xué)習(xí)的語境中,這個想法被描述為Teacher-Student Learning師生學(xué)習(xí) 或者 Knowledge Distillation知識蒸餾 [22]。我們首先可以訓(xùn)練一個最為先進的模型如ResNet或者inception(這個作為老師),然后想要利用這個老師網(wǎng)絡(luò)的預(yù)測去訓(xùn)練一個更小的模型,也即是學(xué)生網(wǎng)絡(luò)。(譯者注:其實這個過程在嘗試去用更小模型去擬合大模型的聯(lián)合概率分布)為了達到這個目標,當在訓(xùn)練學(xué)生網(wǎng)絡(luò)時,我們對兩個網(wǎng)絡(luò)都采取了前向傳播,模型計算其老師輸出和學(xué)生輸出之間的的交叉熵。通過這個方法進行訓(xùn)練,學(xué)生網(wǎng)絡(luò)不僅學(xué)習(xí)到了基于真實標簽的信息,而且還額外學(xué)習(xí)到了老師網(wǎng)絡(luò)的信息,這個信息被稱之為模型的“dark knowledge”,即是一個類別在隱空間里面可以是靠近另一個類別的(有一定相關(guān)性)。

舉例而言,我們的任務(wù)是對四個類別:貓,狗,馬和斑馬進行圖像分類。一個強大的模型可以學(xué)習(xí)到貓比馬和斑馬更加相似于狗,這個可以通過其給出的softmax結(jié)果如  (0.7, 0.25, 0.035, 0.015) 得出。在實際操作中,老師網(wǎng)絡(luò)的softmax的輸出通過一個因子進行分割,這個超參數(shù)被描述為溫度(Temperature),這個可以使得將它們更大程度上的拉離硬的目標(也就是真實的標簽)。因此,如果學(xué)生模型通過這個額外的信息進行訓(xùn)練,而不僅僅是真實標簽,其可以比從頭訓(xùn)練有著更好的表現(xiàn)性能。更抽象的說,我們可以說我們通過將其知識從遷移到了更小的模型,使得其有著相同的輸出。

在這里插入圖片描述Fig 5. TS學(xué)習(xí)的示意圖。

這個想法第一次由Ba and Caruana提出[21], 隨后被Hinton [22]跟進。 自此之后一些對這些算法的改進被提出,其可以在一些特定的應(yīng)用中提高性能[23]。知識蒸餾在物體識別中同樣得到了成功應(yīng)用,一些例子說明了其可以在大型數(shù)據(jù)集上使用,甚至對于更復(fù)雜的任務(wù)都可以勝任[24,25]。

Reference

[0]. https://medium.com/@nicolas_19145/state-of-the-art-in-compressing-deep-convolutional-neural-networks-cfd8c5404f22

[1]. Krizhevsky, A., Sutskever, I., & Hinton, G. E. (n.d.). ImageNet Classification with Deep Convolutional Neural Networks. Retrieved from https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf

[2]. Simonyan, K., & Zisserman, A. (2015). VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION. Retrieved from https://arxiv.org/pdf/1409.1556.pdf

[3]. He, K., Zhang, X., Ren, S., & Sun, J. (n.d.). Deep Residual Learning for Image Recognition. Retrieved from https://arxiv.org/pdf/1512.03385.pdf

[4]. Szegedy, C., Ioffe, S., Vanhoucke, V., & Alemi, A. (n.d.). Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning. Retrieved from https://arxiv.org/pdf/1602.07261.pdf

[5]. Iandola, F. N., Han, S., Moskewicz, M. W., Ashraf, K., Dally, W. J., & Keutzer, K. (n.d.). SQUEEZENET: ALEXNET-LEVEL ACCURACY WITH 50X FEWER PARAMETERS AND <0.5MB MODEL SIZE

[6]. Howard, A. G., Zhu, M., Chen, B., Kalenichenko, D., Wang, W., Weyand, T., … Adam, H. (n.d.). MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications. Retrieved from https://arxiv.org/pdf/1704.04861.pdf

[7]. Li, Z., Wang, X., Lv, X., & Yang, T. (n.d.). SEP-Nets: Small and Effective Pattern Networks. Retrieved from https://arxiv.org/pdf/1706.03912.pdf

[8]. Zhang, X., Zhou, X., Lin, M., & Sun, J. (n.d.). ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices. Retrieved from https://arxiv.org/pdf/1707.01083v1.pdf

[9]. https://www.tensorflow.org/performance/quantization

[10]. Courbariaux, M., & David, J. (n.d.). BinaryConnect : Training Deep Neural Networks with binary weights during propagations https://arxiv.org/pdf/1511.00363.pdf

[11]. Courbariaux, M., Hubara, I., Soudry, D., El-Yaniv, R., Il, R. T. A., Bengio, Y., & Com, Y. U. (n.d.). Binarized Neural Networks: Training Neural Networks with Weights and Activations Constrained to +1 or −1. Retrieved from https://arxiv.org/pdf/1602.02830.pdf

[12]. Hubara, I., Courbariaux, M., Soudry, D., El-Yaniv, R., & Bengio, Y. (2016). Quantized Neural Networks Quantized Neural Networks: Training Neural Networks with Low Precision Weights and Activations. Retrieved from https://arxiv.org/pdf/1609.07061.pdf

[13]. Rastegari, M., Ordonez, V., Redmon, J., & Farhadi, A. (n.d.). XNOR-Net: ImageNet Classification Using Binary Convolutional Neural Networks. Retrieved from https://arxiv.org/pdf/1603.05279.pdf

[14]. Li, F., Zhang, B., & Liu, B. (n.d.). Ternary weight networks. Retrieved from https://arxiv.org/pdf/1605.04711.pdf

[15]. Zhou, A., Yao, A., Guo, Y., Xu, L., & Chen, Y. (n.d.). INCREMENTAL NETWORK QUANTIZATION: TOWARDS LOSSLESS CNNS WITH LOW-PRECISION WEIGHTS.

[16]. Cun, L., Denker, S., Le Cun, Y., Denker, J. S., & Sol1a, S. A. (n.d.). Optimal Brain Damage. Retrieved from https://papers.nips.cc/paper/250-optimal-brain-damage.pdf

[17]. Han, S., Mao, H., & Dally, W. J. (n.d.). DEEP COMPRESSION: COMPRESSING DEEP NEURAL NETWORKS WITH PRUNING, TRAINED QUANTIZATION AND HUFFMAN CODING. Retrieved from https://arxiv.org/pdf/1510.00149.pdf

[18]. Tu, M., Berisha, V., Woolf, M., Seo, J.-S., & Cao, Y. (n.d.). RANKING THE PARAMETERS OF DEEP NEURAL NETWORKS USING THE FISHER INFORMATION. Retrieved from http://www.mirlab.org/conference_papers/International_Conference/ICASSP 2016/pdfs/0002647.pdf

[19]. Dong, X., Chen, S., & Pan, S. J. (n.d.). Learning to Prune Deep Neural Networks via Layer-wise Optimal Brain Surgeon. Retrieved from https://arxiv.org/pdf/1705.07565.pdf

[20]. Aghasi, A., Abdi, A., Nguyen, N., & Romberg, J. (n.d.). Net-Trim: Convex Pruning of Deep Neural Networks with Performance Guarantee. Retrieved from https://arxiv.org/pdf/1611.05162.pdf

[21]. Lei Jimmy Ba and Rich Caruana: Do Deep Nets Really Need to be Deep? https://arxiv.org/pdf/1312.6184.pdf

[22]. Hinton, G., Vinyals, O., & Dean, J. (2015). Distilling the Knowledge in a Neural Network. Retrieved from https://arxiv.org/pdf/1503.02531.pdf

[23]. Romero, A., Ballas, N., Kahou, S. E., Chassang, A., Gatta, C., & Bengio, Y. (2015). FITNETS: HINTS FOR THIN DEEP NETS. Retrieved from https://arxiv.org/pdf/1412.6550.pdf

[24]. Chen, G., Choi, W., Yu, X., Han, T., & Chandraker, M. (n.d.). Learning Efficient Object Detection Models with Knowledge Distillation. Retrieved from https://papers.nips.cc/paper/6676-learning-efficient-object-detection-models-with-knowledge-distillation.pdf

[25]. Wang, C., Lan, X., & Zhang, Y. (n.d.). Model Distillation with Knowledge Transfer from Face Classification to Alignment and Verification. Retrieved from https://arxiv.org/pdf/1709.02929.pdf

聲明:本內(nèi)容為作者獨立觀點,不代表電子星球立場。未經(jīng)允許不得轉(zhuǎn)載。授權(quán)事宜與稿件投訴,請聯(lián)系:editor@netbroad.com
覺得內(nèi)容不錯的朋友,別忘了一鍵三連哦!
贊 2
收藏 2
關(guān)注 52
成為作者 賺取收益
全部留言
0/200
成為第一個和作者交流的人吧
主站蜘蛛池模板: 久久久久国产成人免费精品免费 | 最近中文AV字幕在线中文 | 久久亚洲中文字幕伊人久久大 | 色悠综合| 一级片精品 | 成人免费在线观看网站 | 啪啪免费看 | aaaa一级片| 成人小视频在线观看免费 | av影片在线看 | 无码少妇一区二区三区 | 国产精品偷伦小说 | 欧洲精品色在线观看 | 日韩一二三区在线 | 亚洲VS成人无码人在线观看堂 | 久久综合狠狠综合久久综合88 | 色情久久久AV熟女人妻网站 | 男女啪啪做爰高潮无遮挡 | 一区二区视频免费看 | 成人h动漫无码网站久久 | 色AV综合AV综合无码网站 | 日本在线看片免费人成视频 | 国产香蕉一区二区在线网站 | 久久97超碰色中文字幕蜜芽 | 扒开粉嫩的小缝隙喷白浆 | 国产91精品看黄网站 | 国产一级淫片a按摩推澡按摩 | 两性毛片 | 日本视频免费看 | www.久久视频 | 中文字幕一区在线观看视频 | 男人操女人在线视频 | 小尤奈无码视频 | GOGOGO免费高清视频3 | 一区二三区日韩精品 | 中文字幕漂亮人妻熟睡中被公侵犯 | 欧美最猛黑人xxxx黑人表情 | 国产精品扒开腿做爽爽爽视频 | 国产AV无码专区亚洲AV毛网站 | 国产乱码在线 | ijzzijzzij亚洲大全 |