class: center, middle # Introduction au Deep Learning ## Réseaux de Neurones Convolutionnels ###Rémy Courdier (UR)
avec des slides de Evann Courdier (EPFL)
Dernière mise à jour :
.affiliations[   ] --- Plan du cours ### En théorie... - .grey[Présentation Générale Machine Learning et Deep Learning] - .grey[Aspects theoriques du Machine learning et Deep Laerning] - Introduction aux réseaux neuronaux convolutionnels ### En pratique... .grey[ - TP : Classification d’images satellitaires - TP : Object detection / counting ] --- ## Pourquoi des réseaux neuronaux convolutionnels (CNN) ? ### Nombre de paramètres Si on utilisait une image en entrée d'un réseau classique, il faudrait apprendre un nombre colossal de paramètres ! Par exemple, une couche d'un réseau qui prend en entrée une image RGB $256 \times 256$ image, et produit une image de même taille nécessite: $$ (256 \times 256 \times 3)^2 \simeq 4e+10 $$ paramètres. --- ## Pourquoi des CNN ? ### Cohérence Spatiale Les images possèdent une cohérence spatiale, et donc les systèmes qui utilisent des images doivent être 'invariant par translation'. Un réseau convolutionnel l'est car il applique la même transformation linéaire à chaque endroit de l'image. --- --- ## Convolution 1d .center[
] .credit[Slide credit: F. Fleuret] --- ## Convolution 1d .center[
] .credit[Slide credit: F. Fleuret] --- ## Convolution 1d .center[
] .credit[Slide credit: F. Fleuret] --- ## Convolution 1d .center[
] .credit[Slide credit: F. Fleuret] --- ## Convolution 1d .center[
] .credit[Slide credit: F. Fleuret] --- ## Convolution 1d .center[
] .credit[Slide credit: F. Fleuret] --- ## Convolution 1d .center[
] .credit[Slide credit: F. Fleuret] --- ## Convolution 1d .center[
] .credit[Slide credit: F. Fleuret] --- ## Convolution 1d .center[
] .credit[Slide credit: F. Fleuret] --- ## Convolution d'une image - Image de dimensions $5 \times 5$ - Noyau de dimensions $3 \times 3$ .center[
] --- ## Convolution d'une image (Noir & Blanc) .center[
] --- ## Convolution d'une image (Couleur) .center[
] --- ## Convolution 2d .center[
] .credit[Slide credit: F. Fleuret] --- ## Convolution 2d .center[
] .credit[Slide credit: F. Fleuret] --- ## Convolution 2d .center[
] .credit[Slide credit: F. Fleuret] --- ## Convolution 2d .center[
] .credit[Slide credit: F. Fleuret] --- ## Convolution 2d .center[
] .credit[Slide credit: F. Fleuret] --- ## Convolution 2d .center[
] .credit[Slide credit: F. Fleuret] --- ## Convolution 2d .center[
] .credit[Slide credit: F. Fleuret] --- ## Convolution 2d .center[
] .credit[Slide credit: F. Fleuret] --- ## Convolution 2d .center[
] .credit[Slide credit: F. Fleuret] --- ## Convolution 2d .center[
] .credit[Slide credit: F. Fleuret] --- ## Convolution 2d .center[
] .credit[Slide credit: F. Fleuret] --- ## Convolution 2d .center[
] .credit[Slide credit: F. Fleuret] --- ## Convolution 2d .center[
] .credit[Slide credit: F. Fleuret] --- ## Noyau de Convolution - Ils sont appris (ils font partie des paramètres) - Exemple de filtres "3D" (3 canaux RGB) appris: .center[
] --- ## Sous Echantillonnage (Pooling / Subsampling) - Réduction de dimension spatiale - Plusieurs type: average pooling, max pooling, ... .center[
] --- ## Sous Echantillonnage (Pooling / Subsampling) - Réduction de dimension spatiale - Plusieurs type: average pooling, max pooling, ... .center[
] ??? Conserve l'invariance par translation --- ## Max-Pooling 1d .center[
] .credit[Slide credit: F. Fleuret] --- ## Max-Pooling 1d .center[
] .credit[Slide credit: F. Fleuret] --- ## Max-Pooling 1d .center[
] .credit[Slide credit: F. Fleuret] --- ## Max-Pooling 1d .center[
] .credit[Slide credit: F. Fleuret] --- ## Max-Pooling 1d .center[
] .credit[Slide credit: F. Fleuret] --- ## Max-Pooling 1d .center[
] .credit[Slide credit: F. Fleuret] --- ## Max-Pooling 1d .center[
] .credit[Slide credit: F. Fleuret] --- ## Max-Pooling 2d .center[
] .credit[Slide credit: F. Fleuret] --- ## Max-Pooling 2d .center[
] .credit[Slide credit: F. Fleuret] --- ## Max-Pooling 2d .center[
] .credit[Slide credit: F. Fleuret] --- ## Max-Pooling 2d .center[
] .credit[Slide credit: F. Fleuret] --- ## Max-Pooling 2d .center[
] .credit[Slide credit: F. Fleuret] --- ## Max-Pooling 2d .center[
] .credit[Slide credit: F. Fleuret] --- ## Max-Pooling 2d .center[
] .credit[Slide credit: F. Fleuret] --- ## Max-Pooling 2d .center[
] .credit[Slide credit: F. Fleuret] --- ## Max-Pooling 2d .center[
] .credit[Slide credit: F. Fleuret] --- ## Max-Pooling 2d .center[
] .credit[Slide credit: F. Fleuret] --- ## Max-Pooling 2d .center[
] .credit[Slide credit: F. Fleuret] --- ## Max-Pooling 2d .center[
] .credit[Slide credit: F. Fleuret] --- ## Max-Pooling 2d .center[
] .credit[Slide credit: F. Fleuret] --- ## Max-Pooling 2d .center[
] .credit[Slide credit: F. Fleuret] --- ## Max-Pooling 2d .center[
] .credit[Slide credit: F. Fleuret] --- ## Couche convolutionnelle Une couche de réseau convolutionnel est composée d'une convolution, d'une activation et d'un pooling. .center[
] --- ## Réseau convolutionnel - Superposition de plusieurs couches convolutionnelles qui extraient les features - Les couches plus profondes calculent des features plus globales, plus invariantes - La dernière couche est une couche de classification (non convolutionnelle) .center[
] --- ## D'autres architectures: GoogleNet
.center[
] --- ## D'autres architectures: Resnet .center[
] --- ## Comparaison des modèles .center[
] --- ## Concours de classification d'images .center[ ###"Deeper is better"
] -- .center[[Go to Ethique](ethique.html)]