精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

從零開始構(gòu)建簡(jiǎn)單人工神經(jīng)網(wǎng)絡(luò):1個(gè)輸入層和1個(gè)輸出層

譯文
人工智能 深度學(xué)習(xí)
本上下篇將介紹僅使用numpy Python庫(kù)從零開始構(gòu)建人工神經(jīng)網(wǎng)絡(luò)(ANN)。上篇將介紹構(gòu)建一個(gè)很簡(jiǎn)單的ANN,只有1個(gè)輸入層和1個(gè)輸出層,沒有隱藏層。下篇將介紹構(gòu)建一個(gè)有1個(gè)輸入層、1個(gè)隱藏層和1個(gè)輸出層的ANN。

【51CTO.com快譯】本上下篇將介紹僅使用numpy Python庫(kù)從零開始構(gòu)建人工神經(jīng)網(wǎng)絡(luò)(ANN)。

上篇將介紹構(gòu)建一個(gè)很簡(jiǎn)單的ANN,只有1個(gè)輸入層和1個(gè)輸出層,沒有隱藏層。

下篇將介紹構(gòu)建一個(gè)有1個(gè)輸入層、1個(gè)隱藏層和1個(gè)輸出層的ANN。

為何從零開始?

有許多深度學(xué)習(xí)庫(kù)(Keras、TensorFlow和PyTorch等)可僅用幾行代碼構(gòu)建一個(gè)神經(jīng)網(wǎng)絡(luò)。然而,如果你真想了解神經(jīng)網(wǎng)絡(luò)的底層運(yùn)作,建議學(xué)習(xí)如何使用Python或任何其他編程語言從零開始為神經(jīng)網(wǎng)絡(luò)編程。

不妨創(chuàng)建某個(gè)隨機(jī)數(shù)據(jù)集:

圖1. 為簡(jiǎn)單起見,隨機(jī)數(shù)據(jù)集帶二進(jìn)制值

上面表格有五列:Person、X1、X2、X3和Y。1表示true,0表示false。我們的任務(wù)是創(chuàng)建一個(gè)能夠基于X1、X2和X3的值來預(yù)測(cè)Y值的人工神經(jīng)網(wǎng)絡(luò)。

我們將創(chuàng)建一個(gè)有1個(gè)輸入層、1個(gè)輸出層而沒有隱藏層的人工神經(jīng)網(wǎng)絡(luò)。開始編程前,先不妨看看我們的神經(jīng)網(wǎng)絡(luò)在理論上將如何執(zhí)行:

ANN理論

人工神經(jīng)網(wǎng)絡(luò)是一種監(jiān)督式學(xué)習(xí)算法,這意味著我們?yōu)樗峁┖凶宰兞康妮斎霐?shù)據(jù)和含有因變量的輸出數(shù)據(jù)。比如在該示例中,自變量是X1、X2和X3,因變量是Y。

首先,ANN進(jìn)行一些隨機(jī)預(yù)測(cè),將這些預(yù)測(cè)與正確的輸出進(jìn)行比較,計(jì)算出誤差(預(yù)測(cè)值與實(shí)際值之間的差)。找出實(shí)際值與傳播值之間的差異的函數(shù)名為成本函數(shù)(cost function)。這里的成本指誤差。我們的目標(biāo)是使成本函數(shù)最小化。訓(xùn)練神經(jīng)網(wǎng)絡(luò)基本上是指使成本函數(shù)最小化。下面會(huì)介紹如何執(zhí)行此任務(wù)。

神經(jīng)網(wǎng)絡(luò)分兩個(gè)階段執(zhí)行:前饋階段和反向傳播階段。下面詳細(xì)介紹這兩個(gè)步驟。

前饋

圖2

來源:?jiǎn)螌由窠?jīng)網(wǎng)絡(luò),又叫Perceptron

在ANN的前饋階段,基于輸入節(jié)點(diǎn)中的值和權(quán)重進(jìn)行預(yù)測(cè)。如果看一下上圖中的神經(jīng)網(wǎng)絡(luò),會(huì)看到數(shù)據(jù)集中有三個(gè)特征:X1、X2和X3,因此第一層(又叫輸入層)中有三個(gè)節(jié)點(diǎn)。

神經(jīng)網(wǎng)絡(luò)的權(quán)重基本上是我們要調(diào)整的字符串,以便能夠正確預(yù)測(cè)輸出。請(qǐng)記住,每個(gè)輸入特性只有一個(gè)權(quán)重。

