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

introduction

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

(C2W1L01) Train / Dev / Test sets

Contenu

(C2W1L02) Bias / Variance

Contenu

――Un biais élevé et une variance élevée peuvent être visualisés en 2 dimensions, mais pas en dimensions élevées.

train set error dev set error
1% 11% high variance
15% 16% high bias
15% 30% high bias & high variance
0.5% 1% low bias & low variance

--Lorsque l'erreur (erreur optimale ou erreur de Bayes) lorsqu'elle est jugée par une personne est définie sur 0

(C2W1L03) Basic "recipe" for machine learning

Contenu

(C2W1L04) Regularization

Contenu

J\left(w, b\right) = \frac{1}{m} \sum^{m}_{i=1}L\left(\hat{y}^{(i)}, y^{(i)}\right) + \frac{\lambda}{2m}\|w\|^2_2
J\left(w^{[1]}, b^{[1]}, \cdots , w^{[L]}, b^{[l]}\right) = \frac{1}{m} \sum^{m}_{i=1} L\left(\hat{y}^{(i)}, y^{(i)}\right) + \frac{\lambda}{2m} \sum^{L}_{l=1} \|w^{[l]}\|^2\\
\|w^{[l]}\|^2 = \sum^{n^{[l-1]}}_{i=1}\sum^{n^{[l]}}_{j=1}\left(w_{ij}^{[l]}\right)^2

-La dimension de $ w $ est $ (n ^ {[l-1]}, n ^ {[l]}) $

dw^{[l]} = \left( \textrm{from backprop} \right) + \frac{\lambda}{m}w^{[l]} \\
w^{[l]} = w^{[l]} - \alpha dw^{[l]} = \left(1 - \alpha \frac{\lambda}{m} \right)w^{[l]} - \alpha \left( \textrm{from backprop} \right)

--Cela s'appelle la décroissance du poids car $ dw ^ {[l]} $ devient plus petit en raison de la régularisation.

(C2W1L05) Why Regularization Reduces Overfitting

Contenu

-Si $ \ lambda $ est grand, il devient $ w ^ {[l]} \ sim 0 $. Ensuite, l'influence de l'unité cachée peut être réduite, et on considère que le réseau est devenu simple. Alors rapprochez-vous du biais élevé -Si $ \ lambda $ est grand, il sera proche de la régression logistique. -Si $ g (z) = \ tanh (z) $, si $ z $ est petit, la région linéaire de $ g (z) $ sera utilisée. --Lorsque la fonction d'activation peut être considérée comme une fonction linéaire, il devient impossible de représenter un réseau compliqué. Par conséquent, il approche un biais élevé

(C2W1L06) Dropout Regularization

Contenu

d3 = \mathrm{np.random.rand(} a3 \mathrm{.shape[0], }\, a3 \mathrm{.shape[1])} < \mathrm{keep\_prob} \\
a3 = \mathrm{np.multiply(} a3, d3 \mathrm{)} \\
a3\  /= \mathrm{keep\_prob} \\
a^{[4]} = W^{[4]} a^{[3]} + b^{[4]}

--Enfin, conservez la valeur attendue de $ a ^ {[3]} $ en divisant par keep_prob.

(C2W1L07) Understanding dropout

Contenu

(C2W1L08) Other Regularization Methods

Contenu

(C2W1L09) Normalizing inputs

Contenu

\mu = \frac{1}{m} \sum^{m}_{i=1} x^{(i)} \\
x := x - \mu \\
\sigma^2 = \frac{2}{m} \sum^{m}_{i=1} x^{(i)} \ast\ast 2 \\
x \ /= \sigma^2

--Utiliser $ \ mu $ et $ \ sigma $ de l'ensemble de trains lors de la normalisation de l'ensemble de développement

(C2W1L10) Vanishing / exploding gradients

Contenu

(C2W1L11) Weight initialization for deep networks

Contenu

W^{[l]} = \mathrm{np.random.randn} \left( \cdots \right) \ast \mathrm{np.sqrt} \left( \frac{2}{n^{[l-1]}} \right)

--Pour ReLU, $ \ sqrt {\ frac {2} {n ^ {[l-1]}}} $ fonctionne bien

(C2W1L12) Numerial Approximation of Gradients

Contenu

(C2W1L13) Gradient checking

Contenu

d\theta_{approx}^{[i]} = \frac{J(\theta_1, \cdots, \theta_i+\epsilon, \cdots) - J(\theta_1, \cdots, \theta_i-\epsilon, \cdots)}{2\epsilon} \sim d\theta^{[i]}

--check ($ \ epsilon = 10 ^ {-7} $)

\frac{\|d\theta_{approx} - d\theta\|_2}{\|d\theta_{approx}\|_2 + \|d\theta\|_2}
value judgement
10^{-7} great!
10^{-5} Ça va peut-être, mais vérifiez
10^{-3} Bug possible

--Si cela ressemble à un bogue, vérifiez où la différence entre $ d \ theta_ {approx} $ et $ d \ theta $ est grande pour un $ i $ spécifique.

(C2W1L14) Gradient Checking Implementation Notes

Contenu

--Comment utiliser la vérification de gradient, comment gérer quand $ d \ theta_ {approx} $ et $ d \ theta $ sont différents, etc.

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 (C1W2)
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
Mémo d'auto-apprentissage "Deep Learning from scratch" (glossaire illisible)
"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
Apprentissage profond × 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 5 (9e jour)
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