Plan
1. Classification Multi-Classe
2. Couche Soft(arg)max
3. Notation sous forme de matrice
1
Plan
1. Classification Multi-Classe
2. Couche Soft(arg)max
3. Notation sous forme de matrice
2
Classification binaire
y > ૪ → class 1
(eg. green)
Logits y < ૪ → class 2
(eg. red)
Threshold (૪)
(seuil)
3
Classification multi-classe
● Classification: 𝐲 est une valeure discrète (e.g. 𝐲 = {”dog”,”bike”,”motorbike”}.
○ Les classes sont souvent encodées sous forme de one-hot vector (chaque class
correspond à une dimension différente de l’espace de sortie)
[0,1,0]
One-hot
representations
[1,0,0]
[0,0,1]
4
Perronin, F., CVPR Tutorial on LSVR @ CVPR’14, Output embedding for
Classification multi-classe
Images représentant des chiffres écrits à la Handwritten Digits from the
main (mnist) MNIST dataset
Le but du dataset : produir un classifieur qui
permet de reconnaitre les chiffres exprimés
par les images.
Les images sont en nuance de gris (greyscale)
La résolution des images 28 x 28
La sortie 𝑦𝑖 ∈ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
Exemple de classification multi-classes
5
Plan
1. Classification Multi-Classe
2. Couche Soft(arg)max
3. Notation sous forme de matrice
6
Couche Soft(arg)max
Question: Comment prédire des vecteur one-hot pour des sorties mult-
dimensionnelles (plusieurs classes) ?
7
Couche Soft(arg)max
Question: Comment prédire des vecteur one-hot pour des sorties multi-
dimensionnelles (plusieurs classes) ?
raw pixels
unrolled img
Un problème de classification multi-
0.3 “dog”
classes peut être résolu en assignant
0.08 “cat”
une sigmoid à chaque classe (sortie).
Pour dire si (oui / non) cette classe est
prédite.
Ensuite on va choisir la sortie avec la
0.6 “whatever”
valeur la plus grande (argmax)
8
Couche Soft(arg)max
Question: : Comment prédire des vecteur one-hot pour des sorties multi-
dimensionnelles (plusieurs classes) ?
Un problème de classification multi-classes raw pixels
unrolled img
peut être résolu en assignant une sigmoid
0.3 “dog”
à chaque classe (sortie). Pour dire si (oui /
non) cette classe est prédite. 0.08 “cat”
Ensuite on va choisir la sortie avec la valeur
la plus grande (argmax)
Cependant le argmax n’est pas dérivable
0.6 “whatever”
9
Couche Soft(arg)max
softmax
10
Couche Soft(arg)max
L’exponentiel augmente (boost) les
sortie les plus grandes
11
Couche Soft(arg)max
Facteur de normlisation, afin que
la somme des probabilités soit 1
12
Couche Soft(arg)max
Un paramètre τ peut être utilisé pour moduler la distribution
13
Jang, Eric, Shixiang Gu, and Ben Poole. "Categorical reparameterization with Gumbel-Softmax." ICLR 2017.
Plan
1. Classification Multi-Classe
2. Couche Soft(arg)max
3. Notation sous forme de matrice
14
Softmax regression: Binary case
Example: Une classification binaire peut être résolu avec deux perceptrons
(neurones) en sortie avec un fonction d’activation softmax
15
J. Alammar, “A visual and interactive guide to the Basics of Neural Networks” (2016)
Softmax regression: Multiclass (3 classes)
16
TensorFlow, “MNIST for ML beginners”
Softmax regression: Multiclass (3 classes)
17
TensorFlow, “MNIST for ML beginners”
Softmax regression: Multiclass (3 classes)
18
TensorFlow, “MNIST for ML beginners”
Plan
1. Classification Multi-Classe
2. Couche Soft(arg)max
3. Notation sous forme de matrice
19
Exercise 1
Nous voulons entraîner un réseau de neurones capable de distinguer les
images de chats (ou de chiens), dans un contexte de classification multi-
classes. Voici les prédictions du réseau pour un batch de 5 échantillons
d'entraînement, ainsi que leurs étiquettes (sortie réelles).
a) Calculer l’accuracy de ce batch.
b) Calculer la precision pour la classe “Chien" pour un seuil = 0.5.
c) Calculer le recall pour la classe “Chien" pour un seuil=0.5 .
Class Softmax - S(lk) Labels- y
Chat 0.8 0.3 0.4 0.2 0.7 1 0 1 0 1
Chien 0.2 0.7 0.6 0.8 0.3 0 1 0 1 0
Solution 1
a) Calculer l’accuracy de ce batch.
Class Prediction - y Labels - y
Chat 0.8 0.3 0.4 0.2 0.7 1 0 1 0 1
Chien 0.2 0.7 0.6 0.8 0.3 0 1 0 1 0
Accuracy= 4 / 5 = 0.8
b) Calculer la precision pour la classe “Chien" pour un seuil = 0.5.
Class Labels - y Labels - y
Chat 0.8 0.3 0.4 0.2 0.7 1 0 1 0 1
Chien 0.2 0.7 0.6 0.8 0.3 0 1 0 1 0
Precision = 2 /3 = 0.6
c) Calculer le recall pour la classe “Chien" pour un seuil=0.5 .
Classe Labels - y Labels - y
Chat 0.8 0.3 0.4 0.2 0.7 1 0 1 0 1
Chien 0.2 0.7 0.6 0.8 0.3 0 1 0 1 0
Recall = 2 /2 = 1.0