Please enable JavaScript.
Coggle requires JavaScript to display documents.
Stanford CS231N - Training neural networkd 1 - Coggle Diagram
Stanford CS231N - Training neural networkd 1
activations functions
Sigmoid
Valeur d'activation entre 0 et 1, très populaire
Problèmes :
Peu tuer le gradient (pour des valeur de sortie très négative, le gradient se rapprochera fortement de 0, même chose pour des valeurs très positives, les endroits ou la courbe de la fonction d'activation est plate)
n'est pas centré sur 0, la mise à jour du gradient ne sera pas efficace car il ne peut bouger que dans certaines directions (toujours positif ou toujours négatif)
contient un exponentiel, couteux en ressources de calcul.
tanH
Centré sur zéro, valeur d'activation entre -1 et 1
Légèrement mieux que la sigmoïde mais tuera tout de même le gradient sur des valeurs très négatives ou très positives (endroits plats)
ReLU
Très efficace en terme de ressources de calcul, converge 6x plus vite que les deux fonctions précédentes.
Ne supprime pas le gradient en cas de valeurs très positives.
Problèmes :
n'est pas centré sur zéro
dead relu, le gradient ne fait plus rien évoluer, car rien n'est activé.
Leaky ReLU
ReLU améliorée
efficace en terme de calcul
ne sature pas (ni en négatif ni en positif)
Maxout
ELU
tous les avantages d'une ReLU, mais possède une exponentiel donc très gourmand en ressources de calculs.
plus robuste au bruit
EN PRATIQUE :
Utiliser la ReLU
essayer ReLU / Maxout / ELU
essayer tanh mais ne pas en attendre grand chose
ne pas utiliser la sigmoid
Preprocessing
centrer sur 0
normaliser
Inutile pour des images, les échelles sont déjà relatives pour les valeurs des pixels
décorréler
débruiter
Initialisation des poids :
Regarder "Xavier initialization" sauf si on utilise une ReLU
dans ce cas, regarder He et al. 2015, note additional /2
Batch normalization
Sert à améliorer l'efficacité, la stabilité et la rapidité de l'apprentissage
Répond au problème de l'"Internal Covariate Shift", ou le fait que la distribution des activations des couches du réseau change constamment à chaque mise à jour des poids.
Correspond à trois étapes :
calculer la moyenne et la variance du mini-batch
Normaliser les activations
reparamétrer les activation
Le plus souvent appliqué après une couche fully connected ou une couche de convolution et AVANT la fonction d'activation
Surveiller l'entrainement
1 préprocess
2 choisir l'architecture
3 faire un entrainement basique et vérifier si la loss reste raisonable
4 faire un entrainement avec peu de donnée pour vérifier qu'on overfit bien (loss proche de 0, précision proche de 1)
Hyperparamètre : random search ou Grid search
Monitorer la loss