Qu'est-ce que Réseau de neurones convolutif (CNN) ?
Réseau de neurones construit autour de couches de convolution, qui calculent des sommes de produits en faisant glisser un petit filtre (noyau) sur l'entrée, auxquelles s'ajoutent des couches de pooling, etc. Comme le même filtre est réutilisé sur toute l'entrée, il a moins de paramètres qu'un réseau à couches entièrement connectées et extrait des caractéristiques locales, comme les contours ou les motifs d'une image, quelle que soit leur position. On l'utilise pour la reconnaissance d'images, la détection d'objets, le traitement de la parole, etc.
Nom japonais: 畳み込みニューラルネットワーク(CNN)
« Réseau de neurones convolutif (CNN) » apparaît dans 2 questions d'entraînement réparties sur 2 thèmes, dont Pile matérielle et logicielle de l'IA, Bases de l'apprentissage automatique.
Domaine: Bases de l'apprentissage automatique
Calcul d'une couche de convolution
Dans une couche de convolution, on fait glisser par exemple un filtre 3×3 depuis le coin supérieur gauche de l'image avec un pas (stride) constant, en calculant à chaque position la somme des produits des pixels recouverts par les poids du filtre, ce qui produit une carte de caractéristiques (feature map). La taille de sortie vaut (N + 2P − F) ÷ S + 1, où N est la taille de l'entrée, F celle du filtre, P le remplissage (padding) et S le pas. Une couche utilise plusieurs filtres, dont chacun extrait une caractéristique différente : contours verticaux, contours horizontaux, variations de couleur, etc. Plus une couche est profonde, plus elle réagit à des caractéristiques grandes et complexes, comme des yeux ou des roues.
Pooling et architecture d'ensemble
La couche de pooling prend le maximum (max-pooling) ou la moyenne de chaque zone, de 2×2 par exemple, pour réduire la taille des données et les calculs, et rendre le réseau moins sensible aux petits décalages de position. Un CNN typique empile plusieurs blocs formés d'une couche de convolution, d'une fonction d'activation (ReLU, etc.) et d'une couche de pooling, puis classe les données avec une couche entièrement connectée et la fonction softmax. Les connexions résiduelles, qui font passer le signal par-dessus des couches, permettent d'entraîner des réseaux profonds de plus de 100 couches.
Questions fréquentes
Le calcul d'une couche de convolution est-il identique à la convolution mathématique ?
Dans la plupart des frameworks, on appelle convolution un calcul qui fait la somme des produits sans retourner le filtre, appelé corrélation croisée. Comme les poids du filtre sont déterminés par l'apprentissage, le fait de le retourner ou non n'influe pas sur les performances du modèle.
Un CNN peut-il servir pour autre chose que des images ?
Oui. On utilise des convolutions à une dimension pour les formes d'onde audio et les séries temporelles, et à trois dimensions pour les vidéos ou les images médicales en volume. Il convient aux données disposées en grille, où les données voisines sont liées entre elles.