Résumé Methode SCAN
La méthode
L’algorithme SCAN est une méthode de clustering non supervisé, c’est à dire qu’elle associe des étiquettes à des images, sans nécessiter d’exemples.
Elle est composée de trois étapes :
- Vectorisation : La première étape de traitement sert à vectoriser les images, c’est à dire transformer chaque image en vecteur de N dimensions, tels que les images qui présentent des caractéristiques communes correspondent à des vecteurs proches en N dimensions.
- Cette étape est assuré dans l’article original par une adaptation de la méthode SimCLR. Cependant, n’importe quelle méthode de vectorisation non-supervisée peut être employée à la place.
- Le résultat de la vectorisation permet de trouver, pour chaque image, les k plus proches voisins et leurs vecteurs, qui serviront de données d’entrée pour l’étape suivante.
- Clustering : A partir des vecteurs de l’étape précédente et en se basant sur l’extraction des k plus proches voisins, cette étape assigne un cluster à chaque image, en optimisant deux critères:
- Une image et ses voisins sont assignés au même cluster
- Un paramètre d’entropie permet de répartir les images entres tous les clusters (éviter que toutes les images soient assignées au même cluster).
- Self-supervised Learning : En ne prenant en compte que les images pour lesquelles le modèle est le plus sur de son choix, il réapprend les classes des autres exemples. A chaque époque d’entrainement, de plus en plus d’images seront éligibles à servir d’exemple pour cette étape.
On peut remarquer que la première étape est cruciale, car elle permet de refléter les caractéristiques des images dans un espace multi-dimensionnel, utilisé par la suite pour le clustering. Si les caractéristiques des images qui doivent servir à les rapprocher ne sont pas correctement prises en compte dans cette étape de vectorisation, les étapes suivantes ne produiront pas le résultat désiré.
Tests
Implémentation
nous avons utilisé l’implémentation open source des auteurs pour effectuer nos tests : https://github.com/wvangansbeke/Unsupervised-Classification
Données
Nous avons utilisé le jeu de données lymparza2, composé de 10 vues et 6 classes de défauts.
Modèle
Le modèle utilise un Backbone resnet18, avec une sortie en 2048 dimensions
Augmentations
L’apprentissage contrastif sur lequel repose cette méthode nécessite de générer des paires d’images qui appartiennent au même groupe. En pratique, on utilise généralement une même image de base, modifiée de deux manières différentes à l’aide d’augmentations prises dans un ensemble pré-déterminé.