Cours 3 - CNNs
1 Deep learning
Réseau playground
2 Deep learning

3 CNN
CNN : convolutional neural networks (réseau de neurones convolutionnel)
aussi appelé ConvNet
particulièrement performants car ils sont capables d’apprendre des caractéristiques spatiales et locales de manière très efficace.
parfois on dit que les CNN apprennent une “hiérarchie de caractéristiques” :
- les premières couches capturent des caractéristiques simples (comme les bords et les textures), tandis que
- les couches plus profondes détectent des structures plus complexes (comme des formes et des objets entiers).
4 CNN - Opérateur de base :
convolution pour traiter les données
filtres (ou kernels ou noyaux) sur les données d’entrée.
- petites matrices de poids
- par exemple, 3x3 ou 5x5, 7x7
- transfomer une image d’entrée en une image de sortie (feature map).

5 CNN : Applications web interatifs
- Prédiction avec un réseau de neurones déjà entraîné (aussi appelé inférence)
FCNN : https://adamharley.com/nn_vis/fc/2d.html
CNN : https://adamharley.com/nn_vis/cnn/2d.html
- Tensorflow playground : entrainer un réseau de neurones FCNN
6 CNN :
Exemple de visualisation du CNN de l’application interactive :

Ce réseau de neurones vu de la façon LeNet :

Ce réseau de neurones vu de la façon AlexNet :

Ce réseau de neurones vu de la façon AlexNet, en faisant appraître la taille des données et filtres, ainsi que le nombre de canaux (channels) :

7 CNN - paramètres
- plusieurs canaux par couche
- un filtre par canal
Il y a donc significativement moins de paramètres que dans une couche pleinemenet connecté.
Exemple :

Dans la première couche, il y a 5x5+1=26 paramètres par canal (25 “poids” pour le filtre, et 1 biais), soit un total de 156 paramètres.
8 CNN - différentes couches
Convolutional layer : application d’un filtre de convolution. Paramètres :
- taille du filtre (p.ex. 3x3, ou 5x5)
- padding
- same : taille des données d’entrées = taille des données de sortie
- valid : on ne retient pas les valeurs des bords d’image pour avoir un filtre valide pour toutes les données
- strides (par défaut (1,1)) : définit combien de données la fenêtre se déplace après chaque opération.
Max-Pooling layer : regroupement de pixel en prenant la plus grande valeur. Paramètres :
- taille, p.ex. (2,2)
- padding
Dropout layer : enlever certains pixels. Paramètres :
- ratio, p.ex. 0.5
Flattening layer : applatir les données, p.ex. passer d’une taille de données de (AxA) en (A*A). C’est souvent utilisé avant de passer à une couche pleinement connecté (fully-connected).
9 Vocabulaire
Architecture :
- Paramètres
- Poids
- Biais
- Fonction d’activation
- Couches
- Fully-connected
- Convolution
Entrainement :
- Epochs
- Fonction de perte (loss function)
- loss, validation loss, test loss
- Batch size
- Learning Rate
- Hyperparamètre
10 Fonctions d’activations
Quant aux fonctions d’activations pour ce réseau de neurones, il y a plusieurs possibilités :
Par exemple, nous pouvons choisir la fonction d’activation \(tanh\) pour les neurones dans la couche cachée, et la fonction \(sigmoid\) pour le neurone de la couche de sortie.