以下是在ANN的前饋階段所執(zhí)行的步驟:

第1步:計(jì)算輸入和權(quán)重之間的點(diǎn)積

輸入層中的節(jié)點(diǎn)通過三個(gè)權(quán)重參數(shù)與輸出層連接。在輸出層中,輸入節(jié)點(diǎn)中的值與對(duì)應(yīng)的權(quán)重相乘并相加。最后,偏置項(xiàng)b添加到總和。

為什么需要偏置項(xiàng)?

假設(shè)某個(gè)人有輸入值(0,0,0),輸入節(jié)點(diǎn)和權(quán)重的乘積之和將為零。在這種情況下,無論我們?cè)趺从?xùn)練算法,輸出都將始終為零。因此,為了能夠做出預(yù)測(cè),即使我們沒有關(guān)于該人的任何非零信息,也需要一個(gè)偏置項(xiàng)。偏置項(xiàng)對(duì)于構(gòu)建穩(wěn)健的神經(jīng)網(wǎng)絡(luò)而言必不可少。

數(shù)學(xué)上,點(diǎn)積的總和:

X.W=x1.w1 + x2.w2 + x3.w3 + b

第2步:通過激活函數(shù)傳遞點(diǎn)積(X.W)的總和

點(diǎn)積XW可以生成任何一組值。然而在我們的輸出中,我們有1和0形式的值。我們希望輸出有同樣的格式。為此,我們需要一個(gè)激活函數(shù)(Activation Function),它將輸入值限制在0到1之間。因此,我們當(dāng)然會(huì)使用Sigmoid激活函數(shù)。

圖3. Sigmoid激活函數(shù)

輸入為0時(shí),Sigmoid函數(shù)返回0.5。如果輸入是大正數(shù),返回接近1的值。負(fù)輸入的情況下,Sigmoid函數(shù)輸出的值接近零。

因此,它特別適用于我們要預(yù)測(cè)概率作為輸出的模型。由于概念只存在于0到1之間,Sigmoid函數(shù)是適合我們這個(gè)問題的選擇。

上圖中z是點(diǎn)積X.W的總和。

數(shù)學(xué)上,Sigmoid激活函數(shù)是:

圖4. Sigmoid激活函數(shù)

總結(jié)一下到目前為止所做的工作。首先,我們要找到帶權(quán)重的輸入特征(自變量矩陣)的點(diǎn)積。接著,通過激活函數(shù)傳遞點(diǎn)積的總和。激活函數(shù)的結(jié)果基本上是輸入特征的預(yù)測(cè)輸出。

反向傳播

一開始,進(jìn)行任何訓(xùn)練之前,神經(jīng)網(wǎng)絡(luò)進(jìn)行隨機(jī)預(yù)測(cè),這種預(yù)測(cè)當(dāng)然是不正確的。

我們先讓網(wǎng)絡(luò)做出隨機(jī)輸出預(yù)測(cè)。然后,我們將神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)輸出與實(shí)際輸出進(jìn)行比較。接下來,我們更新權(quán)重和偏置,并確保預(yù)測(cè)輸出更接近實(shí)際輸出。在這個(gè)階段,我們訓(xùn)練算法。不妨看一下反向傳播階段涉及的步驟。

第1步:計(jì)算成本

此階段的第一步是找到預(yù)測(cè)成本。可以通過找到預(yù)測(cè)輸出值和實(shí)際輸出值之間的差來計(jì)算預(yù)測(cè)成本。如果差很大,成本也將很大。

我們將使用均方誤差即MSE成本函數(shù)。成本函數(shù)是找到給定輸出預(yù)測(cè)成本的函數(shù)。

圖5. 均方誤差

這里,Yi是實(shí)際輸出值,Ŷi是預(yù)測(cè)輸出值,n是觀察次數(shù)。

第2步:使成本最小化

我們的最終目的是微調(diào)神經(jīng)網(wǎng)絡(luò)的權(quán)重,并使成本最小化。如果你觀察仔細(xì),會(huì)了解到我們只能控制權(quán)重和偏置,其他一切不在控制范圍之內(nèi)。我們無法控制輸入,無法控制點(diǎn)積,無法操縱Sigmoid函數(shù)。

為了使成本最小化,我們需要找到權(quán)重和偏置值,確保成本函數(shù)返回最小值。成本越小,預(yù)測(cè)就越正確。

