Académique Documents
Professionnel Documents
Culture Documents
Compte-rendu de travaux
pratiques n°4 :
Explicabilité – Segmentation Multi-
classes avec UNet
Guillaume GILLANT
Alexandre GLEYZE
M1 SIME
Année universitaire 2023 - 2024
Table des matières
QUESTIONS THÉORIQUES.............................................................3
QUESTIONS SUR LE CODE............................................................4
QUESTIONS PRATIQUES................................................................6
M1 SIME Guillaume GILLANT
QUESTIONS THÉORIQUES
1. Définir le principe de la segmentation
- Encoder : c’est un réseau convolutif avec pooling qui produit une représentation compressée de
l’image d’entrée
3. Quels sont les facteurs qui peuvent rendre difficile la segmentation multi-classe ?
(3 facteurs minimum)
Superposition des classes : Lorsque différentes classes dans une image se chevauchent ou sont
très proches les unes des autres, il devient difficile pour l'algorithme de segmentation de définir les
limites exactes de chaque classe.
Variabilité des classes : Si les classes présentes dans l'image sont très variables en termes de
forme, de taille, de texture ou de couleur, il peut être difficile pour l'algorithme de segmentation de
généraliser et d'identifier correctement toutes les variations possibles.
Incohérence des données : Parfois, les données elles-mêmes peuvent être incohérentes en
termes de qualité ou de résolution. Cela peut inclure des artefacts d'image, du bruit ou des
distorsions qui rendent difficile la segmentation précise des différentes classes.
Défis liés à la définition des classes : Définir précisément les différentes classes à segmenter peut
également être un défi. Parfois, il peut y avoir une ambiguïté dans la définition des classes ou des
frontières floues entre différentes catégories d'objets, ce qui complique la tâche de segmentation.
La normalisation par lot est une technique largement utilisée dans les réseaux de neurones
profonds pour accélérer l'apprentissage et améliorer la stabilité de l'entraînement. Elle normalise
les activations en soustrayant la moyenne et en divisant par l'écart-type sur chaque mini-lot
pendant l'entraînement.
Dans le cas spécifique de nn.BatchNorm2d, la normalisation est effectuée sur chaque canal de
chaque image dans un mini-lot de données 2D. output_channel spécifie le nombre de canaux de la
sortie de la couche de convolution, et la normalisation est effectuée séparément pour chaque
canal.
mode : défini sur 'min' car nous souhaitons réduire le taux d'apprentissage lorsque la métrique de
validation cesse de diminuer.
factor : réglé à 0,5, ce qui signifie que le taux d'apprentissage sera réduit de ce facteur lorsque la
condition est remplie.
patience : fixé à 3, ce qui signifie que le taux d'apprentissage sera réduit si la métrique de
validation ne s'améliore pas pendant 3 époques consécutives.
verbose : est réglé sur True, ce qui signifie que la fonction affichera un message indiquant la
réduction du taux d'apprentissage.
En résumé, cette ligne de code configure un planificateur de taux d'apprentissage qui réduit le taux
d'apprentissage lorsque la métrique de validation cesse de s'améliorer, aidant le modèle à
converger et à apprendre de manière plus efficace.
QUESTIONS PRATIQUES
7. Pourquoi le premier masque généré est uniforme ?
Un masque uniforme est un masque qui attribue la même valeur à tous les pixels d'une image ou
d'une région spécifique de l'image. En d'autres termes, chaque pixel du masque a la même
intensité ou la même valeur.
Le premier masque généré est probablement uniforme en raison de l'initialisation aléatoire des
poids du réseau de neurones. Lorsque le modèle est créé pour la première fois et que ses poids
sont initialisés de manière aléatoire, il n'a aucune connaissance sur les caractéristiques des
données et ne peut pas effectuer de segmentation précise. Par conséquent, ses prédictions
initiales peuvent sembler aléatoires ou uniformes.
De plus, si le modèle est entraîné avec une fonction de perte telle que la perte quadratique
moyenne (MSE), il peut d'abord apprendre à prédire des masques uniformes pour minimiser cette
perte avant de commencer à apprendre des caractéristiques plus complexes dans les images.
8. Pour chaque expérience, commenter l'évolution qualitative des masques générés toutes
les 10 époques. (capture d'écran + commentaires)
Pour commenter l'évolution qualitative des masques générés dans l'expérience 1, nous devons
examiner comment les masques évoluent visuellement au fil des époques. Voici nos observations
basées sur les pertes d'entraînement et de validation ainsi que les relevés d’images construites
durant l’entraînement.
Époque 0 (loss de validation : 0.0325) : le premier masque généré est uniforme tandis que les
premiers masques suivant peuvent sembler flous ou mal définis en raison d'une initialisation
aléatoire et d'une formation précoce.
Époque 5 (loss de validation : 0.0305) : les masques peuvent commencer à montrer des contours
plus clairs et des régions mieux définies à mesure que le modèle s'adapte aux données
d'entraînement.
Époque 10 (loss de validation : 0.0281) : on peut voir une amélioration progressive dans la netteté
et la précision des masques générés à mesure que le modèle continue à apprendre les
caractéristiques des données.
Époque 15 (loss de validation : 0.0259) : les masques peuvent maintenant montrer des contours
plus nets et une meilleure segmentation des objets dans les images. Le modèle a probablement
appris des caractéristiques plus complexes tels que des véhicules, des arbres et d’autres éléments
remarquables.
Époque 19 (loss de validation : 0.0261) : il pourrait y avoir une stabilisation de la qualité des
masques générés. Les améliorations supplémentaires peuvent être mineures à ce stade, car le
modèle commence à converger vers une solution optimale.
Globalement, au fur et à mesure que le nombre d'époques augmente, nous relevons des masques
générés devenant progressivement plus précis et mieux définis, capturant les détails et les
contours des objets dans les images avec une meilleure fidélité.
Nous pouvons aussi ajouter comme information la meilleure époque, c’est-à-dire là où la loss en
train est la plus basse. Sur le relevé de la Figure 3 c’est l’époque 17, information vérifiée à la
Figure 9 sur les courbes ou l’époque 17 est effectivement là plus basse.
En comparant les résultats de cette expérience à la précédente, nous pouvons constater que
l'activation du scheduler dans celle-ci n'a pas conduit à une amélioration significative des
performances par rapport à l'Expérience 1 où le scheduler n'était pas utilisé. Malgré l'introduction
du scheduler, les courbes d'apprentissage et de validation ainsi que les valeurs de perte finale
demeurent relativement similaires entre les deux expériences.
Cela suggère que, dans le contexte de cette tâche spécifique et avec les paramètres utilisés,
l'utilisation d'un scheduler n'a pas eu un impact notable sur la convergence du modèle ou sur sa
capacité à généraliser. Plusieurs raisons peuvent expliquer ce résultat, notamment la configuration
spécifique du scheduler, la taille de l'ensemble de données, la complexité du modèle et d'autres
stratégies d'optimisation déjà mises en œuvre.
Pour cette seconde expérience, la meilleure époque est aussi là encore 17.
Figure 17: Expérience 3 - résultats (1/2) Figure 18: Expérience 3 - résultats (2/2)
Pour commenter l'évolution qualitative des masques générés sur l'ensemble des 50 époques dans
cette dernière expérience nous procéderons comme les deux précédentes.
Époque 20 (loss de validation : 0.0152) : les masques devraient montrer une amélioration
significative de la qualité avec des contours plus nets et une meilleure segmentation des objets
dans les images.
Époque 30 (loss de validation : 0.0149) : es masques générés devraient être de haute qualité avec
une segmentation précise des objets dans les images. Le modèle a probablement convergé vers
une solution optimale et a appris à capturer efficacement les caractéristiques des données.
On remarque sur les Figure 21 et Figure 22 que se sont les même images qui ont servi à
l’entraînement. Mais nous notons que le masque généré sur la seconde figure est meilleur que sur
la première.
Époque 40 (loss de validation : 0.0146) : on peut s'attendre à observer une stabilité dans la qualité
des masques générés, avec des améliorations mineures à mesure que le modèle continue
d'apprendre.
Époque 49 (loss de validation : 0.0146) : les masques générés devraient être stables avec une
segmentation précise et des contours nets.
Cette expérience se distingue des deux premières expériences par l'augmentation de la taille des
images d'entrée. Cette modification conduit à une augmentation significative de la complexité du
modèle et de la taille de l'ensemble de données, ce qui devrait normalement nécessiter des
ajustements dans l'architecture du réseau ainsi que dans les paramètres d'apprentissage.
Comparativement aux deux premières expériences, l'Expérience 3 semble avoir une tendance
similaire en termes d'évolution qualitative des masques générés, avec des pertes d'entraînement
et de validation qui diminuent progressivement au fil des époques. Cependant, les valeurs de perte
finale semblent être plus élevées, ce qui peut suggérer une convergence moins efficace du modèle
ou des difficultés accrues à généraliser.
Cette différence pourrait être attribuée à plusieurs facteurs, notamment la complexité accrue du
modèle et la taille des images, qui peuvent rendre l'apprentissage plus difficile. De plus, l'utilisation
du scheduler dans l'Expérience 3 peut également influencer la convergence du modèle, bien que
les résultats spécifiques dépendent des hyperparamètres du scheduler et de la dynamique
d'apprentissage de l'ensemble de données.
Ajouter un planificateur de taux d'apprentissage tel que ReduceLROnPlateau peut avoir un impact
positif sur le processus d'apprentissage de plusieurs façons :
Meilleure généralisation : Un taux d'apprentissage plus faible peut aider le modèle à éviter le
surajustement et à améliorer ses capacités de généralisation, le rendant plus robuste aux données
invisibles.
Réduction des oscillations : Lorsque le taux d'apprentissage est trop élevé, le modèle peut osciller
entre différents minima locaux, rendant le processus d'apprentissage instable. En réduisant le taux
d'apprentissage, le modèle peut éviter ces oscillations et trouver un minimum plus optimal.
En résumé, l'ajout d'un planificateur de taux d'apprentissage tel que ReduceLROnPlateau peut
aider le modèle à apprendre mieux, converger plus rapidement et généraliser plus efficacement
aux données invisibles.
Régularisation : Des techniques telles que la régularisation L1/L2, le dropout et l'arrêt anticipé
peuvent aider à prévenir le sur-ajustement et à améliorer la généralisation du modèle.
Learning rate scheduling : Ajuster le taux d'apprentissage pendant l'entraînement peut aider le
modèle à converger plus rapidement et à éviter de rester bloqué dans des minima locaux. Cela
peut être fait en utilisant des techniques telles que ReduceLROnPlateau, la décroissance par
paliers ou la décroissance exponentielle.