TOP 10 MODÈLES PRÉ-ENTRAÎNÉS POUR EMBEDDING D’IMAGES QUE TOUT DATA SCIENTIST DEVRAIT CONNAÎTRE
Dans le domaine de la vision par ordinateur, la classification d’images est une tâche complexe qui demande des ressources informatiques importantes. Le modèle de réseau neuronal doit être entraîné à reconnaître une grande quantité d’images, ce qui peut prendre beaucoup de temps et de puissance de calcul.
La solution pour réduire le temps et les ressources nécessaires à l’entrainement est d’utiliser des modèles pré-entrainés. Le transfert d’apprentissage est une technique basée sur l’utilisation des représentations de fonctionnalités apprises par un modèle pré-entrainé. Ces modèles sont généralement entraînés sur des données massives à l’aide de ressources informatiques de haute qualité.
Il existe plusieurs façons d’utiliser les modèles pré-entraînés :
– En utilisant les poids pré-entrainés pour faire directement des prédictions sur les données de test
– En utilisant les poids pré-entrainés pour initialiser le modèle puis entraîner le modèle sur le dataset personnalisé
– En utilisant uniquement l’architecture du réseau pré-entraîné, puis l’entraîner de zéro sur un dataset personnalisé
Dans cet article, nous allons explorer les 10 meilleurs modèles pré-entrainés pour l’embedding d’images. Tous ces modèles peuvent être chargés en tant que modèles keras en utilisant l’API keras.application.
LES ARCHITECTURES DE CNN DISCUTÉES DANS CET ARTICLE :
1) VGG
2) Xception
3) ResNet
4) InceptionV3
5) InceptionResNet
6) MobileNet
7) DenseNet
8) NasNet
9) EfficientNet
10) ConvNEXT
VGG a été introduit lors de la conférence ILSVRC 2014 et est l’un des modèles pré-entrainés les plus populaires. Cette architecture a été développée par le groupe de graphismes visuels de l’Université d’Oxford.
Il existe deux variantes du modèle VGG : un réseau de 16 couches et un réseau de 19 couches (amélioration du modèle VGG-16).
L’architecture de VGG est simple et séquentielle dans sa nature et utilise beaucoup de filtres. À chaque étape, des petits filtres (3×3) sont utilisés pour réduire le nombre de paramètres.
Le modèle VGG-16 a :
– 13 Couches Convolutionnelles
– 5 Couches de Pooling
– 3 Couches Denses Entièrement Connectées
– Entrée : Image avec des dimensions (224, 224, 3)
– Sortie : Embedding d’image de 1000 dimensions
D’autres détails pour les modèles VGG-16/19 sont les suivants :
– Lien vers l’article : https://arxiv.org/pdf/1409.1556.pdf
– Performance sur le dataset ImageNet : 71% (Top 1 Accuracy), 90% (Top 5 Accuracy)
– Nombre de paramètres : ~140M
– Nombre de couches : 16/19
– Taille sur disque : ~530MB
– Implémentation : tf.keras.applications.VGG16
Xception est une architecture CNN profonde qui utilise des convolutions séparables en profondeur. Cette convolution séparable en profondeur peut être comprise comme un modèle Inception avec un nombre maximal de tours.
L’architecture de Xception :
– Entrée : Image avec des dimensions (299, 299, 3)
– Sortie : Embedding d’image de 1000 dimensions
D’autres détails pour les modèles Xception :
– Lien vers l’article : https://arxiv.org/pdf/1409.1556.pdf
– Performance sur le dataset ImageNet : 79% (Top 1 Accuracy), 94.5% (Top 5 Accuracy)
– Nombre de paramètres : ~30M
– Taille sur disque : 88MB
– Implémentation : tf.keras.applications.Xception
Les architectures précédentes n’ont pas été conçues pour être évolutives à de nombreuses couches convolutionnelles. Cela a entraîné un problème de gradient qui converge rapidement vers 0. La solution est le modèle ResNet qui offre des connexions d’un courant alternatif pour résoudre le problème de gradient.
L’architecture de ResNet :
– Entrée : Image avec des dimensions (224, 224, 3)
– Sortie : Embedding d’image de 1000 dimensions
D’autres détails pour les modèles ResNet :
– Lien vers l’article : https://arxiv.org/pdf/1512.03385.pdf
– Performance sur le dataset ImageNet : 75–78% (Top 1 Accuracy), 92–93% (Top 5 Accuracy)
– Nombre de paramètres : 25–60M
– Nombre de couches : 107-307
– Taille sur disque : ~100-230MB
– Implémentation : tf.keras.applications.ResNet50
Inception (V1/V2/V3) est un modèle de réseau de neurones à apprentissage en profondeur basé sur un réseau de neurones convolutifs (CNN) développé par une équipe chez Google. InceptionV3 est une version avancée et optimisée des modèles InceptionV1 et V2.
L’architecture de InceptionV3 :
– Entrée : Image avec