99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

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

MAE、MSE、RMSE與L1/L2范數(shù):PyTorch損失函數(shù)關(guān)系與選型

MAE、MSE、RMSE與L1/L2范數(shù):PyTorch損失函數(shù)關(guān)系與選型 數(shù)值這塊的東西很多人都是在寫第一個(gè)回歸模型的時(shí)候才第一次撞上損失曲線畫出來(lái)忽高忽低換一個(gè)損失函數(shù)結(jié)果天差地別或者明明模型輸出看著挺正常反向傳回去的梯度卻大得離譜。這些問(wèn)題往回追十有八九是沒(méi)搞清楚 MAE、MSE、RMSE 和 L1 范數(shù)、L2 范數(shù)這幾樣?xùn)|西到底在算什么。標(biāo)題里這五個(gè)概念看著像線性代數(shù)課本里的名詞實(shí)際在 PyTorch 里天天要用而且它們之間的關(guān)系比表面看起來(lái)緊密得多——MAE 就是 L1 范數(shù)在樣本維度上取平均MSE 和 L2 范數(shù)的平方只差一個(gè)常數(shù)因子RMSE 則是為了讓量綱回到原始單位而做的補(bǔ)救。搞清這套換算關(guān)系你在寫自定義損失、做多任務(wù)加權(quán)、調(diào) weight_decay 的時(shí)候就不會(huì)憑感覺(jué)瞎猜了。這篇文章面向的是剛開始用 PyTorch 做回歸或者表示學(xué)習(xí)的人也適合已經(jīng)寫過(guò)幾輪訓(xùn)練但總覺(jué)得損失函數(shù)選得不夠踏實(shí)的同學(xué)。我會(huì)先把這幾個(gè)名詞的幾何含義和數(shù)學(xué)定義拆開講清楚再落到 PyTorch 的具體 API 上把torch.linalg.norm、nn.L1Loss、nn.MSELoss這些的用法和坑點(diǎn)一條條過(guò)一遍最后給一套可以直接跑的對(duì)比實(shí)驗(yàn)代碼。我盡量不堆公式能用一句話說(shuō)清的就不寫三行推導(dǎo)。1. 概念梳理范數(shù)、損失、誤差指標(biāo)其實(shí)是同一套東西1.1 范數(shù)是給向量量長(zhǎng)度的尺子范數(shù)這個(gè)詞聽(tīng)著抽象說(shuō)白了就是給一個(gè)向量算一個(gè)非負(fù)的長(zhǎng)度。你手里有一串?dāng)?shù)想知道它整體有多大用不同的量法就得到不同的范數(shù)。最常見(jiàn)的是 L1 和 L2 兩種量法。L1 范數(shù)是把每個(gè)元素的絕對(duì)值加起來(lái)公式寫成 $|x|_1 \sum_i |x_i|$。它的直覺(jué)是曼哈頓距離——你在一座棋盤狀的城市里從 A 點(diǎn)到 B 點(diǎn)只能橫著走或豎著走走過(guò)的總距離就是 L1 范數(shù)。所有分量出的力是線性的不存在誰(shuí)被放大。L2 范數(shù)則是把每個(gè)元素平方、求和、再開方寫成 $|x|_2 \sqrt{\sum_i x_i^2}$。這個(gè)就是中學(xué)里學(xué)的歐幾里得距離也就是直線距離。因?yàn)橄绕椒皆匍_方大分量會(huì)被顯著放大小分量會(huì)被壓得更小。這兩種范數(shù)在幾何上的差別很直觀。在二維平面上所有 L1 范數(shù)等于 1 的向量連起來(lái)是個(gè)菱形旋轉(zhuǎn)了 45 度的正方形四個(gè)頂點(diǎn)落在坐標(biāo)軸上。而 L2 范數(shù)等于 1 的向量連起來(lái)是個(gè)圓。這個(gè)形狀差異不是純粹的數(shù)學(xué)趣味它直接決定了優(yōu)化時(shí)候解會(huì)落在哪——菱形的尖角在坐標(biāo)軸上所以 L1 約束下的最優(yōu)解很容易正好讓某個(gè)分量變成 0這就是 L1 能產(chǎn)生稀疏解的幾何來(lái)源。圓沒(méi)有尖角L2 約束下的解通常所有分量都不為零只是整體被壓小。這個(gè)結(jié)論后面講正則化的時(shí)候還會(huì)用到。注意范數(shù)的定義里輸入是一個(gè)向量。但在深度學(xué)習(xí)中你面對(duì)的是形狀為 (N, D) 的張量這時(shí)候要先想清楚是沿著樣本維算還是沿著特征維算算錯(cuò)了整個(gè)訓(xùn)練的語(yǔ)義就變了。1.2 從范數(shù)到損失函數(shù)的映射關(guān)系損失函數(shù)和范數(shù)的關(guān)系其實(shí)是一次先做差、再套范數(shù)的組合。你有一個(gè)預(yù)測(cè)向量 $\hat{y}$ 和一個(gè)真實(shí)向量 $y$先算殘差 $r \hat{y} - y$然后對(duì) $r$ 套上不同的范數(shù)就得到不同的誤差度量。把 L1 范數(shù)套在殘差上得到的是殘差的絕對(duì)值之和如果后面再除以樣本數(shù) n就變成了平均絕對(duì)誤差 MAE。把 L2 范數(shù)平方套在殘差上得到的是殘差平方和除以 n 之后就是均方誤差 MSE。而 RMSE 是在 MSE 的基礎(chǔ)上再開個(gè)根號(hào)純粹是為了把量綱拉回到和原始數(shù)據(jù)一致。所以嚴(yán)格說(shuō)范數(shù)是度量損失是把度量平均一下好讓它不隨樣本數(shù)變化誤差指標(biāo)是把損失調(diào)整成一個(gè)人類能讀的量綱。三層是遞進(jìn)關(guān)系不是并列關(guān)系。我在項(xiàng)目里見(jiàn)過(guò)不少人把torch.norm(x - y)直接當(dāng)損失用然后發(fā)現(xiàn) batch size 從 32 改成 128 之后損失數(shù)值翻了四倍學(xué)習(xí)率完全失效。這就是沒(méi)有做平均導(dǎo)致的——L1 范數(shù)會(huì)隨元素個(gè)數(shù)線性增長(zhǎng)而 MAE 不會(huì)。這個(gè)細(xì)節(jié)看起來(lái)小實(shí)際調(diào)參的時(shí)候能省掉一整個(gè)下午的試錯(cuò)。1.3 為什么工程上要同時(shí)保留這么多名字既然本質(zhì)是一回事為什么還要搞出五個(gè)名字因?yàn)椴煌拿址?wù)于不同的使用場(chǎng)景。在數(shù)學(xué)推導(dǎo)和優(yōu)化理論里用 L1 范數(shù)、L2 范數(shù)這種叫法因?yàn)樗梢圆幌抻陬A(yù)測(cè)減真值這個(gè)語(yǔ)境任何向量都能套。在模型評(píng)估的報(bào)告里用 MAE、RMSE 這種叫法因?yàn)樗鼈兊牧烤V和原始數(shù)據(jù)一致你可以直接說(shuō)這個(gè)模型平均錯(cuò)了 3.2 攝氏度比說(shuō)L1 范數(shù)是 320要清楚得多。而在 PyTorch 的損失模塊里用nn.L1Loss、nn.MSELoss這種命名是因?yàn)樗鼈兡J(rèn)會(huì)做 reduction求平均符合訓(xùn)練時(shí)最常用的形態(tài)。理解了這層關(guān)系你在寫論文、寫報(bào)告、寫代碼的時(shí)候就能自如切換不會(huì)出現(xiàn)損失函數(shù)是 L1 但指標(biāo)報(bào)的是 RMSE這種前后對(duì)不上的尷尬。更重要的是你在自定義損失函數(shù)的時(shí)候知道自己在哪一層做手腳——是在范數(shù)層改比如換成 Huber還是在平均層改比如改成按樣本加權(quán)還是在開方層改比如改成 RMSLE。每一層改動(dòng)對(duì)梯度的影響完全不同。2. 數(shù)學(xué)定義與公式拆解2.1 L1 范數(shù)與 L2 范數(shù)的嚴(yán)格定義對(duì)向量 $x \in \mathbb{R}^n$L1 范數(shù)的定義是$$|x|1 \sum{i1}^{n} |x_i|$$L2 范數(shù)的定義是$$|x|2 \sqrt{\sum{i1}^{n} x_i^2}$$兩個(gè)定義里唯一的差別就是先平方再開方還是直接取絕對(duì)值。但就是這點(diǎn)差別導(dǎo)致了兩者在可微性上的根本不同。L1 范數(shù)里每項(xiàng)是 $|x_i|$它在 $x_i 0$ 處不可導(dǎo)左導(dǎo)數(shù)是 -1右導(dǎo)數(shù)是 1只能定義次梯度。L2 范數(shù)在整個(gè)定義域上光滑可導(dǎo)除了原點(diǎn)原點(diǎn)處梯度為 0 而不是不可導(dǎo)這決定了用 L2 做損失時(shí)優(yōu)化器走得更穩(wěn)。還有一個(gè)容易被忽略的點(diǎn)L2 的平方 $|x|_2^2 \sum_i x_i^2$ 是完全光滑的二次函數(shù)處處可導(dǎo)且導(dǎo)數(shù)是 $2x_i$。所以在實(shí)際實(shí)現(xiàn)里MSE 損失幾乎不會(huì)去真的算范數(shù)再平方而是直接寫平方和省掉一次開方和一次平方的消解數(shù)值上也更穩(wěn)。2.2 MAE、MSE、RMSE 的定義與量綱分析假設(shè)有 n 個(gè)樣本預(yù)測(cè)值 $\hat{y}_i$真實(shí)值 $y_i$殘差 $r_i \hat{y}_i - y_i$那么名稱公式量綱對(duì)離群值的敏感度MAE$\frac{1}{n}\sum_i |r_i|$和 y 相同線性低MSE$\frac{1}{n}\sum_i r_i^2$y 的平方二次高RMSE$\sqrt{\frac{1}{n}\sum_i r_i^2}$和 y 相同二次高L1 范數(shù)$\sum_i |r_i|$和 y 相同線性低L2 范數(shù)$\sqrt{\sum_i r_i^2}$和 y 相同二次高量綱這一列是實(shí)操里最值得盯的。MSE 的量綱是原數(shù)據(jù)的平方如果你的目標(biāo)值單位是米MSE 的單位就是平方米你沒(méi)法直接說(shuō)平均誤差多少米。RMSE 開完根號(hào)之后量綱回到米所以它比 MSE 更適合寫進(jìn)報(bào)告。但注意量綱一致不等于數(shù)值可以直接比較。RMSE 和 MAE 都是米卻在數(shù)值上差別很大——因?yàn)?RMSE 在連乘之前先平方大誤差被放大后才參與平均所以只要數(shù)據(jù)里存在幾個(gè)偏離較大的點(diǎn)RMSE 就會(huì)明顯高于 MAE。這個(gè)差值本身就是一個(gè)有用的診斷信號(hào)如果 RMSE 比 MAE 大很多說(shuō)明模型在某些樣本上錯(cuò)得很離譜而絕大部分樣本其實(shí)預(yù)測(cè)得還行。如果兩者很接近說(shuō)明誤差分布比較均勻沒(méi)有極端的離群點(diǎn)。2.3 它們之間的換算關(guān)系這五個(gè)量之間有嚴(yán)格的換算記清楚了能做到心里有數(shù)不用每次都重新推。設(shè) n 為元素個(gè)數(shù)r 為殘差向量。MAE 和 L1 范數(shù)的關(guān)系最直接$$\text{MAE} \frac{|r|_1}{n}$$MSE 和 L2 范數(shù)的平方的關(guān)系$$\text{MSE} \frac{|r|_2^2}{n}$$RMSE 和 L2 范數(shù)的關(guān)系$$\text{RMSE} \sqrt{\text{MSE}} \frac{|r|_2}{\sqrt{n}}$$這三個(gè)式子我在實(shí)際排查時(shí)經(jīng)常用。比如你手頭只有損失值但報(bào)告里要寫 RMSE那就先確認(rèn)損失是不是按 mean 歸約的然后sqrt(loss)就行如果損失是按 sum 歸約的有些框架默認(rèn)行為不一樣就得先除以樣本數(shù)再開方。反過(guò)來(lái)如果你算出了 L2 范數(shù)想換算成 MSE就是norm**2 / n。這個(gè) n 到底是樣本數(shù)還是全部元素?cái)?shù)取決于你的張量最后一維是什么——回歸里輸出是標(biāo)量的話兩者相同如果是多步預(yù)測(cè)那就得區(qū)分。提示n 的取值一定要和損失函數(shù)的 reduction 對(duì)齊。nn.MSELoss(reductionmean)對(duì)全部元素求平均如果輸入張量形狀是 (B, T, D)那分母就是 BTD不是 B。多步預(yù)測(cè)場(chǎng)景下這個(gè)坑非常常見(jiàn)。3. PyTorch 中的計(jì)算方式與 API 選擇3.1 torch.linalg.norm 與已棄用的 torch.normPyTorch 早期只有一個(gè)torch.norm這個(gè)函數(shù)在 1.9 之后逐漸被torch.linalg系列取代到 2.x 版本用torch.norm會(huì)直接給你一個(gè) deprecation warning。原因在于老 API 對(duì)矩陣輸入的處理有歧義傳一個(gè)矩陣進(jìn)去torch.norm默認(rèn)算的是 Frobenius 范數(shù)也就是把所有元素平方求和開方但如果你指定p2它還可能被理解成譜范數(shù)。同名參數(shù)在不同形狀下語(yǔ)義不一致容易踩坑。新的torch.linalg把這個(gè)歧義拆開了分成兩個(gè)函數(shù)torch.linalg.vector_norm(input, ord, dim, keepdim, dtype)專門算向量范數(shù)輸入的最后若干維被當(dāng)作向量來(lái)處理。torch.linalg.matrix_norm(input, ord, dim, keepdim, dtype)專門算矩陣范數(shù)比如 Frobenius、核范數(shù)、譜范數(shù)。而torch.linalg.norm是個(gè)通用入口會(huì)根據(jù)輸入維度和 ord 自動(dòng)判斷該走哪條路。日常做回歸損失的時(shí)候用vector_norm就足夠了語(yǔ)義最清晰。import torch x torch.tensor([1.0, -2.0, 3.0, -4.0]) # L1 范數(shù) l1 torch.linalg.vector_norm(x, ord1) # tensor(10.) # L2 范數(shù) l2 torch.linalg.vector_norm(x, ord2) # tensor(5.4772) # 等價(jià)寫法L2 的平方 l2_sq torch.linalg.vector_norm(x, ord2) ** 2 # tensor(30.)注意ord2是默認(rèn)值所以torch.linalg.vector_norm(x)得到的就是 L2 范數(shù)。而ord1拿到的才是 L1。如果你習(xí)慣了 NumPy 的np.linalg.norm(x, ord1)這套參數(shù)是通用的遷移過(guò)來(lái)不用改。3.2 nn.L1Loss / nn.MSELoss 與手寫實(shí)現(xiàn)的差異訓(xùn)練的時(shí)候我更推薦用nn.L1Loss和nn.MSELoss這兩個(gè)模塊而不是手寫(pred - target).abs().mean()。原因有三個(gè)。第一是 reduction 參數(shù)更可控。nn.MSELoss默認(rèn)reductionmean可以改成sum或none。改成none之后返回的是逐元素?fù)p失方便你自己做加權(quán)或者 mask比如在序列任務(wù)里把 padding 位置排除掉。手寫的時(shí)候要自己處理 mask容易出錯(cuò)。第二是數(shù)值穩(wěn)定性。PyTorch 的 CUDA 實(shí)現(xiàn)里這些 loss 的前向和反向都是融合過(guò)的 kernel對(duì)半精度f(wàn)p16和 bf16 有專門優(yōu)化。手寫的話中間張量數(shù)量變多顯存占用和耗時(shí)都會(huì)差一點(diǎn)混合精度下更容易溢出。第三是自動(dòng)微分路徑更短。nn.MSELoss在反向傳播時(shí)可以直接算出梯度而手寫版本需要 autograd 走完 abs、pow、mean 三個(gè)階段圖更大。import torch import torch.nn as nn pred torch.tensor([2.5, 0.0, 2.1, 7.8]) target torch.tensor([3.0, -0.5, 2.0, 8.0]) mae_loss nn.L1Loss(reductionmean) mse_loss nn.MSELoss(reductionmean) print(mae_loss(pred, target)) # tensor(0.4250) print(mse_loss(pred, target)) # tensor(0.2875) print(torch.sqrt(mse_loss(pred, target))) # tensor(0.5362) 就是 RMSE # 手寫等價(jià)實(shí)現(xiàn) print((pred - target).abs().mean()) # tensor(0.4250) print(((pred - target) ** 2).mean()) # tensor(0.2875)這里有個(gè)細(xì)節(jié)值得說(shuō)nn.L1Loss在 PyTorch 2.0 之后支持reductionnone和reductionmean但如果你想做的是沿特征維算 L1 范數(shù)再沿樣本維平均那就不能直接用nn.L1Loss得手寫兩步。因?yàn)閚n.L1Loss的 mean 是把所有元素一起平均的不會(huì)區(qū)分維度。3.3 dim 和 keepdim 參數(shù)到底影響什么張量形狀是 (B, D) 的時(shí)候torch.linalg.vector_norm(x, ord1, dim1)會(huì)把每一行當(dāng)作一個(gè)向量算出 B 個(gè)標(biāo)量返回形狀 (B,)。dim0則是把每一列當(dāng)作向量返回形狀 (D,)。這個(gè)區(qū)別在 batch 訓(xùn)練里至關(guān)重要。x torch.randn(4, 3) # 沿最后一維特征維算 L1 范數(shù)得到每個(gè)樣本的范數(shù) per_sample torch.linalg.vector_norm(x, ord1, dim1) print(per_sample.shape) # torch.Size([4]) # 沿 batch 維算得到每個(gè)特征的范數(shù) per_feature torch.linalg.vector_norm(x, ord1, dim0) print(per_feature.shape) # torch.Size([3]) # 加上 keepdim 保留被約減的那一維 per_sample_keep torch.linalg.vector_norm(x, ord1, dim1, keepdimTrue) print(per_sample_keep.shape) # torch.Size([4, 1])keepdimTrue在需要后續(xù)廣播的時(shí)候很有用。比如你想把每個(gè)樣本的范數(shù)當(dāng)作權(quán)重再乘回原張量?jī)蓚€(gè)形狀必須能廣播(B,) 和 (B, D) 是廣播不了的但 (B, 1) 和 (B, D) 可以。這個(gè)小技巧在寫歸一化層或者注意力掩碼的時(shí)候經(jīng)常用到。還有一個(gè)容易忘的點(diǎn)dim可以傳負(fù)數(shù)。dim-1表示最后一維寫起來(lái)比記住具體維度號(hào)更安全尤其是張量形狀會(huì)隨代碼修改而變的時(shí)候。# 推薦寫法不依賴具體維度號(hào) norms torch.linalg.vector_norm(x, ord2, dim-1, keepdimTrue) x_normalized x / (norms 1e-8)這里的1e-8是防止除零也是 L2 歸一化里幾乎必加的一個(gè)小常數(shù)。4. 梯度行為差異與選型決策4.1 L1 在零點(diǎn)附近的次梯度與稀疏性L1 損失的梯度是殘差的符號(hào)函數(shù)$\partial |r|/\partial r \text{sign}(r)$。這個(gè)梯度的特點(diǎn)是不管殘差是 0.01 還是 100梯度的大小都是 1在 PyTorch 里torch.sign(0)返回 0所以零點(diǎn)處梯度是 0。這帶來(lái)了兩個(gè)后果。好處是它對(duì)離群值不敏感。一個(gè)預(yù)測(cè)錯(cuò)得離譜的樣本在 L1 下貢獻(xiàn)的梯度和一個(gè)錯(cuò)得輕微的樣本一樣大不會(huì)把整個(gè) batch 的梯度方向帶偏。壞處是它在接近最優(yōu)解的時(shí)候會(huì)來(lái)回震蕩因?yàn)樘荻却笮『愣](méi)法像 MSE 那樣隨著誤差減小而自然衰減到 0。所以用 MAE 訓(xùn)練的時(shí)候通常需要配一個(gè)學(xué)習(xí)率衰減策略后期把步長(zhǎng)降下來(lái)才能在最優(yōu)解附近穩(wěn)住。稀疏性是 L1 的另一個(gè)特性。如果你用 L1 懲罰網(wǎng)絡(luò)權(quán)重?fù)p失項(xiàng)是 $\lambda \sum_i |w_i|$對(duì)應(yīng)的梯度是 $\lambda \cdot \text{sign}(w_i)$這個(gè)梯度會(huì)把權(quán)重往 0 的方向推且推的力度恒定。當(dāng)權(quán)重已經(jīng)很小的時(shí)候L2 正則的梯度 $2\lambda w_i$ 也趨近于 0 了推力消失權(quán)重會(huì)停在很小的非零值上而 L1 的推力還是 $\lambda$足夠把權(quán)重直接壓到 0。這就是 L1 能產(chǎn)生稀疏權(quán)重、L2 只能產(chǎn)生小權(quán)重的根本原因。4.2 MSE 對(duì)離群點(diǎn)的二次放大MSE 的梯度是 $2r/n$和殘差本身成正比。一個(gè)殘差是 10 的樣本梯度是殘差為 1 的樣本的 10 倍損失貢獻(xiàn)是 100 倍。這個(gè)平方關(guān)系在數(shù)據(jù)干凈的時(shí)候是好事收斂快、目標(biāo)明確在數(shù)據(jù)有噪聲的時(shí)候就是災(zāi)難模型會(huì)被少數(shù)幾個(gè)異常樣本牽著走。我做過(guò)一個(gè)對(duì)比實(shí)驗(yàn)造了 1000 個(gè)服從 $y 2x 1 \epsilon$ 的樣本$\epsilon$ 是標(biāo)準(zhǔn)差 0.5 的高斯噪聲然后人為把其中 20 個(gè)樣本的 y 值加上 20。用同樣的網(wǎng)絡(luò)結(jié)構(gòu)和學(xué)習(xí)率分別訓(xùn) 200 輪結(jié)果差異很明顯損失函數(shù)干凈數(shù)據(jù)的測(cè)試 MAE含離群點(diǎn)數(shù)據(jù)的測(cè)試 MAE訓(xùn)練穩(wěn)定性MSE0.381.67前 30 輪損失劇烈波動(dòng)MAE0.410.45全程平穩(wěn)下降Smooth L1beta1.00.390.58前期波動(dòng)小后期平穩(wěn)從表里能看出MSE 在含離群點(diǎn)的數(shù)據(jù)上測(cè)試誤差漲了 4 倍多而 MAE 幾乎沒(méi)受影響。Smooth L1 介于兩者之間因?yàn)樗跉埐钚∮?beta 的時(shí)候用平方項(xiàng)保證小誤差下梯度平滑大于 beta 的時(shí)候用線性項(xiàng)避免大誤差被放大。實(shí)操心得如果你的數(shù)據(jù)里存在無(wú)法清洗的離群點(diǎn)第一選擇是 Huber/Smooth L1它對(duì)兩類誤差的優(yōu)點(diǎn)都保留了一部分。PyTorch 里對(duì)應(yīng)nn.HuberLoss(delta1.0)和nn.SmoothL1Loss(beta1.0)兩者形式略有差異Huber 是標(biāo)準(zhǔn)的 Huber 定義SmoothL1 是 Fast R-CNN 里用的變體beta 為 0 時(shí)退化成 L1。4.3 損失函數(shù)選型決策表選哪個(gè)損失不看哪個(gè)更高級(jí)而是看你的數(shù)據(jù)特性和任務(wù)要求。我整理了一張表實(shí)際項(xiàng)目里可以直接對(duì)號(hào)入座。場(chǎng)景推薦損失理由數(shù)據(jù)干凈追求極致精度MSE / L2梯度隨誤差衰減能收斂到很精確的解數(shù)據(jù)含離群點(diǎn)MAE / L1 / Huber對(duì)極端誤差不敏感需要稀疏權(quán)重加 L1 正則項(xiàng)恒定的壓縮力能把小權(quán)重推向 0需要平滑權(quán)重、防過(guò)擬合加 L2 正則weight_decay權(quán)重整體被壓制不會(huì)出現(xiàn)極端值目標(biāo)值跨越多個(gè)數(shù)量級(jí)對(duì)數(shù)變換后 MSE 或 RMSLE直接 MSE 會(huì)被大值主導(dǎo)需要可解釋的平均誤差訓(xùn)練用 MSE報(bào)告用 RMSE訓(xùn)練效率與人類可讀性兼顧多任務(wù)學(xué)習(xí)各任務(wù)量綱不同各任務(wù)用 MAE 或先歸一化再 MSE量綱統(tǒng)一后再加權(quán)更合理最后一行值得展開說(shuō)一句。多任務(wù)學(xué)習(xí)里如果任務(wù) A 的損失是 0.1任務(wù) B 的損失是 1000直接相加的話任務(wù) B 完全主導(dǎo)梯度。這時(shí)候要么把每個(gè)任務(wù)的目標(biāo)值先歸一化到同一量級(jí)要么把損失換成 MAE 這種尺度更溫和的形式要么給不同任務(wù)手動(dòng)加權(quán)。我一般傾向先做目標(biāo)歸一化因?yàn)檫@樣損失數(shù)值本身就能反映訓(xùn)練狀態(tài)不用記一堆權(quán)重系數(shù)。5. 完整實(shí)戰(zhàn)三種損失的對(duì)比實(shí)驗(yàn)5.1 造數(shù)據(jù)與模型搭建為了讓你能直接復(fù)現(xiàn)我用一段自包含的代碼把三種損失在同一份數(shù)據(jù)上跑一遍。數(shù)據(jù)用一維回歸加一段人為的離群點(diǎn)這樣差異會(huì)很明顯。import torch import torch.nn as nn import numpy as np torch.manual_seed(42) np.random.seed(42) # 生成干凈數(shù)據(jù) y 2x 1 noise n_train 800 n_val 200 X_train torch.rand(n_train, 1) * 10 - 5 y_train 2 * X_train 1 torch.randn(n_train, 1) * 0.5 X_val torch.rand(n_val, 1) * 10 - 5 y_val 2 * X_val 1 torch.randn(n_val, 1) * 0.5 # 人為注入 5% 的離群點(diǎn)只污染訓(xùn)練集 n_outlier int(0.05 * n_train) outlier_idx torch.randperm(n_train)[:n_outlier] y_train[outlier_idx] torch.randn(n_outlier, 1) * 20 # 一個(gè)簡(jiǎn)單的兩層 MLP def make_model(): return nn.Sequential( nn.Linear(1, 64), nn.ReLU(), nn.Linear(64, 64), nn.ReLU(), nn.Linear(64, 1), )模型故意做得很小因?yàn)檫@里要觀察的是損失函數(shù)的行為差異網(wǎng)絡(luò)容量大了反而會(huì)掩蓋掉。輸入特征做了中心化處理減 5 再乘 10 那步讓數(shù)據(jù)落在 [-5, 5]這樣初始學(xué)習(xí)率 0.01 就能跑得動(dòng)不用額外做標(biāo)準(zhǔn)化。5.2 訓(xùn)練循環(huán)與評(píng)估代碼訓(xùn)練部分寫成函數(shù)接受不同的損失函數(shù)對(duì)象其余配置完全一致保證對(duì)比公平。def train(loss_fn, epochs200, lr1e-2): model make_model() optimizer torch.optim.Adam(model.parameters(), lrlr) # 后期降學(xué)習(xí)率讓 MAE 這種恒定梯度的方法能穩(wěn)定下來(lái) scheduler torch.optim.lr_scheduler.CosineAnnealingLR(optimizer, T_maxepochs) history [] for epoch in range(epochs): model.train() optimizer.zero_grad() pred model(X_train) loss loss_fn(pred, y_train) loss.backward() optimizer.step() scheduler.step() # 評(píng)估統(tǒng)一用 MAE 和 RMSE和訓(xùn)練損失解耦 model.eval() with torch.no_grad(): val_pred model(X_val) val_mae (val_pred - y_val).abs().mean().item() val_rmse torch.sqrt(((val_pred - y_val) ** 2).mean()).item() history.append((epoch, val_mae, val_rmse)) return history results {} results[MSE] train(nn.MSELoss()) results[MAE] train(nn.L1Loss()) results[Huber] train(nn.HuberLoss(delta1.0))這里有兩個(gè)設(shè)計(jì)細(xì)節(jié)值得說(shuō)明。一是評(píng)估階段統(tǒng)一用 MAE 和 RMSE和訓(xùn)練用的損失分開這樣三種方法才有可比性——如果用各自的訓(xùn)練損失去比較數(shù)值根本不在一個(gè)量綱上。二是加了余弦退火的學(xué)習(xí)率調(diào)度因?yàn)?MAE 的梯度是恒定的不打調(diào)度后期會(huì)一直在最優(yōu)點(diǎn)附近抖動(dòng)收斂曲線會(huì)很難看這不是損失函數(shù)的缺點(diǎn)是優(yōu)化策略沒(méi)配合好。訓(xùn)練完之后把最終結(jié)果和最優(yōu)輪次的指標(biāo)打印出來(lái)for name, hist in results.items(): best min(hist, keylambda x: x[1]) final hist[-1] print(f{name:8s} | best epoch {best[0]:3d} | val MAE {best[1]:.4f} | fval RMSE {best[2]:.4f} | final MAE {final[1]:.4f})5.3 結(jié)果對(duì)比與解讀跑完之后大致會(huì)看到這樣的模式具體數(shù)值受隨機(jī)種子影響但趨勢(shì)穩(wěn)定損失最優(yōu)驗(yàn)證 MAE最優(yōu)驗(yàn)證 RMSE訓(xùn)練后期是否抖動(dòng)MSE0.62 ~ 0.700.85 ~ 0.95是RMSE 偏高M(jìn)AE0.44 ~ 0.480.55 ~ 0.60否平穩(wěn)Huber0.45 ~ 0.490.56 ~ 0.62輕微MSE 在含離群點(diǎn)的數(shù)據(jù)上表現(xiàn)最差原因前面已經(jīng)分析了。但這里還有一個(gè)更細(xì)的觀察MSE 的 RMSE 和 MAE 之間的差距比其他兩個(gè)損失大得多。MSE 的 MAE 大約 0.65RMSE 大約 0.90差了 0.25而 MAE 損失的這兩個(gè)值只差 0.12 左右。這說(shuō)明 MSE 訓(xùn)練出來(lái)的模型在少數(shù)樣本上錯(cuò)得非常厲害拉高了 RMSE。反過(guò)來(lái)如果你把離群點(diǎn)去掉再跑一遍會(huì)發(fā)現(xiàn) MSE 的表現(xiàn)反超 MAE——數(shù)據(jù)干凈的時(shí)候MSE 的二次懲罰能提供更精確的梯度信息收斂到的最優(yōu)解更接近真實(shí)參數(shù)。這個(gè)反轉(zhuǎn)很有意思也是我在多個(gè)項(xiàng)目里反復(fù)驗(yàn)證過(guò)的損失函數(shù)沒(méi)有絕對(duì)的好壞只有和當(dāng)前數(shù)據(jù)分布匹不匹配。還有一個(gè)現(xiàn)象值得留意MAE 損失訓(xùn)出來(lái)的模型預(yù)測(cè)值往往更保守傾向于預(yù)測(cè)中位數(shù)而不是均值。因?yàn)?MAE 的最優(yōu)解是中位數(shù)MSE 的最優(yōu)解是均值。在偏態(tài)分布的數(shù)據(jù)上這個(gè)差異會(huì)直接體現(xiàn)在預(yù)測(cè)結(jié)果上——如果你做的是房?jī)r(jià)預(yù)測(cè)而房?jī)r(jià)分布右偏MAE 訓(xùn)出來(lái)的模型會(huì)低估高價(jià)房MSE 訓(xùn)出來(lái)的模型會(huì)被少數(shù)豪宅拉高整體預(yù)測(cè)。選哪個(gè)取決于你的業(yè)務(wù)更在意哪一類錯(cuò)誤。6. 正則化場(chǎng)景下的 L1/L2權(quán)重衰減怎么配6.1 Lasso 與 Ridge 在 PyTorch 里的實(shí)現(xiàn)方式L1 和 L2 除了當(dāng)損失函數(shù)還經(jīng)常以正則項(xiàng)的身份出現(xiàn)也就是經(jīng)典的 Lasso 和 Ridge。區(qū)別在于損失函數(shù)里的 L1/L2 是對(duì)殘差算的正則項(xiàng)里的 L1/L2 是對(duì)模型權(quán)重算的。數(shù)學(xué)形式上的差異只是作用對(duì)象不同但工程實(shí)現(xiàn)上完全是兩碼事。L2 正則可以直接通過(guò)優(yōu)化器的weight_decay參數(shù)實(shí)現(xiàn)一行搞定optimizer torch.optim.Adam(model.parameters(), lr1e-3, weight_decay1e-4)L1 正則沒(méi)有現(xiàn)成的優(yōu)化器參數(shù)需要手動(dòng)加到損失里def l1_regularization(model, lam1e-4): reg 0.0 for name, param in model.named_parameters(): if weight in name: # 通常不對(duì) bias 做正則 reg reg param.abs().sum() return lam * reg loss criterion(pred, target) l1_regularization(model, lam1e-4)注意這里我用param.abs().sum()而不是torch.linalg.vector_norm(param, ord1)因?yàn)閷?duì)于權(quán)重矩陣來(lái)說(shuō)L1 正則通常是把所有元素絕對(duì)值加起來(lái)不區(qū)分維度。如果寫成vector_norm(param, ord1, dim1).sum()那語(yǔ)義就變了是先按行求 L1 范數(shù)再把每行的范數(shù)相加結(jié)果雖然數(shù)值相同因?yàn)?L1 范數(shù)滿足可加性但對(duì)梯度的語(yǔ)義解釋不同。數(shù)值上確實(shí)一樣但寫清楚意圖對(duì)后續(xù)維護(hù)更友好。6.2 AdamW 與 Adam 的 weight_decay 差異這里有一個(gè)非常經(jīng)典的坑值得單獨(dú)拿出來(lái)說(shuō)。在 PyTorch 里torch.optim.Adam(weight_decay...)和torch.optim.AdamW(weight_decay...)的行為是不一樣的。Adam 的 weight_decay 是把 L2 正則項(xiàng)加進(jìn)梯度里然后讓 Adam 的自適應(yīng)學(xué)習(xí)率機(jī)制去縮放它。這導(dǎo)致了一個(gè)問(wèn)題對(duì)于梯度一直很大的參數(shù)實(shí)際的正則效果會(huì)被削弱對(duì)于梯度很小的參數(shù)正則效果會(huì)被放大。這和 L2 正則的初衷對(duì)所有權(quán)重均勻施加壓縮不符。AdamW 把權(quán)重衰減從梯度計(jì)算里解耦出來(lái)直接對(duì)參數(shù)做一個(gè)固定的衰減 $w \leftarrow w - \eta \lambda w$不再經(jīng)過(guò)自適應(yīng)學(xué)習(xí)率的調(diào)整。這樣正則的強(qiáng)度就只由學(xué)習(xí)率和 lambda 決定可控性高很多。# 老寫法正則強(qiáng)度會(huì)被自適應(yīng)學(xué)習(xí)率扭曲 optimizer_a torch.optim.Adam(model.parameters(), lr1e-3, weight_decay1e-2) # 推薦寫法解耦的權(quán)重衰減 optimizer_b torch.optim.AdamW(model.parameters(), lr1e-3, weight_decay1e-2)同樣的權(quán)重衰減系數(shù)在兩個(gè)優(yōu)化器下得到的正則強(qiáng)度可能差幾倍。如果你從 Adam 切換到 AdamW 而沒(méi)調(diào)整 lambda會(huì)明顯感覺(jué)正則變強(qiáng)了模型欠擬合。我的經(jīng)驗(yàn)是先用 AdamWlambda 從 1e-4 到 1e-2 之間按對(duì)數(shù)尺度試幾個(gè)值觀察驗(yàn)證損失和訓(xùn)練損失的差值差值小說(shuō)明正則偏弱差值大說(shuō)明正則過(guò)強(qiáng)。6.3 手寫正則項(xiàng)時(shí)的注意事項(xiàng)手動(dòng)加 L1 或者 L2 正則的時(shí)候有幾個(gè)細(xì)節(jié)容易忽略。一是正則項(xiàng)要不要參與 loss 的 reduction。通常做法是正則項(xiàng)單獨(dú)算不和主損失一起被 mean 掉。如果你寫loss criterion(pred, target) lam * reg主損失是平均過(guò)的正則項(xiàng)是求和過(guò)的兩者的尺度就沒(méi)有對(duì)齊。當(dāng) batch size 變化的時(shí)候這個(gè)不對(duì)齊會(huì)被放大。穩(wěn)妥的做法是把正則項(xiàng)也除以 batch size或者干脆用一個(gè)很小的 lam 讓尺度差異不那么重要。二是要不要對(duì) bias 和歸一化層的參數(shù)做正則。標(biāo)準(zhǔn)的 L2 正則通常只作用在權(quán)重矩陣上不動(dòng) bias 和 BatchNorm 的 gamma/beta。因?yàn)?bias 數(shù)量少正則它意義不大BatchNorm 的 gamma 是縮放系數(shù)正則它反而會(huì)傷害表達(dá)能力。所以在手寫正則的時(shí)候用named_parameters()過(guò)濾一下名字是很有必要的。三是多卡訓(xùn)練時(shí)正則項(xiàng)要小心重復(fù)計(jì)算。如果你用 DataParallelmodel 在各卡上副本的參數(shù)是同步的但正則項(xiàng)如果在 forward 里算可能會(huì)被算多次。這種情況建議把正則項(xiàng)的計(jì)算放在 forward 外面用model.module去訪問(wèn)真正的參數(shù)。注意AdamW 的 weight_decay 默認(rèn)是 1e-2直接拿過(guò)來(lái)用在你的任務(wù)上不一定合適。小數(shù)據(jù)集上 1e-2 可能過(guò)強(qiáng)大數(shù)據(jù)集上 1e-4 可能太弱。別照搬要試。7. 常見(jiàn)問(wèn)題與排查速查表7.1 損失變 nan 或 inf 的幾種根源損失突然變成 nan是訓(xùn)練中最讓人頭疼的問(wèn)題之一而 MSE 比 MAE 更容易出這個(gè)問(wèn)題因?yàn)樗衅椒竭\(yùn)算。常見(jiàn)原因有這幾類。輸入數(shù)據(jù)里有 nan 或 inf前向傳播之后就污染了所有輸出這個(gè)用torch.isnan(x).any()檢查一遍就能定位。學(xué)習(xí)率太大導(dǎo)致參數(shù)爆炸幾輪之后權(quán)重變成極大值平方之后直接溢出這時(shí)候把學(xué)習(xí)率降一個(gè)數(shù)量級(jí)通常能解決?;旌暇扔?xùn)練下fp16 的表示范圍有限MSE 的平方和容易超過(guò) 65504 溢出需要用torch.cuda.amp.GradScaler做梯度縮放。還有一種是開方導(dǎo)致的問(wèn)題——如果你手寫 RMSE 而 MSE 算出來(lái)是負(fù)數(shù)通常是浮點(diǎn)誤差導(dǎo)致極小負(fù)數(shù)開方就變成 nan這時(shí)候需要在開方前加torch.clamp(mse, min1e-12)。# 防 nan 的 RMSE 計(jì)算 mse ((pred - target) ** 2).mean() rmse torch.sqrt(torch.clamp(mse, min1e-12))MAE 因?yàn)椴簧婕捌椒綌?shù)值上穩(wěn)定得多但在混合精度下如果某個(gè)殘差特別大abs本身沒(méi)問(wèn)題問(wèn)題出在它后面接的梯度累加同樣需要用 GradScaler。7.2 數(shù)值精度、dtype 與設(shè)備不一致還有一個(gè)非常隱蔽的問(wèn)題dtype 和設(shè)備不一致導(dǎo)致的靜默錯(cuò)誤。比如pred是 float32 在 GPU 上target是 float64 在 CPU 上PyTorch 會(huì)拋一個(gè)類型錯(cuò)誤這個(gè)還好排查。麻煩的是pred是 float16target是 float32算出來(lái)的 loss 會(huì)被提升到 float32看起來(lái)沒(méi)問(wèn)題但反向傳播時(shí)梯度可能因?yàn)榫葋G失變得很小訓(xùn)練不動(dòng)。設(shè)備不一致也是類似。兩個(gè)張量在不同 GPU 上做運(yùn)算PyTorch 會(huì)報(bào)錯(cuò)這個(gè)容易發(fā)現(xiàn)。但如果是在多進(jìn)程數(shù)據(jù)加載里某個(gè)張量被意外留在 CPU整個(gè)訓(xùn)練會(huì)被拖慢幾十倍而且不報(bào)錯(cuò)只能通過(guò) profiler 或者手動(dòng)打印.device來(lái)定位。# 訓(xùn)練循環(huán)開始時(shí)統(tǒng)一檢查一次省得后面查半天 assert pred.device target.device, f{pred.device} vs {target.device} assert pred.dtype target.dtype, f{pred.dtype} vs {target.dtype}這兩行 assertion 建議加在調(diào)試階段確認(rèn)沒(méi)問(wèn)題之后再刪掉能省掉大量排查時(shí)間。特別是從別人那里接手代碼的時(shí)候先跑一遍看有沒(méi)有類型和設(shè)備不匹配往往能發(fā)現(xiàn)幾個(gè)隱藏的坑。7.3 問(wèn)題排查速查表最后把常見(jiàn)的癥狀和對(duì)應(yīng)的排查方向整理成表出問(wèn)題的時(shí)候可以直接對(duì)照。癥狀可能原因排查方法loss 是 nan輸入含 nan或?qū)W習(xí)率過(guò)大檢查輸入降低 lrloss 是 inf平方后溢出fp16 范圍不夠換 fp32 或加 GradScalerloss 不下降學(xué)習(xí)率太小或損失量綱和初始化不匹配試大 lr檢查輸出范圍MAE 后期來(lái)回震蕩恒定梯度導(dǎo)致無(wú)法收斂到精確解加學(xué)習(xí)率衰減MSE 對(duì)個(gè)別樣本過(guò)敏感數(shù)據(jù)含離群點(diǎn)換 Huber 或先清洗數(shù)據(jù)RMSE 遠(yuǎn)大于 MAE存在極端誤差樣本看殘差分布考慮 Huberweight_decay 效果不明顯用的 Adam 而非 AdamW換 AdamW重調(diào) lambdaL1 正則后權(quán)重不稀疏lambda 太小或沒(méi)做歸一化加大 lambda檢查尺度手寫損失比內(nèi)置慢很多中間張量多沒(méi)用融合 kernel優(yōu)先用 nn 模塊多步預(yù)測(cè)損失量綱不對(duì)reduction 分母算錯(cuò)確認(rèn)是 B 還是 BTD表里的每一條我都在實(shí)際項(xiàng)目里踩過(guò)。特別是最后一條多步預(yù)測(cè)任務(wù)里損失按 sum 歸約、報(bào)告按 mean 換算中間差了一個(gè) T 倍對(duì)不上賬的時(shí)候查了半天以為是模型問(wèn)題結(jié)果只是歸約方式?jīng)]對(duì)齊。最后分享一個(gè)小習(xí)慣。我在每個(gè)涉及損失函數(shù)的新項(xiàng)目里都會(huì)先寫一個(gè)十幾行的自檢腳本造一批固定的輸入和目標(biāo)把各種損失、范數(shù)、RMSE 的數(shù)值都算一遍和手算的結(jié)果對(duì)一下。這個(gè)腳本跑通之后才敢把它用到正式訓(xùn)練里??雌饋?lái)是多花十分鐘但它能保證你后面幾個(gè)小時(shí)的調(diào)參不會(huì)建立在一個(gè)算錯(cuò)的損失上。這個(gè)習(xí)慣是我在被 RMSE 的 reduction 問(wèn)題坑了整整一個(gè)下午之后養(yǎng)成的至今沒(méi)再出過(guò)類似的錯(cuò)。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
丁香五月婷久久| 五月色婷婷综合| 丁香五月婷婷高清| www.日本91| 五月婷六月| 五月激情综合网| 狠狠色婷婷7777久| 激情性爱五月天网页| 久久婷婷丁香六月天| 丁香六月天婷婷色| 亚洲午夜电影| 欧美色播综合在线观看| 亚洲天堂有码| 国产激情综合| 丁香色婷婷| 五月丁香综合中文| www.色五月| 婷婷五月中文字幕国产| 热五月婷婷| 婷婷金品综合视频| 九九精品在线网| 9色免费网| 91人操人人人操人| 情情五月天色| 丁香五月色五月| 五月婷婷,六月激情| 丁香五月综合色婷婷| 天天色播| 狠狠操狠狠操AV| 九月综合| 玖玖色综合色| 秋霞A V毛片| 做爱夜夜干天天操| 天堂在线婷婷| 激情综合五月| 天堂综合久| 丁香五月天AV在线| 五月丁香综合网| 热五月婷婷| xx色综合| 亚洲AV综合在线观看| 一本色道久久综合狠狠躁小说| 激情五月婷婷色综合| 激情五月瑟瑟| 国产做A爰片毛片A片美国| 婷婷久久综合久色| 狠狠另类视频| 亚洲av免费在线| 蜜桃婷婷丁香综合久久开心亚洲| 丝袜人妻| 丁香狠狠色婷婷久久无码视频| 8区视频在线| 色婷婷成人做爰A片免费看网站 | 影音先锋色婷婷| 成人网丁香五月| 六月婷婷久久| 中文字幕精品推荐免费在线观| 伊人干综合| 天天精品视频在线观看视频| 丁香五月在线视频| 六月婷婷av| 91久久精品国产91性色TV| 激情性爱五月| 天天干天天干天天操| 成人va在线观看视频| 丁香花五月天婷婷成人社区| www.超碰| www.五月.com| 99re热在线视频| 婷婷五月天激情综合网| 婷婷丁香人妻| 久久视频这里都是精品| 风流少妇A片一区二区蜜桃| 六月狠狠综合| 亚洲成人乱码av网站| 色啪网| 婷婷六月成人| 老师高潮流白浆喷水的A片| 婷婷九九| 国产性爱一级| www.激情五月| 99久久6| 五月丁香999| 日本三级黄色大片| 99视频在线播放大全| 色婷婷伊人激情在线观看| 激情综合婷婷| 亚洲天堂热| 五月丁香成人视频| 丁香婷婷成人网站| 色色亚洲五月天| 婷婷五月丁香激情色情| 婷婷天天插天天爱| 欧美色六月婷婷| 婷婷中文在线| AV电影在线播放| www.久久爱.c n| 亚洲无码影音| 夜色.cnm| 精品婷婷| 色五月丁香婷婷| 婷婷五月激情的图片| 五月天激情av| 久久婷婷色五月| 激情五月婷婷伊人| 丁香五月狠狠综合欧美| 欧洲亚洲欧洲99久久| 开心五月激情| 五月丁香婷婷激情久久| 激情五月丁香激情综合网| 天天色天天搡| 99热久久这里只有精品| 激情亚洲五月| 久久这里只有国产视频| 成人综合伍月天| 九九热这里只有精品12| 夜夜爽天天日| 天天操天天操天天操天天操天天操天天操天天操天天操天天操 | 色婷婷综合视频| 五月激情丁香| 婷婷操婷婷干婷婷射| www.色五月天.com| 五月丁香啪啪伦理电影| 日亚二欧美| www.天天干| 亚洲色网络| 伊人网碰碰| 亚洲无码AV片| 丁香五月色网| WWW,激情五月天,COM| 九九碰九九爱97超碰| 五月 成人 婷婷| 九九热re99re6在线精品| 久久综合婷婷五月| www.天天色综合| 精品国产va久久久久| 另类五月婷婷| 亚洲色 视频| 婷婷丁香色情五月天| 婷婷丁香成人五月天| 五月天综合色| 五月丁香六月| 婷婷五月天久| 7777激情基地| 丁香欧美| 成人AV在线网站| 夜夜骑夜夜操| 五月丁香久久激情综合| 亚洲成人高清在线| 日日干综合| 综合五月天婷婷色| 91美女被操| www.99视频| 婷婷丁香熟女| 操操国产| 26UUU精品一区二区Com| 97色啪| 午夜丁香婷婷| 182tv992tv人之初午夜免费观看 | www.五月婷婷.com| 色一情一乱一伦一区二区三区| 婷婷五月天淫荡| 国产婷婷久久| 婷婷色色综合激情| 五月天伊人| 五月丁香婷婷六月| 操比激情五月| 这里只有精品,日韩视频| 五月婷婷在线网站| 91精品国产91久久久久青草| 五月丁香色停停啪啪啪| 人妻综合网| 色999五月色| 婷婷基地爱| 免费观看亚洲AV片| 精品综合网在线| 国产精品日日躁夜夜躁| 五月综合激情视频| 色色射| 久久这里只有精品视频15| 婷婷性爱视频在线| 九九免费精品在线视频| 九色PORNY自拍成人精彩视频| 九热视频| 婷婷丁香五月天色色| 激情婷婷五月| 色婷婷五月天天天干天天操天天爽| 丁香五月在线观看| 国产精品久久久久久久久久久久| 91久久免费| 深情六月婷婷综合久久| 色欲婷婷五月天丁香| 99久视频| 欧美性猛交 XXXX 乱大交| 婷婷五月丁香第四色超碰在线| 996黄色片| 久热大香蕉| 激情综合网亚洲色图| 天天爽天天日| 蜜乳av一级av| 97婷婷色| 久久婷狠狠色| 午夜成人av在线| 91精品久久久久久| 色五月天成人| 超级碰碰97在线| 日韩欧美一道四区中文字幕| 丁香五月在线视频黑人| 99热手机在线精品| 亚洲啪视频| 日日爽天天| 久久伊人五月天| 亚洲国产黄色电影| 九九爱看亚洲| 五月丁香影院| 99久在线观看| 任你日视频| 97碰碰九九视频| 五月婷久久| VfJxEwPH| 超碰操日| 人人色AV| 色五月婷婷色| 色吧五月| 26uuu| 啪啪东京热| 丁香六月婷婷高清| 99热自拍| 丁香婷婷人妻| 色婷婷狠狠爱| 日本在线视频播放91| 国产日韩亚洲欧美在线观看| 五月天婷婷婷| 五月天激情中文字幕| www夜夜| 中文字幕激情综合| 婷婷性色| 一区二区乱视频码| 久热这里有精品视频| 激情www| 久色五月天| 五月丁香六月婷婷综合网站| 热久久999| 五月婷婷深深爱爱| 亚洲欧洲另类| 热久久成人| 六月丁香久久| 激情五月综合视频| 色播丁香| 草美女在线观看视频在线播放| 久久xxxx| 五月婷婷欧美| 婷婷五月天激情电影| 七七色色综合| 玖玖五月| 激情五月综合网最新| 可以看的av网站| 1024欧美看片| 婷婷五月色播放| 伊人激情网| 操你av| 亚洲亚洲人成综合网络| 色久五月| 20253AV| 五月中旬婷婷丁香六| 风流少妇A片一区二区蜜桃 | 日本不卡中文字幕| 色五月天综合网| 丁香花五月天激情| 中文av网| 婷婷五月天少妇| 免费无码毛片一区二区A片| 丁香六月 婷婷六月| www.婷婷.com| 色青青视频| 综合色99| 伦乱美欧| 色五月婷婷综合| 欧美精品啪啪| 婷婷五月天小说| 久久99这里只有精品| 日韩色色视频| 婷婷丁香六月激情综合| 色 噜噜 九月 婷婷| 天堂草在线观看| 91人无码久久久久久| 色丁香影院| se婷97| 婷婷丁香六月天| 婷婷内射视频在线| 五月丁香亭亭| 激情五月深爱婷婷| 97久久精品| 91操碰| 开心五月激情| 国产av网| 一级精品999WWW| 丁香亭亭久久| 色.五月综合网| 五月婷视屏在线观看| 青青草Avb在线| 色五月婷婷91| 日本狠狠爽| 激情五月成年| 色综合婷婷| 噜综合| 桃色成人网| 五月丁香在线看| www.久久综合| 国产精品VIDEOSSEX久久发布| 婷婷五月丁香六月天亚洲综合| 99热资源在线| 成人做爰A片免费看视频| 五月天自拍视频| 天堂久久大香蕉| 日韩久热| 色五月婷激情| 色啪影院| 三日本无码| 97碰碰人人| 精品婷婷五月天| 中文超碰视在线| 亚洲无线视频| 久久视频九九视频| 五月丁香婷婷老司机| 九九色影视| 色婷五月丁香久亚洲| 99视频在线观看视频| 色欲av伊人久久大香线蕉影院| www.五月激情红色| 丁香六月婷婷综合| 69人人操人人爽| 免费黄色视频网址| 色色色色色网站| 国产亚洲在线| 亚洲色99综合天堂| 五月激情六月丁香| 99综合视频| 成人羞羞啪啪 全 视频| 激情黄色小说色五月| 五月婷婷啪啪啪啪| 色婷婷亚洲精品天天综| 五月色综合网| www.久久66| 六月丁香色色| 久久精品天| 99在线免费观看| 婷婷五月天激情免费在线观看| 欧美内射AA| 九色综合五月天婷五月| 婷婷久久久久久久| 99r这里只有精品在线观看| 无码啪啪| 日本操片| www.91AV.com| 三年高清大片免费观看国语| 激情五月婷婷| 欧美成人精品A片免费一区99| 婷婷九月激情| 激情色色| 91激情五月开心| WW婷婷五月天com| 色色色欧美| 开心激情播播五月天| 久久婷婷五月综合97色一本| 99黄色在线视频精品熟女| AV亚洲在线| 久久精彩视频| 香蕉婷婷| 天天玩夜夜操| 色五月婷婷色| 亚洲中文字幕AV| 五月欧美丁香在线观看| 欧州色色| 射久久丁香五月| 日本三级中国三级99| 久久99久久久久久久噜噜| 日日操夜夜擼| 激情丁香五月婷婷| 中文激情网| 久久婷五月婷| 97久久草草超级碰碰碰| 91人人操人人| 五月天激情久久| 婷婷五月天久久久| 超碰熟女拍拍| 国产色99| 精品久久久人妻| 丁香六月天堂| 狠狠色婷婷777| 午夜不卡成人一区二区| 久久五月天激情视频| 狠狠五月激情在线| 色情性爱视频网址| 蜘蛛女免费观看完整版高清电影| 婷婷亚洲五| 婷婷综合欧美| wuyuedingxiang99| 99热精品少| 伊人狠狠丁香婷婷综合尤物| 9久热| 色情五月丁香| 99免费热在线精品| 亚洲一色色色色色色色色| 婷婷五月小说色综合| 97操操| 色情五月天小说| 91色久| 五月天婷婷基地| 另类A片| 操操国产| 好好干Av| 99爱免费在线视频| 色婷婷色五月天| 五月婷在线播放| 五月激情婷婷在线| 123草逼网| 26uuu丁香婷婷五月| 成人av在线电影| 欧美操人| 国外亚洲成AV人片在线观看| 欧美情色一区| 丁香五月ⅤA久久久| 99久| 偷拍91九色| 六月婷久久| 91viP在线看| 久热这里只有精品6官网亚洲| 色色色777| 99久久a线观| 欧美综合五月丁香六月婷| 亚洲丁香网| 丁香六月情| 丁香婷婷性久久| 超碰男人色| 涩涩涩五月天| 97偷拍对白视频| 嫩草视频观看| 99热这里只有精品26| 五月丁香久久综合| 伊人五月天婷婷| 五月婷婷人妻| 丁香五月婷婷影院| 琪琪布丁香社区激情五月天| 久久99精品久久久久久青青AR| 综合色影院| 97色色婷婷五月天| 天天综合干| 九九激情| 久久婷婷视频| 极品少妇婷婷五月| 成人五月天综合网| 在热视频精品| 狠狠操狠狠操AV| 成人美女网| 五月婷中文娱乐综合| 五月丁香操婷逼| 日本熟女三区| 五月天啪啪啪| 乱岳熟女50岁| 色播播婷婷| 色综合久久五月| 日韩99色99| 国产97色在线| 久操大香蕉| 一区二区三区四区牛| 九九黄色网| 婷婷丁香五月天亚洲| 99超级碰碰| 欧美搡BBBBB摔BBBBB| 日韩视频女神99| 五月天婷五月天综合网小说首页-五月天激激婷婷大综合,婷婷亚洲综合五月天小说 | 婷婷亚洲丁香五月| av在线中文| 曰韩少妇内射免费播放| 在线观看免费狠狠色丁香香综合| 婷婷激情五月天色| 精品婷婷| 色色婷婷色色| 婷婷色色播五月天| 成片免费播放| 亚洲色五月婷婷| 色五月婷婷天天干| 日韩999| 最新国产AV| 久久婷婷五月天激情新地址| 久色资源| 色综合久久久无码中文字幕999| 丁香九月综合激情| 婷婷五月天激情电影小说| 五月天激情小说网| 97在线/亚洲| 五月婷婷狠狠干| 五月婷婷中文字幕| 成人电影在线免费试看| 婷婷五月天激情五月天深爱五月天| 亚洲中文乱字字幕在线永久| 日本久草福利| 成人五月天视频播放| 五月丁香激情综合| 欧美色色色色色| 亚洲综合丁香五月天| 中文字幕在线日亚洲9| 久久婷婷夜| 久久人妻高清中文| 97色精品视频 | 91日本在线观看| 久久99综合网| 噜噜网免费视频| 精品夜夜澡人妻无码AV| 91超级碰| 久久性爱视频网站| 激情婷婷丁香色五月| 嫩BBB槡BBBB搡BBBB视频| 伊人五月天在线| 五月丁香久久呀| 深夜激情网| 色噜噜狠狠狠狠色综合久欧美| 99这里精品| 色婷婷视频| 色婷婷久久综| 人人摸人人| 丁香婷婷五月人体| 深爱激情婷| 天天综合天综合久久网| 九九九九九九九热| 日韩黄色中文字幕| 欧美婷婷五月天综合| 亚洲亚洲人成综合网络| 色99亚洲| 国产看真人毛片爱做A片 | 无码人妻AV久久久一区二区三区| 99丁香五月婷| 久久久91| 人妻操逼视频。| 久婷婷| 91黄址| 九九综合伊人| 91婷婷丁香五月| 色婷婷丁香五月| 99热69| 五月婷婷亚洲色视频| 激情文学 综合 九月| 99热20| 9久热精品在线视频| 一夜福利不卡| 中国女人做爰A片| 色天天久婷婷| 色婷婷狠狠| 五月天婷婷激情干干| 少妇大叫太大太粗太爽了A片| 五月丁香综合网色欲| AV九九| 性小说五月天| 婷婷五月综合丁香久久| 亚洲色视频| 99ri国产精品| 久久婷婷五月综合激情国产 | 日本超碰在线| 久久99热这里只频精品6学生| 26uuu视频欧美| 中文字幕欧美日韩VA免费视频| 丁香五月婷婷丫| 狠狠爱青青草| 看久久性爱99视频| 久久久久8888| 久久精品99国产精品日本| tingtingzonghewang| 狼人伊人天堂| 五月天婷婷视频小说| 人妻aV在线| 97碰在线视频| 色五月成人在线| 69人人操人人爽| 天天天天操| 激情婷婷五月天丁香| 大香蕉久久婷婷精品综合| 五月天激情视频| 就爱日五月天| 色婷久九| 人人爽天天爽| 精品综合五月| 成人国产网站| 天天日日夜夜| 婷婷五月丁香综合人妻| 婷婷色操| 婷婷久久五月| 色99欧洲色19| 97色碰| 四LLL少妇BBBB槡BBBB| 成 人 色 色| 在线中文亚洲| 97干在线| www.minyis.com【JT】实力收量可预付QQ2101460746 | 激情小说五月天中文字幕| 欧美高潮9| 操操国产| 狠狠色无码| 狠狠se| 五月丁香激情综合网| 韩国激情五月天综合网| 亚洲VA欧美VA| 五月丁香六月婷婷综合| 九九成人| 99这里热| 五月天成人手机在线视频| 亚洲午夜一区二区| 精品色色| www.操.com| 激情宗合哪里能看| 丁香六月成人网| 丁香五月av| 免费观看的婷婷五月视频在线| 啪啪啪综合网| 久久婷婷五月综合| 五月天婷婷在线观看精品男人| 激情丁香五月综合| 97干97色| 久久机热/这里只有精品| 色综合夜夜| 丁香五月婷婷高清| 激情五月婷| 色噜噜五月天| 天天干天天爽天天操| 99视频精品| 在线观看欧美3区| 久久九九@| 久久婷婷五月综合伊人| 五月婷婷六月丁香激情深爱| 日韩精品99久久| 五月综合激情婷婷六月色窝| 在线成人网站| 婷婷无码五月天| 欧洲日韩一区二区三区| 操人91| 激情婷婷五月天丁香| 国产精品天天狠天天看| 99热啪啪| 色色a| 91人妻视频| 玖玖色资源站| 欧美色婷婷| www.com.色色| 天天肏视奸| 无码少妇高潮喷水A片免费| 日本色道视频网站| 五夜丁香| 婷婷九月丁香| www激情五月天| 欧美婷婷五月天综合| 久久久色婷婷五月天| 久9热视频在线观看| 狠狠色婷婷丁香五月| 色色色九九九五月婷婷| 欧美交换配乱吟粗大25P| 热久久99热欧美国产亚洲| 99久久久久| 大香蕉久久综合网| 婷婷色五月91啪啪| 强壮的公次次弄得我高潮A片日本 | 九九热中文| 久热这里| 色婷婷国产精品综合在线观看| 久久色这里只有精品| 伊人六月丁香婷婷| 丁香婷婷激情五月色| 美女丁香五月天| www.日本久久videos| 色婷婷先锋| 婷婷色中文| 五月狠狠| 精品久久婷婷| 91视频综合网| 日本99视频精品免费播放| 在线超碰91| 碰人人97| 五月丁香婷婷久久| 97影院一级片| 操久久网| 伊人婷婷五月天| 久操操| 天天天天天日| 99色视频| 五月婷婷开心网| 天天日天天插| 无码免费人妻A片AAA毛片西瓜| 99久久99九九99九九九| 久草婷婷| 久久综合五月天激情小说网站| 91人久| 天堂久久丁香| 丁香av网| 碰97久久| 久久综合激情| 伍月婷婷免费视频| 超碰在线国产| 久久久月丁香| 乱轮A片| 色五月婷婷激情五月| 丁香五月天色综合| 婷婷丁香亚洲五月天| 久热视频这里只有精品68| 视色综合| 日日噜噜夜夜狠狠久久丁香六月| 这里只有精品日韩| 激情五月六月婷婷综合啪啪| 久久婷婷丁香六月天| 激情五月婷婷老师| 99在线观看精品| a网站免费观看| 嫩草AV久久伊人妇女超级A| 香蕉人妻AV久久久久天天| 99ri网站在线观看| 99久久五月天| 色婷五月婷婷| 五月婷婷激情69| 婷婷五月天精品| 干一干xxxx| 99热这里都是精品| 97搞在线| 婷婷丁香五月天影院 | 婷婷色播婷婷| www.夜夜| 丁香五月 无码| 国产成人av在线| 激情播丁香| 色综合色综合色综合| 综合激情五月婷婷| 丰满老熟妇BBBBB搡BBB| ww超碰在线| 久操无码| 另类图片五月天婷婷| 丁香五月五月婷婷五月天激情四射| 精品久久这里热66| 日本人妻A片成人免费看片| 亚洲成人丁香花| 久久新地址| 婷婷五月欧美AA片免费| 妇激情基地| 久久这里只有精品无码| 日韩99色99| 丁香五月六月综合激情| 久久婷婷免费| 好看的国产精品| 日逼免费视频 | 亚洲天堂婷婷丁香| 狠狠99| 这里只有精品99www| 五月婷婷亚洲色视频| 日本三级日本三级99| 99久久婷婷五月| 五月天激情综合网站| 婷婷五月天激情五月天深爱五月天| 五月婷婷影院| 这里有精品| 国产精品丝| 狠狠狠狠狠狠狠狠草| 伊人色综合网| 99se丁香| 26UUU一区二区| 夜夜爽天天干| 国产美女无遮挡裸体毛片A片| 在线观看亚洲AV| 丁香花五月天| 久久久8| 人人操婷婷| 久热精品视频在线观| 影音先锋777xfplay色资源网站| 天天干天天干天天干天天干天天干| 日韩精品在线观看9| 欧美在线骚货| 欧美视频五区| 开心五月婷婷伊人| 五月天婷婷久久日| 在线婷婷| 婷婷丁香视频| 五月婷在线视频免费播放| 欧美性爱五月天| 91疯狂操操操操| 甈你aaaaa| www.99热| 亚洲操逼网| 激情六月色| 丁香五月久久| 在线中文av| 激情综合网五月激情| 狠狠精品干练久久久无码中文字幕 | 五月天操逼激情| 久久视频婷婷视频| 97色色视频| 五月丁香亭亭电影久久| 播五月婷婷开心| 五月丁香综合| 97碰碰视频| 久久九九视频| 九九99视频精品| 婷婷五月丁香婷婷| www.zbzhongsen.com| 久久久久9| 久草A片| 综合伊人久久| 激情五月天综合| 狠狠色狠狠色综合日日91| 五月丁香六月婷婷色| 丁香五月天社区| 一逼色综合| 久九色| 97人人搞| 欧美日韩成人一区二区| 97人人爱人人操| 久久激情五月| 久色88| 超碰在线综合| 草草影院爱爱| 五月婷婷视频| 丁香五婷| 性爱视频久久| 欧美一线视频| 色色网站免费观看| 91九色PORNY肉丝在线| 丁香五月婷婷亚洲另类| 97精品人人A片免费看| 丁香五月综合福利视频导航| 五月天色影院| 噜一噜免费视频| 色9999日韩国产| 五月丁香日本片| 五月天色五月| 成人视屏在线观看| 欧美成人va| 综合丁香婷婷五月天| 五月婷婷六月色| 色亭亭五月天网扯| 99热个人在线| 丁香激情五月天| 少妇性BBB搡BBB爽爽爽视頻| 久久日韩婷婷五月| 性色五月天| 六月丁香六月婷婷欧美| 欧美啪啪9| 99热在线精品播放| 狠狠五月天| 这里只有精品日韩精品| 99精品视频在线观看| 26UUU一区二区| 国产69久久久欧美黑人A片| 午夜爱爱爱成人| 欧美婷婷丁香社区在线播放| 精品久久久人妻| 婷婷五月中文字幕| 51XX午夜影福利| 全网最新网黄大秀直播高清,主播国产录屏在线 | 熟女重口味αV| 国产精品18久久久| 亚洲最大五月天成人网| 日本在线视频看se99| 影音先锋91资源站| 免费97碰碰| 婷婷综合网| 米奇激情婷婷| 五月色婷丁香| 中文字幕在线资源| 国产在线6| 丁香五月天成人| 天天舔天天摸| jiqingtaose五月天| 国产欧美熟妇另类久久久| 婷婷色狠狠| 97色色婷婷五月天| 久久婷婷伊人| 天天插,天天射| 成年人夜夜喷水| 五月婷婷五月天| 丁香午夜天| 超碰99热| 黄色中文字目| 9久热免费视频99| 久久五月天合网| 九月丁香婷婷网| 色噜噜综合网| 开心五月深爱五月婷| 亚州色综合| 丁香五月性| 天天舔天天摸视频| 色综合综合色| 婷婷9月天| 一起草Av| 六月丁香婷婷开心综合基地| 五月天婷婷爱| 国产肥白大熟妇BBBB视频| 在线观看中文字幕| 人人干天天舔| 月丁香久久久| 99热都是精品| 色五月在线播放| 天天爽爽日日做做| 9色操| 日日噜噜夜夜狠狠久久丁香五月| 日本五月视频| 97人人干人人操| 伊人婷婷五月天| 成人va视频| 亚洲va在线| 国产片色| 激情文学第四色婷婷丁香五月| 无码少妇高潮喷水A片免费| 五月丁香在线看| 婷婷丁香五月天婷婷| 激情婷婷综合网| 日本天天操| 天天爱天天狠天天透| 日操五月婷| 91一起艹| 超碰京东热av男人的天堂| 99re6在线视频精品免费| 97碰碰视频| 伊人婷婷五月| 亚洲综合激情五月天婷婷| 狠狠色丁香婷婷| 风流少妇A片一区二区蜜桃| 99ri在线| 玖玖资源站中文| 4399在线日本A片| 婷婷激情四射五月天| 成人做爰高潮A片免费视频| 久久婷婷五月丁香网| 婷婷色成人| 日日日,com| 亚洲AV综合网| 69久热| 亚洲亚洲人成综合网络| 26UUU欧美| 人人摸人人澡人人| 无码人妻一区二区三区免费九色| 久久亚洲婷婷综合色五月| 天天搞天天色综合| 色天使色综合| AV大片在线播放| 91成人性爱视频| 五月婷婷六月天| 五月天婷婷成人| 天天射影视综合网| 亚洲天天免费| 99色热| 91视频久久久| 色吊丝av中文字幕| 五月伊人91| 国产亚洲精品久久久久久郑州 | 亚洲V国产V欧美V久久久久久| 美女网黄| 人妻久久久久久| 日本五月婷| 欧美性爱5月天天天看| 丁香六月婷婷综合激情欧美| 日韩成人综合网| 日韩欧美一道四区中文字幕| 国产亚洲成人综合| 久热精彩视频98| 色色色激情网| 婷婷97狠狠成人网站| 五月丁欧美| 大香蕉久艹| 97久久久| 成人短视频在线| 综合网啪啪| 九九自拍网| 九九热在线99| 激情五月婷黄版| 色五月婷婷影视| 丁香五月婷婷高清| 久久五月情| 综合久久综合五月天婷婷| 婷婷综合九色伊人| 亚洲一区二区色图-亚洲精品国产精品乱码-成人AV | 婷婷六月婷婷| 久久精品在线| 26UUU在线观看| 丁香花五月天| 激情五月婷婷在线区| 色丁香久综合在线久综合在线观看| se色99| 欧美亚洲999| 99热这里只有精品13| 伊人五月久久| 99国产性感视频| 欧美婷婷色五月| www天天爽| 99热这里只有精品9| 五月丁香激情综合网| 天天摸天天透天天舔| 婷婷五月天AV在线| 丁香五月激情啪| 五月天伊人网| 99色在线视频| 伊人在线视频| 亚洲中文字幕翔田千里| 影音先锋五月天婷婷丁香在线观看| 99ri视频在线观看| 婷婷五月18永久免费网站| 日本黄色在线观看| 九九色中文| 婷婷在线观看五月天在线视频| yellow视频在线观看91| 性爱动图国产麻豆一区二区三区| 五月天婷五月天综合网小说首页-五月天激激婷婷大综合,婷婷亚洲综合五月天小说 | 五月婷网| 99热97| 少妇人妻偷人精品无码视频新浪 | 国产精品24r| 五月婷婷九九久久| 99热人人| 无码网| 狠色色狠网| 久草热在线视频| 99福利导航| 超碰在线91| 99欧美热| 天天日夜夜欢| 激情丁香久久| 日日肏夜夜干| 婷婷五月天最新综合你懂的 | 精品女人九九九| 亚洲五月婷婷| ..真实国产乱子伦毛片| 亚洲精品网址| 色九九综合| 五月天激情婷婷五月天久久| 色婷婷五月天视频网站| 亚洲超碰在线| 色五月激情五月| 久久99免费视频| 日本精品99网站| 天天射综合网天天插| 色爱五月天| 99热色精品| 91聚色综合网| 97色97干| 狠狠干激情五月| 99亚洲视频| 狠狠综合| 中文字幕成人日韩| 中文在线成人| 天天做天天爱天天爽在| 99热亚洲精品| 99日韩| 丁J香六月首页| sesesesezonghe| 婷婷五月骚厕所| 伊人超碰| 97操在线| 国产99久久久| 99视频这里有精品免费观看| 亚洲区视频| 婷婷五月综合基地| 九月婷婷久久| 婷婷六月色播| 婷婷五月天视频| 日本天堂网站99| 久久98| 久久9久| 综合久色五月| 日韩aaa| 亚洲妇女熟BBW| 91 九色 入口| 日韩激情人伦人| 成人 在线 日韩| 丰满少妇乱A片无码| 国产激情在线| 美女激情婷婷| 99热这里只有精品99| 中文字幕高清av| 欧美婷婷五月无砖| 久久婷婷五月天激情四射| 久久久全国免费视频| 五月婷婷性爱| 丁香五月婷婷在线观看| 国产美女无遮挡裸体毛片A片| 激情四射婷婷色色色| 狠狠狠五月婷婷六月丁香| 任你爽视频| 丁香五月天堂婷婷| 丁香五月 综合| 丁香五月天婷婷中文字幕| 丁香综合日产精品久久| 免费九九热| 久久婷婷五月综合激情国产| 色欲AVV| 婷婷丁香五月天综合网| PORNY九色9l自拍视频成人| 日本玖玖在线| www.五月激情红色| 亭亭五月丁香五月天激情| 五月天婷婷社区久久综合| 激情丁香五月婷婷啪啪| 国产又爽又猛又粗的视频A片| 99精品久久久| 六月激情网| 草榴视频黄色网| 五月情四婷婷| 狠狠干,狠狠操| 九热久| 99爱精品| 久久综合九色综合88i| 六月色色婷婷| 操碰97| 欧美日本综合网| 99久在线精品| 非洲一级AV| 麻豆五月丁香婷婷| 中文字幕按摩做爰| 五月天激情小说| 亚洲精品国产成人AV在线| 人妻五月天激情开心网| 久热99| www.五月.com| 久99久精品视频| 国产精品国产| 看逼中文字幕| se影音资源在线观看| 美女婷婷激情亚洲| 热久久66| 亚洲精品字幕在线观看| www.久久久.com| 激情综合网色播五月| 大香蕉懂9| 俺去也五月| 五月丁香另类网| 热成人网| 久久九九激情五月天| 激情宗合网激情五月天| 日产精品久久久久久久蜜臀| 五月天无码视屏播放| 五月天婷婷综合| 另类五月婷婷| 五月天激情小说网| 蜜臀A∨在线水帘洞| 婷婷成人五月天成人文学| AA久久| 色婷婷免费观看| 99热国内精品| 97福利视频| 色婷婷久久| 久久99综合| 天堂爱爱| 久久caop| 免费观看的AV| 91在线人| 99乱视频| 啪啪六月婷婷| 国产激情在线| 97色干| 日日爽夜夜爽| 五月丁香六月婷婷免费| 免费无码毛片一区二区A片| 思思热热久久| 婷婷六月香| 成年人最刺激的综合网| 五月婷婷,狠狠操| 色五月激情综合网| 日本色频| 久久精品99国产精品日本| 五月丁香成人| 久久久亚洲成人无码A片| www.国产色| 色情久久久| 五月丁香啪啪| 天天干,噜噜色,狠狠色| 欧美va亚洲va在线播放| 伊人网色婷婷五月天| 国产精品VIDEOSSEX久久发布| 逼逼AV| 亚州欧美黄色电影| 六月份天丁香婷婷| 另类A片| 无码免费人妻A片AAA毛片西瓜| 深爱开心五月天| 色 噜噜 九月 婷婷| www.五月天| 五月天日日操夜夜操 | 岛国资源网| 嫩模草| 五月丁香在线| 亚洲激情视频在线观看| 538在线精品| 凹凸操Av| 日本熟妇精品99| 九九热在线视频| 久久人妻人人槡| 日本WWW九九九| 久久五月综合| 六月色丁香中文字幕| 3p久久| www.天天干| 五月天激情AV| 伊人婷婷大香蕉| 丰满人妻妇伦又伦精品国产| 五月色天情| www.zbzhongsen.com| 精品国产乱码久久久久夜深人妻| 夜夜骑夜夜撸| 337p大胆噜噜噜噜噜91Av| 婷婷婷婷婷婷婷婷婷婷丁香| 天天色噜| 蜘蛛女免费观看完整版高清电影| 色五月色综合| 高清视频一区| 婷婷综合成人五月天| 踪合专区啪啪| 成人在线网| 99热99这里免费的精品| 99伊人婷婷在线| 欧美激情综合| 99综合激情久久精品久久| 婷婷色啪| 婷婷中文字幕网站| www.久久久久久久| 婷婷五月中文字幕国产| 手机旧版看人妻1025| 日韩AV中文在线观看| 91超级碰在线视频| A A色色| 五月丁香啪啪综合| 99热爆在线| 狠狠久久婷五月| 亚洲情a| 亚洲色碰| 国产色香蕉精品五夜婷| 99久久网站| 开心五月色婷婷综合开心网| 激情五月婷婷综合| 色色丁香婷婷五月天| 婷婷色影院| 色五月欧美| 色婷婷丁香AV综合| 欧美色99| 超碰丁香五月| 99色在线| 玖玖爱资源站| 色色色成人网| 婷婷五月蜜桃成人桃色丁香| 2017人人操| 国产av天天插天天操天天爽| 99热这里精品| 天天摸天天做天天爱天天爽| 777丁香六月青青草婷婷综合久月| 婷婷五月天亚洲综合| 另类婷婷五月天啪帕帕| www.99热在线观看| 丁香成人视频| 天天操九九插| 热久久91| 色五月自偷自拍婷婷婷婷| http:色情日本com| 亚洲a色| 可以免费观看的AV| 99综合激情久久精品久久| 亚洲欧美成人在线| 综合激情在线观看| 色五月色开心开心五月| 五月婷婷久久综合| 色综合九九| 人人草开心五月天| 天天夜夜操| 天干天天干天天天天天| 高清无码.com| 第四色激情网|