欧美成人午夜精品久久久,国产?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
返回資訊列表
少妇水多A片太爽了| www.婷婷五月| 国产Va视频| 九九色婷| 另类少妇人与禽zOZZ0性伦| 99爱无码| 亚洲综合色五月| 色五月婷婷av| 五月激情婷婷国产精品久久久久久| 99爱在线视频| 免费黄色片子| 婷婷五月天影院| 天堂爱爱| 精品久久二6| 丁香九月色| 成功精品影院| 狠狠穞A片一區二區三區| 五月激情六月综合| 可以看的AV| 99热20| 综合九色| 97艹| 亚州综合色| 亚洲精品国产A久久久久久| 丁香六月久久| 天天干夜夜想| 久久久久这里只有精品| 天天干天天拍| 99精品成人无码A片观看金桔| 亚洲午夜一区二区| 人人摸人人澡人人| 任你爽精品免费视频6| 亚城区在线| 97色色色视屏| 99精品视频免费观看,| 成人操呦av| 99综合熟女| 另类婷婷五月天啪帕帕| 二级黄色毛片| 碰碰女| 丁香婷婷性久久| 五月丁香久久激情综合| 免费观看日韩成人av| 黄急一级视频| 久久天堂女人| 丁香五月先锋| 丁香五月情色| 婷婷五月天亚洲激情戏精品| 青草激情在线| 五月婷婷在线观看黄| 五月丁香婷婷激激激综合网色播| 性日本精品| 婷婷干五月综合在线播放| xxx综合在线| 丁香九月综合| 99热色在线精品| 亚洲婷婷丁香五月天激情小说 | 丁香五月天日韩无码| 青柠影视免费高清电视剧| 亚洲欧洲另类| 91九色 熟| 丁香五月天大香蕉啪啪| 97九色视频| 99综合自拍| 亚洲情欲| 婷婷五月色播| 三日本无码| 婷婷色影音天| 超碰93在线观看| 中文字幕综合| 色综合久久伊伊婷婷五月| 九九亚洲小视频| 久热播这里只有精品| 激情综合色播| 99热这里只有精品免费| 色热久资源| 99热最新国内| 极品色丁香| 超碰成人在线观看| 五月天婷婷免费视频| 九九热av| 甈你aaaaa| 婷婷五月色情| 99re在线视频精品,这里只有精品18,| 九月性爱网| 国产人妻人伦精品一区二区| 久久九九囯产| 亚洲色精彩| 色五月激情五月丁香五月婷婷啪啪综合| 狠狠色婷婷丁香六月| 色爱终和网| 99激情视频| 91九色国产| 婷婷综合五月| 日韩精品无码AV| 婷婷午夜激情| 韩国三级五月天婷婷。| 丁香色婷婷五月天| 久久久九九九 99| 五月丁香欧美综合| 五月婷婷在线观看| 99无码| 亚洲成人在线观看av| 99久热这里只有精品| 九九热在线视频| 亚洲综合五月| 五月丁香人妻| 婷婷开心激情综合五月天| 日日日日日| 人人草人人舔| 外国碰视频网站97| 99久久综合| 色噜噜婷婷| 熟妇人妻中文字幕无码老熟妇| 九一娱乐在线观看视频| 色婷婷视频| 色婷婷精品| 婷婷五月天精品| 婷婷五月天天| 激情99热| 可以直接看的av| 9999热在线| 欧洲亚洲免费视频9| 色99在线视频| 饮料下药迷倒漂亮女同事强干| 色色色色网站| 色色色色色色色色色色色色色五月天| 东京热伊人| 五月婷婷激情综合网 | 丁香五月婷婷基地| 黄色五月婷婷| 国产精品爽爽久久久久久| a久久| 99日精品视频| 五月丁香啪啪| 9色操| 99在线观看免费精品视频| 国产日韩欧美性爱| 色综合久久8| 99久久国产成人精品| 色五月综合资源推荐| 少妇人妻丰满做爰XXX| 激情亚洲婷婷| 影视av久久久噜噜噜噜噜三级| 9l久久久视频| 99热亚洲精品66| 99精品在线| 婷婷色色丁香五月天| 五月丁香花免费视频| 久久怡红院| 综合久久久| 久热这里只有精品99re| 涩涩激情五月婷婷| 激情五月天电影| 色婷婷色丁香色欲av| 五月花综合网| 亚洲精品久久久无码| 五月天堂色| 婷婷色综合| Y11111111111少妇电影院| 襙比视频| 亚洲午夜成人av电影网| 精品成人无码A片观看香草视频| 99精品色| 成人婷婷五月天| 色五月在线播放| 色色五月天丁香| 亚洲操操操| 综合久久综合五月天婷婷| www.sd-xiangsu.cpm| 99免费在线| 激情五婷网| 99ri精品在线| 欧美久热| 国外亚洲成AV人片在线观看| 色5月婷婷| 黄色片久久| 天天肏天天插| 丁香五月欧美婷婷| 婷婷狠狠97| 久婷久婷激情肉| 玖玖婷婷五月天| 久久九⑨| 噜噜五月天综合| 91色综合| 亚洲字幕AV一区二区三区四区 | 久久久com| 色婷婷综合久久久久| 五月婷婷久久大香蕉| 日韩欧美老妇性视频91久久久| 色五月播五月| 久久女婷| 久久九九Com| 99热这里只要精品免费| 婷婷99热| 亚洲性爱AV在线| 五月丁香六月婷婷综合| 伊人婷婷大香蕉| 五月天婷婷色色| www.粉嫩av.com| 大香蕉啪啪网| 亚洲激情五月天| 久久婷婷网| 99热精品在线在线| 情趣视频66| 99热丁香| 色五月激情五月| 日日爽日日| 五月丁香色婷婷久久| 婷婷色五月天在线观看| 五月激情婷婷女| 大香蕉Av在线| 九九在线视频| 婷婷欧美激情综合| 五六月丁香激情视频| 九九热99精品| 欧美成人精品A片免费一区99| 日韩综合大黄| 五月婷婷六月丁香免费| 一级性感毛片| 欧美性生交XXXXX无码小说| 丁香五月激情在线| 丁香五月自拍| 色五月大| 五月丁香婷婷钟和色图| 日日撸夜夜操| 五月天激情网图片| 热久久66| 丁香五月激情六月欧亚激情综合导航| 丁香狠狠色婷婷久久无码视频| 国産精品| 五月综合无码| 激情 婷婷 丁香五月天| 伊人春天av| 婷婷五月天天激情| 少妇被下春药玩弄A片| 精品色色| 久热这里只有精品视频免费观看| 色,激情五月天| 亞洲自怕| 亚洲乱码日产精品BD| 五月丁香亭亭| 色噜噜婷婷| 超碰亚洲天堂| 丁香六月| 9色在线视频精品观看| 亚洲色婷婷五月天| 欧美色99| 熟女激情五月天 | 五月婷婷乱| 亚洲五月天婷婷| 三日本无码| AV九九| 色久五月天| 成人深爱丁香五月| 九月丁香亭亭| 婷婷久久精品| 玖玖激情网| 亚洲精品一区中文字幕乱码| 婷色五月天| 日韩在线一级| 婷婷五月天激情小说| 丁香五月亚洲无码| 色婷婷五月基地在线| 激情综合99| 91热久| 五月婷婷很很色| 九九碰九九爱97| 国产亚洲色婷婷久久99精品91| 狠狠色无码| 五月婷婷深深的爱| 五月婷丁香花| 欧美又粗又大一区二区在线观看| 91超级碰碰碰| 99色婷婷视频| 婷婷导航| 天天玩天天摸| WWW丁香五月| 色综合久久44| 中文网AV| 玖玖资源部在线播放| AV大香蕉| 色色色在线播放| 色八月婷婷| 久久网日本| 先锋资源婷婷| 九色视频91| 五月丁香啪啪综合| 高清无码.com| 激情综合激情五月| 色色色色色色色色色色色色色色,网站| 开心激情久久久久久久| 日日操天天爽| pacopacomama 070722_670 素人奥様初撮りドキュメント 103 大久保純子 | 国产日韩av片| 色婷婷综合网| 婷婷五月免费观看| www.sezonghe| 九九热在线精品视频| 狠狠人人婷婷| 97久久久| 国产毛多水多女人A片| 婷婷五月天影院| 777影视理论片大全在线观看| 婷婷五月天综合网| 色约约视频一区二区三区四区五区| 一本色道久久综合狠狠躁一二三| 久久五月情| 大香AV| 色九亚洲| 99热网站在线观看| 丁香成人色情五月天| 婷婷深爱五月丁香网| 精品无码99| 激情五月丁香亭亭 | 丁香六月婷婷综合欧美| 91丨九色丨东北熟女| 丁香五月激情宗合| 丁香五月,激情五月,深爱五月| 欧美激情综合色丁香婷婷五月天| 夜色综合网| 狠狠色丁香| 成功精品影院| 婷婷五月六月丁香| 久久婷婷六月| 激情婷婷久久| 在线VA视频| 天天色天天舔天天爱天天爽| 这里只有精品久久| 婷婷伊人| 色婷婷综合丁香五月天| 久久久妻人人人| 婷婷六月激情丁香| 欧美性爱中文字幕| 天天射网站| 九九热91| 婷婷狠狠久久| 中文久久婷婷| 日韩无码专区| 欧美啪啪9| 午夜色色色极品视频| 亚洲国产精品成人va在线观看| 婷婷色基地| 久久大香蕉| 淫五月停停| 亚洲婷婷久久综合| 五月色精品| 丁香色综合| 三年高清大片免费观看国语| 99热免费精品| 五月婷婷丁香狠狠撸久久| 亚洲综合另类| 涩丁香91| 激情综合网,婷婷| 久久这里只有精品热在99| 久久免费精彩视频| 久久9精品视频| 五月天婷婷网站| 国产avapp 网| 色色丁香婷婷五月天| 97在线精品| 国语精品探花| 色婷婷基地 | 久99热在线观看| 欧美美女国产日韩一区二区久| 开心激情播播五月天| 婷婷久久大香蕉| 18久久| 日本本土色网第一区| 成人丁香婷婷| 夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂亚洲亚洲亚洲亚洲亚洲亚洲亚洲亚洲色 | 色伊人啪| 五月婷婷中文| 色噜噜婷婷| 久久婷婷视频| 在线中文av| 五月婷婷综合在线视频小说| 少妇搡BBBB搡BBB搡毛茸茸| 91超级碰在线视频| 亚洲丁香五月天视频| 国产肥白大熟妇BBBB视频| 成人 在线 日韩| 丁香五月成人社区| 色色色五月天婷婷| 天天 青草 丝袜制服 在线| 1024人妻| 欧美天堂久久| 4399在线日本A片| 五月婷av| 深爱激清网| 性欧美大战久久久久久久83| 亚洲色情免费网| 97操视频| 91婷婷丁香| 色色无码| 91精品91久久久中77777久久玖玖九九| 乱色色色| 九九美女视频| 亚洲色另类| 香蕉久久av一区二区三区| 少妇性按摩无码中文A片| 日本九九九九| 久久婷婷五月综合| 色狠狠五月天| 九九热在线精品视频| 久久视频婷婷视频| 91狠狠色丁香婷婷综合久久| 九九热这里只有精品7| 五月婷婷丁香啪啪| 中文字幕在线资源| 五月丁香六月婷婷啪啪| 26uuu淫色| 夜夜撸日日操| 久热这里有精品视频| 成人AV在线电影| 激情五月深爱五月| 欧亚成人A片一区二区| 亚洲综合网区| 无码免费人妻A片AAA毛片西瓜| 丁香六月婷婷缴情欧美| 中国女人内射6XXXXX| 色五月天综合| 亚洲六月综合激情久久下卡| 色婷婷五月中文字幕在线dvd| 色综合99无码 | 综合色五月| 99热精品在线播放| 风流少妇A片一区二区蜜桃 | 亚洲精品一区无码A片| 99热精品少| 中文字幕无码人妻少妇免费视频| 久久深爱激情网| 日本97在线观看| www.com五月天| 熟女啪啪视频| 日本三级日本三级99| 国产阿姨日皮艹逼内射视频| 热久综合| 色五月丁香婷婷久草| 香蕉国产2013| 四季8848精品成人免费网站| 丁香五月欧美| 婷婷激情五月天7| 国内一级片| 99热九九热| 久久久99婷婷久久久久久| 五月丁香六月成人| 视色综合| 日本久久婷| 婷婷激情综合| 婷婷五月天黄色小说| 婷婷五月激情的图片| 五月婷婷天| 五月天天天开心激情网| 绿色小导航AV| 色五月婷婷久久| 久久99成人性爱高清视频| 夜夜爱爱亚洲| 国产又黄又爽又色的免费| 婷婷五月18永久免费视频| 九九人人精品| 影音先锋91在线资源站| 天堂色婷婷| 婷婷六月色丁香视频在线观看| 色欲久久99精品久久久久久| 日本三级大片| 狠狠色噜噜| 国产99热| 大香蕉久久久久久久久| 久久久久久人妻| 五月婷婷之美女图片| 五月婷精品| 国产在线激情视频| 激情婷婷| 精品人妻一区二区三区四区不卡在| 超碰99在线观看| 97超级啪啪在线观看| 亚洲愉拍99热成人精品| 狠狠色综合五月| 超碰操网| 午夜在线成人网站免费观看| 思思热在线视频精品| 99在线小视频| 天天操夜夜玩!| 综合久久高清| 丁香五月停停av| 看片视频在线免费日产在线看| 。久久久久久久久久久久久久人妻| pom538精品视频| 国产婷伊人| 97干网站| 丁香六月婷婷色XXXXX| 免费AV黄在线播放| 色色五月天丁香婷婷| 精品国产一区二区三区四区阿崩 | 国产日批视频| 日本久久视频| 九九艹女| 国产精品日本一区二区在线播放 | 婷婷五月天亚洲激情戏精品| 亚洲精品视频在线播放| 亚洲日韩一页精品发布| www.五月婷婷| 色天五月天在线观看视频| 色人五月婷婷| 91精品综合久久久久久五月丁香| 天天日夜夜曹| 91九色精品熟女内射| 色色色.com| 人人干人人操人人摸| 亚洲色婷婷色| 噜噜在线| 久久精品五月| 欧美色性色好| 久久五月天丁香花| 精品成人a v无码内射| 日本99热| 超碰激情网| 亚洲影院婷婷色| 欧美大片免费播放器| 任你爽免费视频| 日日噜噜夜夜狠狠久久丁香六月| 色狠狠色综合| 色五月婷婷色五月| 色婷婷五月天在线| 天天摸夜夜爽天天做| 婷婷五月丁香六月伊人网| 五月丁香色色| 五月婷婷综合久久| 另类A片| 五月丁香婷婷综合网色欲| 婷婷综合在线| 五月激情偷拍| 婷婷中文字幕| 狠狠干综合| 伊人久久大香网| 丁香婷婷性久久| 色五月综合在线| 丁香五月婷婷色| 亚洲综合五月天综合| 无码人妻一区二区三区四区| 成人婷婷深爱综合网| 五月天激情图片| 99久扒热| www.狠狠| 深爱网深爱综合网| 天天爱天天做天天爽| 婷婷五月永远18免费久久久| 色五月婷婷DVD| 五月天伊人手机在线播放AV| 九九这里有精品视频| 丁香五月婷婷色五月| 99在线观看视频精品| 天天噜天天爱| 亚洲夜夜操| 色综合射婷婷| 日韩操逼大片| 狠狠操狠狠操AV| 色9999日韩国产| 极品人妻VIDEOSSS人妻| 九九热99精品| 天天综合网亚洲网站| 激情五月婷婷色播网| 99热这里只有精品国产精品| 久大香蕉| 亚洲激情网| 男人先锋久久| 国产中文字幕在线视频免费观看 | 五月婷婷狠狠干| 日韩成人AV在线| 亚洲小说五月婷婷| 激情综合色婷婷啪啪六月天| 婷婷内射视频在线| 婷婷五月天影院| 亚洲日本韩国| 欧美日韩成人在线网站| 丁香色五月直播| 99激情网| 五月天深爱激情网| 中文字幕人妻在线| 中文字幕1区2区。| 婷婷五月天丁香成人社区| 99九九玖玖| www.99热最新视频8| 五月天深爱激情网| 91日韩在线| 99热久久这里只有精品| 天堂亚洲 在线| 思思99热这里只有精品| 五月婷婷色吧!| 色综合射婷婷| 九九在线精点品| 五月天综合在线网| 婷婷的久久网站| 亚洲激情高潮| 五月丁香婷婷婷激情爱爱| 五月婷婷丁香| 色色影院黄大片| 五月天婷婷自拍图片在线观看| 另类激情五月天| 狠狠爱综合| www.99色在线| 五月6香色婷婷视频| 日日夜夜爽| 99精品热| 丁香社92视频| 婷婷五月天色网久| 九九黄色网| 99丝袜精品视频网站| 色婷婷XXXXX| 色欲天天综合| 欧美搡BBBBB摔BBBBB| 热热99爱爱| 久久婷婷五月综合色播| 操操国产| 欧美黄色一级| 激情五月婷婷在线区| 久久98热re| 精品热青草| 天天操夜夜爽天天操| 婷婷五月丁香综合激情| 婷婷丁香九色| 青草性爱视频| 91热久久| 激情无码网| 天天舔天天插天天干| 97色色网| 久9久9热久热| 少妇性按摩无码中文A片| 草草夜夜操| 五月丁香婷婷色| 五月婷婷av| 日韩人妻AV在线| 热久久91| 婷婷大乡焦噜噜| 玖玖婷婷色欲| 思思精品久久艹| 色色色综合| 婷婷综合网站| 超碰在线综合| 欧美一线视频| 久久精品视频在这里有| 日韩不卡123| 激情 婷婷 丁香五月天| 五月天激情网站| 大香蕉久久草| 99这里只有精品| 久久天堂女人| 激情五月天伊人影院| av一级棒av| 亚洲乱码成人| 51精品国自产在线| 亚洲熟妇AV综合网五月丁香伊人| 国产成人网站在线观看| 丁香五月天婷婷在线视频| 久久久婷婷婷| 黄网在线免费观看| 超碰在线人妻| 九九熱最新視頻| 丁香婷婷色五月| 久操人妻| 日狠狠| 色综合爽| 国产成人精品亚洲线观看| 色黑鬼导航| 拍真实国产伦偷精品| 激情六月丁香综合| 亚洲视频在线观看| 婷婷五月免费在线| 色婷婷小视频| 天天激情站| 在线综合91| 99色视频| 天堂A∨在线| 天天色天天日| 五月天婷五月天综合网在线观| 久久久国产精品黄毛片| 亚洲精品色色色| 日本三级日本黄色| 五月天激情国产综合婷婷婷| 久久草中文日韩欧美| 色色色色色色色色网站| 婷婷基地成人五月天| 国产真实乱了老女人视频| 六月婷婷私欲| 激情文学 综合 九月| 射区导航| 五月天婷五月天综合网小说首页-五月天激激婷婷大综合,婷婷亚洲综合五月天小说 | 日本天堂免费99| 我爱大香蕉| 久久这里有精品| 99亚洲欧洲| 啪啪五月婷婷| 婷婷操超碰| 免费色色色| 激情色五月天| 97热精品| 色黑鬼导航| 精品自拍97| 永久免费视频| 色婷婷最爱五月| 婷婷丁香婷婷97| 亚洲av免费在线| 六月婷婷五月丁香首页| 国产精品成av人在线视午夜片| 激情五月小说婷婷| 五月天婷婷激情网| 性爱激情五月| 日本爆乳片手机在线播放| 五月天另类小说亚洲| 婷婷在线五月综合| 99久久9| www.十八禁不禁AV.com| 久Se视频在线观看| 伊人综合网站| 色色五月天丁香婷婷| 五月丁香怕啪啪| 婷婷五月精品| 99精品无码| 日日爱699| 久思思热视频在线观看| 亚洲天堂碰碰婷婷| 91狠狠综合久久| 婷婷五月美女直播| 丁香五月婷婷少妇| 色婷婷色| 一级AV片| 婷婷色导航| WWW.夜夜| 亚洲天天免费| 久久久性爱网| 殴美97色| 狠狠干综合| 色色色婷婷五月| 天插天啪天啪天啪| 丁香六月婷婷激情综合| 天天操精品| 中文字幕日本最新乱码视频| 99久精品视频| 思思精品久久艹 | 久久久精品AV| 久热这里只有精品在线| 亚洲五月天第一综合干| 六月激情婷婷综合| 丁香色婷婷色手机免费在线| 婷婷综合网| 色99在线| 色色网站在线| 精品成人无码A片观看香草视频 | 99在线播放| 亚洲V国产V欧美V久久久久久| 综合久久9| 开心激情网五月天| 校园激情 亚洲| 国产日批视频| 丁香五月婷婷六月婷婷| 97丁香婷婷| 亚洲天堂有码| 超碰九热| 激情五月婷婷老师| 国产成人精品一区二三区熟女在线| 色婷婷欧美| 网站免费一站二站| 色婷婷狠狠18| 热99精品视频| 色色色色色色综合| 五月婷庭丁香在线| 99久久99热| 日韩欧美五月丁综合| 久久资源网五月婷| 狼人婷婷久久| 9有码中文| 91丨九色|PRNY熟妇| 色婷婷综合丁香五月天| 天天视频精品9| 色婷婷香蕉在线| 婷婷99视频在线| 五月综合激情婷婷六月色窝| 99成人| 9l视频自拍9l九色成人| 99热精品在线在线| 色五月激情网| 成人精品一区日本无码网 | 亚洲人妻AV| 久久久.COM| 色久九| 亚洲啪啪视频| 天天操天天日天天爱| 99ri在线观看视频| 99视频色在线观看| 色五月天天在线观看资源站| 亚洲激情淫网| 五月婷婷久久开心网| 爱草视频在线| 欧美综合五月丁香六月婷| 日本在线噜噜| 婷婷五月天另类网站| 色欲AV导航| 99色色色色| 成人免费高清在线播放| 色婷婷888| 婷婷伊人网| 99久久9| 亚洲在线免费成人| 九九无毛| 性高潮久久久久久-九九九九九九九九九九热-成人AV | 欧美顶级少妇做爰HD| 成人无码精品1区2区3区免费看| 色~性~乱~伦~噜| 婷婷亚洲综合| 国产偷人爽久久久久久老妇APP| 九九无码AV| 99超级超级超级碰| 天堂资源欧日浪女在线播放| www99热| 91操操操| 色色综合网络| 91性高潮久久久久久久久| 五月丁香久久| 久久五月婷婷综合网| 亚洲丁香婷婷| 婷婷五月香蕉| 777久久精品| 天堂AV在线看| 九九大香蕉黄色影院| 另类视频一区| 欧洲第一无人区观看| 草久私拍| 99久久精品色老| 天天免费成年人视频| www.色色色色| 天天婷婷综合亚洲亚洲| 精品香蕉99久久久久网站| 99久久激情视频| 午夜成人网站在线观看| 婷婷成人基地| 99热一本久道| 九九热只有这里精品| 色五月成人在线| 亚洲人妻Av| 97在线精品| 99热官网精品在线| 91操人| 激情小说视频图片网| www.婷婷亚洲基地| 亚洲午夜在线视频| 色碰干| 亚洲激情丁香五月基地| 婷婷五月天色播| www.色五月| 色五月激情问网站| 婷婷97狠狠干| 丁香婷婷五月天在线视频| 啪啪综合网| 青青草原爱爱网| 袁子仪视频观看| 日本色爽| 综合色、色综合| www99久久| 天天色综合网吨吧| 色9999日韩国产| 99久久偷拍视频| 激情五月天在线观看色婷婷| 综合网激情| wwwss在线观看| 秋霞日本免费毛片A片| www.狠狠狠狠| www.婷婷| 久久五月天 91| 狠狠狠婷婷五月综合| 第四色五月婷婷| 大香蕉五月婷婷丁香| 九九黄色网| 激情5月婷婷| 免费黄网不卡AV| 大香蕉婷婷| 国产精品色婷婷久久久精品| 超碰人妻公开在线| 婷婷五月亚洲激情| 97性视频| 最新AV在线观看| 26uuu91| 操91| 五月婷婷啪啪啪| 69色婷婷| WWW色色色COM| 婷婷五月天亚洲综合网| 26UUU欧美激情一区二区| 九九伦子片| 深爱激情四射| 99热婷婷| 久久色五月| 色偷偷色婷婷| 婷婷五月天av小说| 狠狠草婷婷| 天天天天干| 97精品欧美91久久久久久久| 99色精品| 婷婷五月天毛片| 激情五月天小说| 婷婷色色亚洲| 成人欧美Va| 人人干人人操人人摸人人做| 玖玖婷婷视频| 99人人操人人摸| 国产精品久久久爽爽爽麻豆色哟哟| 六月丁香婷婷五月天| 另类A片| 婷婷久久伊人| 夜夜撸日日操| yiqicaoav| 激情五月,婷婷五月,丁香五月| 国产伦亲子伦亲子视频观看| 激情网 五月天| 久久九九热视频| 国产成人网站在线观看| 91精品久久久久久77777| 在线观看免费狠狠色丁香香综合| 狠狠干婷婷| 色五月天丁香婷婷色| 狠狠色五月天| 久久婷婷五月天激情| 六月综合婷婷开心伊人| av操逼网| 99热这里只是精品| 免看黄大片AA | 日日肏天天操| 欧美黄色一级| 26uuu欧美日本| 日韩操啪| 色99自拍| 综合日本婷婷| 99热这里| 五月丁香综合激情| 99精品在线| 亚洲久久视频| 强辱丰满人妻HD中文字幕| m色激情网| 精品99*| 久久这里有精品| 一区二区无码视频| 国产va视频| 97操碰视频| 亚洲色婷婷| 五月婷婷香蕉| www,99视频| 开心五月天激情网| 99热综合在线| 天天日天天插| 天天干天天爽天天爽| 一级黄色操B| 久婷久婷| 精品国产va久久久久| 精品国产乱码久久久久久免费| 激情五月综合色婷婷| 天堂二区| 成人网在线视频| 亚洲婷婷视频| 午夜不卡久久精品无码免费| 五月天久久网站| 婷婷午夜丁香| 中字幕视频在线永久在线观看免费| www.夜夜.com| 99热费观看| 五月天婷婷久久| 久色国产| 噜噜操操| 欧美S码亚洲码精品M码| 丁香五月婷中字幕| 日本色道视频网站| 久久久精品婷婷五月天| 另类激情五月在线视频欧美| 丁香五月综合色婷婷| 五月天婷婷青青草| 五月婷婷熟女| 大香蕉啪啪啪| 久久久9久| 久久综合人妻| 99热这里只有精品在线播放| 色爱综合网| 色爆五月| 91操片| 我要射综合| 婷婷五月天奸女| 激情性爱五月天网页| 五月丁香激| 婷婷五月天免费| 日本久久性| www.97视频| www.婷婷亚洲基地| 狠狠色无码| 亚洲av网站| 99久久婷婷精品视频| 激情五月丁香五月| 婷婷六月丁香欧美视频在线| 激情综合网五月在线播放| 丁香花综合永久入口| 99熟女| 丁香五月天激情视频| 26uuu淫色| 超碰色色综合| 久久婷鲁| 99在线免费观看| 97五月天| 天天干天天操天天上| 人人爱操| 国产视频福利| 黄色录像网点| 婷婷成人视频| 久久丁香五月| 激情综合五月色丁香婷婷 | 一本大道熟女人妻中文字幕在线 | 91综合视频在线| 国产又爽又猛又粗的视频A片 | 综合99久久天天综合| 国产毛片精品一区二区色欲黄A片| 91ncm视频| 五月丁香六月综合激情无码软件亮点 | 色九月| 91久久久久久久久18| 26uuu精品国产| 婷婷激情五月天亚洲综合| 色婷婷亚洲婷婷| 久久久久久久久久久44| 夫妇交换刺激做爰| 久草婷婷| 欧洲不卡视频| www.婷婷五月天.com| 五月婷婷网站| 99精品这里只有免费视频| 婷婷丁香激情综合色情| 色噜久| 色网站9| 97操资源婷婷| 97超碰,人人舔,人人操,人人摸| a网站免费观看| 91丨九色丨熟女|新版| 五月亭亭直播| 国产精品色婷婷AV综合色色| 色狠狠综合| 天天色五月| 五月天成人伊人| 色五月婷婷五月丁香五月激情五月视频 | 五月婷婷丁香大陆免费| 激情丁香五月婷婷| 拳交大逼| www99热| 丁香五月Av| 色五月婷婷激情| 婷婷五月伦理网站| 人人干Av| 午夜电影网VA内射| 色婷婷五月天天天干天天操天天爽| 深爱激情AV| 一本久久亚洲五月婷婷| 色婷婷综合久久久久| 一区二区免费看| 久久五月激情综合| 丁香婷婷色九月| 丁香六月啪啪啪| 大香蕉九九| 激情久久久| 色黑鬼导航| 国产va在线视频| 九九在线免费观看| 狠狠色 综合色区| 精品51XX| 激情五月久久| 婷婷99中文字幕| 色婷婷操逼| 99精品免费| 五月天综合网| WWW色五月| 久re在线| 9久久精品视频| 成人五月天丁香| 欧亚色色| 深爱激情四射| 婷婷六月色播| 婷婷久久精品| 级情九色| 国产精产国品一二三在观看| 日本欧美成人片AAAA| 久久受www免费人成| 狠干综合| 色婷婷av在线| 九九免费精品在线视频| 五月激情丁香| se99视频| 婷婷综合网| 专区无日本视频高清8| av五月天婷婷丁香| 色五月婷婷小说亚洲中文字幕组| www.99热这里精品| 五月丁香激情综合网| 成人在线日韩| 五月天婷婷丁香成人网| 激情婷婷九月| 色之综合网| 狠狠干伊人| 色七七九九| 精品一二三区久久AAA片| 久久99大| 丁香五月网址| 久久婷五月婷| 激情都市五月天| 免费看成人747474九号视频在线观看| 色综合久久44| 中国丰满熟女A片免费观| 亚洲成Av人片乱码色第1集| 久久五月激情| 麻豆123区| 色色五月天丁香婷婷| 亚洲成人综合在线| 超碰99热在线观看| AV色五月婷婷| 丁香色五月婷婷91桃色| 久久婷婷五月丁香网| 国产精品久久久爽爽爽麻豆色哟哟| 丁香伊人五月色婷婷五十路| 99啪啪| 青青五月天婷婷| 99人妻碰碰碰久久久久视| 丁香五月天堂网| 丁香婷婷老司机久操| 热中文字幕| 五月花综合视频| 色综合色色色| 久久一操| 丁香婷婷免费| 色五月 五月婷婷| 四LLL少妇BBBB槡BBBB| 2015WWW永久免费观看播放| 丁香色五月婷婷17C| 婷婷五月天黄色小说| 啪啪激情综合| 超碰在线网站9| 99热视精品| 婷久久久| 丁香五月天偷拍| 色99欧洲色19| 亚洲精品成人| 超碰伊人碰婷婷五月| 欧美群妇大交乱婬网| 可以免费观看的AV| 五月天婷婷色播综合在线| 九九热10| 噜噜色婷婷| 亚洲亚洲人成综合网络| 激情久久肏屄视频| 五月天激情亚洲| 成人亚洲精品久久久久| 91婷婷搞| 婷婷五月天综合久久| 国产日产亚系列精品版优势| 大香蕉九操| 性色五月天| 97伦乱| 色婷婷丁香综合中文字幕| 久99热| 中字幕视频在线永久在线观看免费 | 欧美性爱专区| 婷婷五月天视频小说| XX色综合| 操人精品| 97色色在线视频| 日韩丰满少妇无码内射| 在线成人网站| 99爱视频| 伊人久久大香线蕉AV最新午夜| 五月人人丁香婷婷五月人人丁香| 亚洲中文字幕av| 99手机在线精品视频| 久热精品视频| 五月丁香婷婷成人网| 婷婷五月四狠狠| 热五月婷婷| 99在线视频女女视频| 丁香五月天啪啪a日本| 色.五月综合网| 久久6这里只有精品| 色色色色色综合| www久久99| 狠狠操天天干| 91热久| 天天天操天天天日| 五月婷婷影视| 秋霞影音91人妻久久| 精品一二三区久久AAA片| 五月丁香日本在线视频观看| 99啪啪| 久久九九99| 天堂综合久久 | BT综合在线视频观看| 99热1| 国产9色在线/日韩| 五月婷婷日| 久久超级碰碰| 精品久久9| Www99热| 五月婷婷色综图片| 插逼综合网| 丁香五月婷婷在线观看| 在线不卡的视频| 久久国产色| 91色吧网| 九九这里是免费的视频5| 9久久久久| 99色在线| 九九精品在线视频观看| 无码色色色| 六月综和久久| 久久久18| 丁香五月色播中文在线播放| 五月天激情国产综合婷婷婷| sisi热国产| 开心激情站| 久久综合热17c| www.9操| 天天爽天天日天天舔| 欧美激情 日韩无码 婷婷 五月天| 五月天色不卡| 色一情一乱一乱一区91| 婷婷激情九月| 婷婷五月综合在线| 六月婷婷激情| 性天天中文网| 色色九区| 久/久精品99看9| 色婷婷五月天天天天天| 亚洲A片成人无码久久精品青桔 | 婷婷在线精品| 天天做天天爱天天爽| 超碰成人电影| 国精产品一区一区三区免费视频 | 开心五月网| 亚洲精品色色色| 九九激情| 久久亚洲婷婷| 婷婷五月激情丁香激情| www.色婷婷| 伊人色欲五月天| 99热只有| 操操碰| 乱精品一区字幕二区| 人人操人av| 久久99精品日本| 五月开心网| 在线色五月婷婷| 97在线日本| 99re思思久久| 丁香婷婷激情五月色| 久久丁香网| 91九色视频| 婷婷六月天精品| 一级性感毛片| 激情五月激情综合网| 999影院成人在线影院| 色狠狠色综合久久久绯色AⅤ影视| 人妻精品一区二区三区| 就爱射中文字幕资源网| 九九色之九九色88| 亚洲精品V天堂中文字幕| 99网99热| 亚洲XX日本| 日本色99|