• 12 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 20/01/2020

Approchez une fonction de façon non-linéaire

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Dans le chapitre précédent, nous avons étudié le moyen d’approcher linéairement une fonction. Cependant, cette architecture d’approximation est limitée et incapable d’offrir une bonne représentation de la diversité des fonctions possibles. Dans ce chapitre, nous allons discuter d’architectures d’approximation non-linéaire obtenues au moyen de l’apprentissage profond.

Décrivez l’apprentissage (par renforcement) profond

L’apprentissage profond est un cadre général pour l’apprentissage des représentations. En connaissance d’un objectif, ce cadre apprend la représentation nécessaire afin de satisfaire cet objectif. Il y parvient en utilisant directement les données brutes et très peu de connaissances sur le domaine d’étude.

L’idée est de concevoir, par exemple, un drone capable de se représenter le monde dans lequel il évolue et d’y agir de façon rationnelle.

Décrivez le processus d’apprentissage profond

 Mais que signifie exactement apprentissage profond ?

Cela signifie simplement que l’on souhaite construire une représentation hiérarchique du monde. Pour y parvenir, nous allons composer plusieurs fonctions.

Représentation graphique d'un réseau de neuronal, ses entrées/sorties, et la fonction de perte
Représentation graphique d'un réseau de neuronal, ses entrées/sorties, et la fonction de perte

On construit ainsi une unique fonction qui associe les données d’entrée x  aux données de sortie y , mais cette fonction est construite par composition de fonctions paramétriques.

Ce qui est intéressant dans cette représentation profonde est qu’il est possible de parcourir la représentation hiérarchique dans l’ordre inverse afin de calculer le gradient de la fonction associée.

Mécanisme de propagation par chaînage arrière.
Mécanisme de propagation par chaînage arrière

Or, si nous savons comment ajuster les paramètres afin d’optimiser la fonction de perte, alors nous savons comment optimiser cette fonction et donc comment améliorer son comportement.

Les réseaux de neurones profonds

Nous savons maintenant ce qu’est une représentation profonde.

Mais qu’est-ce que signifie un réseau de neurones profonds ?

Il s’agit simplement d’une représentation profonde composée de plusieurs transformations :

  • D'abord, des transformations linéaires, où l’état caché ht du réseau est actualisé par une fonction linéaire donnée ici par le vecteur de paramètres ww et l’état caché résultant est ht+1 , 

ht+1=wwht.
  • Ensuite, ce denier état caché, ht+1 , est transformé à nouveau via une fonction non-linéaire dite fonction d’activation donnée ici par f : 

ht+2=f(ht+1).

Il peut s’agir par exemple, d’une sigmoïde ou d’une unité de rectification linéaire.

  • Tout cela est composé à une fonction de perte, qui peut être :

    • l’erreur quadratique  moyenne, lorsqu’on souhaite minimiser l’erreur entre la sortie de notre réseau et la sortie désirée : 
      yy2. 

    • ou lorsqu’on dispose d’un réseau de neurone stochastique, on peut optimiser la vraisemblance :

      logP(y).

L’une des idées importantes qui conduit à un apprentissage efficace des réseaux de neurones profonds est le partage de poids. En d’autres termes, l’identification et l’exploitation des régularités conduit à des interdépendances entre paramètres. Deux exemples de réseaux de neurones profonds ont démontré une grande efficacité pratique en partageant les poids respectivement dans le temps ou dans l’espace.

Les réseaux de neurones récurrents

D’abord, on trouve les réseaux de neurones récurrents, tels que les LSTM (long-term short-term memory), qui partagent les poids dans le temps. Ainsi, la même fonction et donc les mêmes poids sont utilisés à l’instant t  ainsi qu’à l’instant t+1 et ainsi de suite. C’est cette propriété qui rend ces réseaux applicables aux séries temporelles par exemple.

Réseaux de neurones récurrents
Réseaux de neurones récurrents

Les réseaux de neurones convolutifs

Ensuite, il est possible d’utiliser les réseaux de neurones convolutifs afin de partager les poids dans l’espace.  L’idée est de prendre une fonction qui s’applique de façon identique d’une région à une autre, c’est-à-dire une fonction invariante en translation.

Réseaux de neurones convolutifs.
Réseaux de neurones convolutifs

Dans le chapitre suivant, nous discuterons de deux algorithmes d’apprentissage par renforcement capables d’utiliser les architectures linéaires, vues au chapitre précédent, ainsi que les architectures non-linéaires, présentées dans ce chapitre.

Exemple de certificat de réussite
Exemple de certificat de réussite