要找到函數(shù)的最小值,我們可以使用梯度下降算法。梯度下降可以用數(shù)學(xué)表示為:

圖6. 使用梯度下降更新權(quán)重

𝛛Error是成本函數(shù)。上面的等式告訴我們找到關(guān)于每個(gè)權(quán)重和偏置的成本函數(shù)的偏導(dǎo)數(shù),然后從現(xiàn)有權(quán)重中減去結(jié)果以得到新的權(quán)重。

函數(shù)的導(dǎo)數(shù)給出了在任何給定點(diǎn)的斜率。為了找到成本是增加還是減少,給定權(quán)重值,我們可以找到該特定權(quán)重值的函數(shù)導(dǎo)數(shù)。如果成本隨重量增加而增加,導(dǎo)數(shù)將返回正值,然后將其從現(xiàn)有值中減去。

另一方面,如果成本隨重量增加而降低,將返回負(fù)值,該值將被添加到現(xiàn)有的權(quán)重值中,因?yàn)樨?fù)負(fù)得正。

在上面公式中,a名為學(xué)習(xí)速率,乘以導(dǎo)數(shù)。學(xué)習(xí)速率決定了我們的算法學(xué)習(xí)的速度。

我們需要對(duì)所有權(quán)重和偏置重復(fù)執(zhí)行梯度下降操作,直到成本最小化,并且成本函數(shù)返回的值接近零。

現(xiàn)在是實(shí)現(xiàn)我們迄今為止研究的人工神經(jīng)網(wǎng)絡(luò)的時(shí)候了。我們將用Python創(chuàng)建一個(gè)簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò),有1個(gè)輸入層和1個(gè)輸出層。

使用numpy實(shí)現(xiàn)人工神經(jīng)網(wǎng)絡(luò)

圖7

圖片來源:hackernoon.com

要采取的步驟:

1.定義自變量和因變量

2.定義超參數(shù)

3.定義激活函數(shù)及其導(dǎo)數(shù)

4.訓(xùn)練模型

5.做出預(yù)測(cè)

第1步:先創(chuàng)建自變量或輸入特征集以及相應(yīng)的因變量或標(biāo)簽。

  1. #Independent variables  
  2. input_set = np.array([[0,1,0],  
  3. [0,0,1],  
  4. [1,0,0],  
  5. [1,1,0],  
  6. [1,1,1],  
  7. [0,1,1],  
  8. [0,1,0]])#Dependent variable  
  9. labels = np.array([[1,  
  10. 0,  
  11. 0,  
  12. 1,  
  13. 1,  
  14. 0,  
  15. 1]])  
  16. labels = labels.reshape(7,1) #to convert labels to vector 

我們的輸入集含有七個(gè)記錄。同樣,我們還創(chuàng)建了一個(gè)標(biāo)簽集,含有輸入集中每個(gè)記錄的對(duì)應(yīng)標(biāo)簽。標(biāo)簽是我們希望ANN預(yù)測(cè)的值。

第2步:定義超參數(shù)。

我們將使用numpy的random.seed函數(shù),以便在執(zhí)行以下代碼時(shí)可以獲得同樣的隨機(jī)值。

接下來,我們使用正態(tài)分布的隨機(jī)數(shù)初始化權(quán)重。由于輸入中有三個(gè)特征,因此我們有三個(gè)權(quán)重的向量。然后,我們使用另一個(gè)隨機(jī)數(shù)初始化偏置值。最后,我們將學(xué)習(xí)速率設(shè)置為0.05。

  1. np.random.seed(42)  
  2. weights = np.random.rand(3,1)  
  3. bias = np.random.rand(1)  
  4. lr = 0.05 #learning rate 

第3步:定義激活函數(shù)及其導(dǎo)數(shù):我們的激活函數(shù)是Sigmoid函數(shù)。

  1. def sigmoid(x):  
  2. return 1/(1+np.exp(-x)) 

現(xiàn)在定義計(jì)算Sigmoid函數(shù)導(dǎo)數(shù)的函數(shù)。

  1. def sigmoid_derivative(x):  
  2. return sigmoid(x)*(1-sigmoid(x)) 

第4步:是時(shí)候訓(xùn)練ANN模型了。

