[PYTHON] Spécialisation en apprentissage profond (Coursera) Dossier d'auto-apprentissage (C2W2)

introduction

C'est le contenu du cours 2, semaine 2 (C2W2) de Spécialisation en apprentissage profond.

(C2W2L01) Mini-batch gradient descent

Contenu

-Lorsque $ m = 5000000 $, divisez l'ensemble d'apprentissage en mini-lots et calculez la propagation avant et arrière pour chaque mini-lot. --mini-batch converge plus rapidement

X^{\{1\}} = \left[ X^{(1)} \, X^{(2)} \, \cdots \, X^{(1000)}\right] \\
Y^{\{1\}} = \left[ Y^{(1)} \, Y^{(2)} \, \cdots \, Y^{(1000)}\right] \\
X^{\{2\}} = \left[ X^{(1001)} \, X^{(1002)} \, \cdots \, X^{(2000)}\right] \\
Y^{\{2\}} = \left[ Y^{(1001)} \, Y^{(1002)} \, \cdots \, Y^{(2000)}\right] 

(C2W2L02) Understanding Mini-batch Gradient Descent

Contenu

(C2W2L03) Exponentially Weighted Average

Contenu

V_0 = 0 \\
V_t = \beta V_{t-1} + \left( 1-\beta \right) \theta_t

(C2W2L04) Understanding exponentially weighted average

Contenu

(C2W2L05) Bias correction in exponentially weighted average

Contenu

V_0 = 0 \\
V_1 = 0.98 V_0 + 0.02 \theta_1 = 0.02 \theta_1 \\
V_2 = 0.98 V_1 + 0.02 \theta_2 = 0.0196\theta_1 + 0.02\theta_2

--Par conséquent, corrigez $ V_t $ avec $ \ frac {V_t} {1- \ beta ^ t} $. Lorsque t devient grand, il devient $ \ beta ^ t \ sim 0 $, et l'effet de correction est presque perdu.

(C2W2L06) Gradient descent with momentum

Contenu

V_{dw} = \beta V_{dw} + \left( 1-\beta \right) dW \\
V_{db} = \beta V_{db} + \left( 1-\beta \right) db \\
W := W - \alpha V_{dW} \\
b := b - \alpha V_{db}

(C2W2L07) RMSProp

Contenu

S_{dW} = \beta S_{dW} + \left( 1-\beta \right) dW^2 \ (\textrm{Élément par élément}) \\
S_{db} = \beta S_{db} + \left( 1-\beta \right) db^2 \ (\textrm{Élément par élément}) \\
W := W -\alpha \frac{dW}{\sqrt{S_{dW}} + \epsilon} \\
b := b -\alpha \frac{db}{\sqrt{S_{db}} + \epsilon} \\

--Insérez $ \ epsilon = 10 ^ {-8} $ pour que le dénominateur ne devienne pas 0

(C2W2L08) Adam optimization algorithm

Contenu

V_{dw} = \beta_1 V_{dw} + \left( 1-\beta_1 \right) dW \\
V_{db} = \beta_1 V_{db} + \left( 1-\beta_1 \right) db \\
S_{dW} = \beta_2 S_{dW} + \left( 1-\beta_2 \right) dW^2  \\
S_{db} = \beta_2 S_{db} + \left( 1-\beta_2 \right) db^2  \\
V^{corrected}_{dW} = \frac{V_{dw}}{1-\beta_1^t} \\
V^{corrected}_{db} = \frac{V_{db}}{1-\beta_1^t} \\
S^{corrected}_{dW} = \frac{S_{dw}}{1-\beta_2^t} \\
S^{corrected}_{db} = \frac{S_{db}}{1-\beta_2^t} \\
W := W -\alpha \frac{V^{corrected}_{dW}}{\sqrt{S^{corrected}_{dW}}+\epsilon} \\
b := b -\alpha \frac{V^{corrected}_{db}}{\sqrt{S^{corrected}_{db}}+\epsilon} \\

