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).

https://setosa.io/ev/image-kernels/

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

Tensorflow playground)

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.