01 Introduction 2020

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 92

Plan de cours

Introduction
Fonctions d’activation
Hiver 2020
Philippe Giguère
Plan de cours
Bienvenue à bord!
• 3ème édition!
• L’équipe de cette année :

Frédérik Paradis Gaël Letarte


Séminaire départemental
• Vendredi 17 janvier 2020
• Apprentissage de réseaux de neurones à activations binaires avec
garanties statistiques
Gaël Letarte
Étudiant au doctorat, membre du GRAAL
• Heure: 13h30
Local: PLT-3775
• Résumé: Malgré les exploits empiriques des réseaux de neurones
profonds, il existe peu de garanties théoriques solides expliquant
leurs performances. Nous allons présenter nos récents travaux
portant sur l'analyse des réseaux de neurones profonds avec
activations binaires, pour lesquels nous pouvons obtenir des
garanties statistiques sur leur taux d'erreur. Il en découle une
approche originale permettant d'entraîner un modèle composé
d'une agrégation de tels réseaux. Cette analyse se base sur la théorie
PAC-Bayésienne, qui s'est illustrée récemment comme un outil
fructueux pour analyser la capacité de généralisation des réseaux de
neurones profonds.

4
Ressources GPU
En cours de mise-en-oeuvre
• Accès à des GPU via Jupyter notebook
– NVIDIA K20 ou K80
• http://jupyterhub.helios.calculquebec.ca,
• Au besoin, lisez le Wiki
– https://wiki.calculquebec.ca/w/JupyterHub
• Cœurs réservés pour les laboratoires :
réservation glo4030
• Gros merci à
– Florent Parent
– Félix-Antoine Fortin 5
Manuel (obligatoire)

• Bonne référence
• Version html gratuite
http://www.deeplearningbook.org/

6
Pré-requis
• Python (laboratoire, TP)
• Certaine connaissance de l’apprentissage
machine
• Probabilité
• Algèbre linéaire
• Dérivée
• Un peu d’optimisation

7
Contenu du cours
• Un peu de théorie, oui…
• … mais aussi de la pratique…
• … et de la collection de timbres
– nombre de techniques, trucs
– 20+ exemples d’architecture
– grand nombre de papiers
• 70+ présentations orales
“All science is either
• Donner un aperçu du domaine, physics or stamp
collecting”
vous aider à démarrer dans la –E. Rutherford

recherche
8
Aperçu 1ère moitié
• Connaissances de base (vertical)
– Introduction, neurone, fonctions d’activation
– Graphes de calculs, fonctions de perte, rétro-
propagation
– Méthodes d’entraînement par optimisation,
batch norm, initialisation des poids, trucs et
astuces
– Techniques de régularisation
– Réseaux à convolution I
– Réseaux à convolution II
– Examen intra

9
Aperçu 2ème moitié
• Concepts avancés (horizontal) :
– Word embeddings
– Autoencodeurs
– Réseaux récurrents (RNN, LSTM et GRU)
– Modèles d’attention, proposition de régions
d’images, réseaux à mémoire
– Apprentissage multitâches, pertes auxiliaires
– Distillation (compression) des réseaux
– Réseaux génératifs type GAN
– Et +
(majorité) Présentations orales des étudiants 2e et 3e cycle 10
Examen
• Mi-Session (25 février 12h30 à 15h20)
– 35% pour GLO-4030
– 33% pour GLO-7030

• Final (21 avril de 12h30 à 14h20)


– GLO-4030 seulement
– Examen de 2 heures, 20 %
– Séance de présentations orales pour GLO-7030

• Pas de documents permis


11
Travaux pratiques
• 2 travaux
• Total de 20 %
• En python ou PyTorch
• Interdit d’utiliser :
– github public
– pastebin
– etc.

