欧美成人午夜精品久久久,国产?V天堂一区二区三区,欧美精品va在线观看,亚洲一区二区三区免费在线观看,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
返回資訊列表
日韩性爱AV| 天久久久久| 婷婷激情五月综合丁香社| 大地9中文在线观看免费高清| 99热国产在线| 5月丁香婷婷| 午夜理论片最新午夜理论剧| 久久免费干| 五月婷婷狠狠干| 色月视频| 肏日网在线看| 九月丁香婷婷| 久re热视频| 超碰人人在线| 秋霞AV淫| 影音先锋综合网| 久久婷婷视频| 4399在线日本A片| 久久婷婷丁香六月天| 另类伊人婷婷| 激情 婷婷| 99超级碰免费视频| 5月丁香啪啪啪| 婷婷综合色五月天| 色色色国产| 九九精品热播| 五月丁香狠狠爱婷婷综合| 99精品在线播放| 天天日,天天插| 色欲Av五月天| 人人妻人人澡| 五月丁香色婷基地综合久久| 日韩婷久| 激情五月天婷婷播播久久综合91| 三级三久久线久久99久目本WW| 99这里只有精彩视频| 婷婷基地成人五月天| 久大香蕉| 久久综合五月天| 丁香97综合| 99热这里只有精品13| 丁香六月激情| 操逼毛片国语对白| 婷婷五月色图| 天天综合五月天| 天天操天天操天天操天天操天天操| 狠狠综合网| 七月激情六月婷婷综合在线播放| 久久丁香| 色综合射婷婷| 色婷av| 五月婷婷深深爱| 丁香九月婷婷色| 99久久99久久综合| 黄网在线观看免费| 色婷在线视频| 丁香五月日韩| 欧美精品18| 伊人干综合| 色婷婷丁香五月天在线观看| 中文人妻主播久久| 五月丁香少妇| 五月天中文网| 99艹精品在线观看| 婷婷五月天在线视频网站| 99久热在线精品| 五月丁香综合色婷婷| 天天草天天摸| 五月丁香综合在线| 久草婷婷视频| 激情五月com| 国产美女主播vip| 2020日日干| 在线VA视频| 五月婷婷激情四季| 嫩草AV久久伊人妇女超级A| 青草性爱视频| 九色无码| 99综合免费视频| 丁香色婷婷色手机免费在线| 天天干天天日天天操| 欧美成人精品一区二区 | 亚洲成人网站在线| 伊人五月婷| 狠狠操狠狠爱| 欧美色九| 野战毛片三一3| 婷婷五月天综合蜜桃| 久久99国产综合精品免费| 色婷婷AV在线| enecarbon-materials.com污K127封锁请涟系@wip1688 | 婷婷六月中文字幕| 99热97| 天天干天干| 久热这里只有精品在线观看 | 九月婷婷综合网| 免费看欧美成人A片无码| 亚洲AV网址| 婷婷五月综合中文字幕| 国产91资源在线| 欧美精品999| 俺去也综合| 婷婷综合在线| 97操视频| 婷婷五月综合色中文字幕| 人人操日| 色五月激情网| 淫视馆aV二区一区| 99久久6| 超碰高清在线| 五月婷婷深深爱| 欧美综合激情五月天| 热久久77777| 香蕉大综综综合久久| 国产毛片精品一区二区色欲黄A片| 可以看的av| 青青草原福利在线| 国产色色色色| 日日天天天| 色99视频| 五月天激情综合网俺也去| 99久久終合| 亚洲色99综合天堂| 久久天堂色| 97操碰日本女人| 玖玖99婷婷| 电影91久久久| 在线不卡的视频| 99视频综合| 日日日日日| 午夜丁香| 日本欧美成人片AAAA| 亚洲色婷婷| 色综合久久天天综合网| 欧洲亚洲精品| 少妇人妻人伦A片| 人妻视频在线| 4399在线日本A片| 婷婷激情性爱| 成人精品一区二区三区四区五区| www。五月天激情| 综合激情婷婷| 激情伊人六| 热久久思思热思思| 99re这里只有精品在线观看| 欧美五月婷婷| 综合激情婷婷| 99精品热| 婷婷五月激情欧美大胆视频| 热久久婷婷| 热99久| www,99热在线观看| 新激情婷婷| 99视频日韩| 香蕉中文在线| 丁香五月色色| 五月婷天堂视频| 狠干综合| 婷婷五月天中文字幕.| 久久婷婷激情| 激情丁香五月天综合| WWW夜夜| 婷婷五月天com| www,五月天激情| 伊人婷婷色激情丁香| 性天天中文网| 97碰免费视频在线| 色五月激情网| 丁香五月 无码| 色婷婷国产精品综合在线观看| 精品国产a| H亚洲| 9999热在线观看| 嘿嘿视频免费看9| AV在线资源| 天天日天天舔| 91九色PORNY中文啦| 五月天婷婷涩涩| 免费97碰碰| 丁香五月WWW| 综合色色综合| 五月天婷婷网站| 色综合播放| 玖玖资源站蜜臀| 丁香美女五月天婷婷| 久9视频| 成人精品一区日本无码网 | 婷婷四色五月| 思思热国产| 欧美三日本三级少妇三99| 爱射综合| 另类激情四射| 婷婷深爱五月丁香网| 丁香五月天婷婷中文字幕| 91九色欧美| 天天日,天天干,天天操| 亚洲乱码日产精品BD在线观看| 99视频综合网| 久久久这里都是精品| 婷婷六月天亚州| 99久视频| 激情5月婷婷| 91人人网| 婷婷丁香色无五月| 粉嫩AV久久一区二区三区| 97精品人人A片免费看| 91成人看| 欧爱综合视频| 日本三级中国三级99人妇网站| 99免费超碰在线| 久操福利| 亚洲激情精品| 亚洲V国产V欧美V久久久久久| 8区视频在线| 九九精品免费| 97婷婷丁香| 婷婷五月激情片| 嫩草视频在线观看| 狠狠狠狠狠干| 99热九九这里只有精品| 久久色9| 五月丁香婷婷啪啪| 日韩综合网络男女香蕉a片| 色五月五月天| WWW.国产| WWW色综合| 六月久久婷婷| 五月婷婷黄色毛片| 五月婷婷性| 婷婷久久五月| 99热1| 久久丁香久久| 两性婷婷丁香五月| 深爱婷婷基地| 综合色播| 国产精品久久久久久白浆色欲| 成人五月天视频播放| 91久久| 99热官网精品在线| 天堂AV在线看| 26uuu国产| 五月久久婷婷| 日韩操逼大片| 99精品视频偷拍| 99热这里只有免费精品| 六月丁花香啪啪激情欧美| 五月天天天操天天爽夜夜操| 琪琪色五月天| 97人凄人人操人人爽| 成人五月天视频| 97色色视频| 国产原创视频91九色| 一起草无码视频| 91色综合网| 五月天另类图片区99| 另类国产综合| 深爱激情五月天| 任你艹| 九热视频在线精品15| 丁香婷婷久久五月天| 婷婷五月天,影院| 天天搡日日搡aaaaⅩ| YW无码| 影院久久久| av性爱在线| 欧美三级巜人妻互换| 欧美影院婷婷| 另类小说色婷婷| 在线中文AV| 五月花成人网| 婷婷爱五月| 99热精品在线播放观看| 99国产精品久久久久久久久久久| 男人综合网| 天天爽天天干| caobi四区| 狠狠综合| 婷婷五月天a| 久久九九激情五月天| 丁香五月婷婷亚洲另类| 粉嫩AV久久一区二区三区| 五月婷婷综合激情| 黄色av网站在线免费播放| 欧美激情五月| 色婷在线视频| 97操碰| 9久久精品视频| 久99久99精品免| 91九色中文字幕女在线观看| 思思热精品在线视频| 激情宗合哪里能看| 91九色偷拍| 噜噜噜久久亚洲精品国产品91| 午夜在线成人网站免费观看| 狠狠干在线| 玖玖爱资源站| 五月天激情图片| 色婷婷五月天激情久久| 五月丁香激情啪啪| 天天色天天色天天色天天色天天色| 亚洲六月综合激情久久下卡| 99这里只有精品| 99久久精品国产色欲| 五月综合激情网| 丁香激情网| 天天干,天天舔| 欧美交换配乱吟粗大25P| 五月婷婷免费视频| 午夜九九九九九九九九九九九九九| 婷婷射丁香| 九月av在线| 婷婷丁香色情| 欧美群妇大交乱婬网| 老师的粉嫩小又紧水又多A片视频 粉嫩AV久久一区二区三区 | 国产99精品免费视频| 97精品人人A片免费看| 成人性爱无码| 99久在线精品99re8热| 性综合网| 五月天婷婷在线观看| 99啊精典免费视频| 嫩草AV久久伊人妇女超级A| 高清无码中文字幕aVDV| 九九这里是免费的视频5| 狠狠插狠狠插| 婷婷色五月在线视频| 99色热视频| 五月丁香久久| 啪到高潮激情丁香五月| 亚洲色综合| 无遮羞AV| 色婷婷五月综合| 色婷婷五月婷婷五月婷婷五月| 日本三级色| www.天天日| 激情五月婷婷综合色播小说| 色五月首页| 综合久久激情久久| 丁香五月日韩| 免费观看欧美成人AA片爱我多深| 99热只有精品在线播放| 涩五月丝袜婷婷| 人人操AV| 激情中文在线| 丁香五月天的网址。| 亚洲操逼片| 国产精产国品一二三在观看| 婷婷六月久久综合导航| 久久er九九| 五月婷婷久草| www.久久久久| 99热大香蕉| 五月天激情日色在线| 五月婷婷色综图片| 黄色短视频在线观看| 99精品视频在线观看| 欧美天天爽| 丁香综合久久| 激情五月天。| 开心激情站| 爆乳熟妇一区二区三区爆乳| 色五月天电影| 亚州性爱99| 中文AV在线播放| 丁香五月 性爱| 亚洲综合激情五月久久| 丁香五月综合婷婷| 四虎婷婷五月天| 丁香婷婷六月天| 人人艹艹艹| 日韩1区2区| 伊人在线视频| 婷婷开心六月| 日逼免费视频| 五月天婷婷丁香蜜桃91| 五月伊人综合| 国产亚洲在线| 成人毛片在线免费观看| 熟妇高潮一区av| 五月色网| 99热这里只有精品8| 色婷婷免费视频| 天天天久久人人人合| 婷婷色系婷色| 九九精品综合| 色久影院| 色婷婷久久天天性爱| 91热久| 婷婷亚洲天堂| 99性爱| 婷婷五月综合网| www.精品99| 天天干天天射综合网| 包操45分钟网站| 成人电影AV在线观看| 久久九九婷婷| 色九九丁香九月色九九色| 99热传媒| 丁香亚洲色综合| 五月丁香本色在线观看| 九九aV| 亚洲在线资源| 婷婷色导航| 9热视频在线观看| 婷婷五月天网址| 五月婷婷啪啪| 2017狠狠干| 91无码高清| 开心激情网五月| 99热99热99热99热| 精品人妻一区二区三区四区不卡在| 26uuu另类| 五月丁香日本片| 碰超99| 五月亭亭欧美女人| 日韩综合久久| AV伊人青草丁香六月| 婷婷五月天成人| 丁香六月激情综合| 精品一区二区三区四区五区六区介绍| 婷婷丁香成人在线视频| 思思热热久久| 日日噜噜久久婷婷五月天| 五月色无码| 五月丁香伊人网| 九色PORNY自拍成人精彩视频| 99啪在线| 1024婷婷综合久久五月天| 亚洲乱码w在线观看| 久久天堂婷婷五月| 丁香六月啪啪啪| 亚洲欧美成人在线| 久久五月网| 丁香婷婷色五月| 人人爽在线视频综合网| 激情狠狠丁香月| 久久这里只| 99热亚洲| 五月丁香啪啪| 五月丁香啪啪激情| 精品人妻伦九区久久AAA片| 99热网精品| 91九九九九九九| 91操在线观看| 丁香五月婷婷五月天在线| 妻久久久久| 五月激情综合婷婷| 丁香五月亚综合图片| 深爱激情综合| 婷婷激情综合网| 亚洲国产精品VA在线看黑人| 无码AV免费精品一区二区三区| 伊人99久久| txt五月激情四射网综合俺也来了 五月天婷婷丁香人人操91 | 婷婷成人基地| 免费做A爰片77777| 丁香婷婷欧美综合| 视频一二区| 丁香六月天AV| 五月丁香婷婷综合视频| 色五月婷婷小说亚洲中文字幕组| 色优久久| 最新国产AV| 久99综合婷婷| 色五月激情问网站| 色五月婷婷小说亚洲中文字幕组| 婷婷久久综合| 天天综合网~91| 六月婷婷天堂| 激情文学 综合 色| 五月激情婷婷丁香天堂| 国产成人网站在线观看| 98热精品| 丁香五月色综合色播五月| 操逼123网| 91视频五月丁香| 天天干天天干天天| 99热午夜精品| 丁香大香蕉| www.minyis.com【JT】币址百万U预算可预付QQ2101460746 | 大香蕉啪啪网| 久久人妻乱| av网址在线| 99日热在线视频| 亚洲天堂99| 丁香成人综合| 五月婷婷片| 蜜臀AV在线观看| 97综合色片| 天天色色婷婷| 99视频这里有精品| 亚洲免费av在线| 天天日人人爽| 欧美影院婷婷| 久久国产AV| 91久久99久久91熟女精品| 淫荡工a| 99热在线只有精品| 六月婷婷啪啪| 日本色色视频| 大伊香蕉精品视频在线| 美女被操一区二区| 五月丁香直播| 五月婷婷影院| 成人欧美日韩| 狠狠操综合| 伊人久久丁香狠狠婷婷综合香蕉| 欧美人人操| 99成人精品| 九九热在线99| 色综合中文| 狠狠做深爱婷婷久久综合一区| 九九热精品| 久久综合激情| 91婷婷色 | 婷婷在线日韩综合| 五月丁香婷婷激情久久| 亚洲操逼网| 99热99思午夜精品| 五月丁香激情婷婷综合| 99视频| 丁香婷婷精品视频| 人人摸人人搞| 超碰人人操人人干| 五月婷婷啪啪啪| 男女av免费看| 亚洲狠狠狠| 在线理论片| 五月婷婷黄色| 丁香六月婷| 妇激情基地| 色婷婷综合在线| 狠狠色噜噜狠狠狠狠综合| 激情五月丁香色婷婷| 婷婷色操| 深爱婷婷丁香五月激情| 色综啪啪网| 甈你aaaaa| 日日夜夜婷婷| 色五月婷婷九月| 无码少妇高潮喷水A片免费| 久久 婷婷 五月天| 婷婷五月成人| AAA久久| 偷拍91九色| 狠狠色综合网| 九草性爱| 91九色欧美| 99ri视频在线播放| 婷婷六月天亚州| 精品一二三区久久AAA片| 管管補管管紱| 成人无码髙潮喷水A片| 久色姿源| 国产真实乱对白精彩| 99热日本| 色亭亭九月| 色五月天本日| 国产操肏网站| 伊人久久大香网| 超碰人人超碰| 天天色播| 人人干AV| 久久婷婷五月天大香蕉| se99视频| 久久综合无| 色综合久久888| 色综合中文色综合网| 97人人操人人| 79亚洲精品少妇| 免费无码毛片一区二区A片 | 色色综合激情| 五月婷婷影| 丁香五月在线视频| 五月天婷婷综合色| 亚洲六月婷婷| 人妻中文在线| 亚洲乱码日产精品BD| 六月婷五月丁香| 中文字幕人妻熟女在线| 色狠狠色综合| 色五月婷婷操逼| 婷婷五月天综合在线| 夜夜www| 99精品视频播放| 色婷婷的五月天| 中文精品在| 婷婷丁香熟妇综合网| 99热这里只有精品亚洲| 日韩在线看AV| 久久99热这里只频精品6学生| 激情久久婷婷| 天天做夜夜爽| 色色欧美色色| 色综合区| 丁香五月婷中字在线| 天天色天天爱天天舔| 久久综合五月情| 天天婷婷| 五月丁香综合啪啪啪啪啪| 99热精品中文字幕| 丁香五月天综合网| 久久婷婷五月丁香网| 国产精品人成A片一区二区| 五月婷婷之美女图片| 操操人人| 玖玖色综合色| 日韩另类| 丁香六月激情网C0W| 97丁香婷婷| 国产欧美精品AAAAAA片| 综合99视频| 人妻内射麻豆视频| 久久99看免费| 人妻熟女一区二区AV| 99热这里只有精品搜| 九色PORNY9l原创自拍| 久久久久久久久月丁| 六月丁香婷婷综合在线| 1024操逼视频| 不卡在线视频| 大香蕉九九| 亚洲另类噜噜| 98毛片| 久久婷中文字幕| 久久激情网| 日本婷婷丁香五月| 精品成人在线观看| 人人操超碰| 五月天色综合| 人人草人人爱手机视频看看| 99热99成人| 久久精品天| 中文字幕av在线| 久久精品小视频| 99久.| 永久天堂日本| 欧美性生交XXXXX无码小说| 人人草人人舔| 草AV9999| 天天综合激情| 成人av中文字幕| 啪啪操网| 天天综合在线网| 色久99| 亚洲无码色| 思思热99在线视频| 五月在在观看| 在线观看五月婷婷网| 久久久五月天网站| 久久久亚洲成人无码A片| 大香蕉久| 九九热99热| 人人爱摸视频| 一起草性爱不卡视频| 噜噜噜狠狠色综合| 超级97碰碰| 国产精品成人AV在线观看春天| 色99视频| 色5月婷婷色| 五月丁香五月综合欧美| 精品国产va久久久| 99人人操人人摸| 亚洲俩性性爱图片久久第六页| 91seav| 4399伦理午夜| 九色地址91视频| 久久婷婷午夜| 东京热五月婷婷| 九九视频在线观看视频6 | www.久久| 激情五月天色色| 亚洲AV综合网| 色婷婷操逼| 久久婷婷五月| 91午夜激情| 五月丁香啪啪综合| 六月丁香VA| 五月天综合影院| 五月丁香综合伦理片| 久久五月天综合视频网站| 开心五月婷婷五月| 日木狠狠干| 婷婷丁香五月天婷婷| 成片免费观看视频大全| 久久综合性| 超级碰碰碰97免费| 激情综合五| 青草五月天| 欧美成人A片AAA片在线播放 | 丁香五月天啪啪| 婷婷婷婷婷婷婷婷| 第四色大香蕉| 亚洲不卡| 五月婷婷激情久久| 婷婷综合网| 天天爽天天摸天天爱| 五月开心激情网| 九九这里只有精品在线视频| 99精品视频免费在线播放| 粉嫩av蜜桃av蜜臀av| 婷婷久久大香蕉| 婷婷五月色播网| 丁香五月婷婷亚洲色图| 婷婷国产综合| 婷婷六月中文字幕| 深爱激情69热| 99色综合| 夜夜干 夜夜操| 大香网伊人久久综合| 亚洲妇女熟BBW| 五月婷视频| 夜夜嗨一区二区三区直播内容 | 丁香花操逼| h亚洲| 色色色999| 色五月无码| 亚洲99在线视频| 丁香五月亚综合图片| 婷婷五月天视频| 丁香婷婷色五月| www.五月天| 美女视频图片久久91| 2015WWW永久免费观看播放| 久热99热| 六月婷婷无码| 五月丁香基地| 超碰97干| 激情五月天婷婷| 丁香五月天堂亚洲社区| 五月婷啪啪| 思思99热在线| 丁香五月激情啪啪| 爱草人视频| 日韩成人AV在线播放| 中文字幕AV网址| 日日干天天| 五月婷网站| 久久99大全| 五月停亭六月,六月停亭的英语| 无码色| 五月婷婷六月激情| 五月婷av| 99热乎| 啪啪六月婷婷| 成年人丁香五月| 99久久超级| 超碰大香蕉网| 五月婷婷视频ab| 色婷精品91| 久热一区| 亚洲最大在线| 五月婷婷欲色| 色五月激情网| 久久99久久99精品,久国产,久久精品免费,99久在线,久久久久国产精品免费网站,9 | 久久黄色片| 五月天婷婷基地综合网| 狠狠狠狠狠狠狠狠草| www.ppypp| 色播五月丁香| 五月天婷婷综合免费| 69精品人人人人| 99精品女人天堂| www.丁香五月| 久久机只有这里精品| 色婷婷色五月综合| 丁香久色| 九九热99免费视频| 以及AA大片看看| 六月99天天婷婷激情综合| 激情丁香六月| 成人做爰A片免费看视频| 国产婷婷综合| 五月之婷婷| 激情99| 玖玖婷婷色五月| 99热这里只有精品2024| 激情综合网五月| 丁香九月激情在线视频| 色狠狠999综合网| 五月丁香久人妻中文| 五月天激情视频| 久久婷婷五月综合激情国产| 国产高清精品色| 91色婷婷综合久久中文字幕二区| 色五月婷婷AV| 丁香五月激情视频| 大学生高潮无套内谢视频| 婷婷五月丁香综合激情| 婷婷色基地| 日本人人超碰| 26UUU成人网| www久久久久久久97| 五月婷婷视频| 日本无va视频| 综合婷婷| 婷婷射综合| 丁香婷婷视频在线| 91操黄| 婷婷五月天天| 亚洲综合婷婷| 狠狠色综合网| 中文色婷婷| 性色综合网| 丁香五月激情站| 大香蕉婷婷色| 成人av在线网址| 永久AⅤ1| 色婷婷成人色网| 色欲丁香久久| 婷婷在线视频| 天天射美女| 26UUU欧美| AV在线免费观看不卡| 五月花婷婷最新| 久久性爱视频| 97人人做| 99视频35精品视频在线观看| 婷婷五月综合社区在线| 色婷婷丁香五月色综合网| 亚洲亚洲人成综合网络 | 九九热自拍| 五月开心久久| 婷婷色基地| 超碰妻人人| 丁香综合网| 五月婷婷操操| 婷婷基地五月色| 女人被躁到高潮嗷嗷叫小| 日韩色色小视频| 五月丁香av中文| 激情伊人| 依人大香蕉| 就是色婷婷五月亚洲色| 综合久久99| 韩日在线熟女| 激情五月婷| 久色姿源| 思思久久久婷婷| 天天爽,天天操。| 99久久国产宗和精品1上映| 丁香六月婷婷综合麻豆| 九九九九操逼| 激情五月少妇| 色婷婷在线影院| 激情综合色播| 色播激情| 天天日日夜夜爽。| 99草视频在线观看| 99热播放| 日韩在线视频网站| 99热这里只有精品66| 亚洲激情丁香五月天色| 八戒青柠影视剧在线观看| 色狠狠色狠狠| 亚洲av无码影院| 日韩精品一品二区三区的使用体验| 大香蕉五月天婷婷丁香91| 色播五月| 亚洲丁香五月深爱五月| 九热视频在线伦| 亚洲欧美国产高清vA在线播放| 超级碰碰视频无码| 婷婷丁香在线| 欧美久久五月婷婷| 伊人九九九久| 99久久玖玖| 99热伊人| 国产AV一区二区三区最新精品| 亚洲激情97五月天| 一起草无码| 久久思思热| 97极品在线| 久久婷狠狠色| 久久99热这里只有精品23| 97色射| 亚洲婷婷五月| 五月伊人综合| 精品五月花| 婷婷99狠狠躁天天躁中| 99热热九九| 五月丁香花成人社区| 五月天网站免费欧美| 婷婷丁香在线| 五月婷婷久久综合| 综合激情深爱| 中文字幕九九九九| WWW.国产| 婷婷五月丁香在线视频| 久热99| 久久婷婷五月天| 五月婷深深爱激情网| 午夜婷婷久久| 丁香六月婷婷久久综合| 婷婷性爱五月天| 丁香无月在线观看| 狠狠爱丁香婷| 久热这里只有精品99re| 久久九九蜜| 超碰大香蕉网| 五月停停大香蕉| 成人av播放| 丁香五月天av| 1234操逼网| 久久99综合| 丁香五月Av| 五月天色婷好好| 婷婷影院A成人| 欧美精产国品一二三区| 婷婷天天综合| av人人操| 成人欧美日韩| 丁香五月亭亭六月综合激情网| 九九热在线视频观看免费10| 91丨九色丨熟女高潮| 婷婷六月激情丁香| 91人人操人人| 五月天激情亚洲| 五月丁香婷婷综合网| 狠狠草狠狠草| 综合亚洲色色| 1024成人在线观看| 99精品视频免费观看近期发布| 亚洲操逼片| 26UUU精品一区二区Com| 久久婷婷色| 色色丁香色五月| 99国产精品白浆在线观看免费 | 五月色情婷婷| 亚洲精品无码一区二区| 亚洲成人五月| 思思色综合网站| 91超级碰| AV在线收看| 懂色av粉嫩av蜜臀av| 久久99网站| 日夜夜久久| 久操人妻| 99热性色| 天天日天天久久青青| 综合色五月| 日亚二欧美| 亚洲日韩26uuu| 狠狠搞五月天| 婷婷五月综合色拍| 久热9| 五月丁香六月综合基地| 久久99久久99精品免视看婷婷| 九九热在线99| 3DAV亚洲香蕉久久 一区二区| 午夜天堂一区人妻| 婷婷六月丁香五月| 9久热在线视频精品| www网站在线观看| 日本女色人人| 99年操人人爽| 这里只有精品久久| 丁香九月激情| 丁香五月天啪啪| 五月婷婷色综图片| 色五月偷偷| 五月婷婷丁香俺日污视频| www.亭亭五月天| 亚洲精品国产精品乱码不99| www。五月天。com| 天色综合网站| 丁香婷婷六月天| 九九爱这里只有精品| 美女亚洲五月丁香| 玖玖视频福利| 91凹凸在线| 色呦呦美女| 五月丁香色婷婷色| 日本久久人| 婷婷色五月天色色| www91久久| 天天综合 99久久婷婷| www.com任你艹| 狠狠爱婷婷丁香| 六月丁香婷婷综合狠狠爱夜夜爱| www.99热这里精品 | 综合激情深爱| 久久久久久丁香五月| 五月丁香六月婷婷免费| 午夜爱爱爱成人| 五月丁香婷色| 亚洲舔观看| 婷婷五月开心中文字幕在线| 婷婷四色成人综合色视| 激情综合网 激情五月天| 婷婷五月天欧美图片在线播放电驴| 亚洲中文乱字字幕线在永久| 色情激情五月| 色永久| 夜夜干夜夜操| 99热这里都是精品| 色丁香五月婷婷| 狠狠干天天日| 全部老头和老太XXXXX| 欧美亚洲色色色色| 欧美婷婷综合| 久一网站| 九九综合| 婷婷丁香五月视频| 天天操天爱综合| 人妻肉射免费观看| 五月丁香六月花| 色婷五月| 性爱视频99| 五月丁香综合影院| 午夜天堂啪啪| 中文幕无线码中文字蜜桃| 亚洲九N| 色八戒操婷婷| 色婷婷a v| 大香蕉久久草| 欧美婷婷六月丁香综合色| 色五月天综合| www夜夜操comwww| 五月婷婷成人| 亚洲综合五月| 无遮羞AV| 婷婷丁香色性爱| 久久久久9999| 六月婷婷日| 婷婷狠狠操| 九九热最新地址| 丁香激情久久| 国产肥白大熟妇BBBB视频| 色9999综合久久| 亚洲av成人在线| 综合在线丁香五月| 丁香五月婷婷在线观看| 激情四射网| 免费无码毛片一区二区A片| 婷婷综合九色伊人| 五月婷婷婷| 六月激情婷婷色| 久久久久久丁香五月| 丁香婷婷五月六月久久| 五月丁香婷婷综合网| 第四色色六月色综合| 91碰视频| 丁香五月天精品| 欧美日韩成人在线网| 99热精品在线观看| 久久ri精品视频| 久热九九| 色情五月停停丁香| 色五月婷婷久久| 五月日韩中文字幕| 五月丁香啪啪综合| 色欲香综合网| 欧美日韩123| 26UUU精品一区二区| 色色综合网。| 97人妻碰碰中文无码久热丝袜| 99视频35精品视频在线观看| 五月丁香啪啪拍| 五月天久久网站| 青草视频在线观看视频| 亚洲视频无| 国产精品噜噜在线视频| 天天操婷婷| 色伦专区97中文字幕| 久婷婷五月天影院| 日日操夜夜爽天天天| 丁香激情四射| 伊人激情| 人人综合91网| 逼逼AV| 欧洲色色| 日本视频久久| 色婷婷成人| av性爱网站| 久久九九爽| 996黄色片| 9l视频自拍9l九色成人| 99热6这里只有精品| 26uuu精品一区二区| 激情5月婷婷| 天天婷婷综合| 久热黄色| 人人操人人妻| 翔田千里aV中文字幕| 99啪啪网| 欧美性色A片免费免费观看的| 丁香五月中文字幕| 丁香五月天在线观看| 风流少妇A片一区二区蜜桃| 亚洲婷婷基地| va婷婷| 强壮公让我夜夜高潮A片视频| 变态另类9| 五月丁香啪啪综合| 蜜臀AV在线观看| 久久停停超碰| 狠狠干狠狠干| 99干免费视频| 狠色狠色狠色狠色狠色网| 综合激情站| 日韩三级视频一区二区| 五月天婷婷六月| 99无码视频| 91人人操人人爱| 婷婷五月亚洲一本在线丁香| 色综啪啪网| site:wpjngj.com| 五月婷在线观看| 丁香五月123| 丁香久久久| 丁香五月五月婷婷欧美大香蕉| 就要去操亚洲成人精品五月天丁香婷婷| 男女免费视频999| 婷婷色基地在线看 | 五月天堂六月丁香亚州中文字幕久久| 99,色| 91黄址| 色婷婷综合影院| 五月噜噜| 色狠狠色噜噜AV天堂五区| 爱之国产色情综合| 天天色播| 91丨九色丨白浆秘| 久久电影4399| 97干综合网| 婷婷五月激情六月| 伊人9草在线观看| 六月婷婷在线视频| 婷婷五月综合丁香久久| 甈吧vv| 91精品激情9| 五月激情丁香五月宗合| 2018国产大陆天天弄| 激情久久四色| 婷婷99中文字幕| 操操天堂| 我爱大香蕉| 婷婷成人综合| 999婷婷综合| 97碰久久| 9久精品视频| 超碰91av| 婷婷综合久久| 日本激情ⅩXX免费视频| 99人人干| 色之综合网| 婷婷五月色| 成人做爰A片免费看网站找不到了| 婷婷色网| 69热在线| 日本人妻伦在线中文字幕| 激情婷婷五月天伊人在线观看| 大地资源色婷婷视频在线| 都市激情五月婷婷综合| 欧美内射AAAAAAXXXXX| 五月天五月色| 久婷婷久草| 婷婷五月天中文字幕| 五月天激情黄色网址| 精品人妻久久久久久| 操逼巨乳91| 伊人久久婷婷| 五月婷婷激情综合在线| 国产精品扒开腿做爽爽爽A片唱戏| 日韩性视频| 日本色图综合| 丁香五月性| 禁欲电影完整版在线播放| 蜜乳国产网站| 日韩av高清| 五月激情五月婷婷五月天在线| 东京热人妻一区二区三区在线| 婷婷免费视频| 大香蕉婷婷色| 激情五月婷婷| 激情网狠狠干| 五月天六月婷| 五月天婷综合| 婷婷操逼| 亚州欧美国产久精国产99综合视频| 激情伊人| 狠狠香婷婷五月| 亚洲亚洲人成综合网络| 99re热视频这里只精品| 一级二级色大片| 99精品视频在线观看| 99精品激情| 欧美综合五月天婷婷tin| 青青草五月天| 97操操操| 大色鬼综合| 五月天六月婷婷| 久久婷.com| 国产精品久久久爽爽爽麻豆色哟哟| 丁香五月婷婷色| 99re免费精品视频| 99热免费| 婷婷五月丁香六月| 五月天综合激情网| 啪啪综合网| 五月天色婷婷基地| 色婷婷9| 无码激情AAAAA片-区区| 久久人妻伦理| 99re热精品视频国| 国产av网| 五月婷婷性爱| 色宗合久久五月婷婷| 好色婷婷| 欧美S码亚洲码精品M码| 欧美α√| AV激情五月| 国产精品VIDEOSSEX久久发布| 婷婷色基地在线看| 另类专区在线观看| 天天爽夜夜爽夜爽精品| 97操操操| 毛片九九九九九九九九18| 亚洲视频二区| 亚洲五月综合色播| 97婷婷狠狠| 在线中文AV| 91丨九色丨白浆秘| 五月丁香花免费视频| 婷婷综合色色| 影音 五月 婷婷 久久| 婷婷色五月色| 色丁香五月天射婷婷爱婷婷| 欧美三级韩国三级日本三斤| 第四色五月天| 天天做天天爱天天爽综合网| 色99视| 激情伊人网| 精品久久久91久久影视网| 99精品一二三四视频| 丁香社区婷婷五月| 91成人品| 99ri6在线视频| 99久久久99久久91熟女| 色丁香五月婷婷| 丁香成人综合| 91超碰在线播放| Av中文在线| 欧美色五月| 久热这里只有精品6| 丁香五月天婷婷久久| 久久久8| 超碰99成人在线| 国产人妻人伦精品一区二区| 久艹大香蕉| 五月婷婷激情综合视频| 26UUU| 婷婷久久伊人| www...com黄在线观看| 1024日韩| 色色色婷婷五月| www天天色天天射| 亚洲爱爱无码婷婷色五月| 丁香综合婷婷开心激情网| 伊人大香蕉在线视频| 人人操人人妻| 亚洲精品V天堂中文字幕| 婷婷午夜精品久久久| 欧美成人网99网| 五月婷婷激清网|