• Aucun résultat trouvé

1 Réseaux de neurones : concepts de base

1.1.2 Fonction de combinaison

Dans cet exemple de perceptron, la fonction de combinaison Σ calcule l’état interne du neurone par le produit scalaire entre le vecteur des entrées x et le

vecteur des poids synaptiques w. Cette fonction peut donc être formalisée comme étant une fonction vecteur-à-scalaire :

Σ(x; θ) = n

i=0 θixi =b+ n

i=1 wixi (3.2) 1.1.3 Fonction d’activation

La fonction d’activation (ou fonction de transfert) φ sert à introduire une non- linéarité dans le fonctionnement du neurone. Elle calcule la sortie y du neurone à partir la combinaisonΣ. y=φ(Σ) =φ(b+ n

i=1 wixi) (3.3)

Généralement, la fonction d’activation représente trois intervalles qui corres- pondent à trois états du neurone :

— en dessous du seuil, le neurone est non-actif

— aux alentours du seuil, le neurone est en phase de transition — au-dessus du seuil, le neurone est actif

En pratique, il existe plusieurs fonctions d’activation, nous présentons ici les fonctions les plus utilisées : la fonction sigmoïde (ou logistique), la fonction tan- gente hyperbolique (tanh), et la fonction Unité de Rectification Linéaire (ReLU). Leurs équations ainsi que leurs dérivées premières sont présentées dans le Tableau 3.1. La Figure3.3illustre des graphiques de ces fonctions d’activation.

Fonction Equation Dérivée

Sigmoïde φ(x) = 1+1e−x φ0(x) =φ(x)(1−φ(x)) TanH φ(x) = 1+2e−2x −1 φ0(x) =1−φ(x)2 ReLU φ(x) =    0 for x<0 x for x≥0 φ0(x) =    0 for x<0 1 for x≥0

Tableau 3.1 – Quelques fonctions d’activation souvent utilisées

1.2

Architecture de réseau

Bien qu’un seul perceptron puisse résoudre certaines tâches d’apprentissage simples, la puissance du calcul neuronal provient de la connexion de nombreux neurones dans une architecture de réseau. Un réseau de neurones est en général

(a) Sigmoïde (b) TanH (c) ReLU Figure 3.3 – Graphiques des trois fonctions d’activation les plus utilisées

composé d’une succession de couches dont chacune prend en entrée les sorties de la couche précédente. Il existe aussi un type d’architecture récurrent où l’entrée d’un neurone peut prendre sa propre sortie. Un réseau de neurones récurrents (RNN - Recurrent Neural Network) est constitué de neurones interagissant non- linéairement et pour lequel il existe au moins un cycle dans la structure. Dans le contexte de cette thèse, nous détaillons dans ce qui suit l’architecture du réseau de perceptron multicouches, qui est le type de réseau classique le plus connu et souvent utilisé en RI.

Le perceptron multicouche (PMC) est un réseau composé de couches succes- sives. Le but d’un réseau PMC est d’approximer une fonction y= fθ(x)qui définit une projection pour une entrée x à une catégorie y et de corriger les paramètres θ pour une meilleure approximation de cette fonction fθ(x). Le PMC est de type "propagation avant" (feed-forward neural network en anglais) parce que la communi- cation est transmise de couche en couche depuis l’entrée, via les couches cachées, vers la couche de sortie. Etant donné un ensemble d’entrées, à un état spécifique des neurones du réseau, l’information est propagée dans le réseau de couche en couche pour calculer les valeurs de sortie. Une couche est un ensemble de neu- rones n’ayant pas de connexion entre eux.

Considérons la structure illustrée dans la Figure 3.4, le réseau PMC consiste en une séquence de c couches cachées (l(1), ..., l(c))et une couche de sortie l(c+1), de sorte que les neurones de n’importe quelle couche ne sont connectés qu’aux neurones de la couche suivante. La couche d’entrée l(0) se compose de n entrées externes et n’est pas comptée comme une couche de neurones. Chaque couche cachée (l(1), ..., l(c)) est composée respectivement de (n1, ..., nc) neurones et peut avoir sa propre fonction d’activation φi. La couche de sortie l(c+1) se compose de m neurones. Un neurone u(ji)dans la couche cachée l(i)reçoit n(i−1)entrées venant

de tous les neurones de la couche précédente. Chaque connexion entre ce neurone uj(i) et un neurone uk(i−1) de la couche précédente l(i−1) est pondérée par le poids θ(jki). De cette façon, la valeur d’activation (la sortie) du neurone u(ji)est calculée par

Figure 3.4 – Réseau de perceptron multicouche

l’activation du produit scalaire des poids de la couche actuelle avec les neurones de la couche précédente : u(ji)= φ(i) ni−1

k=1 θjk(i)u(ki−1) ! i=1, ..., c ; j=1, ..., ni (3.4)

où ni−1 est le nombre de neurones de la couche précédente. Si i = 1 (pour la première couche cachée), u(k0) représente le ke valeur d’entrée. En appliquant le même principe aux neurones des couches cachées, chaque neurone yj de la couche de sortie (l(c+1)) est calculé par l’activation du produit scalaire des poids de la couche de sortie avec les neurones de la dernière couche cachée :

