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
返回資訊列表
亚洲精品又粗又大又爽A片| 色婷另类| 狠狠狠狠青草| 丰满老熟妇BBBBB搡BBB| www.久久爱.com| 激情五月丁香六月综合AVXXXX| 日91高清无玛| 亚州性爱99| 丁香狠狠色婷婷| 99热国产精品| 月婷婷婷婷五月| 五月丁香婷婷色色| 97成人在线视频精品| 99精品久久| 婷婷网五月| 超碰色色综合| 成人色图情色成人网 www.5b5b5bcom 五月天| 狠狠操综合| 色婷婷六月综合| 欧美日韩成人一区二区| 六月婷婷日| 日日噜狠狠色| 久色国产| 久久这里只有精品1| 色欲av伊人久久大香线蕉影院| 五月丁香无码| 久婷婷色| 丁香色成人| 色婷五月天网站| 天天综合网~91综合网| 婷婷综合日本| 色五月激情综合| 久久99最新地址| 色五月婷婷综合| 狠狠搞亚洲| 色9色| 五月丁香婷婷啪啪网| www99热| 丁香五月天婷婷中文字幕| 五月婷婷色丁香| 超碰av在线| 性爱七区| 一本久道综合99| 五月天综合色| 99热精品10| 色五月天婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷 | 婷婷综合五月天激情| 色五月婷婷影视| 久久婷婷成人综合色怡春院| 五月丁香婷婷色| 欧美性爱五月天| 久色中文| 无码 色| 亚洲婷婷丁香五月视频| wwwwww.色| 亚洲综合干| 五月综合色| 亚韩在线视频| 日日操夜夜爽白洁| 99热精品9| 亚洲综合色网站| 播五月婷婷开心| 久久伊人五月天| 激情婷婷在线中文字幕| 天天久久狠狠色综合| 999激情视频| 色综合中文色综合网| 亚洲视频无| 人人操91色| 8050一级网| 日韩在线观看网址| 综合超碰熟| 婷五月天| www。五月天激情| 五月丁香色色网| 97碰在线视频| site:901-07.com| 丁香婷婷六月婷婷六月婷婷六月婷婷| 四虎婷婷五月天| 99精品在线下载| 激情综合色婷婷啪啪六月天| 在线观看亚洲视频影院| 天天拍天天操| 丁香五月123| 熟女91九色| 色婷婷免费观看| 婷婷99狠狠躁天天| 996er在线观看| 天天色月| 日本婷婷色日| 69精品人人人人| 这里只有精品视频看看| 波多野结衣AV无码Porn| 久热91| 任你草| 欧美三级巜人妻互换| 亚洲国产精品成人午夜| 狠狠色综合网| 人人妻久久妻| 婷婷丁香六月| 日熟女| 五月天婷五月天综合网在线观| 五月天黄色激情小说| 五月婷婷官网色| 五月伊人网| 丁香婷婷综合激情五月色| 大香久久综合网| 久久色天堂| 激情99。| 色五月婷婷影院| 99视频在线精品| 中文超碰视在线| www.婷婷六月天| 欧美激情xxxXX| 色婷婷AV久久久久久久| 变态 另类 在线| h亚洲| 激情丁香淫荡婷婷| 丁香五月香蕉| 99九九精品视频| 综合久| 99热99干| 国产精品国产成人国产三级| 久久精品综合色| 激情色中文| 老司机日日夜夜青草| 天天干天天爽| 婷婷色综合| 日本激情综合| 婷婷色色欧美综合网| 超碰色婷婷| 欧美天天性| 91无码视频| 极品精品一区二区三区在线| 91人人操人人| 欧美色五月| 激情丁香五月| 激情深爱综合网| 日本不卡一区二区三区| www色婷婷久久综合久色| 色五月激情问网站| 狠狠操天天操| www.婷婷六月天| 五月婷婷色影院| 欧美va在线| 日本猛少妇色XXXXX猛叫| 玖玖爱综合网| 人人爱操| xxxx五月激情| 狠狠干综合| 亚洲综合在线播放| 久久婷综合| 蜜乳人妻一区二区三区| 激情av在线| 综合超碰熟| 99惹在线精品免费观看| 综合网色| 淫荡综合网| 激情深愛五月視頻| 思思久久99热只有频精品66| 在线五月色播| 激情五月天视频| 综合久久高清| 一区二区三区视频| 婷婷性爱无码视频| www.ywav| 激情爱爱网站超大免费| 超碰成人电影| 免费无码毛片一区二区A片| 另类图片天天影视在线观看| 97人人操人人干| 日日爱678| 五月丁香综合激情| 免费久久这里只有精品99| 色狠狠色| 婷婷综合六| 成人 在线观看国产| 丁香亚洲婷婷五月| yjzz亚洲国产| 婷婷九月亚洲| 天天爽天天爽天天爽天天爽天天爽| 永久精品| 久re热视频| 六月丁香开心婷婷欧美| 91在线日| 婷婷综合激情五月综合| 一区三区视频有限公司| 可以免费观看的AV| 丁香六月色情| 色五月自偷自拍婷婷婷婷| 丁香五月影院| 五月丁香六月欧美综合| 久久99免费视频| 激情六月色| 99热碰碰热| 婷婷五月激情图片| 色色网站在线| 亚洲天堂亚洲色色色| 激情性爱五月天网页| 五月婷婷性| 色www99| se99视频| 激情五月第四色| 丁香婷婷成年| 色色五月天激情| 国产.亚洲.欧洲视频在线| 亚洲精品视频电影| 蜜乳国产网站| 亚洲 视频 导航 一区| 六月激情婷婷| 日韩视频99| 天天色综合网1| 色婷婷成人影片| 99热这里只有精品在线观看| www.ppypp| 天天搞天天色综合| www.色婷婷.com| 天天爽天天日天天舔| 九月激情网| 中国无码av| 婷婷五月天情色| 十月丁香婷婷| 丁香五月影院| 无码橾| 欧美性生交XXXXX无码小说| www.五月婷婷久久.com| 26uuu视频欧美| 91碰操| 五月婷婷激情综合| 国产午夜一区二区三区| 久久久久99精品成人片| 婷婷五日b| 操九色| 99久视频| 久热欧美| 丁香婷婷啪啪| 五月久久婷婷| 婷婷色5月激情网| www色婷婷久久综合久色| 九九99热| 国产综合婷婷| 六月婷婷视频| 一本九九色| 91丨九色丨大屁股| 色色激情| www超碰| 丁香五月天论坛| 99久.| 天天综合图片| 天天爽爽日日做做| 五月天婷婷六月激情网| jiujiu热在线视频| 91天天操天天干天天射| 九月丁香亭亭| 亚洲黄色影视| 日韩欧美一区二区三区四区| 五月丁了香蕉综合| 99色综合网| 狼人婷婷久久| 五月天色综合| 99色在线观看免费| 热的国产,热的综合,热的有码| 9久久AV| 丁香五月 无码| 久久婷婷六月综合国际| 久久久.www| 中文字幕日产A片在线看| 岛国av网站| 99啪啪视频| 婷婷六月色情| 久久视频这里99| 丁香五月婷婷色播艳门照| www.爱操com.| 五月开心深深爱激情综合| 另类图片激情五月天| 大香蕉五月| 97久久五月丁香婷婷| 美国不卡视频| 国在线激情网| 色综合日日| 热九九精品| 丁香婷婷六月激情文学| 狠狠爱婷婷爱| XXXX岛国| 天天夜夜六月丁香五月婷婷老师| 婷婷五月色天| 26UUU欧美| 99热免费| 超碰啪啪网| 玖玖综合玖玖| 色色是色N一| 五月天成人综合| 日本色婷婷| 久久久五月五丁香| 色色五月婷婷| 天天爽天天弄| 青青草婷婷久久| 久久婷婷五月综合色天| 在线中文字幕视频| 婷婷五月天资源| 亚洲五月停停| 中文激情网| 香蕉久日夜| 婷婷性爱视频在线| 婷婷天天舔| 丁香五月婷婷综合网| 婷婷婷婷婷婷婷婷| 精品一二三区久久AAA片| 欧美黄色一级录像| 九九99在线免费在线观看视频| 久久色五月天| 欧美成人日韩| 久久九九激情五月天| 91日韩美女被插视频| 激情婷婷色小说| 欧美久久婷婷| 337p大胆噜噜噜噜噜91Av| 久热99| 在线免费观看激情视频| 婷婷五月天伊人在线| 色色cOm| 亚洲六月色婷婷| 国产精品人成A片一区二区| 五月婷丁香久久综合| 狠狠色色| 超碰日日操| 国精产品一区一区三区免费视频| 久久久91| 精a品a| 激情久久久| 囯产精品久久欠久久久久久九大| 亭亭玉月丁香| 秋霞三及片| 思思热视频在线| 丁香九月色| 99热这里在线精品| 影音先锋色婷婷| 亚洲成人丁香花| 久久草人妻| 日本激情五月天‘| 成人美女网| 五月婷婷综合久久| 五月婷婷六月丁香| 色色影院黄大片| 久久久婷丁香五月| 天天干天天插| 亚洲激情综合色站| 日日色综合| 99久久婷婷综合| se色99| 色欲色香综合网| 亚洲视频码| 六月丁香婷婷网| 婷婷第一页| 日韩好吊操| 婷婷天堂综合| 久久五月丁香| 激情www| 97色女人在线| 丁香六月色婷婷| 色综合久久久无码中文字幕999| 国产亚洲99久久精品| 色停停五月,在线观看| 91午夜婷婷狠狠久久综合9色| 狠狠干五月天婷婷网| 激情AV在线| av操一操| 五月丁香啪啪婷婷| 色婷婷狠狠爱| 九九热在线99| 五月丁香婷婷激情在线视频| 成人免费120分钟啪啪| 色伊人婷婷| 97影院一级片| 天天天久久久| 性欧美大战久久久久久久83| 丁香五月天BBw| 操操操B| 五月丁香狠狠| 69综合在线| 日本欧美成人片AAAA| 狠狠爱夜夜| 欧美α√| 色综合久久综合中文综合网| 色综合婷婷| 亚洲欧洲99| 丁香五月影院| 五月激情婷婷开心| 七月丁香婷婷 色色| 99爱免费视频| 丁香婷婷九月| 五月综合激情婷婷六月色窝| 色色综合视频| 色婷婷色九月| 五月激情天| 插插干干干色| 九九色院| 丁香六月啪啪| 婷婷五月天欧美| 中文字幕婷婷五月天在线观看| 日韩黄在免| 久久小片| 五月丁香久人妻中文| 天天操综合网| 立川无码av| 91九色PORNY肉丝在线| www.激情五月天com| 大香蕉狠狠爱主页| 中国丰满熟女A片免费观| 夜夜操夜夜爽| 久久婷婷东京热| 亚洲综合激情五月久久| 婷婷五月天综合小说网| 啪啪啪综合网| 吾爱AV导航| 国产午夜一区二区三区| 五月香六月婷| www。狠狠干。com| 9 99免费视频| 成人精品免费在线观看| 五月婷婷之综合激情| 青青草六月丁香| 91精品婷婷国产综合| 99热9| 99热这里只有精品2024| 久色网| 亚洲成人AV一区在线观看| 色五月婷婷在线| 五月丁香少妇A| 色哟哟性爱av| 亚洲精品第一国产综合亚AV | 激情五月丁香五月| 久久日婷婷| 天天日夜夜爽| 色在线99| 99er精品视频| 五月婷婷五月天天| 98毛片| 久久婷视频| 任你躁XXXXX麻豆精品| 91丨九色丨熟女|新版| 天天插轮理| 亚洲综合99| 日本三级片片| 91 九色大美女| 久久婷婷网| 婷婷综合精品视频97| 天天综合图片| 深爱五月中文字幕| 人人操Av| 亚洲超碰在线| 婷婷丁香久久| 丁香六月婷婷社区| 一区=区操屄高清大全av| 99亚洲精品| 日韩久热| 婷婷六月综合激情| 五月丁香在线观看| 丁香婷婷深情五月亚洲| 成人αV视频免费观看| 91日日日| 欧美精品18| 日本欧美国产| 夜夜操天天爽| 色五月综合激情| 天天插天天干天天舔| 天堂婷婷五月在线| 深爱 五月天| 激情另类综合| 久久婷婷五月草视频在线播放| 99在线精品观看99| 欧美激情丁香五月| WWW五月婷婷| 九九热这里有精品视频| se色99| 五月欧美色播| 婷婷丁香五月天色区| 狠狠色激情在线| 九九色色色| 另类在线观看视频| 99热国产精品| 五月天天天综合| 色VA| 色婷婷a三区麻| 亚洲99手机免费看视频| 激情综合自拍五月婷婷色五月| 99re思思| 五月婷AV| 99亚洲视频| 色99日韩| 年轻的妺妺伦理HD中文| 大香蕉视频婷婷| 免费观看日韩成人av| 激情文学 综合 九月| 激情五月婷婷色色| www.婷婷五月天.com| 日韩情色在线观看| 久久一伦| 丁香综合婷婷开心激情网| 亚洲久久视频| 99爱在线精品视频免费观看| 综合久久综合| 国产SUV精品一区二区6| 综合久久伊人| 九九国产精视频| 亚洲成av人影院| www.激情| 无码动漫AV| 色婷婷六月天| 密乳视频| 在线视频另类| 日韩AV中文在线观看| 蜜桃五月天| 无码AV大香线蕉伊人| 777久久久| 久久免费精品小视频| 97人人干人人操| 天天做天天爰天天爽天天无遮挡| 五月成人网站| 开心深爱激情网| 综合久久十三| 26UUU| 五月婷婷 激情五月| 伊人激情综合网| 日本欧美成人片AAAA| 婷婷五月a| 99久久99视频只有精品| 丁香婷婷基地| 亚洲国产精品VA在线看黑人| 婷婷中文字幕网| 久草久青福利| va婷婷| 欧美婷婷成人| 深爱五月天| 成人免费视频一区| 五月婷婷六月丁香免费| 五月综合色播播丁香婷婷| 国产成人av在线播放| 天天日天天肏天天奸| 丁香蜜臀黄色婷婷五月天| 婷婷五月激情欧美大胆视频| 激情综合婷婷| 亚洲AV无码影院| 久久激情五月| 在线视频99| 九九综合九| 丁香五月激情婷婷视频| 激情视频综合| 色亭亭九月| 婷婷五月天堂网| 婷婷日日夜夜| 99热最新国内| 精品色色网| 26uuu亚洲| 久久婷婷大香蕉| 中文字幕簧片| 性做久久久久久久免费看| 91人人操人人看| 五月丁香久久综合| 人人操AV| 熟女色专区| 俺也高清无码高清视频| 亚洲AV成人无码精品| 五月天婷婷色色| 97香蕉久久超级碰碰高清版| 日本精品干| 99免费在线| 五月婷婷 激情按摩| 色另类五月天| 777影视理论片大全在线观看| 日韩婷婷| 毛片新网地| 五月婷婷自拍视频| 1024久婷| 亚洲五月停停| 狠狠第四色| 欧美性猛交99久久久99| 激情五月,激情综合网| 五月丁香人妻| 亚洲午夜视频| 这里只有精品2| 国产成人av在线| 99久在线| 99久久思思| www,999日本色| 五月天婷婷在看| 欧美十二区| 日韩乱玛久久| 五月丁香六月婷婷综合| 亚洲成人免费在线| 99热在这里只有免费精品| 99精品在线播放| AV天堂淫乩| 9色91视频| yazhou seshipin| 超碰v| 成人色色视频| 六月婷婷啪啪| 99久久婷婷国产综合| 婷婷六月丁香色| 99热精品免费| 激情综合网激情五月欧美| 天天干人人奸97| 婷婷色色欧美| 久久新地址| 影音先锋777xfplay色资源网站| 日本情色一区二区| 丁香九月婷| 亚洲 精品 综合 精品| 超碰成人黄色网| 久草五月天| 91婷婷丁香五月| 99久久综合网| 丁香五月婷婷手机| 五月丁香色色网| 蜜臀AV在线观看| 天天狠狠干| 91偷拍视频| 无码免费人妻A片AAA毛片西瓜| 色婷婷在线视频综合| 五月色丁香婷婷综合| 国产午夜一区二区三区| www.99日本| 亚洲在线操| 丁香婷婷激情五月色| 亚洲日韩一页精品发布| 天天日天天色| 狠狠色丁香婷婷基地| 色婷婷五月天| 婷婷五月精品中文字幕| 视频这里只有精品16| 久婷自拍视频| 996er热| 精品人妻久久久久久久| 在线视频99| 五月天婷婷永久免费视频| 丁香五月天婷婷久久综合| 激情综合色图| 九九热在线99| 九九亚洲小视频| 96人人操人人操人人| 99色视频在线观看最新| 五月婷婷亚洲色图| 国产熟女大叫受不了| 激情久久久| 色色色色色色色色色色色色色97| 六月婷婷色五月| 区美毛片子| 热久久婷婷| 无码少妇高潮喷水A片免费| 亚洲精品色| 天天操夜夜爱| 五月熟妇婷婷久久| 思思热天天看| 99re99在线看| 五月丁香六月综合基地| 操操熟女| 色天堂操| 婷婷六久久| 欧美成人AAA片一区国产精品| 五月天播播| 色婷婷19| 九九热re99re6在线精品| 色五月丁香婷婷在线观看| 亚洲色欲欧美一区二区三区| 99热在线观看| 99热免费精品热久久66| 国产精品人妻欲求不满| 五月婷婷很很色| 在线另类| 丁香婷婷六月| 人妻丰满精品一区二区A片| 99热网站| 婷婷大香蕉| 天天插天天插天天插天天插| 成人在线网址| 日本久久精品| 综合色播| 欧美成人精品三区综合A片| av狠狠操| 免费看成人AA片无码视频吃奶| 99爱在线免费视频| 日日撸夜夜操| 欧美三级巜人妻互换| 亚洲视频在线观看| 99免费在线| 狠狠狠狠狠狠| 99精彩视频网站在线| 91妻人人爽人人看片| 五月天激情美女久久| 七七婷婷综合| 国产综合丁香五月天| 免费观看2018www黄色操逼网站| 综合另类激情| 操人久久| 四月婷婷五月色综合| 99欧美| 五月丁香拍拍激情综合| 美女激情婷婷| 79色色色色| 成人网在线视频| 99毛片| 久久婷婷视频| 国产性爱大片久久| 激情五月婷黄版| 日本欧美在线| 五月天婷婷色播| 天天五月情| av在线中文| www激情| 免费无码毛片一区二区A片| 极品五月天| 五月天伊人综合| 色五月丁香六月资源站| 午夜丁香五月天综合| 婷婷久久五月天| 天天狠狠夜夜狠狠2023| 欧美A片在线视频免费观看| 六月丁香成人| 人人干99| 丁香六月激情综合啪啪| 丁香五月香蕉| 人操91在线| 色五月综合激情| 色五月天网| 亚洲欧美综合7777色婷婷| 国产精品第一国产精品| 狠狠色九月| 5月丁香婷婷| 五月天婷婷在线播放| 婷婷五月天成人网| 99视频91| 久久五月天黄色五月天色网址| 六月婷婷综合| 香蕉久久国产AV一区二区| 啪啪东京热| 丁香综合伊人AV| 久re热视频| 婷婷五月天网| 色综合久久中文| anquye五月| 色情五月综合婷婷| av免费在线网站| 激情五月无码| 91热99| 久久资源综合| 97碰久久| 色婷婷88| 99热免费精品| 久久六月婷婷| 96人人操人人操人人| 五月开心久久| 婷婷色色丁香| 综合五月天天天天天五月| 99热最新| 91久久电影| 婷婷五月天欧美图片在线播放电驴| 99久久99久久综合| 九九热av| 91婷婷搞| 精品99在线| 日韩精品无码99| 婷婷五月色| 综合超碰熟| 五月色婷婷激情| 99精品无码| 《丁香激情综合久久伊人久久》影视在线观看 -高清预告手机免费播放 -三妹影院 | 色色色在线播放| 91精品综合久久久久久五月丁香 | 五月丁香婷婷基地| 少妇综合网| 欧美人人超级碰| 丁香六月成人网| 激情久久久| 亚洲中文丁香| 99爱在线精品视频免费观看| 日本熟妇精品99| 久久九九国产精品怡红院| 丁香五月婷婷啪啪视频| 久久久久久综合五月婷婷| 九九热超碰| 啪啪色激情五月天| www激情| 婷婷激情五月综合| 色日本五月天| 99在线观看视频免费| 五月色色色| 91欧美| 99这里都是精品6| 韩日在线熟女| 蜜桃人妻无码AV天堂三区| 婷婷丁香射射| 成人做爰A片免费看网站找不到了| 久久狠狠欧美| 成人五月天丁香| 天天草人人摸| 99免费视频| 先锋av性爱成人电影| 又大又粗九一在线| 99热思思在线观看| 亚洲六月综合激情久久下卡| 六月丁香激情婷婷| 婷婷丁香91| 亚洲免费观看高清完整版AV线| 国产干逼片| 婷婷五月花| 4399在线日本A片| 久久久久久久人妻| hd五月婷婷在线| 丁香激情网| 天天日日综合| 六月丁香狠狠爱| 俺去也五月| xx色综合| 99久久.www| 色综合久久久久| 天天草天天舔| 六月婷在线| 草草操操| 人人综合五月人人婷婷| 狠狠色狠狠色综合日日91| 99只有这里有精品在线视频| 天天爱天天做天天日| 欧美性猛交XXXX乱大交极品| 色色综合色| 亚洲网站999| 狠狠干狠狠干| 婷婷深爱五月| 午夜婷婷丁香| 日本大逼91| 可以看的av| 日本久久视频| 99丁香婷婷综合网| 性爱视频久久| 天天做综合网色综合| 色五月自偷自拍婷婷婷婷| 天天干一干| 色婷五月天激情| 超碰在线观看99| 182.t午在线观看| 超碰在线精品| 99er精品视频| 天天操夜夜爽天天操| 韩日另类| 亚洲六月婷婷| 久久久久久丁香五月| 97色在线| 色色色1网址| 丁香五月影院| 日本系列_4页_777FP| 五月天夜夜爱夜夜操| 欧美综合123区| 亚洲丁香五冃97色| 五月综合视频| 五月天激情国产综合婷婷婷| 九九热手机在线视频| 色色丁香五月天| 免费看片在线观看| 俺也去色| 狠狠色婷婷777| 欧美xx激情视频在线观看| 激情深爱婷婷网| 丁香五月香蕉| 亚洲 成人 电影av在线观看| 99久久国产宗和精品1上映| www.久久爱.com| 五月精品免费XXX| 天天人人天天爽| 思思热久久艹| 五月天婷婷色色网| WWW色色色COM| 99亚洲精品综合在线| 狠狠综合网| 五月丁香啪啪综合| 亚洲色五月| 五月婷婷综合潮喷| 天天舔天天| 婷香五月网在线| 天天色播| 大香蕉久久草| 性爱技巧五月| 久久99热网| 99久视频| AA片在线观看视频在线播放| 色婷婷综合网| 深爱激情五月网| 最新久久网址| 欧美六月| www.91操| 99热网站| 婷婷大香蕉| 思思热久热| www.婷婷五月| 欧美色色色色色| 五月丁香六月婷婷啪啪| 天天干天天色综合| 日日操夜夜爽| 五月天激情视频| 日本婷婷在线| 色欲久久久久久综合网综合网| 97色色网| 91人操| 香蕉视频91| 色婷婷丁香五月天| 精品人妻一区二区三区四区不卡在| 激情五月天丁香| 九九伊人网| 91久久久久久| 能看的AV| 婷婷9月天| 亚州成人综合在线| caop视频| 毛片九九九九九九| 9婷婷内射| WWW久久久| 色色综合色视频| 精品色色网| 亚洲综合婷婷六月丁香五月| 深爱激情综合| 六月婷婷av| 精品无码久久久久久久久 | 午夜微拍福利| 婷婷伊人视婷婷婷| 激情四射网| 欧美婷婷六月丁香综合色| 天天噪夜夜爽| 五月婷婷丁香综合| 超碰人人操在线| 五月丁香婷婷综合| 六月丁香激情网| 丁香五月婷婷色综合| 五月天大香蕉视频| 91久久婷婷| 狠色狠色狠色狠色狠色网| 天天干夜夜想| 久99久视频| 中文字幕网伦射乱中文| 天啪天啪天啪天啪| 色婷婷综合网站| 婷婷五月丁香高清无码| 日本操B视频| av久热| 黄色三级毛片中字| 99啪在线| 五月综合婷婷开心网| 五月开心深深爱激情综合| 婷婷五月天av| 黄色片久久| 丁香激情五月少妇| 五月天免费色| 国产密乳av一区二区三区四区| 久久五月天综合| 丁香六月丁香婷婷激情| 五月丁香六月婷婷啪啪| 激情5月婷婷狠狠干| 五月婷婷开心网| 婷婷色五月激情| 另类亚洲视频| 五月丁香六月婷婷在线小说视频| 婷婷五月天福利| 色香蕉影院| 久久9热| 97色色色色色色色色色色色色色| 婷婷欧美综合| 大香蕉在线99热| 超碰三级秋霞| 五月天激情久久| 日本精品人妻无码77777| 91艹人| 五月婷婷高清| 猫咪伊人久久| 我淫我色婷婷五月天激情四射| 99久在线精品99re8热| 丁香六月婷婷姐网| 精品一二三区久久AAA片| 大香蕉久久婷婷精品综合| 丁香五月综合亚洲| 五月丁香影视| av久热| 久久怕怕视频| 99国产99| 欧洲亚洲最新精品| 亚洲精品大片| 伊人五月天久久| 天天擼久久擼在线| 久热婷婷| 婷婷激情伍月网| 五月丁香五月综合欧美| 国产精女同一区二区三区久| 欧美va亚洲va| 国产在这里只有精品| 婷婷国产欧美97| 激情五月开心五月丁香五月| 99这里只有精品国产| 色情丁香五月婷婷精品| 色婷小说| 这里只有精品免费观看网占| 大香网伊人久久综合| 丁香五月婷婷狠狠色| 99爽视频| 狠狠第四色| 五月天综合在线观看视频| www99精品亚| 五月婷婷无码专区| AA片在线观看视频在线播放| 色色无码日韩| 色99视频| wuyuedingxiang99| 成人看片网站| 91精品91久久久中77777久久玖玖九九 | 色五XX| 狠狠ri| 99热只有这里才是精品| 免费无码毛片一区二区A片| 婷婷五月丁香综合激情小说| 开心深爱激情网| 这里有精品99| 99热这里| 内射激情在线| 精品香蕉99久久久久网站| 呦呦v线| 香蕉久久国产AV一区二区| 很操日本7| 亚洲色无码A片一区二区麻豆| 大波美女VA网站| 午夜69成人做爰视频| 婷婷综合在线观看视频| 亚洲久久天堂| 欧美日本另类| 4399在线观看免费高清黄色视频| 欧日韩成人| 91热在线| 亚洲V国产V欧美V久久久久久| 热99精品视频在线观看| 色五月 五月婷婷| 五月丁香六月婷婷不卡免费无码| 夜夜骑日日夜夜| 久9综合| 五月天激情小说欧美激情| 久久3p| 婷婷丁香色五月| 久久久久久久久久久久久久人妻视频| 大香蕉综合| 99爱精品视频| 色婷婷亚洲在线观看| 99re视频在线播放| 婷婷丁香色五月亚洲| 精品久久久91久久影视网| 综合图区激情| 日本系列_4页_777FP| 五月婷婷第四色| 99在线观看视频| 国产毛片欧美毛片久久久| 五月天婷婷黄色| 亚洲秘 无码一区二区三区妃光/1| 9l视频自拍九色9l视频在线观看| 大香伊人久色| 九月婷婷在线观看| 久热这里只有精品在线观看| 另类A片| 青草久久五月婷伊人| 久久一伦| 五月婷婷基地| 热久久视频99| 久操干| 一本色道久久88综合日韩精品| 天天成人丁香美女AV| 热五月婷婷| 思思热在线观看| 天天日夜夜爽| 婷婷丁香五月色偷偷| 免费做A爰片77777| 99.N在线视频| 久久99这里| AAA久久久AAA久久久AAA| 天天干天天插| 天天干天天干天天干天天干天天干| 大香蕉婷婷丁香天堂AV| WWW色色色COM| 欧美激情综合| 成人五月天视频| 欧洲毛片基地c区| 婷婷狠狠综合网入口| 日日夜夜天天综合| 欧美丁香五月天| 无码人妻电影| 久久国产AV| 99在线免费视频| 色婷婷69| 婷婷五月天激情综合网| 噜噜色天天开心| 久久38视频| 精品久热| 欧洲亚洲免费视频9 | 26uuu| 九九热精品视频| 国产高清RV综合aVa| 色婷婷六月天| 免费看片操逼| 屁股翘好撅高迎合跪趴| 婷婷丁香五月综合| 婷婷五月天激情综合婷婷五月天激情综合| 中文精品在| 97爱综合| 香蕉人妻AV久久久久天天| 激情五月天在线视频| 欧美色必爱| 丁香五月大香蕉| 色天堂A| 国产精品VA在线| 99热这里只有精品最新| 婷婷五月成年人| 色情五月天小说| 国产午夜精品一区二区| 欧美123区免| 中文字幕乱码亚洲精品一区| 色婷婷综合网| 五月婷婷婷婷| www.久久99热地址发布| 九九视频在线| 99热99热不卡| 五月综合精品| 俺去啦综合网| 色婷五月丁香久亚洲| 五月激情视频网| sesesesezonghe| 热的五码久久精品| 五月婷亚洲精品AV天堂| 九九热10| av在线观看免费| 成人精品人妻| 日本久热| 五月婷婷天堂| 婷婷五月天黄色| 在线另类| 久久色情| 久久综合这里只有精品1| 啪啪激情综合| 激情小说五月天社区丁香| 天天爽在线视频| 久久激情网| 丁香六月婷月91婷月| 婷婷在线视频| 色播五月婷婷综合| 日韩肏屄网| 丁香婷婷五月激情| 九九精品热| 五月天丁香六月综合| 色五月丁香五月激情五月激情| 久久在线大香蕉| 99久久久久久| 成人操呦av| 国产裸舞福利资源在线视频| 激情WWW| 色五月色五天色情网| 91精品综合久久久久久五月丁香 | 色99自拍| 丁香六月婷婷综合色| 26uuu.| 丁香五月婷婷欧美成人色图| 亚洲色vA| 五月天色区| 大香蕉AV在线| 日本人妻A片成人免费看片| 色五月激情五月| 丁香六月啪啪| 六月婷欧美丁香综合| 色色色97| 成人片在线播放| 婷婷五月丁香婷婷| 五月天亭亭俺也| 9久久婷婷国产综合精品性色| 99精品网| 九九操屄| 日本成人综合| 人人色性网| 天天天天色天天天天天干| 色99色| 国外亚洲成AV人片在线观看 | 九月婷婷久久| 婷婷五月天综合久久日| 好大好粗嗯啊-一级黄色大片免费观看-成人AV | 九九视屏| 丁香婷婷精品视频| 婷婷五月色網站| 操逼三区| 9精品久久999| 人人97碰| 天天操天天操| 超碰猛烈的性猛交| 麻豆AV一区二区三区| www久久久久久| 婷婷六月丁香开心深深爱| 天天干天天射综合网| 亚洲激情在线| 在线日本www| 97久久超碰| 亚洲AV色婷婷人禽五月天| 99无码| 色吧综合网| 狠狠色综合五月| 六月色国内综合| 91丨九色丨东北熟女| 欧美黄色一级录像| 久Se视频在线观看| 婷婷丁香五月噜噜噜| 精品久久99| 久9综合| 99在线爽| 丁香婷婷六月天| 丁香五月婷中字在线| 激情综合5| 五月开心激情网| 婷婷开心激情| 丁香天堂夜| 久久五月天合网| 在线观看亚洲视频影院| 久婷狼色诱惑在线| 婷婷91| www.婷婷五月天| 影音先锋男人站,影音先锋男人色资源网,影音先锋AV最新资源站,影音先锋AV资源 | 七月丁香婷婷 色色| 九九热色视频| 久久婷丁香五月| 激情五月丁香五月综合| 激情五月第四色| 久热欧美| 丁香五月久久社区| 日韩欧美骚货| 国产精品涩涩涩视频网站| 色婷婷丁香综合中文字幕| 激情五月天激情小说| 最近中文字幕大全免费版在线| 五月婷婷,狠狠操| 日日日日操| 91丨九色丨43老版熟女| 99久久久久久久| 色婷婷小说| 四川BBB搡BBB爽爽视频| 婷婷丁香视频在线观看免费| 九九九热精品| 免费看片操逼| 一级黄色尤物综合视频手机在线观看| 国产AV影片| 五月丁香日本片| 99视频在线精品免费观看2| 五月天色综合| 亚洲无码99| 海外网站专业操老外| 五月激情婷婷在线| 五月丁香六月激情| 天天添天天摸天天天天做| 成人免费120分钟啪啪| 99小视频| 日本丁香五月| 色婷婷五月天天天天天| 热九九精品| 色婷婷丁香五月天| 日日爽夜夜爽| 婷婷99狠狠| 激情图片五月天| 色六月天天激情综合网| 97人人操人人干| 思思热闹这里只有精品| 色婷婷丁香五月| 久久er+|