12
Projets
• Équipe de 1 à 2
• GLO-4030 : 25 %
• Pour GLO-7030 : 35 %
– comme pas d’examen, projet devra être
ambitieux (proche de publiable)
– bonne méthodologie
• Trouvez un jeu de données proche de
votre recherche / laboratoire / programme
• Vous pouvez utiliser langage et libraire de
votre choix (TensorFlow, PyTorch, etc)
• Rapport sous format d’article scientifique
13
Mon projet en 180 s (GLO-7030)
• Présentation chronométrée de 3 minutes
de votre projet de recherche
• 14 avril
• 1 seule acétate, sans animation, format pdf
ratio 16:9
• 1 seul membre de l’équipe
• Jugé sur la clarté et la qualité, et non sur le
mérite technique
• Note attribuée à l’équipe entière (4 %)
14
Présentations orales GLO-7030
• Article plus récent que 1er juin 2018
• Uniquement des conférences suivantes :
NIPS, CVPR, ICLR, RSS, ICCV, ECCV,
EMNLP, ACL, NAACL et COLING
• Présentation 10 minutes, style conférence
• M’envoyer votre choix le plus rapidement
possible (pour éviter les doublons)
• Compte pour 12 %

15
Présentations orales GLO-7030
• 72 inscriptions (horaire chargé!)
• Date de votre présentation idéalement en
lien avec le contenu du cours
• Horaire approximatif : VendrediDate21 février nombre8 prés.
Vendredi 20 mars 10
Vendredi 3 avril 10
Vendredi 10 avril 10
Vendredi 17 avril 10
Mardi 21 avril 14
Vendredi 24 avril 10

• Si vous voulez présenter sur les CNN,


m’envoyer votre suggestion d’article pour
pouvoir présenter le 21 février
16
Sites web
• Site du cours :
https://ulaval-damas.github.io/glo4030/

• Site pour le forum :


– site monPortail GLO-7030
– les étudiants GLO-4030 ont plein accès au
forum, en tant qu’utilisateur invité du cours

17
Librairie utilisée : 1.?
• Recommandation unanime des experts locaux (ils
ont utilisés Theano, TensorFlow, Torch, Keras)
• Python, et non pas LUA
• Facile à débugger
– Vous pouvez extraire les données du GPU en tout
temps
• Dérivation automatique autograd
• Support GPU pour Ndarray
• Package d’optimisation par descente de gradient
inclus (SGD, RMSprop, ADAM, etc.)
• Beaucoup d’utilitaires (data loading,
entraînement, data augmentation, torchvision
etc.)
• Facile d’obtenir des modèles pré-entraînés
18
http://pytorch.org/about/
Introduction
Large Scale Visual Recognition Challenge
• Image Classification Challenge :
– 1,000 classes d’objets
– 1,431,167 images

30 Renaissance
28.2
25 25.8
Erreur top-5

20

15 16.4

10 11.7

5 7.3 6.7 5.1


3.57 2.99 2.25 1.3
0 - - AlexNet ZFNet VGG GoogLeNet ResNet - SENets EfficientNet Human
Lin et al. Sanchez Krizhevsky Zeiler Simonyan Szegedy et He et al. Shao et Hu et al. -L2 Russakovsky
2010 and et al. and and al. 2014 2015 al. 2016 2017 Xie et al. et al. 2014
Perronnin 2012 Fergus Zisserman Nov. 2019
2011 2013 2014

20
https://paperswithcode.com/sota/image-classification-on-imagenet
Réseaux profonds
Causes de la renaissance #1
Nouvelles fonctions d’activations

(sigmoïde)

pré-
2006

Vanishing gradient
Venait limiter en pratique la profondeur
21
Crédit : L. Trottier
Causes de la renaissance #1
Nouvelles fonctions d’activations
• ReLU : Rectifier Linear Unit
• Introduite en 2010 par Nair et Hinton

• Se calcule très rapidement : max(input,0)


• Beaucoup moins de vanishing gradient, car
pente = 1 dans la partie active