我們將從定義輪次(epoch)數(shù)量開始。輪次是我們想針對(duì)數(shù)據(jù)集訓(xùn)練算法的次數(shù)。我們將針對(duì)數(shù)據(jù)訓(xùn)練算法25000次,因此epoch將為25000。可以嘗試不同的數(shù)字以進(jìn)一步降低成本。

  1. for epoch in range(25000):  
  2. inputs = input_set  
  3. XW = np.dot(inputs, weights)+ bias  
  4. z = sigmoid(XW)  
  5. error = z - labels  
  6. print(error.sum())  
  7. dcost = error  
  8. dpred = sigmoid_derivative(z)  
  9. z_del = dcost * dpred  
  10. inputs = input_set.T  
  11. weights = weights - lr*np.dot(inputs, z_del)  
  12. for num in z_del:  
  13. bias = bias - lr*num 

不妨了解每個(gè)步驟,然后進(jìn)入到預(yù)測(cè)的最后一步。

我們將輸入input_set中的值存儲(chǔ)到input變量中,以便在每次迭代中都保留input_set的值不變。

  1. inputs = input_set 

接下來,我們找到輸入和權(quán)重的點(diǎn)積,并為其添加偏置。(前饋階段的第1步)

  1. XW = np.dot(inputs, weights)+ bias 

接下來,我們通過Sigmoid激活函數(shù)傳遞點(diǎn)積。(前饋階段的第2步)

  1. z = sigmoid(XW) 

這就完成了算法的前饋部分,現(xiàn)在是開始反向傳播的時(shí)候了。

變量z含有預(yù)測(cè)的輸出。反向傳播的第一步是找到誤差。

  1. error = z - labels  
  2. print(error.sum()) 

我們知道成本函數(shù)是:

圖8

我們需要從每個(gè)權(quán)重方面求該函數(shù)的微分,這可以使用微分鏈?zhǔn)椒▌t(chain rule of differentiation)來輕松完成。我將跳過推導(dǎo)部分,但如果有人感興趣,請(qǐng)留言。

因此,就任何權(quán)重而言,成本函數(shù)的最終導(dǎo)數(shù)是:

  1. slope = input x dcost x dpred 

現(xiàn)在,斜率可以簡(jiǎn)化為:

  1. dcost = error  
  2. dpred = sigmoid_derivative(z) 
  3. z_del = dcost * dpred  
  4. inputs = input_set.T  
  5. weights = weight-lr*np.dot(inputs, z_del) 

我們有z_del變量,含有dcost和dpred的乘積。我們拿輸入特征矩陣的轉(zhuǎn)置與z_del相乘,而不是遍歷每個(gè)記錄并拿輸入與對(duì)應(yīng)的z_del相乘。

最后,我們將學(xué)習(xí)速率變量lr與導(dǎo)數(shù)相乘,以加快學(xué)習(xí)速度。

除了更新權(quán)重外,我們還要更新偏置項(xiàng)。

  1. for num in z_del:  
  2. bias = bias - lr*num 

一旦循環(huán)開始,你會(huì)看到總誤差開始減小;訓(xùn)練結(jié)束時(shí),誤差將保留為很小的值。

  1. -0.001415035616137969  
  2. -0.0014150128584959256  
  3. -0.0014149901015685952  
  4. -0.0014149673453557714  
  5. -0.0014149445898578358  
  6. -0.00141492183507419  
  7. -0.0014148990810050437  
  8. -0.0014148763276499686  
  9. -0.0014148535750089977  
  10. -0.0014148308230825385  
  11. -0.0014148080718707524  
  12. -0.0014147853213728624  
  13. -0.0014147625715897338  
  14. -0.0014147398225201734  
  15. -0.0014147170741648386  
  16. -0.001414694326523502  
  17. -0.001414671579597255  
  18. -0.0014146488333842064  
  19. -0.0014146260878853782  
  20. -0.0014146033431002465  
  21. -0.001414580599029179  
  22. -0.0014145578556723406  
  23. -0.0014145351130293877  
  24. -0.0014145123710998  
  25. -0.0014144896298846701  
  26. -0.0014144668893831067  
  27. -0.001414444149595611  
  28. -0.0014144214105213174  
  29. -0.0014143986721605849  
  30. -0.0014143759345140276  
  31. -0.0014143531975805163  
  32. -0.001414330461361444  
  33. -0.0014143077258557749  
  34. -0.0014142849910631708  
  35. -0.00141426225698401  
  36. -0.0014142395236186895  
  37. -0.0014142167909661323  
  38. -0.001414194059027955  
  39. -0.001414171327803089  
  40. -0.001414148597290995  
  41. -0.0014141258674925626  
  42. -0.0014141031384067547  
  43. -0.0014140804100348098  
  44. -0.0014140576823759854  
  45. -0.0014140349554301636  
  46. -0.0014140122291978665  
  47. -0.001413989503678362  
  48. -0.001413966778871751  
  49. -0.001413944054778446  
  50. -0.0014139213313983257  
  51. -0.0014138986087308195  
  52. -0.0014138758867765552  
  53. -0.0014138531655347973  
  54. -0.001413830445006264  
  55. -0.0014138077251906606  
  56. -0.001413785006087985  
  57. -0.0014137622876977014  
  58. -0.0014137395700206355  
  59. -0.0014137168530558228  
  60. -0.0014136941368045382  
  61. -0.0014136714212651114  
  62. -0.0014136487064390219  
  63. -0.0014136259923249635  
  64. -0.001413603278923519  
  65. -0.0014135805662344007  
  66. -0.0014135578542581566  
  67. -0.0014135351429944293  
  68. -0.0014135124324428719  
  69. -0.0014134897226037203  
  70. -0.0014134670134771238  
  71. -0.0014134443050626295  
  72. -0.0014134215973605428  
  73. -0.0014133988903706311 

