Thibault Neveu aborde les réseaux à convolution (CNN), très utilisés dans les applications graphiques (traitement et reconnaissance d’images ou vidéos), mais également dans les systèmes de recommandation.
Les réseaux à convolution sont notamment très utilisés pour l’analyse d’images. Les deux caractéristiques principales des réseaux convolutifs sont qu’ils utilisent des filtres (kernel) et mettent en oeuvre du pooling.
Les filtres analysent les images zones par zones. Chaque filtre se spécialise de façon à reconnaître des motifs (patterns). Un filtre peut par exemple se spécialiser dans la détection des contours, tandis qu’un autre reconnaîtra certaines formes. La convolution a pour effet d’augmenter la profondeur de la matrice correspondant à l’image, puisque chaque filtre lui ajoutera une couche. Une image qui a une profondeur de 3 couches (le nombre 3 correspondant aux 3 canaux RGB) pourra ainsi résulter en une matrice d’une profondeur de 5, si le réseau convolutif est constitué de 5 filtres.
Le pooling permet quant à lui de réduire la taille d’une image en n’en conservant que les pixels les plus importants. Cela a pour effet de déformer l’image en perdant le positionnement précis des pixels. Cet effet est en fait bénéfique, puisqu’il permet de limiter les risques de surapprentissage. A titre d’exemple, un système de détection des visages aura tout intérêt à apprendre qu’un visage est constitué de deux yeux, d’un nez et d’une bouche, mais il est préférable qu’il n’apprenne pas par coeur l’espacement au pixel près entre ces différents éléments du visage, puisque leur position peut varier d’une personne à l’autre. Il existe d’autres techniques que le pooling, notamment amenées par les capsule Networks, nouvelle technique qui ne sera pas abordée dans le cadre de ce tutoriel sur les réseaux convolutifs.
Accéder à la vidéo suivante tutoriel : implémenter un réseau de neurones convolutif.