22
Causes de la renaissance #2
• Grands jeux de données
• www.image-net.org
• 14 millions images, 22 000 catégories

23
Causes de la renaissance #3
Puissance de calcul via GPU

Décembre 2017 2,999 USD


110 TFlops
Juin 2005

25
Continuation de la renaissance
• Progrès très rapide via arXiv.org
• Plus d’une centaine de soumission par jour

Certain danger : beaucoup de


« bruit » dans les publications

• Un article est souvent périmé lorsque


présenté en conférence
• D’où la motivation pour vos présentations
orales (GLO-7030)
26
Global
Évolution des réseaux average
pooling
Convolutions Pseudo-label
à trous Early 1000 Curriculum
stopping couches
Distillation Max
Drop-out pooling
tanh 5 couches Squeeze-
and-Excite
ReLU
Multitâche
10,000 Adam
exemples Batch norm
SGD lr scheduling
Skip
connections
Ensemble
32 filtres
Pré-
ca. 1990 entraînement
Average pooling Xavier ca. 2019
ImageNet Initialization

Data
geler des augmentation
couches 3,000+ filtres
27
Crédit photo : Griffin’s auto repair Crédit photo : wildsau.ca
Pourquoi le Deep?
• Fonction mathématique extrêmement
flexible et puissante (millions de
paramètres)
• Théorème d’approximation universelle :
– Peut approximer n’importe quelle fonction*
avec un niveau de précision arbitraire
– http://neuralnetworksanddeeplearning.com/chap4.html

• Réseaux peu profonds vont :


– demander beaucoup de neurones
(exponentiel)

28
*continue sur des sous-ensembles compacts de Rn
Généralisation vs. profondeur
• Street View Home Numbers SVHN

Goodfellow et al., Multi-digit Number Recognition from Street View Imagery 29


using Deep Convolutional Neural Networks, ICLR 2014.
Meilleure généralisation
• Modèles larges ou peu profonds ont
tendance à overfitter # couches
SVHN

Goodfellow et al., Multi-digit Number Recognition from Street View Imagery 30


using Deep Convolutional Neural Networks, ICLR 2014.
Contraste avec Output

approches
traditionnelles Output Output
Mapping
from
features

Mapping Additional
Mapping layers of
Output from from more
features features abstract
features

Hand- Hand-
designed Simple
designed Features features
program features

Input Input Input Input

Rule- Classic Deep


based machine Learning
systems learning Representation
Learning 32
Contraste avec Output

approches
traditionnelles Output Output
Mapping
from
features Appris
conjointement
Mapping Additional
Mapping layers of
Output from from more
features features abstract
features

Hand- Hand-
designed Simple
designed Features features
program features

Input Input Input Input

Rule- Classic Deep


based machine Learning
systems learning Representation
Learning 33
Architecture = a priori
• Façon d’injecter de l’information a priori, via
l’architecture
• Peut être vu comme un prior (parfois
infiniment) fort
• Par exemple :
– CNN (localité dans les images)
– Maxpooling (invariance à la position)
– RNN (dépendance temporelle)
– Attention (régions plus informatives)
– Spatial transformer network (déformation
affines)
– Softmax (appartenance à une seule classe)
34
Pourquoi le Deep en industrie ?
• Applicable à des solutions industrielles
• Entraînement (long) se fait en différé
• Tourne en temps réel sur machine GPU ou
TPU (Tensor Processor Unit, Google)
• Le temps d’exécution dépend peu du
nombre de classes
– YOLO9000 : détection
de 9000 objets, 40 FPS
– comment : un seul pipeline
commun d’extraction des
features https://www.youtube.com/watch?v=uG2UOasIx2I
Pourquoi le Deep en industrie ?
• Si on découvre des nouveaux cas
problématiques, on les ajoute dans la
banque d’entrainement
– facile à expliquer à un non-expert
• La quantité de données d’entraînement
n’influe pas sur le temps d’inférence*
• Systèmes experts (explicite) deviennent
fragiles avec nombre croissant de règles
– réseaux neurones : implicite