yj =u(jc+1)=φ(c+1) nc

k=1 θ(jkc+1)u(kc) ! j=1, ..., m (3.5)

Du point de vue vectoriel, notons x le vecteur des entrées (x0, ..., xn); ui le vecteur des neurones (u(0i), ..., u(nii)) de la couche l

(i); θ

i la matrice, de dimension ni×ni−1, des paramètres de la couche l(i); et y le vecteur des sorties (y0, ..., ym). On peut formuler les calculs des couches cachées et des sorties comme suit :

u0=x

ui =φ(i)(θui−1) i=1, ..., c (3.6)

y=φ(c+1)(θc+1·uc)

De cette façon, dans un réseau de neurones à propagation avant, la sortie de chaque neurone est une fonction des entrées. Ainsi, étant donné une entrée à un tel réseau neuronal, les activations de tous les neurones de la couche de sortie peuvent être calculées dans un temps déterministe.

1.3

Fonction objectif

Comme les autres algorithmes d’apprentissage automatique, pour évaluer ses capacités il faut concevoir une mesure quantitative de sa performance. Dans le cas de l’apprentissage supervisé, on mesure souvent la précision du modèle. La pré- cision est la proportion des exemples (instances) pour lesquels le modèle fournit une sortie (prédiction) correcte. On peut également obtenir l’information équiva- lente en mesurant le taux d’erreur qui correspond à la proportion d’exemples pour lesquels le modèle produit une sortie incorrecte.

Une fonction objectif, parfois mentionnée comme fonction de coût, fonction de perte (en anglais loss function) est définie pour mesurer l’erreur d’apprentissage à l’égard des résultats. A partir de cette erreur, le réseau s’entraîne par la mise à jour de ses paramètres libres avec l’objectif de minimiser cette erreur. Dans l’apprentissage supervisé, l’erreur est mesurée par la différence entre toutes les valeurs observées des données et les valeurs calculées par le modèle. Des fonctions de coût diffé- rentes donneront des erreurs différentes pour la même prédiction et auront donc un effet considérable sur la performance du modèle. Différentes fonctions de coût sont utilisées pour traiter différents types de tâches, c’est-à-dire la régression et la classification.

Nous reprenons les notations du réseau PMC : x, le vecteur d’entrée ; ˆy = f θ(x), le vecteur de sortie ; y, la vraie étiquette (classe, valeur) de x ; et θ l’ensemble des paramètres libres du réseau. Nous présentons ici quelques fonctions de coût J(θ; x, y)souvent utilisées avec les réseaux de neurones pour la classification et la régression.

Type Nom de fonction Equation

Régr

ession Erreur quadratique J = (y− ˆy)2 Erreur absolue J = |y− ˆy|

Classification Square loss J

= (1−yˆy)2

Erreur charnière (Hinge) J =max{1−yˆy, 0}

Erreur logistique J = ln 21 ln(1+e−yˆy)

Entropie croisée J = −y ln(ˆy) − (1−y)ln(1− ˆy)

Tableau 3.2 – Quelques fonctions de coût souvent utilisées

1.4

Algorithme d’entraînement

La procédure utilisée pour effectuer le processus d’apprentissage dans un ré- seau neuronal s’appelle l’algorithme d’entraînement (ou algorithme d’apprentis- sage). Dans l’exemple d’apprentissage supervisé, la fonction de coût est au regard des poids synaptiques (θ). Elle dispose également d’une borne inférieure, les pro- cédures d’optimisation finissent par aboutir à une configuration stable au sein du réseau de neurones. Le but de l’apprentissage est de, étant donné des exemples x et leur sortie souhaitée y, minimiser la fonction de coût J(θ; x, y) en corrigeant les paramètres libres θ. Un algorithme d’entraînement est utilisé pour changer et ainsi entraîner le réseau de neurones, de sorte que le réseau produise une sor- tie souhaitée pour une entrée donnée. Nous rappelons la procédure générale de l’apprentissage supervisé qui consiste en les étapes suivantes :

— Sélection d’exemples d’entraînement (input)

— Propagation des entrées via le réseau, générer la sortie (output)

— Calculer l’erreur (loss) en comparant la sortie avec la valeur souhaitée (label) — Mettre à jour (update) le réseau en fonction de l’erreur.

Pour un exemple (ou un ensemble d’exemples) en entrée, le temps de finir une telle procédure (propager les valeurs, calculer l’erreur, mettre à jour les pa- ramètres) pour cette entrée est appelé une itération. Une période pour finir cette procédure pour tous les exemples d’apprentissage, est appelée une époque. Cette procédure d’apprentissage peut être appliquée "par lots" (tous les exemples d’en-

traînement sont présentés une fois, l’erreur totale est calculée pour mettre à jour le réseau) ou "online" (le réseau est mis à jour pour chaque exemple d’entraînement ou un petit paquet d’exemple (mini-batch)). Dans le cas d’apprentissage par lots, une itération est égale à une époque.