--Hyper paramètres - \alpha ; needs to be tuned - \beta_1 ; 0.9 - \beta_2 ; 0.999

(C2W2L09) Learning rate decay

Contenu

\alpha = \frac{1}{1 + \textrm{decay_rate} \ast \textrm{epoch_num}} \alpha_0
\alpha = 0.95^{\textrm{epoch_num}} \alpha_0\\
\alpha = \frac{k}{\sqrt{\textrm{epoch_num}}} \alpha_0

référence

Recommended Posts

Spécialisation en apprentissage profond (Coursera) Dossier d'auto-apprentissage (C3W1)
Spécialisation en apprentissage profond (Coursera) Dossier d'auto-apprentissage (C1W3)
Dossier d'auto-apprentissage de la spécialisation en apprentissage profond (Coursera) (C4W3)
Spécialisation en apprentissage profond (Coursera) Dossier d'auto-apprentissage (C1W4)
Spécialisation en apprentissage profond (Coursera) Dossier d'auto-apprentissage (C2W1)
Spécialisation en apprentissage profond (Coursera) Dossier d'auto-apprentissage (C3W2)
Spécialisation en apprentissage profond (Coursera) Dossier d'auto-apprentissage (C2W2)
Spécialisation en apprentissage profond (Coursera) Dossier d'auto-apprentissage (C4W1)
Spécialisation en apprentissage profond (Coursera) Dossier d'auto-apprentissage (C2W3)
Spécialisation en apprentissage profond (Coursera) Dossier d'auto-apprentissage (C4W2)
Dossier d'apprentissage
Dossier d'apprentissage n ° 3
Dossier d'apprentissage n ° 1
Dossier d'apprentissage n ° 2
L'apprentissage en profondeur
Enregistrement d'apprentissage de la lecture "Deep Learning from scratch"
Mémo d'auto-apprentissage "Deep Learning from scratch" (partie 12) Deep learning
"Deep Learning from scratch" Mémo d'auto-apprentissage (n ° 9) Classe MultiLayerNet
Mémorandum d'apprentissage profond
Commencer l'apprentissage en profondeur
Apprentissage en profondeur Python
Mémo d'auto-apprentissage «Deep Learning from scratch» (10) Classe MultiLayerNet
Mémo d'auto-apprentissage «Deep Learning from scratch» (n ° 11) CNN
Mémo d'auto-apprentissage «Deep Learning from scratch» (n ° 19) Augmentation des données
Dossier d'apprentissage jusqu'à présent
Premier apprentissage profond ~ Lutte ~
Python: pratique du Deep Learning
Fonctions d'apprentissage en profondeur / d'activation
Apprentissage profond à partir de zéro
Fiche d'apprentissage 4 (8e jour)
Fiche d'apprentissage 9 (13e jour)
Fiche d'apprentissage 3 (7e jour)
Deep learning 1 Pratique du deep learning
Apprentissage profond / entropie croisée
Fiche d'apprentissage 6 (10e jour)
Premier apprentissage profond ~ Préparation ~
Enregistrement d'apprentissage de la programmation 2ème jour
Première solution d'apprentissage en profondeur ~
Fiche d'apprentissage 8 (12e jour)
[AI] Apprentissage métrique profond
Fiche d'apprentissage 1 (4e jour)
Fiche d'apprentissage 7 (11e jour)
J'ai essayé le deep learning
Python: réglage du Deep Learning
Fiche d'apprentissage 2 (6e jour)
Technologie d'apprentissage en profondeur à grande échelle
Fiche d'apprentissage Linux ① Planifier
Fiche d'apprentissage 16 (20e jour)
Dossier d'apprentissage 22 (26e jour)
Fonction d'apprentissage profond / softmax
Mémo d'auto-apprentissage «Deep Learning from scratch» (n ° 18) One! Miaou! Grad-CAM!
Mémo d'auto-apprentissage "Deep Learning from scratch" (n ° 15) Tutoriel pour débutants TensorFlow