*bien entendu, on pourrait augmenter la taille du réseau si on a


36
beaucoup de données, afin d’en profiter
« Deep Learning is eating software »
The pattern is that there’s an existing software project doing data
processing using explicit programming logic, and the team charged
with maintaining it find they can replace it with a deep-learning-based
solution. I can only point to examples within Alphabet that we’ve made
public, like upgrading search ranking, data center energy usage,
language translation, and solving Go, but these aren’t rare exceptions
internally. What I see is that almost any data processing system with
non-trivial logic can be improved significantly by applying modern
machine learning.

This might sound less than dramatic when put in those terms, but it’s a
radical change in how we build software. Instead of writing and
maintaining intricate, layered tangles of logic, the developer has to
become a teacher, a curator of training data and an analyst of results.
This is very, very different than the programming I was taught in
school, but what gets me most excited is that it should be far more
accessible than traditional coding, once the tooling catches up.

https://petewarden.com/2017/11/13/deep-learning-is-eating-software/

37
Transfert d’innovation

• Les innovations dans les architectures de


réseaux faits pour une tâche X ont
tendance à aussi aider pour de
nombreuses autres tâches
• Synergies et emballements

38
Szegedy et al., Rethinking the Inception Architecture for Computer Vision, CPVR 2015.
« Bouturage »
• Combiner des réseaux pré-
entraînés sur des tâches
différentes

39
Le gradient = sève
• Pas de gradient = pas d’apprentissage

40
Extrait de https://youtu.be/IHZwWFHWa-w 3Blue1Brown
Processus itératif
Les voies du réseaux sont impénétrables
• Beaucoup de paramètres
et de techniques
• Important de
développer
une intuition

Crédit : Andrew Ng

42
Optimisation vs. gradient
• Théorème d’approximation universelle ne
dit pas comment trouver cette fonction
• Relation incestueuse entre les
architectures développées (dérivable end-
to-end) et les méthodes d’optimisation
• Autres approches (Hebbian), mais on n’en
parlera pas dans le cours

43
Toujours besoin de beaucoup de données?
• Non, si l’on passe par des réseaux pré-
entraînés
• Fantastiques extracteurs de
caractéristiques
• Résultats dépassent souvent l’état de l’art
pré-Deep

44
Paradigme du graphe de calcul
• Plus qu’un à-côté des recherches en Deep
• Nouvelle manière de voir les algorithmes
– Prend algo traditionnel
– Rend pleinement différentiable (soft)
• choix binaire 0-1  sigmoïde (NetVLAD)
– « Dérouler » l’exécution
iter iter iter iter Métrique de
1 2 3 4 performance
Gradient
Paramètres
Differentiable Particle Filters: End-to-End Learning with Algorithmic Priors,
R. Jonschkowski et al., 2018. 45
Deep Learning : appel à la prudence
• Excellente présentation NIPS 2017 d’Ali
Rahimi : Deep Learning is alchemy

• https://youtu.be/Qi1Yry33TQE

• Doit chercher plus de rigueur,


comprendre ce qui se passe

46
Deep Learning : appel à la prudence
Troubling Trends in Machine Learning
Scholarship, Lipton et al., 2018
1. Failure to distinguish between explanation and
speculation.
2. Failure to identify the sources of empirical gains, e.g.
emphasizing unnecessary modifications to neural
architectures when gains actually stem from hyper-
parameter tuning.
3. Mathiness: the use of mathematics that obfuscates or
impresses rather than clarifies, e.g. by confusing
technical and non-technical concepts.
4. Misuse of language, e.g. by choosing terms of art with
colloquial connotations or by overloading established
technical terms.
47
Exemples d’applications
Reconnaissance de caractères

28 x 28