第5步:作出預(yù)測(cè)

是時(shí)候作出一些預(yù)測(cè)了。先用[1,0,0]試一下:

  1. single_pt = np.array([1,0,0])  
  2. result = sigmoid(np.dot(single_pt, weights) + bias)  
  3. print(result) 

輸出:

  1. [0.01031463] 

如你所見,輸出更接近0而不是1,因此分類為0。

不妨再用[0,1,0]試一下:

  1. single_pt = np.array([0,1,0])  
  2. result = sigmoid(np.dot(single_pt, weights) + bias)  
  3. print(result)   

 

輸出:

  1. [0.99440207] 

如你所見,輸出更接近1而不是0,因此分類為1。

結(jié)論

我們?cè)诒疚闹袑W(xué)習(xí)了如何使用numpy Python庫(kù),從零開始創(chuàng)建一個(gè)很簡(jiǎn)單的人工神經(jīng)網(wǎng)絡(luò),只有1個(gè)輸入層和1個(gè)輸出層。該ANN能夠?qū)€性可分離數(shù)據(jù)進(jìn)行分類。

如果我們有非線性可分離的數(shù)據(jù),我們的ANN就無法對(duì)這種類型的數(shù)據(jù)進(jìn)行分類。下篇將介紹如何構(gòu)建這樣的ANN。

原文標(biāo)題:Build an Artificial Neural Network From Scratch: Part 1,作者:Nagesh Singh Chauhan

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】

 

責(zé)任編輯:龐桂玉 來源: 51CTO
相關(guān)推薦

2020-03-26 09:00:00

神經(jīng)網(wǎng)絡(luò)AI人工智能

2020-12-27 21:09:50

神經(jīng)網(wǎng)絡(luò)AI

2018-05-28 13:12:49

深度學(xué)習(xí)Python神經(jīng)網(wǎng)絡(luò)

2024-05-27 09:00:00

2018-01-09 10:05:55

神經(jīng)網(wǎng)絡(luò)ClojureCortex

2025-02-19 18:00:00

神經(jīng)網(wǎng)絡(luò)模型AI

2012-10-09 10:57:57

光纖iODN寬帶

2018-09-17 15:12:25

人工智能神經(jīng)網(wǎng)絡(luò)編程語言

2018-08-27 17:05:48

tensorflow神經(jīng)網(wǎng)絡(luò)圖像處理

2021-08-25 13:13:58

神經(jīng)網(wǎng)絡(luò)AI算法

2018-07-03 16:10:04

神經(jīng)網(wǎng)絡(luò)生物神經(jīng)網(wǎng)絡(luò)人工神經(jīng)網(wǎng)絡(luò)

2024-03-01 19:53:37

PyBuilderPython開發(fā)

2024-07-31 08:14:17

2010-02-22 09:39:52

HTML 5Web

2017-02-10 09:30:33

數(shù)據(jù)化運(yùn)營(yíng)流量

2015-03-06 17:24:56

Android應(yīng)用安全安卓應(yīng)用安全

2024-11-05 16:19:55

2022-06-02 09:09:27

前端React低代碼編輯器

