亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

四種主流深度學(xué)習(xí)架構(gòu)實戰(zhàn):CNN、Transformer、GAN與膠囊網(wǎng)絡(luò)全解析

四種主流深度學(xué)習(xí)架構(gòu)實戰(zhàn):CNN、Transformer、GAN與膠囊網(wǎng)絡(luò)全解析 1. 開篇一次把四種主流架構(gòu)全部過一遍如果你看過這個系列的第一篇應(yīng)該還記得我們當(dāng)時用 Keras 把基礎(chǔ)的全連接網(wǎng)絡(luò)和卷積網(wǎng)絡(luò)從頭到尾搭了一遍核心就是在“動手寫代碼”這個層面把一些看起來很嚇人的概念落到實際可運行的模型上。這一篇我們繼續(xù)往前走目標(biāo)很明確——把 CNN、Transformer、GAN 和膠囊網(wǎng)絡(luò)這四種架構(gòu)放在同一套 TensorFlow Keras 環(huán)境里逐一拆開揉碎搞明白它們各自解決什么問題、網(wǎng)絡(luò)結(jié)構(gòu)怎么搭、訓(xùn)練時有哪些坑以及哪些場景真的值得用它們。這篇內(nèi)容最適合兩類人一類是已經(jīng)會用 Keras 寫簡單模型但面對“Transformer 到底怎么實現(xiàn)”“GAN 訓(xùn)練為什么總是不收斂”“膠囊網(wǎng)絡(luò)到底是干什么的”這類問題時心里沒底的同學(xué)另一類是準(zhǔn)備面試或做課程設(shè)計需要快速理解主流模型內(nèi)部原理并且能動手寫代碼的人。我會盡可能把每一步代碼背后“為什么這么做”也講清楚而不是丟一段能跑就完事的代碼。先說一句總結(jié)性的話這四種架構(gòu)本質(zhì)上是在不同維度上做特征提取和表示學(xué)習(xí)。CNN 擅長局部模式識別Transformer 擅長長距離依賴建模GAN 用對抗博弈驅(qū)動生成膠囊網(wǎng)絡(luò)試圖解決 CNN 丟失空間層次關(guān)系的問題。理解了這一點你再看它們的代碼就會覺得順很多。2. 四種架構(gòu)的核心差異與選型思路2.1 CNN在局部窗口里找模式卷積神經(jīng)網(wǎng)絡(luò)的核心假設(shè)是圖像或者信號中相鄰區(qū)域的特征往往高度相關(guān)。比如一張貓臉照片耳朵、眼睛、鼻子這些器官是由局部像素組合而成的不需要看整張圖才能識別出耳朵。卷積操作就是用一個小窗口比如 3×3 或 5×5掃過整張?zhí)卣鲌D在每個局部位置做加權(quán)求和把局部模式提取出來。在 Keras 里一個標(biāo)準(zhǔn)的卷積塊通常長這樣from tensorflow.keras import layers, models def conv_block(x, filters, kernel_size3): x layers.Conv2D(filters, kernel_size, paddingsame)(x) x layers.BatchNormalization()(x) x layers.ReLU()(x) x layers.MaxPooling2D(pool_size(2, 2))(x) return x這個塊做了四件事卷積提取特征、歸一化穩(wěn)定訓(xùn)練、激活函數(shù)引入非線性、池化降低分辨率。很多人寫 CNN 時容易忽略 BatchNormalization 的位置——放激活之前還是之后都有講究。我自己的習(xí)慣是先卷積、再 BN、再激活這樣 BN 能更直接地規(guī)約卷積輸出的分布訓(xùn)練更穩(wěn)定。選型時要知道 CNN 的邊界在哪里它擅長捕捉局部關(guān)系但如果兩個關(guān)鍵特征距離很遠需要堆很多層才能把感受野撐大而且訓(xùn)練難度也會增加。這也是為什么后面會出現(xiàn) Transformer 和膠囊網(wǎng)絡(luò)。2.2 Transformer關(guān)注全局關(guān)系Transformer 和 CNN 最大的不同在于它一開始就不假設(shè)數(shù)據(jù)有局部的空間結(jié)構(gòu)。它的核心機制是自注意力Self-Attention讓序列里的每一個位置都能直接和序列里所有其他位置計算相關(guān)性。比如處理一句話時“它”指代的是前面的“貓”還是“狗”模型可以通過注意力權(quán)重自己學(xué)出來不需要像 RNN 那樣一步步傳遞信息。用 Keras 實現(xiàn)一個最簡 Transformer 編碼器核心代碼可以這樣寫class TransformerBlock(layers.Layer): def __init__(self, embed_dim, num_heads, ff_dim, rate0.1): super().__init__() self.att layers.MultiHeadAttention(num_headsnum_heads, key_dimembed_dim) self.ffn models.Sequential([ layers.Dense(ff_dim, activationrelu), layers.Dense(embed_dim), ]) self.layernorm1 layers.LayerNormalization(epsilon1e-6) self.layernorm2 layers.LayerNormalization(epsilon1e-6) self.dropout1 layers.Dropout(rate) self.dropout2 layers.Dropout(rate) def call(self, inputs, trainingFalse): attn_output self.att(inputs, inputs) attn_output self.dropout1(attn_output, trainingtraining) out1 self.layernorm1(inputs attn_output) ffn_output self.ffn(out1) ffn_output self.dropout2(ffn_output, trainingtraining) return self.layernorm2(out1 ffn_output)這段代碼里有一個容易忽略但很關(guān)鍵的細節(jié)注意力輸出之后要先經(jīng)過 Dropout再做殘差連接和 LayerNorm。順序顛倒或者漏掉殘差Transformer 很容易訓(xùn)練崩掉。第二個細節(jié)是 LayerNormalization 是對每個樣本的特征維度做歸一化而不是像 BatchNormalization 那樣跨樣本做歸一化這在 NLP 和序列任務(wù)中更穩(wěn)定。選型時Transformer 的強項是長距離建模弱點是計算量隨序列長度平方增長。處理圖像時如果直接展平成序列一張 224×224 的圖就有 5 萬多個像素點實際運算量會非常驚人所以視覺 Transformer 通常先切 patch 再處理。2.3 GAN生成器與判別器的對抗博弈GAN 的思路特別直觀有兩個網(wǎng)絡(luò)互相博弈。生成器負責(zé)“造假”判別器負責(zé)“驗真”。生成器想把隨機噪聲變成以假亂真的樣本判別器則努力分辨真實樣本和生成樣本。兩者不斷對抗最后生成器學(xué)到的分布會越來越接近真實數(shù)據(jù)的分布。在 Keras 里一個最簡單的 GAN 訓(xùn)練循環(huán)包含三個模型生成器、判別器、以及把兩者拼接起來的對抗模型。generator models.Sequential([ layers.Dense(256, input_shape(latent_dim,)), layers.LeakyReLU(alpha0.2), layers.BatchNormalization(), layers.Dense(512), layers.LeakyReLU(alpha0.2), layers.BatchNormalization(), layers.Dense(28 * 28 * 1, activationsigmoid), layers.Reshape((28, 28, 1)), ])生成器里我故意用了 LeakyReLU 而不是普通 ReLU這是因為 ReLU 會把負數(shù)全部置零導(dǎo)致梯度稀疏生成器容易陷入“只會輸出重復(fù)樣本”的模式坍塌狀態(tài)。至于 BatchNormalization可以穩(wěn)定生成器內(nèi)部特征的分布讓訓(xùn)練過程平滑很多。判別器是二分類模型輸出一個 0 到 1 之間的真假分?jǐn)?shù)。但訓(xùn)練時有一個細節(jié)判別器不能訓(xùn)練得太好否則它一眼就識破所有生成樣本梯度消失生成器學(xué)不到任何東西。所以經(jīng)驗上判別器和生成器的訓(xùn)練節(jié)奏要交替進行判別器每訓(xùn)兩步生成器才訓(xùn)一步。2.4 膠囊網(wǎng)絡(luò)試圖給 CNN 補上“空間關(guān)系課”膠囊網(wǎng)絡(luò)這個概念最早是為了解決 CNN 的一個先天不足CNN 通過多次池化不斷壓縮空間尺寸雖然獲得了更大的感受野卻也丟失了物體部件之間的精確位置關(guān)系。比如一張圖里“臉”在“身體”上面這種空間位置關(guān)系對 CNN 來說并不敏感只要局部特征都出現(xiàn)了它就可能判定為同一個類別。膠囊網(wǎng)絡(luò)的做法是用一組向量神經(jīng)元也就是膠囊來表示一個實體向量的長度表示實體存在的概率向量的方向表示實體的姿態(tài)屬性位置、角度、尺度等。層與層之間用動態(tài)路由算法來傳遞信息讓上層膠囊自動決定接收下層哪些膠囊的信息。膠囊網(wǎng)絡(luò)代碼比 CNN 復(fù)雜不少后面我會詳細拆解它的關(guān)鍵部分。這里先提醒一句膠囊網(wǎng)絡(luò)目前更多是實驗性應(yīng)用訓(xùn)練成本高、對超參敏感工業(yè)落地的案例遠不如 CNN 和 Transformer 多。如果你想在簡歷或課程設(shè)計里展示學(xué)習(xí)深度它是個很好的話題點但真要上生產(chǎn)環(huán)境還是得謹(jǐn)慎。3. CNN 實戰(zhàn)從零搭一個能用的圖像分類模型3.1 數(shù)據(jù)準(zhǔn)備和增強策略實戰(zhàn)部分我用一個模擬的圖像分類數(shù)據(jù)集來演示假設(shè)有 10 個類別每類 5000 張 64×64 的彩色圖片。數(shù)據(jù)量不大所以數(shù)據(jù)增強是必須的。from tensorflow.keras.preprocessing.image import ImageDataGenerator datagen ImageDataGenerator( rotation_range20, width_shift_range0.2, height_shift_range0.2, shear_range0.15, zoom_range0.2, horizontal_flipTrue, fill_modenearest, validation_split0.2, )注意數(shù)據(jù)增強是在線進行的不是在訓(xùn)練前一次性生成一批增強圖片并存儲。這樣每個 epoch 模型看到的都是不同的變換版本相當(dāng)于隱式地擴大了數(shù)據(jù)集。輪轉(zhuǎn)角度不要設(shè)置太大20 度以內(nèi)比較合理過大的角度會讓語義本身發(fā)生變化。比如數(shù)字“6”旋轉(zhuǎn) 180 度就變成“9”標(biāo)簽就錯了。3.2 網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計與參數(shù)選擇我們設(shè)計一個淺但有效的 CNNdef build_cnn(input_shape(64, 64, 3), num_classes10): inputs layers.Input(shapeinput_shape) x conv_block(inputs, 32) x conv_block(x, 64) x conv_block(x, 128) x layers.GlobalAveragePooling2D()(x) x layers.Dropout(0.5)(x) outputs layers.Dense(num_classes, activationsoftmax)(x) model models.Model(inputs, outputs) return model這里有幾個刻意的設(shè)計。第一用 GlobalAveragePooling2D 而不是直接 Flatten 再接全連接層前者能把每個通道的特征圖壓成一個值大幅減少參數(shù)量也降低過擬合風(fēng)險。第二最后一個卷積塊輸出 128 個通道然后接一個 0.5 丟棄率的 Dropout。CNN 的參數(shù)量主要集中在最后的全連接層和較深的卷積層Dropout 在這里效果最明顯。編譯參數(shù)上優(yōu)化器我推薦用 Adam初始學(xué)習(xí)率 1e-3。如果訓(xùn)練過程中驗證集準(zhǔn)確率長時間停滯可以動態(tài)降低學(xué)習(xí)率lr_scheduler tf.keras.optimizers.schedules.ReduceLROnPlateau( monitorval_loss, factor0.5, patience3, min_lr1e-6)這里補充一個我自己踩過的坑如果直接用 ImageDataGenerator 的 flow_from_directory 加載數(shù)據(jù)一定要把 class_mode 設(shè)置成正確的類型分類任務(wù)用 ‘categorical’單標(biāo)簽二分類可以用 ‘binary’。我第一次跑的時候沒注意默認(rèn)值不對損失函數(shù)計算直接報錯排查了半天。3.3 訓(xùn)練監(jiān)控與過擬合判斷訓(xùn)練時建議同時監(jiān)控訓(xùn)練集和驗證集的指標(biāo)。判斷過擬合的一個實用標(biāo)準(zhǔn)是訓(xùn)練集準(zhǔn)確率持續(xù)上升而驗證集準(zhǔn)確率在某個 epoch 之后不再增長甚至下降同時訓(xùn)練損失還在下降這就是明顯的過擬合信號。應(yīng)對策略優(yōu)先級從高到低是增加數(shù)據(jù)增強強度但不改變語義、增加 Dropout 比例、減小網(wǎng)絡(luò)容量、加入 L2 正則化。千萬不要一上來就換一個更大的預(yù)訓(xùn)練模型那只會讓過擬合更嚴(yán)重。等到增強和正則化都用到位還欠擬合再考慮提高模型容量。3.4 遷移學(xué)習(xí)用預(yù)訓(xùn)練權(quán)重快速提升效果如果數(shù)據(jù)量更少比如每類只有幾百張從頭訓(xùn)練 CNN 很容易過擬合這時候遷移學(xué)習(xí)是首選。用 Keras 內(nèi)置的預(yù)訓(xùn)練模型非常方便base_model tf.keras.applications.ResNet50( include_topFalse, weightsimagenet, input_shape(224, 224, 3)) base_model.trainable False inputs layers.Input(shape(224, 224, 3)) x base_model(inputs, trainingFalse) x layers.GlobalAveragePooling2D()(x) x layers.Dropout(0.3)(x) outputs layers.Dense(num_classes, activationsoftmax)(x)核心細節(jié)是 base_model.trainable False也就是凍結(jié)預(yù)訓(xùn)練權(quán)重只訓(xùn)練新增的分類頭。這一步能防止預(yù)訓(xùn)練權(quán)重在訓(xùn)練初期被隨機初始化的分類層破壞。等分類頭收斂后如果想進一步微調(diào)可以把 base_model 設(shè)置為可訓(xùn)練并用一個很小的學(xué)習(xí)率比如 1e-5僅解凍后面幾層。這個“先凍結(jié)再解凍”的兩階段微調(diào)策略實測下來比一步到位效果穩(wěn)定得多。4. Transformer 實現(xiàn)從位置編碼到多頭注意力4.1 為什么需要位置編碼Transformer 的注意力機制本身完全不感知順序。它對一組輸入向量計算相關(guān)性時如果把順序打亂注意力結(jié)果不變。這在處理文本或時序數(shù)據(jù)時是致命的因為“我愛你”和“你愛我”含義截然相反。位置編碼就是給每個輸入向量加上位置信息。代碼實現(xiàn)上最常見的是用正弦余弦函數(shù)生成固定位置編碼def positional_encoding(length, d_model): pos tf.range(length, dtypetf.float32)[:, tf.newaxis] i tf.range(d_model, dtypetf.float32)[tf.newaxis, :] angle_rates 1 / tf.pow(10000.0, (2 * (i // 2)) / d_model) angle_rads pos * angle_rates angle_rads tf.where( tf.cast(i % 2, tf.bool), tf.math.cos(angle_rads), tf.math.sin(angle_rads)) return angle_rads[tf.newaxis, ...]這個設(shè)計的巧妙之處在于不同頻率的正弦波組合可以讓模型通過線性變換推斷出相對位置關(guān)系而且編碼向量是固定的、不需要學(xué)習(xí)省去了額外參數(shù)。在最新的實現(xiàn)里也有人用可學(xué)習(xí)的位置編碼效果在某些任務(wù)上略好但原理上都是為了把“第幾個位置”這個信息注入進去。4.2 多頭注意力的內(nèi)部流程多頭注意力簡單說就是把輸入向量投影到多個子空間分別計算注意力再拼接起來做一次線性變換。這樣模型能同時關(guān)注不同層面的相關(guān)性一個頭關(guān)注語義相似性另一個頭可能關(guān)注句法位置關(guān)系。手寫這個流程比較繁瑣但 Keras 的 MultiHeadAttention 層已經(jīng)封裝得很好。關(guān)鍵參數(shù)只有兩個num_heads 和 key_dim。實際使用時要注意 key_dim 一般取 embed_dim / num_heads保證多頭輸出拼接后維度能和輸入匹配。比如 embed_dim128num_heads8那么每個頭的 key_dim 就是 16。在視覺任務(wù)里如果直接用純 Transformer 模型比如 ViT需要先把圖像切成固定大小的 patch每個 patch 展平并做線性投影得到 patch embedding。一個 32×32 的圖像patch_size4就得到 64 個 patch每個 patch 是一個 16×348 維的向量投影到 embed_dim128 后進入 Transformer 編碼器。這個預(yù)處理本質(zhì)上就是把圖像轉(zhuǎn)成“序列”用 Transformer 的方式建模 patch 之間的全局關(guān)系。4.3 用 Keras 搭建一個最小可用的 ViT下面是一個簡化版視覺 Transformer 結(jié)構(gòu)def patch_extract(inputs, patch_size): patches tf.image.extract_patches( imagesinputs, sizes[1, patch_size, patch_size, 1], strides[1, patch_size, patch_size, 1], rates[1, 1, 1, 1], paddingVALID) patch_dim patches.shape[-1] patches tf.reshape(patches, [-1, patches.shape[1] * patches.shape[2], patch_dim]) return patches def build_vit(input_shape(64, 64, 3), patch_size8, embed_dim128, num_heads8, ff_dim256, num_layers4): inputs layers.Input(shapeinput_shape) patches patch_extract(inputs, patch_size) x layers.Dense(embed_dim)(patches) x x positional_encoding(x.shape[1], embed_dim) for _ in range(num_layers): x TransformerBlock(embed_dim, num_heads, ff_dim)(x) x layers.GlobalAveragePooling1D()(x) outputs layers.Dense(10, activationsoftmax)(x) model models.Model(inputs, outputs) return model這段代碼可以直接替換前面的 CNN 做圖像分類對比實驗。我實測過在同樣的小數(shù)據(jù)集上CNN 收斂更快、準(zhǔn)確率更高因為 CNN 的歸納偏置局部性、平移等變性在小數(shù)據(jù)上天然有優(yōu)勢。Transformer 在大規(guī)模數(shù)據(jù)和充足算力下才能體現(xiàn)優(yōu)勢。所以選型時要結(jié)合自己的數(shù)據(jù)規(guī)模別盲目跟風(fēng)。4.4 訓(xùn)練 Transformer 的注意事項Transformer 對超參數(shù)很敏感尤其注意以下幾點學(xué)習(xí)率不能太大建議從 1e-4 起步配合 warmup 策略。不看 warmup 直接上大學(xué)習(xí)率loss 經(jīng)常直接變成 NaN。殘差連接和層歸一化是標(biāo)配不能省。去掉殘差連接后深層 Transformer 基本訓(xùn)不動。序列長度越長顯存占用越高。訓(xùn)練時如果 OOM優(yōu)先減小 batch size其次減少 num_heads 或 embed_dim。優(yōu)化器推薦 AdamW帶權(quán)重衰減的 Adam可以配合學(xué)習(xí)率調(diào)度器使用。Keras 里可以直接用 AdamW 優(yōu)化器。5. GAN 實戰(zhàn)從 DCGAN 到訓(xùn)練穩(wěn)定性的調(diào)優(yōu)5.1 DCGAN 結(jié)構(gòu)設(shè)計與關(guān)鍵約束DCGAN 是 GAN 家族里最經(jīng)典的卷積版本用轉(zhuǎn)置卷積Conv2DTranspose把低維噪聲逐層放大成圖像。一個標(biāo)準(zhǔn)的 DCGAN 生成器在 Keras 里長這樣def build_generator(latent_dim128): model models.Sequential(namegenerator) model.add(layers.Dense(7 * 7 * 256, input_shape(latent_dim,))) model.add(layers.BatchNormalization()) model.add(layers.ReLU()) model.add(layers.Reshape((7, 7, 256))) model.add(layers.Conv2DTranspose(128, kernel_size4, strides2, paddingsame)) model.add(layers.BatchNormalization()) model.add(layers.ReLU()) model.add(layers.Conv2DTranspose(64, kernel_size4, strides2, paddingsame)) model.add(layers.BatchNormalization()) model.add(layers.ReLU()) model.add(layers.Conv2DTranspose(1, kernel_size4, strides2, paddingsame, activationtanh)) return model注意輸出層用 tanh 激活取值范圍在 [-1, 1]所以訓(xùn)練數(shù)據(jù)也要歸一化到 [-1, 1]而不用 [0, 1]。這是我見過很多人犯的錯誤——生成器輸出范圍定義和輸入數(shù)據(jù)分布不一致模型怎么訓(xùn)練都停留在“灰色模糊圖”。判別器是生成器的鏡像用普通卷積逐步壓縮空間尺寸最后輸出一個標(biāo)量真假分?jǐn)?shù)。判別器內(nèi)部不要用 BatchNormalization至少不能對每個樣本獨立做 BN因為判別器要對單個樣本輸出真假判斷樣本之間數(shù)據(jù)分布差異本來就很大BN 反而會引入干擾。用 LeakyReLU 更合適避免判別器梯度消失。5.2 訓(xùn)練循環(huán)的寫法GAN 訓(xùn)練不能像普通模型那樣直接 fit需要手動管理每一步tf.function def train_step(real_images): batch_size tf.shape(real_images)[0] noise tf.random.normal([batch_size, latent_dim]) with tf.GradientTape() as gen_tape, tf.GradientTape() as disc_tape: fake_images generator(noise, trainingTrue) real_logits discriminator(real_images, trainingTrue) fake_logits discriminator(fake_images, trainingTrue) disc_loss_real loss_fn(tf.ones_like(real_logits), real_logits) disc_loss_fake loss_fn(tf.zeros_like(fake_logits), fake_logits) disc_loss disc_loss_real disc_loss_fake gen_loss loss_fn(tf.ones_like(fake_logits), fake_logits) grads_disc disc_tape.gradient(disc_loss, discriminator.trainable_variables) grads_gen gen_tape.gradient(gen_loss, generator.trainable_variables) optimizer_disc.apply_gradients(zip(grads_disc, discriminator.trainable_variables)) optimizer_gen.apply_gradients(zip(grads_gen, generator.trainable_variables))生成器的損失函數(shù)用的是“想讓判別器把假圖判定為真圖”的損失這是一種“欺騙”式的訓(xùn)練方式。值得注意的是在計算生成器損失時通常翻轉(zhuǎn)標(biāo)簽或者使用一種特殊形式比如用最小化 -log(D(G(z))) 代替 log(1-D(G(z)))原因是后者在生成器初期梯度太平滑學(xué)習(xí)速度太慢。還有一個很實用的設(shè)計把判別器的真實損失和生成器損失分開計算不要共用一個損失函數(shù)否則梯度回傳路徑會糾纏在一起代碼調(diào)試難度直接上升。5.3 模式坍塌GAN 最頭疼的問題模式坍塌指生成器只學(xué)會生成幾種固定樣本無法覆蓋真實數(shù)據(jù)的多樣性。表現(xiàn)形式是訓(xùn)練過程中生成圖片一直重復(fù)且種類極少。常見的緩解經(jīng)驗減小學(xué)習(xí)率尤其生成器的學(xué)習(xí)率讓它別那么快鎖死到某個模式上。增加噪聲向量的維度讓生成器有更多可變化的自由度??紤]用 Wasserstein 損失WGAN它對模式坍塌的抑制作用明顯但實現(xiàn)時要額外注意判別器權(quán)重的裁剪或梯度懲罰工作量會增加不少。每隔幾個 epoch 手動可視化生成結(jié)果實時觀察多樣性變化。不要只靠 loss 曲線判斷GAN 的 loss 曲線與生成質(zhì)量并不是嚴(yán)格對應(yīng)的。我自己的實操習(xí)慣是固定隨機種子每訓(xùn)練 5 個 epoch 保存一組生成圖。這樣既能觀察訓(xùn)練進度也能在出現(xiàn)模式坍塌時快速回退到之前的穩(wěn)定版本。5.4 從 DCGAN 到 WGAN-GP 的遷移如果 DCGAN 訓(xùn)練反復(fù)震蕩一個成熟的升級路徑是改造成 WGAN-GP帶梯度懲罰的 Wasserstein GAN。核心改動就兩點一是把判別器最后一層的 sigmoid 去掉改成輸出未歸一化的分?jǐn)?shù)二是損失函數(shù)從二元交叉熵換成 Wasserstein 距離的近似形式并且加入梯度懲罰項。梯度懲罰的實現(xiàn)通常是在判別器輸入空間隨機插值然后計算判別器輸出的梯度限制其 L2 范數(shù)接近 1。這個操作會占不少計算量但在穩(wěn)定性和生成質(zhì)量上的收益值得。6. 膠囊網(wǎng)絡(luò)向量神經(jīng)元和動態(tài)路由的實現(xiàn)細節(jié)6.1 膠囊的核心用向量代替標(biāo)量傳統(tǒng) CNN 的神經(jīng)元輸出一個標(biāo)量表示“這個特征存在與否”的概率。膠囊網(wǎng)絡(luò)的神經(jīng)元輸出一個向量除了表示存在概率向量的長度還能攜帶姿態(tài)信息向量方向。這意味著膠囊既能告訴你“這里有一只眼睛”還能告訴你“眼睛朝哪個方向、有多大”。在 Keras 中實現(xiàn)膠囊層需要自定義 Layer手動實現(xiàn)向量神經(jīng)元的計算和動態(tài)路由。一個常用技巧是用 squash 激活函數(shù)把向量長度壓縮到 [0,1] 之間同時保持方向不變def squash(vectors, axis-1): squared_norm tf.reduce_sum(tf.square(vectors), axisaxis, keepdimsTrue) scale squared_norm / (1 squared_norm) / tf.sqrt(squared_norm 1e-8) return scale * vectors這個公式看起來復(fù)雜其實可以理解為向量越長壓縮后長度越接近 1代表實體存在的置信度越高向量越短壓縮后越接近 0代表“這個實體不存在”。6.2 動態(tài)路由是怎么迭代的動態(tài)路由解決的問題是低層膠囊應(yīng)該把信息發(fā)送給哪些高層膠囊。傳統(tǒng)神經(jīng)元是全連接每個上層神經(jīng)元接收所有下層神經(jīng)元的加權(quán)和膠囊網(wǎng)絡(luò)則是先讓低層膠囊預(yù)測“自己應(yīng)該匹配哪個高層膠囊”然后通過迭代調(diào)整耦合系數(shù)。算法流程簡化為如下幾步對每個低層膠囊計算它對所有高層膠囊的預(yù)測向量。初始化耦合系數(shù)為均勻分布。迭代多輪按當(dāng)前耦合系數(shù)加權(quán)求和得到高層膠囊輸入squash 后得到高層輸出再根據(jù)高層輸出和低層預(yù)測的相似度點積更新耦合系數(shù)。迭代結(jié)束后高層膠囊作為最終輸出傳給下一層。這個機制的直觀理解是低層膠囊和高層膠囊方向一致就增加它們之間的連接強度方向不一致就減少。通過這種方式網(wǎng)絡(luò)自動學(xué)習(xí)了“哪些部件組成哪個整體”的層次關(guān)系。6.3 膠囊網(wǎng)絡(luò)的圖像分類實現(xiàn)簡化版在 Keras 里實現(xiàn)膠囊網(wǎng)絡(luò)的完整代碼量比較大我這里給一個核心膠囊層和路由的骨架方便理解class CapsuleLayer(layers.Layer): def __init__(self, num_capsules, capsule_dim, routings3): super().__init__() self.num_capsules num_capsules self.capsule_dim capsule_dim self.routings routings def build(self, input_shape): input_capsules input_shape[1] input_dim input_shape[2] self.W self.add_weight( shape[input_capsules, self.num_capsules, input_dim, self.capsule_dim], initializerglorot_uniform, trainableTrue) super().build(input_shape) def call(self, inputs): batch_size tf.shape(inputs)[0] inputs_expand tf.expand_dims(inputs, 2) # [B, in_caps, 1, in_dim] inputs_tiled tf.tile(inputs_expand, [1, 1, self.num_capsules, 1]) # [B, in_caps, out_caps, in_dim] votes tf.einsum(bikj,ikjd-bikd, inputs_tiled, self.W) logits tf.zeros([batch_size, inputs_shape[1], self.num_capsules]) for i in range(self.routings): probs tf.nn.softmax(logits, axis-1) weighted_sum tf.einsum(bik,bikd-bid, probs, votes) capsules squash(weighted_sum) if i self.routings - 1: similarity tf.einsum(bid,bikd-bik, capsules, votes) logits similarity return capsules這段代碼的核心在 einsum 運算第一次接觸可能不習(xí)慣但它能把多維張量的加權(quán)求和寫得很簡潔。如果不熟悉 einsum建議先在文檔里系統(tǒng)看一遍因為后面對膠囊網(wǎng)絡(luò)的調(diào)參和改結(jié)構(gòu)都離不開這些維度操作。6.4 膠囊網(wǎng)絡(luò)的局限和實用建議膠囊網(wǎng)絡(luò)理論框架很優(yōu)美但實際使用有幾個硬傷一定要提前知道計算量比同尺寸 CNN 大一個數(shù)量級。動態(tài)路由本身是迭代過程每一步都要做矩陣乘法顯存和時間的消耗都不是小數(shù)。對超參非常敏感耦合系數(shù)的迭代輪數(shù)、膠囊維度、正則化系數(shù)每一個都可能顯著影響最終效果。實現(xiàn)難度高、生態(tài)支持少。Keras 內(nèi)置沒有膠囊層第三方實現(xiàn)質(zhì)量參差不齊部署到移動端或者服務(wù)端都要額外做算子適配。所以我的建議是膠囊網(wǎng)絡(luò)很適合作為學(xué)習(xí)和研究項目用來展示你對“CNN 表達能力的邊界”有獨立思考。但如果你要做實際產(chǎn)品老老實實選 CNN 或 Transformer 更穩(wěn)妥。7. 常見問題與排查技巧實錄7.1 問題速查表現(xiàn)象常見原因處理方案訓(xùn)練 loss 為 NaN學(xué)習(xí)率過大、數(shù)據(jù)未歸一化降低學(xué)習(xí)率檢查輸入數(shù)據(jù)范圍GAN 生成圖片全是模糊噪聲生成器輸出激活函數(shù)和數(shù)據(jù)范圍不匹配輸出用 tanh輸入歸一化到 [-1,1]Transformer 訓(xùn)練不收斂缺少殘差連接或?qū)W習(xí)率設(shè)置過大檢查殘差結(jié)構(gòu)使用 warmup 調(diào)度器CNN 驗證集準(zhǔn)確率停滯學(xué)習(xí)率過大或過擬合降低學(xué)習(xí)率增強數(shù)據(jù)增強或加 Dropout膠囊網(wǎng)絡(luò)訓(xùn)練極慢路由迭代次數(shù)太多、膠囊維度過大減 routings 到 2降低 capsule_dim訓(xùn)練集準(zhǔn)確率高但測試集差過擬合增加數(shù)據(jù)增強、Dropout 或減小模型容量GPU 顯存不足序列過長或 batch 過大減小 batch size用混合精度訓(xùn)練損失曲線震蕩劇烈學(xué)習(xí)率過高或 GAN 訓(xùn)練節(jié)奏不穩(wěn)降低學(xué)習(xí)率檢查判別器和生成器的訓(xùn)練步數(shù)比例7.2 我踩過的三個坑第一個坑是關(guān)于 BatchNormalization 在 GAN 生成器里的使用。生成器輸入是隨機噪聲如果噪聲維度太小比如只有 8 或 16BN 層會因為樣本統(tǒng)計量波動太大導(dǎo)致輸出極不穩(wěn)定。后來我把噪聲維度加到 128并且從頭到尾保留 BN才明顯改善。第二個坑是 Transformer 輸入維度不匹配。我用 MultiHeadAttention 時一開始直接把 key_dim 設(shè)成和 embed_dim 一樣大結(jié)果維度翻倍后面 Dense 層全亂套。后來才意識到 key_dim 應(yīng)該是 embed_dim / num_heads而不是 embed_dim 本身。第三個坑是數(shù)據(jù)增強和標(biāo)簽不一致。我在做圖像分類時用了 rotation_range90結(jié)果某些類別的語義在旋轉(zhuǎn) 90 度后完全變了比如數(shù)字 6 和 9、左箭頭和上箭頭。這種問題不會導(dǎo)致程序報錯但驗證集準(zhǔn)確率會莫名其妙下降。排查方法也很簡單把增強后的樣本可視化出來看一遍很多問題一眼就能發(fā)現(xiàn)。7.3 一套通用的調(diào)試順序我在訓(xùn)練任何新模型時都會先跑一個小型實驗用很少的數(shù)據(jù)和很少的 epoch 過一遍完整流程。如果小實驗?zāi)茼樌芡ㄔ僦鸩椒糯髷?shù)據(jù)量和訓(xùn)練輪數(shù)。這樣可以把“模型結(jié)構(gòu)錯誤”和“訓(xùn)練策略不合理”兩類問題分開排查。如果訓(xùn)練遇到問題我的排查順序是先檢查輸入數(shù)據(jù)形狀和標(biāo)簽維度是否匹配輸出層的類別數(shù)。再看 loss 函數(shù)和最后一層激活函數(shù)的搭配是否正確二分類用 sigmoid binary crossentropy多分類用 softmax categorical crossentropy。然后檢查梯度是否正常最直接的辦法是看前幾個 batch 的 loss 是否下降如果完全不降很可能是沒有調(diào)用 apply_gradients 或者梯度計算錯位。最后才考慮學(xué)習(xí)率、正則化、網(wǎng)絡(luò)深度等超參數(shù)問題。這套順序幫我在很多調(diào)試場合省了大量時間特別是能避免把超參數(shù)調(diào)了半天、結(jié)果發(fā)現(xiàn)是前面維度寫錯的尷尬情況。8. 寫在最后的幾個實操心得四種架構(gòu)都跑下來之后我心里最深的體會是會調(diào)庫和真正理解模型之間有一條巨大的鴻溝。Keras 讓搭建模型變得特別簡單幾行代碼就能把 Transformer 編碼器調(diào)出來但真正遇到問題的時候起決定性作用的還是你對模型內(nèi)部機制的把握以及你那套成體系的調(diào)試方法。如果你現(xiàn)在正準(zhǔn)備動手實踐我建議的順序是CNN 一定要先吃透它是后續(xù)所有架構(gòu)的基石。Transformer 則要親自動手寫一遍位置編碼和注意力層的流程不用追求一次寫完美哪怕參考別人的實現(xiàn)也要自己敲進去、跑通、改改參數(shù)看效果變化。GAN 是最讓人上頭的因為它給了你“創(chuàng)造圖像”的即時反饋但一定不要期望第一次訓(xùn)練就穩(wěn)定多準(zhǔn)備些隨機種子和可視化代碼。膠囊網(wǎng)絡(luò)適合作為進階探索不用花太長時間但值得親手跑一跑感受傳統(tǒng) CNN 的局限在哪里。如果你現(xiàn)在正處于“代碼能跑但不懂為什么”的階段不妨在每跑通一個模型后嘗試刪掉一個關(guān)鍵組件觀察效果變化。比如把 BN 刪掉、把殘差連接刪掉、把耦合系數(shù)定死成均勻分布這種“破壞性實驗”對理解的提升往往比多看十篇文章都管用。下一篇我可能聊聊如何把這四種架構(gòu)組合起來做混合模型比如用 CNN 提取底層特征再接 Transformer 做全局建?;蛘哂?GAN 做數(shù)據(jù)增強來提升小樣本分類器的效果。你自己動手跑的時候如果遇到什么奇怪的報錯或者反直覺的現(xiàn)象也歡迎在評論里拿出來一起討論很多坑都是互相踩踩才被填平的。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
国产色呦呦| 日日噜噜夜夜久久亚洲一区二区| 亚洲限制级| 久久的免费性爱视频| 日韩性爱高清免费视频| 中国一级αV| 国产精品一区二区黄片| 最新AV在线| 国产亚洲国产超碰| 超碰天天去日穴| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 精品日韩中文在线| 国产婷婷一区| 中文?日韩?免费?精品| 亚洲熟妇极品| a片自拍直播视频| 欧美日韩丝袜 | 99RE在线视频精品,这里只有精品| 亚洲资源一区| 亚殴在线| 国产亚洲精品A在线观看下载| 精品久一区免费| 久久久久久综合久久伊人蜜月| 中国探花熟女| 久久女人| 97国产精品国| 亚洲日韩av专区无码| 夜夜操二区| 蜜臀久久久99久久久久 | 少妇色综合| 思思热国产在线视频| 青青草乱入乱欲视频在线观看| 色综合V| 宅男午夜在线视频| 午夜.DJ高清在线观看免费7| 偷拍色图| 在线另类| 国产精品成人AV片免费看网站| 青青草日逼视频| 日韩性爱视频在线免费观看| 91天堂丝袜美腿| 五月天综合网| 免费少妇一区二区| 熟女熟妇伦久久影院毛片一区二区| 日韩欧美国产高清视频| 天天干18禁| 久久久久久久 九九九九九九九| 国产精品久久久久无码Av网曝门| 日夜尻逼网| 六月天婷婷| 久久av无码| 人人操超碰在线| 九九综合| 秋霞成人做爱| 密臀视频三区免费网站| 亚洲日本天堂| 精精夜夜| 亚卅熟女乱色| 人人看人人摸人人色| 亚洲精品久久久久久久蜜桃臀| 亚洲情色一区综合| 色色色五月婷婷| 欧美青青草视频| 九九干| 一区二区三区视频在线观看免费| 日韩精品人妻中文字幕不卡乱码| 韩国一级AAA| 九九热三级片| 少妇高潮九九九九| 日本不卡高清视频| 国产超碰| 婷婷五月天AV| 欧美亚洲国产日本在线,久久精品国产| 色诱avtt| 国产精品久久久久久夜夜夜夜| 亚洲日产专区婷婷| 天天内射| 久久九色| 欧美日韩狠狠爱| 天天澡天天爽日日av| 婷婷五月激情综合| 亚洲男人bt天堂| 免费的很黄很污的全部视频| 午夜美女福利视频| 91热色| 岛国人妻少妇av在线观看| 后入美女国产| 日日夜夜干| 国产操偷| 欧美性爱日韩性爱| 欧美偷拍区| 一起草三级AV电影在线观看 | 手机看片1024你懂的国产| 亚洲欧洲av影音| 2020天天色综合| 97亚洲欧美日韩| 亚洲一区二区三区久久 亚洲一区二区| 中文字幕性感少妇av| 99国产精品视频尤物| 国产一区二区免费福利片| 九九热三级片| 国产在线综合网| 97在线免费视频| 男女国产精品| 国产精品久久| 成人小说另类在线| 一级乱伦网站| a一区二区三区乱码在线| 17c嫩草51久久91嫩草| 欧美92| 日本精品一区二区不卡| 色97干| 夜夜爽夜夜操| 激情天天视频| 精品九九国产无码| 自拍大香蕉乱插| 久久精品国产亚洲AV无码电影| 久久久久久久伊人精品| 国产精品视频麻豆入口| 强奸乱伦Av网| 丁香激情五月| 欧美日韩人人精品| 夜精品久无码| 72av视频| 亚洲麻豆av一区二区| 性色AV蜜色av色欲av| 黑人精品一区二区在线播放| 国产第25页在线观看| 婷婷AV一区二区三区| 夜夜草网站| 欧美综合自拍成人自拍第二十页| 四虎 精品 WWW| 日韩9999| 骚熟女AV网| 97伊人| 免费岛国一级片| xxxx网站亚洲精品| www.zbzhongsen.com| 另类图片五月| 日韩少妇在线视频| 东京太热男人的天堂久久久| 中文字幕一区二区免费在线| 91狠狠综合久久久| 色女99一级片在线观看| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 免费A片三p视频| 在线观看免费视频国产| 免费综合亚洲中文| 亚洲码和欧洲精品激情系列| 欧美在线综合| 小说区 图片区色 综合区| 欧亚成人| 天天淫人人妻日日色| 97欧美色资源| 97色色色| 中文字幕一区av| 九九热在线精品视频| 夜夜嗨一区二区三区三州加勒比| 欧美一区二区三区不卡高清视频| 亚洲国产欧美中日韩成人综合视频| 婷婷四五区| 久久一二三四不卡 | 久久大香蕉97| 亚洲精品三| 日本天堂网| 久久精品国产97欧美精品亚洲| 91精品人| 国产情侣自拍在线播放| 亚洲狼狼干综合1| 国产AV线| 久久这里是精品| 日日夜夜干| 97超碰精品成| 少妇厨房愉情理伦片bd在线观看| 五月婷在线| 久久久99999久网站| 久久久久久久强迫| 亚洲精品视频二区| 国产尤物在线三区| 五月天婷精品激情| 91久热| 亚洲精品天堂久久A∨51成人漫| 欧美日韩夜夜| 日韩三级在线观看网站| 国产刺激视频| 国产熟女无套内射| 插入综合网| 麻豆一区二区三区在线看 | 超碰97护士| 国产AV高清AV无码| 鸥美中出| 看日韩美女二区三区免费操逼视频| 亚洲熟妇综合久久久久久| 午夜乱轮操逼视频免费看| www四虎| juliaann丝袜| 蜜臀av一区二区三区免费观看| 91欧美色| 五月丁香啪| 久区视频| 啊啊啊com| 91东北熟女| 大香蕉色十月| 97超碰色| 歐美一級亂黃99在綫精品| 蜜臀久久99精品久久久| 日韩偷拍色图| 韩三级a视频在线观看| 小草精彩毛片| 9色国产精品一区粉嫩 | 日韩欧美视频青青| 伊人骚琪琪亚洲天堂网站| www.久久99| 中文字幕精品码亚洲| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 色97干| 熟女人妻av在线资源,黄色的资源| 欧美国产婷婷久久| 在线啊啊啊啊| 高清无码在线播放网站| 五月天亚洲网| 五月综合激情| 国产91av在线播放| 青青草狠狠撸| www.狠狠干.coom| 国产高清成人免费视频| 成人综合视频久久| 岛国黄色大片网站| 国产日韩久久| 欧美 亚洲 综合 制服 另类| 婷婷六月色| 亚洲色图亚洲| 淫乱图区 | 亚洲精品国产熟女| 久久69| juliaann精品熟女一区| 丰满人妻无码一区二区三区| 青青草国产欧美非洲黑人| 亚洲宗合电影| 国产精品熟女丝袜一区二区| 午夜成人爽爽爽爽A片李冰冰| 久久九七| 久久九九网| 成年人网站在线免费观看| 色综合 加勒比| 色蜜AV| 色伊人91| 超碰78| 国产免费一区| 麻豆黄色五月天| 成年人黄色小视频网站| 五月天伊人网| 精品一区二区三区蜜桃臀www| 亚洲国产激情国产av| 亚洲精品自拍| 欧美性爱一区二区三区| 亚洲在钱| 99啪啪| 激情五月综合网| 国产免费操逼| 精品一区二区三区国产| 精品少妇999| 色一区二区三区综合| 欧美九九99久久精品| 婷婷综合久久| 黄片无码在线制服| 天天做天天爱夜夜爽毛片试看| 日韩精品三级| 久久大香蕉97| 加勒比无码毛片| AV丝袜东京热| 91亚州欧美| 五月丁香六月| 亚洲 欧美 天天| 国产精品呦一区二区三区| 久久精品人妻一区| 久九九九九九九九热| 亚州熟妇精品| 最新精品久久蜜桃 | 熟女人妻久久中文字幕一二区| 国产精品探花在线| 欧美操逼熟女| 欧亚乱色熟女一区二区| 免费簧片在线观看| 天天色,天天干,天天干| 国产精品人妻熟女aⅴ| 摸奶性爱视频网站在线免费播放| 亚洲一区在线观看欧洲 | 日本精品加勒比海一区| 青青青草原| 91精品免费| 超碰97最新人妻| 老熟女熟妇| 久久超碰亚洲人| 亚州精人品大香蕉| 男人亚洲91首页在线| 激情五月天丁香| 欧美婷婷五月天| 岛国黄色大片网站| 国产又色又爽又舒服的三级视频| 91干熟女| 国产精品久久久亚洲一区| 日本 欧美 亚中文字幕| 天美av在线观看| 91 刺激在线| 九九久久首页| 69人妻精品丰满熟女区| 亚洲大色堂| 精品国产72| 秋霞午夜视频一区二区| 日日骚精品视频| 91熟女视频网| jazzjazz国产精品麻豆| 一级日本牲交大片好爽在线看| av天堂精品久久| 国人欧美精品一区二区| 一本一道人妻久久一区二区三区| 欧美在线啊啊啊| 久久少妇人妻| 欧美精品系列| 亚洲无码视频免费在线观看网址!| 狠狠色噜噜狠狠狠狠2018| 午夜乱轮操逼视频免费看| 免费作爱一级视频| www.色婷婷.com| 夜夜夜久久| 操b网站亚洲无码| 欧洲亚洲天堂精品| 伦理第一页| 国产欧美日本亚洲精品| 久久久免费一级黄片| 国产精品一二三免费网站| 久久色激情一区二区三区| 欧美日韩婷婷中文| 99夜夜操| 首页中文字幕中文字幕免费| 玖玖97综合| 国产熟女| 国产精品com| 国产家庭乱伦网址| 亚洲丝袜天堂| 大香蕉性欧美| 成人av福利在线观看| 欧美视频在线视频免费va| 亚洲欧美爆| 91痴汉| 98人妻精品一区二区色欲| 蜜乳AV网址| 91精品人妻一区二区三区蜜桃臀| 91国产丝袜美女| 日韩精品人妻| 欧美成人黄网色网站| 欧美专区在线| 夜夜夜爽www精品视频| 一级@啪啪视频| 九九无码| 日韩欧美久久婷婷网站| 岛国免费黄色网址| 久久久久久久 九九九九九九九| 亚洲九九视频在线观看| 久久精品久久九九精品| oumeisetu综合| 久久9精品网站| 国产精品免费1区2区视频| 99热这里只有精品99| 欧美日韩国产人人| 成人小说视频在线精品欧美| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 91黄站| 国产色呦呦| 99xav| 亚洲国产精品成人久久蜜臀| 丁香六月天| 俺也射| 国产日韩欧美亚洲精品95| 久视频在线观看| 亚洲动态色图| 欧美成人都市人妻| 欧美色97| 色情五月综合婷婷| 好一吊区二区| 性爱av网站| 久久色AV线| 天堂а√在线最新版在线| 色女网日韩| 99色网| 熟妇亚洲一区二区三区| 欧美组图日韩亚洲中文字幕| 夜夜操天天肏| 国产又黄又粗的视频| 精品国产72| 人妻献身系列第54部| 99xav| 欧美伊人久久综合网| 欧美天天综| 中文字幕第9页萱萱影音先锋| 无码一区二区三区四区五区六区七区八区九区十区视频 | 久久这里只有精品9| 精品人妻伦一二三区久久| 另类欧美色| 黄页大片在线观看| 手机午夜电影神马久久| 丁香婷婷激情五月天无毒不卡| 久久黄片国产一区二区| 99后入| 欧美v亚洲v日韩v最新在线二区| 少妇人妻在线| 精品少妇一区二区三区免费观看| 高清国产精品福利网站| 91高跟美女在线播放| 丰满人妻一区二区三区四区| 91熟女.com| 91久久久久久久| 色噜噜国产精品视频一区二区| 伊人综合色网| 吖在线不卡一区二区国产剧情| 久久久久大香青草精品综合| 91麻豆va国产精品| 一区二区三| 操操操操操操| 日韩av乱伦| 97在线视频免费| 久偷拍| 国产情侣自拍在线播放| 中文字幕三四区| 欧美国产一区二区三区麻豆传媒| 强奸a片网| 热99这里有精品综合久久 | 99久久网站| 91亚洲网| 日日嗷| 一区二区三区 丝袜 高跟 美腿| 亚洲国产精品成人综合| 久久成人东京热人妻| 人妻夜夜爽天天爽麻豆三区网站 | 美国aaaaa一级黄片| 98久久超碰| 欧美白嫩女HD| 狂操嫩妻视频一区二区三区| 日韩人妻一二三区视频| 精品欧美乱码久| 91精品丝袜久久久久久无码人妻| 99自拍视频| 国产熟女免费观看久久| 大香蕉免费中文| 6080YYY午夜理论片在线观看| 天天日骚逼熟女| 涩爱AV在线| 欧美疯狂做爰xxxx| 亚洲欧洲综合av在线| 国产传媒一区二区三区| 天天干1区2区在线| 99蜜桃臀亚洲成人在线观看| 性色一线| 色狠狠综合| 国产一级作爱毛片| 亚洲AV成人无码一二三久久| 精品九九九九| 天美传媒AV在线| 亚洲官网在线| 亚洲欧美一区二区不卡视频播放| 国产高清视频无码在线| 亚州五月| 久久超碰av在线| 69AV女优男人的天堂| 国产免费永久精品无码| 久久精品国产99精品亚洲蜜...| 国产精品久久泡妞网站| 欧美图片校园春色| 97超碰免费生活| 又摸又舔在线观看网站| 大香蕉综合| 日本人体九九九九九九| 黑操B| HEYZO高无码国产精品227| 国产野战露脸在线播放| 亚洲无码太久| 在线人成亚洲视频免费观看| 亚洲中字幕日本一区二区三区| 91 天天综合| 性欧美999| 另类专区加勒比| 国产精品在线网站| 亚洲自拍欧美色综合| 玖玖爱一区在线| 99在线视频播放| 国产九区| 国产后入内射| 欧美,亚洲,日韩,v,天堂,手机在线观看| 超碰97最新人妻| 亚洲免费97免费| 区一二区日韩亚洲乱码av电影| 日韩久久超碰色| 亚洲综合性感在线| 欧美天堂超碰97| 人妻丝袜肏逼| 日本幼女18+| 欧美亚州综合网图片| 大香蕉狠狠爱| 神马久久久久久| 一起草三级AV电影在线观看| 黄色成人网久久久久久| 黄色人人| 国产精品久久久久久 百度| 亚州AV无码国产精品| 这里都是精品在线观看| 伊人天堂在线| 99www.bibizy香蕉资源国产一区二区三区高清 | 国产成人91一区二区三区| 操b在线观看| 欧美日韩色综合网| 婷婷AV一区二区三区| 91精品丝袜久久久久久| 日本在线不卡123| 国产超碰在线一区| 加勒比无码毛片| 国产熟妇 码视频户外直播| 九月丁香婷婷色| 操逼网免费无码视频| 婷婷五月丁香五月| 黄呦呦在线| 欧日韩一二三f区| 国产精品999aaa| 福利社区午夜一区二区| 色婷婷电影| 九九热超碰97亚洲最新香蕉 | 按摩中文字幕| 青青草玖玖爱| 97干色| 日韩在线一区高清在线| 一区二区 韩日AV| 丝袜天堂| 精品九区| 日韩人妻中文视频| 精品一区96| 国产精品动态一区二区三区四四| 婷婷色综合欧美日韩| 美国aaaaa一级黄片| 日本在线不卡123| 亚洲男人天堂视频| 性暴力欧美猛交在线直播| 欧美精品999| 18岁禁 茉莉成人久久| 精品少妇99| 淫荡少妇免费| 人妻精品4K4K4K4K4| 久久久78| 国产精品宅男免费| 亚州人妻| 91香蕉国产尤物视频| 熟女突然公开看18禁影片| 国产成自自拍在线观看| 3PAV乱伦视频| 五月丁香网站| 久久精品国产97欧美精品亚洲 | 少妇高潮特黄A片| 久久国色天香香蕉| 99热婷婷一区二区三| 久久毛卡| 吉川爱美亚洲二区在线| 色综合V| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 久久国产免费激情视频| 欧美亚洲20p| 999久久久| 日韩精品区二区三区不卡| 亚洲做性| 欧美很很操视频| 骚逼自拍99| 思思热久久成人| 熟女欧美日韩综合婷婷| 日本黄色精品专区网站| 夜夜狼人妻| J?P?NESEHD熟女熟妇伦| 国产精品情侣啪啪| 国产高清自拍视频| 亭亭丁香激情| www久久国产精品| 日韩内射视频| 韩国三级一线观看久| 99国产精品在线观看| 狠狠婷婷亚洲中文综合久久| 天堂av2019| 白丝AV| 久久久9视频| 欧美一区二区男人天堂| 成人日本精品九区| 日韩在线一区高清在线| 强奸熟女一区二区三区 | 亚洲色图欧美| 精品国产自在在线99| 免费人成毛片乱码| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 久久黄色视频一区二区三区 | 欧美亚洲综合色| 亚洲色人| 日韩激情视频| 亚洲精品第一| 肥佬影院91| 99久久久无码| 操逼片国产| 干美女人妻| 色色亚洲| 在线播放成人高清免费视频| 香蕉免费一区二区三区不读| 日韩中文字幕视频在线观看| 香蕉99秘 一区精品蜜桃臀| 日韩AV一区二区三区四四| 日本人妻最新在线中| 日本人妻天堂网站在线播放| 国产在线视视频有精品| 夜色综合| 青女在线| 九九av| 翔田千里无码一区| 啊啊啊啊在线播放| 中文字幕人妻丝袜| 日韩国产欧美伦理在线| 草草草视频| 青青草乱入乱欲视频在线观看| 久久性爱大全| 国产操逼网站亚洲一级黄色| 91美女国产在线| 中文字幕在线24| 久草国产在线视频| 91国模| 久久熟女久| 亚洲色吧网| 嗯啊抽插大香蕉网页| 人妻久久一区二区三区| 亚洲的天堂网| 在线女人91| 黄色高清无码无码破解免费暗网| 人妻三级在线中文字幕| 日韩丨制服丨中文|在线| 91青视频| 色五月激情综合网| 国产日韩在线播放av| 欧美色图综合网| 在线五区| 激情终合网| 亚码激情| 午夜男人一级A片7777| 都市久久精品激情亚洲| 久久久亚洲| 欧日韩一二三f区| 91/欧美| 乱理日韩中文| 久久怡红院| 日韩性爱电影一区| 一区操逼| 粉嫩av平台| 啊啊啊久久| 久操免费电影| 黄站在线免费观看| 九九热精彩视频| 天天干天天日天天射黄色大片 | 亚洲一区二区精品福利| 热久久国产| 免费精品国偷自产在线在线| 神马久久午夜| 精品传媒在线一区| 九九九久久久W精品| 精品少妇人妻一区二区三区| 无码男人天堂| 亚洲精品国产av天美传媒| 欧美激情 日韩精品| 亚洲天堂性爱| 九色 人妻 大香蕉| 91 在线亚洲| 欧美夜夜狠| 激情五月综合网| 五月激情啪啪| 中出91| 激情五月婷婷| 射 色综合| 中文字暮97| 久久大香蕉手机高清| ′ !γ}丶。。久久精品欧美一区二区三区| 午夜色婷婷| 大香蕉九九| 九九色综合| AV中文在线可看| 天天透伊人| 少妇国产不卡| 99re69综合| 欧美天堂超碰97| 中文字幕诱惑制服人妻丝袜美丝袜美 | 久久久久久中文字幕中文字幕最新| 蜜桃久久综合视频| 欧美专区第一页| 天天摸夜夜摸| 亚洲男人天堂2016| 长久操视频| 黑白配性爱AV成| 亚洲少妇视频| 婷婷超| 激情 欧美 亚洲 小说| 性爱Av免费| 全免费a敌肛交毛片免费| 免费啪啪啪网站18岁| 九九亚洲视频| 久久人人爽爽爽人久久久| 日本 免费 一区二区三区 久久香蕉| 欧美aⅴ99久久黑人专区| 黄色十八禁| 少妇的嫩逼图片| 国产女大学生AV| 国内偷自视频区视频综合| 人人摸人人添人人操 | 国产亚洲精品自在线亚洲情侣| 日日狠狠久久偷偷色综合免费| 国产青一二三| 欧美大干日韩| 夜夜精品视频| 大黄片做爱的大的| 九九色色| 60秒试看最爽10分钟网站| 无码人妻系列少妇| 超清中文乱码字幕| 黄骗免费| 成人五月香网在线| 亚洲天堂日本| 人妻少妇精品| 国产成人亚洲精品无码古代早漏男 | 久 久无码人妻AV| 欧美伊人久久综合网| 国产免费永久精品无码| 天天摸夜夜摸| 东北老熟女| 日韩性爱视频在线免费观看| 91久操| 天堂射| 国产v亚洲v日韩v欧美v片另类| 国产精品激情久久久久久久| 欧美久久九九| 天天搞欧美| 国产三级资源在线观看| 丁香五月色| 色眯眯av| 日韩有码 一区二区三区| 亚洲一区中文字幕一区| 91激情网| 国产综合色精品在线观看| 91人妻Pr| 亚洲日韩东京热一区| 九九九九热| 亚洲中文字幕网| 亚洲综合校园春色| 黄视频免费| 亚洲精品819| 亚洲综合在线91| 色yeye成人免费视频| 色第一页| 蜜臀久久99精品久久久久| 无遮挡猛进视频免费无限观看| 伊人青青草久久| 欧美天天性| 99无码| 欧美,日韩,中文,另类| 日韩中文字幕人妻视频| 男人干美女| 国产高清成人免费视频| 亚洲丝袜二区| 男人的天堂VA| 美女被艹尤物视频| 激情情色五月天| 天天干人人干天天日97| 屌妞视频久久久久久久久久久久| 国产成人欧美精品在线| 91色艳| 亚洲色人| 日韩亚洲美州欧洲综三区一品在线| 四虎在线视频| 国产亚洲综合欧美一区| chaopen97久久| 91天堂色男人的天堂| 九九九九一级| 91三级理论片播放器| 欧美大色交| 强歼乱伦资源网| 日本顶级天天操狠狠操夜夜操中文字幕| 九九精品99| 久久日本熟女精品一区| 亚洲第一黄色av网站| 无码男人天堂| 黄片无码在线制服| 亚洲清纯综合| 丁香激情网| 亚洲在线a| 国产夜夜艹| 国产a片操逼| 色综合99999| 97人人操人人摸人人爱| 久草老司机| 久久98| 欧美天天射| 四虎AV无码| 久久日韩精品一区二区| 天天综合网~91综合网| 澳门特级毛片免费观看| 98久久超碰| 久久久9品一区二区三区| 成全动漫视频观看免费下载| 欧美乱妇狂野欧美在线视频| 天天日B夜夜干B时时操B| 久久日韩肥臀| 免费的av网| 亚洲 自拍偷拍 欧美| 死我十八禁| 日韩人妻精品久久久久| 妇女性内射冈站HDWWWCOM| 无码久| 九九伊人网| 日韩日本欧美在线观看| 国产情色在线| 欧美 亚洲 综合 制服| 欧美自拍偷拍综合图片| 一级免费精品| 国产精品九9| 91爆操视频| 欧美97爱| 青青欧美| www四虎| 最新日韩黄片| 国产白丝精品在线观看| 人妻熟女一区二区| 久久欧美按摩999| 在线看片国产精品每日更新| 天堂男人网| 无码操逼天堂| 精品国产自在在线99| 日韩不卡在线一区二区| 97视频在线看| 懂色影视久久| 妇女视频网站| 920日本午夜免费| 综合 欧美 亚洲 日本| 啊啊啊免费视频| 蜜桃视频啊啊啊啊| 免费的av网| 爱射综合| 无码WWW免费视频网站| 97国产精品视频| 青青草AV色| 北条麻妃性愛视频| 天天干2019| 香蕉久久国产AV一区二区| 99re国产精品视频| 天天色图| 伊香蕉综合久久久久久久噜噜噜 | 欧美日不卡| 日本www操操操| 国产视频一区二区三区在线免费观看 | 久久夜夜夜夜| 五月丁香综合激情| 男男H黄动漫啪啪无遮挡网站| 999精品国产高清一区二区| 欧美日韩亚洲天堂| 欧美,日韩,中文,另类| 日韩精品大香蕉伊人在线| 九九九九88| 中文字幕高清20页视频| av在线资源| 在线国产一区二区av| 国产最新小视频在线播放下载| 91精品91久久久久77777俄罗斯老妇姓x| 国产免费一区| 亚洲凸凹超碰成人| 色噜噜人妻丝袜AV资源| 97干在线看| 另类综合另类| 成人 日韩欧美一区| 在线99热| 日韩啪啪网| 性色av婷婷久久一区二区点复制| 中国大陆国产高清AⅤ毛片| 中文字幕一区二区三区字幕| 秋霞色色影院| 免费观看日本操逼视频| 久久久四区| 欧美激情区| 97亚洲中文| 亚欧美综合网| 蜜臀网 一区| 欧美天天搞| 蜜臀久久99精品久久久久久婷婷 | 午夜噜噜噜| 91 偷| 国产白丝AV| 国产精品网址| 91激情| 亚欧无码线免费观看视频| 夜草网站| 欧美探花网| 美女午夜福利免费视频| 啪一啪免费视频| 69精品久久久久中文字幕| 人人插人人搞人人操| 超碰人人干| 99热这里只有精品9| 精品久久久久久亚洲| 91老司机在线视频免费观看| 啊啊啊好湿久久| 秋霞午夜视频一区二区| 大香蕉青青9| 天天爽入口| 性91| 国产综合在线视频网站| 国产白嫩漂亮KTV在线| 欧美一级A片在线看视频性色| AV中文在线| 欧美中文字幕男人天堂久久精品| 国产精品久久久久久夜夜夜| 九九热精彩视频| 国产中文字幕在线观看| 超碰2017| 国产av波波国产精品| 99久久久无码国产精品性男| 俺去也婷婷| 成人色女网| 久久久91福利姬| 色臀AV| 国产真乱mangent| 精品亚洲黄色片 国产精品导航一区二区| 国产情侣自拍在线播放| 综合日本女人伊人| 久久久不卡区一区二区三区久久久| 玖日综合网| 97精品免费视频网站| 黄色片一区二区三区四区五区| 综合欧美日韩在线观看| 久久久亚洲精品电影免费看| 超碰天天操| 99999久久精| 亚川综合视频| 婷婷五月天网| 亚洲欧美一区二区不卡视频播放 | 一级黄碟在线看| 网友自拍第1页| 欧美亚洲一级在线观看| 中文字幕黄色片| 精品人妻视频一区二区三区蜜桃视频| q2午夜理论片夜色av| 秋霞午夜成人福利片片| 久久精品国产72国产精品福利| 玖玖视频在线资源一区二区三区| 校园春色宗合网| 亚洲欧美第一页| AV无码久久久精品| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 欧美日韩m| 超碰一区二区| 综合伊人激情| 色情婷婷| 男人的天堂无码| 精品日韩人妻精品一二三区| 狠狠综合| 99re6国产精品99re| 翔田千里A片一区二区| 国产日比| 九九九草| 国产精品亚洲高清在线| 国产无遮挡| 性色综合网| 亚洲天堂 视频你懂的| 国产白丝在线| 五月亭亭六月丁香| 激情五月天网站| 亚洲精品久久久久久| 午夜激情成人在线观看| 91女人的网站| 精品人妻一区二区三区日产| 久久久com| 亚洲综合草草| 永久免费发布性爱网| 九九九久久久久| 日语五十路和六十路亚洲国产精品| 五月天激情小说| 色欧美色交综合| Blackedraw视频一区二区| 国产av热热色| 日韩性爱视频在线免费观看| 女同性恋一区二区三区精品视频| 搡老女人老91二区| 九九热在线视频| 超碰97人妻自拍| 色999;丁香五月| 性欧美| 欧美精品999| 亚洲第一视频 欧美风情 日韩| 久久久久久国产手机AV| 99re在线精品78| 亚洲欧综合另类无码一区| 爱爱久久| 日本天天操| 日韩精品国模| 亚洲欧美国产成人综合不卡| 色婷婷一区二区三区久久午夜 | 精品国产Av无码久久久亚洲| 日韩影片中文字幕一区二区三区| 在线视频 亚洲精品| ss久久| 91色人妻| 蘋果手機免費看成人Av| 日本成人电影资源网| 欧美性视频二区三区| 亚洲乱码国产乱码精网站| 91色伦| 中文字幕成人| 亚洲色宗合| 亚洲射综合网| 国产精品爽爽v| 亚洲国产蜜臀系列在线观看| 国产AV高清AV无码| 伊人九九九| 67194无码不卡| 久久久久久69国产一区二区| 91色综合色| 婷婷五月天色| 亚洲欧美日韩偷拍色图| 日日夜夜国产综合| 欧美日韩 强奸乱伦| 亚洲色婷婷综合久久久久中文| 吻戏激情性巴克| 亚洲网站一区二区在线| 欧美青青视频| 无码自拍SM| 蜜臀久久99精品久久久| 青青操在线亚洲视频观看欧美在线 | 老司机午夜精品视频| 成人久久精品| 五月天婷婷基地| 乱性AV| 欧美九一精品久久久熟妇| 99爱精品| 国产操逼视频在线观看| 国产丁香精品露脸视频| 丰满人妻一区二区三区在线| 家庭乱伦性爱av| 欧美丝袜中文字幕07在线| 国产婷婷一区| 国产亚洲禁久一区二区| 97亚洲综合影院| 综合九九| 亚洲欧美九九| 国产不卡免费在线视频| 精品一区二区三区丰满熟女-亚洲欧美一区 | 国产一级特黄大片处女| 97鸡把在线视频| 精品97精品97| 九九亚洲视频| 午夜操逼不卡| 丰满人妻-区二区三区免费看 | 91亚州日韩高清| 99精品视频在线观看免费| 亚洲动态色图| 少妇久久久免费| 极品粉嫩一区二区| 欧美精品日韩一区二区| 久久精品国产亚洲妲己影视| 婷婷8月天青娱乐| 亚洲精品1区| 天天操女人| 这里都是精品在线观看| 国产极品精品美女视频| 特色a在线上| 伊人9| 天堂射| 蜜臀亚洲中文| 激情五月天婷婷| 亚洲av淫乱| 久久无码一区二区二三区性色| 欧美精品庄| 五月天AV资源| 久久久免费懂色| 天天看人人操屄犊摸阴| 午夜精品久久久久久久男人的天堂 | 91精品国产高清久久久久久,亚洲成人 | 激情小说激情视频| 超碰在线第一页| 欧美熟女妇同| 欧美日韩免费专区在线| 91大学精品激情戏| www.色婷婷色综合| 日韩精品1区2区中文字幕| 亚洲av国产av综合av卡| 97超碰欧美| 综合欧美亚洲| 狠狠爱夜夜| 欲香欲色综合天天伊人| 亚洲精品乱码久久久久久蜜桃麻豆| 日韩不卡网操逼中文字幕日韩| 欧美亚洲第1页| 久久久9品一区二区三区| 久久五月份| 蜜臀国产AV中文字幕| 大香蕉九九| av大香蕉| 九九Av| 五月婷婷六月激情| 色色99| 青青草日韩无码| 99色视频| 亚洲高潮少妇| 91爱综合| 久久久久久夜夜夜夜夜| 91色碰| 久久大香蕉手机高清| 精品视频123区小说区| 丁香五月天婷婷姐| 有码免费观看| 97免费在线视频在线观看| 蜜色网色哟哟| 色婷婷综合久久久久中文一区二区 | 丰满人妻一区二区三区四区| 四虎国产精品永久地址入口| 最好看的中文字幕在线2018| 蜜乳AV一区| 囯产操逼片| 大香蕉人妻| 日韩偷拍色图| 一区二区首页| 国产天美传媒精品| 亚洲偷拍欧美激情| 青青草一本道福利视频| 青青草一区二区高清无码视频| 熟女人妻一区二区三区免费看 | 东北女人性交| 东京热男人天堂| 韩国免费播放一级毛片| 秋霞一级A片黄色视频| 国产www色在线观看| av资源在线观看少妇| 亚洲人成网www| 国产SV一线| 成人欧美日超碰| 欧美第五页| 精品国产Av无码久久久伦古装| 男女日B国产| 国产午夜激片Av毛片不卡| 欧美午夜色妇色鬼| 一区AV| 国产女同视频在线播放| 国产熟女完整版中字 | 日韩性爱长视频免费| 亚洲AV成人无码一二三久久| 国产aⅴ无码片毛片一级网站| 中文字幕日本久久| 老鸭窝亚洲毛片| 欧美日韩亚洲五月天婷婷| 国产精品对白自产拍| 97干97色| 国产女人极品高潮毛片| AA丁香综合激情| 91撸色网 玖玖网 欧美| 97精品视频在线| 中文乱码字字幕在线第5页| 日韩乱伦影音先锋| 天美国产三级传媒|