;q )
vecteur de 10
f( scores, un par
classe

MNIST

q : paramètres de la fonction
(Labo 1) 49
Reconnaissance d’images

224 x 224 x 3

;q )
vecteur de 1000
f( scores, un par
classe

ImageNet

q : paramètres de la fonction
50
Nature, Février 2017

130,000 images
d’entrainement
Détection d’objets

f( ;q )

Redmon and Farhadi, YOLO9000: Better, Faster, Stronger, CVPR 2017.


52
Description d’images

;q )
Construction

f( worker in orange
safety vest is
working on road

Karpathy and Fei-Fei, Deep Visual-Semantic Alignments for Generating Image Descriptions,
53
CVPR 2015.
Qui est cet acteur?

54
Génération d’images

f( ;q )

Karras et al., Progressive Growing of GANs for improved quality,


stability and variation, ICLR 2018. 55
Génération d’images (NVIDIA)

56
Reconnaissance voix

f( ;q ) Ok Google,
where is my
car

57
Génération de voix : Tacotron 2

;q )
She earned a

f( doctorate in
sociology at
Columbia
University

Note : exemple d’entraînement :

« George Washington was the first President of the United States »

A: B:
Natural TTS Synthesis by Conditioning WaveNet on Mel Spectrogram Predictions
Jonathan Shen, arXiv:1712.05884, dec 2017. 58
Traduction automatique

f( I think,
therefore
I am.
;q ) Je pense
donc je
suis.

59
Apprentissage
visuomoteur

60
Transfert de style

G( ;q )

F( ;q )
Zhu et al., Unpaired Image-to-Image Translation using 61
Cycle-Consistent Adversarial Networks, CVPR 2017.
Transfert
de style

62
Jeu de Go (2017)

63
Jeu Starcraft (2019)
• Programme AlphaStar de Deepmind
• Niveau Grand maître pour Starcraft
– meilleur que 99.8% des joueurs humains
• Basé sur des approches d’apprentissage
génériques
– réseaux pour les stratégies et contre-stratégies

64
Réseaux classiques
peu profonds :
classification d’images
MNIST
• 10 chiffres
• 70,000 images de 28  28 pixels

Source : http://blog.welcomege.com/mnist-database/

66
Classificateur linéaire sur MNIST
• Le plus simple possible : linéaire
• Paramètres W (taille c  n) + biais b (taille c  1)
– n : nombre de pixels
– c : nombre de classes

vecteur de 10
f( ;W,b) scores, un
par classe

MNIST
67
Exemple simplifié

.1 .4 « Flatten » f = Wx+b
.3 .7
W b Score
.7 -.3 .2 .3 .1 1 1.22 Chiffre 1
-.5 1.7 1.5 .4 .4 + 1.2 = 2.56 Chiffre 2
.7 1.1 -.4 -.1 .3 -.4 -.08 Chiffre 3
.7 68
adapté de cs231n
Interprétation classificateur linéaire

dimension 2
f = Wx+b w1

w1 .7 -.3 .2 .3 dimension 1

w2 -.5 1.7 1.5 .4 w3


w2
w3 .7 1.1 -.4 -.1

69
Réseau 1 couche linéaire
• Image 28x28  784x1
class SimpleLinear(nn.Module):
def __init__(self):
super(SimpleLinear, self).__init__()

• Matrice W 10x784 self.fc1 = nn.Linear(784, 10)

def forward(self, x):


• Biais b 10x1 x = x.view(-1, 784) # Flatten
x = self.fc1(x)
return x
• Initialisé au hasard
• Entrainement SGD sur 1
+ grand
L  max(0,1  sortie(cible) sortie(i))
perte multiclass hinge loss m i  cible
+ petits

• Train set : 60,000 exemples


• Test set : 10,000 exemples (non vues à l’ent.)
• Résultat ~92% précision sur test
70
Poids W appris : patrons 28  28

28

28 (Clair  positivement corrélé)

• On voit corrélation spatiale sur pixels voisins


• Réseau doit la découvrir : doit avoir plus
d’exemples d’entraînement (sample efficiency)
• Si applique permutation identique sur les
pixels, même précision
Sur images couleur CIFAR-10
32  32  3 = 3072
Image RGB
160 44 84 137
81 94 119 36
211 23 56 209
90 44 17 63
101 78 11 21
64 94 198 178
101 78 11 201
53 41 98 47
76 117 172 201
53 41 98 42
99 32 39 83
99 32 39 143

Exemple de W trouvé

(Note : biais dans le dataset : l’image est centrée sur l’objet) 73


cs231n
Réseau 2 couches linéaires
• Matrice W1 200x784, bias b1 200x1 10

• Matrice W2 10x200, biais b2 10x1 W2


200
• # paramètres ~160,000
W1
– précédent ~8,000 paramètres
784
• Résultats? Encore ~92%!
• Pas plus expressif que linéaire 1 couche, car
se simplifie :
W2(W1x+b1) + b2 = Wx+b
• Ajout de non-linéarités pour augmenter la
puissance d’expression 74
flot Ajout de
non-

non-linéarité

non-linéarité
non-linéarité
Opérations

Opérations

Opérations
linéarité
linéaire

linéaire

linéaire

Pré-activation : z  b  w x i
i i bw x T

Activation : h  g ( z )  non-linéaire
x1

x2 +
+

+
S symbole
combiné
+
xn b 75
Exemple classique : XOR
Non-séparable linéairement

78
Image tirée de (I. Goodfellow) deeplearningbook.org
Activation non-linéaire ReLU

(La plus populaire en ce moment)


79
Image tirée de (I. Goodfellow) deeplearningbook.org
Solution XOR (format vectorisé)
4 exemples
0 0 1 1
X  [x (1)
x (2)
x (3)
x ] 
(4)

 0 1 0 1
1 1 0
W1    , b1    Y=[0 1 1 0]
1 1  1
4 pré-activations
z1(4)   W1 X  b1  
0 1 1 2  0 0 0 0 
Z   z1(1) z1(2) z1(3)
0 1 1 2    1 1 1 1
   
 0 1 1 2
Z   Représentation
 1 0 0 1 plus facile
1 0
  0 1 1 2   0 1 1 2 
g ( Z )  max  0,     
  1 0 0 1    0 0 0 1  0 0 1
ReLU 0 1 2 80
Importance de la représentation

L’un est séparable linéairement, l’autre non


81
Image tirée de (I. Goodfellow) deeplearningbook.org
Contraste avec Output

approches
traditionnelles Output Output
Mapping
from
features

Mapping Additional
Mapping layers of
Output from from more
features features abstract
features

Hand- Hand-
designed Simple
designed Features features
program features

Input Input Input Input

Rule- Classic Deep


based machine Learning
systems learning Representation
Learning 82
Contraste avec Output

approches
traditionnelles Output Output
Mapping
from
features Appris
conjointement
Mapping Additional
Mapping layers of
Output from from more
features features abstract
features

Hand- Hand-
designed Simple
designed Features features
program features

Input Input Input Input

Rule- Classic Deep


based machine Learning
systems learning Representation
Learning 83
Fonctions d’activations
Rôles
• Apporte une non-linéarité dans le réseau
• Situé à l’interne, ou en sortie
• Considérations :
– difficulté d’entraînement (son gradient)
– comportement se rapproche :
• de ce que l’on cherche à prédire en sortie
(probabilités, one-hot vector, angles, déplacements,
etc.)
• action particulière (gating)
– temps de calcul

85
Fonction d’activation : sigmoide
• Une des premières utilisées
• Si on désire une sortie entre 0 et 1 (squashing)
1
 ( x) 
1  exp( x)

• Tombée en désuétude comme non-linéarité


de base

86
Exemple utilisation sigmoïde
• Prédiction binaire (logistic regression)
P( y  1| x)
sortie    wT x  b 

x1
+
x2 +

+
S
+
xn b
87
Exemples utilisation sigmoïde

Prédire poses relatives

88
Crédit image : Redmon et al., YOLO9000: Better, Faster, Stronger. CVPR 2017.
Exemple utilisation sigmoïde
• gating dans Long short-term memory

Greff et al. LSTM : A Search Space Odyssey, T. on Neural Networks and Learning Systems, Oct 2017.
Fonction d’activation : tanh
• Autre fonction historique
• Désire une sortie entre -1 et 1 (squashing)

exp(2a )  1
tanh( x) 
exp(2a )  1

 2 (2 x)  1

• Donne une sortie centrée à 0 (préférable à


0.5 de la sigmoïde)
90
Exemple utilisation tanh
• LSTM : Long short-term memory

Greff et al. LSTM : A Search Space Odyssey, T. on Neural Networks and Learning Systems, Oct 2017.
Quasi-linéarité : rend
ReLU l’entrainement plus facile
via descente de gradient
• La plus populaire comme
non-linéarité
• Toujours non-négatif max(0,x)
– moyenne sortie biaisée +
• Pas de limite supérieure
• Facile à calculer (exp est
plus long)
• Accélère l’entraînement des réseaux (facteur 6 pour
AlexNet).
• Résulte en des activations parcimonieuses (certains
neurones sont à 0)
– Parfois des neurones vont mourir, particulièrement si learning rate est
trop grand 
• Rarement utilisé en sortie du réseau 92
Leaky ReLU
• Gradient = 0 signifie
impossibilité d’entraîner
• Pente très légère dans la ax si x<0
partie négative : leaky f(x) =
x autrement
ReLU
• Si un paramètre a (entraînable) par
neurone/couche, on obtient la PReLU [1]
• Donne des distributions de sorties plus centrées à
0 que ReLU

[1] He et al. Delving Deep into Rectifiers: Surpassing Human-Level 93


Performance on ImageNet Classification, ICCV 2015.
Autres activations
• Maxout [1] : max(w1Tx+b1, w2Tx+b2)
• ELU [2]

• Parametric ELU [3]

[1] Goodfellow et al., Maxout Network, ICML 2013.


[2] Clevert et al., Fast and Accurate Deep Network Learning by Exponential Linear Units (ELUs), ICLR 2016.
[3] Trottier et al., Parametric exponential linear unit for deep convolutional neural networks, ICMLA 2017.
Softmax
• Utilisé en sortie, prédiction multi-classe
• Version continue, douce, de max([…])
exp( zi )
yˆi 
 exp( z j )
jgroupe

• Va dépendre de l’ensemble des sorties du


groupe
• Sortie somme à 1, chaque sortie entre 0 et 1 :
– distribution de probabilité multinouilli
• Manière d’indiquer au réseau de chercher
l’appartenance exclusive à une seule classe 95
Softmax
W b Score zi
.7 -.3 .2 .3 .1 1 1.22

softmax
-.5 1.7 1.5 .4 .4 + 1.2 = 2.56

.7 1.1 -.4 -.1 .3 -.4 -.08

.7 log des
probabilités
non-normalisées

exp( zi )
P(classe | x) 
 exp( z j )
jgroupe

96
Softmax
• Peut avoir plus
d’un softmax en
sortie
• Combiner des jeux
de données avec
différentes
granularités de
classes
– chien vs labrador

97
Crédit image : Redmon et al., YOLO9000: Better, Faster, Stronger. CVPR 2017.
Softmax avec température T
exp( zi / T )
yˆi 
 j exp( z j / T )
• Si T est élevé, les sorties seront plus
égalitaires. Si T faible, winner-takes-all
• Utilisé dans :
– LSTM pour varier la confiance/répartition des
sorties
– distillation des réseaux [1]
[1] Hinton et al. Distilling the knowledge in a neural network. arXiv
preprint arXiv:1503.02531 (2015). 98

Vous aimerez peut-être aussi