2019-07-12 07:26:26

神經(jīng)網(wǎng)絡(luò)數(shù)學(xué)樂高

2025-01-09 11:14:13

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国产白浆在线免费观看| 国产一区二区波多野结衣| 澳门成人av| 欧美日韩免费一区| 性高潮久久久久久久久| a天堂在线观看视频| 国产亚洲毛片在线| 日韩一区视频在线| xxxx黄色片| 日本精品久久| 日韩欧美一区二区三区久久| 神马欧美一区二区| 国精产品乱码一区一区三区四区| 日韩精品一卡二卡三卡四卡无卡| 色综合导航网站| 中文字幕人妻一区二区| 88久久精品| 欧美日韩日日骚| 一二三四视频社区在线| 黄色网在线看| 日本一区二区三区四区| 国产精品有限公司| 国产麻豆免费视频| 日韩精品亚洲专区| 69国产精品成人在线播放| 开心激情五月网| 亚洲欧洲色图| 欧美精品一区二区三区蜜桃视频| 女人高潮一级片| 少妇一区视频| 懂色aⅴ精品一区二区三区蜜月| 水蜜桃一区二区三区| 亚洲色偷精品一区二区三区| 激情伊人五月天久久综合| 97视频com| 九九热国产在线| 99久精品视频在线观看视频| 亚洲一区999| 久久国产精品影院| 欧美黄色网视频| 欧美精品一区二区三区四区| 亚洲欧美激情一区二区三区| av在线播放一区二区| 欧美视频一区二区三区四区| 噜噜噜久久亚洲精品国产品麻豆| av在线小说| 亚洲一区二区黄色| 国产91沈先生在线播放| 亚洲按摩av| 亚洲黄一区二区三区| 国产福利片一区二区| 国产激情在线视频| 1区2区3区精品视频| 一本色道久久综合亚洲二区三区| 第九色区av在线| 国产欧美日韩亚州综合| 视频三区二区一区| av网站在线免费播放| 国产女同互慰高潮91漫画| 日韩欧美激情一区二区| 成人免费视频| 国产精品第四页| 黄色网络在线观看| 性欧美ⅴideo另类hd| 亚洲一区二区三区精品在线| 麻豆tv在线播放| 欧美成人黑人| 欧美日本韩国一区| 超级砰砰砰97免费观看最新一期| 日韩成人在线看| 亚洲精品久久7777777| 精品无码人妻一区| 成人a'v在线播放| 北条麻妃久久精品| 国产一级久久久| 国产精品外国| 国产欧美日韩精品丝袜高跟鞋| 夜夜躁狠狠躁日日躁av| 国产剧情一区二区三区| 国产在线一区二区三区播放| 精华区一区二区三区| 国产精品不卡在线| 国产精品视频网站在线观看| 都市激情亚洲一区| 欧美日韩国产一区| 久久久久久久穴| 国产乱码精品一区二区三区四区| 这里只有视频精品| 久久久久人妻一区精品色欧美| 99热这里只有成人精品国产| 国产精品吴梦梦| 亚洲乱色熟女一区二区三区| 2023国产精品| 影音先锋男人的网站| 岛国av在线网站| 欧美日韩精品欧美日韩精品一| 日本精品一二三| 成人在线免费观看91| 欧美激情第三页| 亚洲av无码乱码国产精品fc2| 国产精品亚洲专一区二区三区| 久久国产精品久久精品国产| 老司机在线看片网av| 五月婷婷激情综合| 欧美国产日韩另类| 一本色道久久综合狠狠躁的番外| 伦理中文字幕亚洲| 波多野结衣毛片| 北条麻妃国产九九精品视频| 亚洲国产欧洲综合997久久 | 136导航精品福利| 一区二区欧美激情| 韩国av免费观看| 国产久卡久卡久卡久卡视频精品| 日本在线观看一区二区| 91jq激情在线观看| 在线综合亚洲欧美在线视频| 亚洲综合欧美综合| 亚洲综合99| 国产精品一国产精品最新章节| av在线电影观看| 色偷偷久久人人79超碰人人澡| av不卡中文字幕| 久久精品青草| 国产美女主播一区| 国自产拍在线网站网址视频| 五月天中文字幕一区二区| 91成人在线观看喷潮蘑菇| 国产精品7m凸凹视频分类| 国产成人高清激情视频在线观看| 天天舔天天干天天操| 亚洲麻豆国产自偷在线| 一区二区免费av| 久久免费大视频| 国产精品黄色av| 狠狠色伊人亚洲综合网站l| 丰满岳妇乱一区二区三区| 丰满岳乱妇一区二区| 欧美日韩一区二区高清| 亚洲aaa激情| 黄色网址在线免费观看| 欧美久久久久久久久| 国产免费美女视频| 久久精品国产色蜜蜜麻豆| 亚洲二区自拍| 四虎精品永久免费| 久久精品久久久久久| 国产精品美女一区| 国产精品三级电影| 免费av不卡在线| 91成人精品| 91在线免费看片| 国产嫩草在线视频| 亚洲福利在线播放| 久久狠狠高潮亚洲精品| 99re8在线精品视频免费播放| 少妇无码av无码专区在线观看 | www.日本精品| av亚洲精华国产精华| 一区二区传媒有限公司| 亚洲精品中文字幕99999| 日韩美女在线观看| а√天堂中文在线资源bt在线| 欧美亚洲图片小说| 国产性生活大片| 粉嫩久久99精品久久久久久夜| 青青青免费在线| 青青操综合网| 国产精品热视频| xvideos国产在线视频| 精品国产乱码久久久久久1区2区 | 久久精品一区二区三区四区五区| 国内久久精品视频| 亚洲国产精品成人天堂| 视频一区欧美| 91亚洲精品一区二区| 成人性生交大片免费看网站| 日韩电影中文字幕在线| 99成人精品视频| 亚洲精品欧美激情| 亚洲精品中文字幕在线播放| 老牛嫩草一区二区三区日本| 在线免费观看成人| 三级小说欧洲区亚洲区| 国产精品久久激情| 国产精品偷拍| 伊人久久免费视频| 国产999久久久| 黑人精品xxx一区| 女人黄色一级片| 国产suv一区二区三区88区| 久久美女福利视频| 一本一道久久综合狠狠老| 久久综合九色欧美狠狠| 亚洲精品乱码日韩| 91精品国产91久久久久久久久| 婷婷在线视频观看| 日韩精品极品视频免费观看| 在线免费观看视频网站| 精品国产鲁一鲁一区二区张丽| 国产精品麻豆免费版现看视频| 99免费精品视频| 91看片破解版| 丝袜亚洲另类欧美| 丰满少妇久久久| 国产精品成人a在线观看| 欧美日韩电影一区二区| 8x国产一区二区三区精品推荐| 国产精品美乳在线观看| 僵尸再翻生在线观看| 久久国产精品亚洲| 99中文字幕一区| 精品偷拍一区二区三区在线看| 国产男女裸体做爰爽爽| 91成人在线免费观看| 日韩欧美视频在线免费观看| 亚洲日本在线看| 日韩影视一区二区三区| www国产成人免费观看视频 深夜成人网| 欧美视频亚洲图片| 日韩国产精品久久久| 337p粉嫩大胆噜噜噜鲁| 黄页网站一区| 国产精品啪啪啪视频| 欧美成人milf| 亚洲欧美日韩综合一区| 欧洲三级视频| 日韩aⅴ视频一区二区三区| 日韩美女毛片| 久久精品magnetxturnbtih| 97se亚洲| 国产精品久久久久久久久久久久午夜片 | 性欧美videos另类hd| 欧美高清视频在线高清观看mv色露露十八 | jjzz黄色片| 岛国一区二区三区| 在线观看免费视频国产| 丁香网亚洲国际| 影音先锋资源av| 丁香婷婷综合网| 污污污www精品国产网站| 成人精品一区二区三区四区| 国产艳妇疯狂做爰视频| av电影在线观看一区| 欧美大喷水吹潮合集在线观看| 成人免费av资源| 亚洲男女在线观看| 久久综合九色综合97婷婷| 精品少妇一区二区三区免费观| 91日韩一区二区三区| 国产黄色网址在线观看| 欧美国产欧美综合| 秋霞欧美一区二区三区视频免费| 中文字幕永久在线不卡| 日本黄色小说视频| 亚洲国产视频网站| 亚洲精品国产精品乱码| 日本道色综合久久| 一级特黄aaaaaa大片| 91精品国产一区二区三区香蕉| 国产av无码专区亚洲a∨毛片| 精品久久一区二区| 深夜福利免费在线观看| 亚洲色在线视频| 三级外国片在线观看视频| 久久久国产在线视频| 美女精品视频| 国产成人一区三区| 日本午夜精品久久久久| 国产91视觉| www.豆豆成人网.com| 久久伊人资源站| 第一会所亚洲原创| 91网站在线观看免费| 亚洲欧美日韩精品一区二区 | 97久久国产亚洲精品超碰热| 一区二区毛片| 五月婷婷六月合| 国产suv精品一区二区6| 色哟哟精品观看| 亚洲精品乱码久久久久久| 久久免费激情视频| 欧美日韩视频第一区| 亚洲精品久久久久久无码色欲四季 | 国产精品毛片在线看| 爱情岛论坛亚洲首页入口章节| 国产裸体歌舞团一区二区| 在线精品一区二区三区| 中文字幕免费不卡| 国产污视频在线看| 在线一区二区观看| 亚洲狼人综合网| 中文字幕久热精品在线视频| 2020日本在线视频中文字幕| 国产精品网红直播| 林ゆな中文字幕一区二区| 欧美日韩视频免费在线观看| 午夜亚洲性色视频| 97超碰免费在线观看| 久久久www免费人成精品| 中文字幕手机在线观看| 欧洲生活片亚洲生活在线观看| 成人福利小视频| 日韩在线视频观看正片免费网站| 玖玖在线播放| 亚洲综合在线播放| 欧美偷拍自拍| 久久无码高潮喷水| 丁香一区二区三区| 91在线播放观看| 欧美剧情片在线观看| 国产在线视频网| 777精品视频| 成人香蕉社区| 亚洲五码在线观看视频| 蜜桃视频第一区免费观看| 成人精品在线观看视频| 午夜伊人狠狠久久| 午夜久久久久久噜噜噜噜| 久久人人爽人人爽爽久久| 久久亚洲精品爱爱| 久久综合久久综合这里只有精品| 欧美精品99| 精产国品一二三区| 国产精品久久福利| 中文字幕第31页| 亚洲欧美三级伦理| 亚洲插插视频| 精品无人乱码一区二区三区的优势| 欧美三级午夜理伦三级中文幕| 制服丝袜中文字幕第一页 | 久久久久久久久97| 91精品国产品国语在线不卡| 日本在线免费| 国产美女91呻吟求| 欧美韩国日本在线观看| 日本三级黄色网址| 中文字幕乱码亚洲精品一区| 中文字幕在线日亚洲9| 影音先锋日韩有码| 国产亚洲人成a在线v网站| 亚洲午夜精品一区二区| 理论片日本一区| 肉色超薄丝袜脚交69xx图片| 欧美猛男gaygay网站| a毛片在线播放| 亚洲va久久久噜噜噜久久天堂| 五月婷婷亚洲| 捷克做爰xxxⅹ性视频| 亚洲精品成人少妇| 成人午夜免费在线观看| 午夜精品久久久久久久男人的天堂| 欧美成人一区在线观看| 国产午夜伦鲁鲁| 久久久www成人免费无遮挡大片| 精品视频一二三区| 日韩在线视频网| 精品视频在线播放一区二区三区| 日韩视频一二三| 不卡的av网站| 男人天堂2024| 日韩亚洲第一页| 香蕉成人app| 红桃av在线播放| 中文字幕精品一区二区三区精品| 91av久久久| 久久91精品国产91久久跳| 牛牛影视久久网| 亚洲 欧美 日韩系列| 亚洲欧美一区二区久久| 欧美一级淫片免费视频魅影视频| 26uuu国产精品视频| 国产欧美亚洲精品a| 亚洲精品乱码久久久久久动漫| 亚洲一卡二卡三卡四卡无卡久久 | 97色成人综合网站| 国产免费毛卡片| 亚洲欧洲av在线| 黄色一级a毛片| 国产精品91一区| 欧美日韩岛国| 国产黄色网址在线观看| 91精品国产福利| 蜜桃av在线播放| 中文字幕一区二区三区四区五区 | 国产欧美日韩亚洲| 蜜臀99久久精品久久久久久软件| 九九热精彩视频| 国产亚洲欧美一区| 91成人精品在线| 中文字幕一区二区三区四区在线视频| 亚洲精品一二三| 国产有码在线| 国产chinese精品一区二区| 日韩精品欧美精品| 久操免费在线视频| 中文字幕日韩欧美在线| 精品素人av| 中文字幕一区二区在线观看视频| 色婷婷亚洲一区二区三区|