Introduction aux réseaux de neurones – 3/3 : Apprentissage des réseaux de neurones

17-06-2019   •   3 min de lecture

Comme évoqué en deuxième partie, dans le cerveau humain, c’est le comportement global des neurones qui permet de traiter l’information. Pour reproduire cette capacité de façon informatique, il convient donc de concevoir des réseaux de neurones formels (ou artificiels). Ces structures deviennent alors capables d’apprendre par l’expérience.

Les neurones en réseaux

Dans un réseau de neurones, ces derniers peuvent être reliés les uns aux autres de différentes façons. Ils peuvent être tous interconnectés ou ne présenter que quelques liaisons. Le choix de la configuration, comme du nombre de neurones, constitue une question complexe, dépendant du problème à résoudre.

Néanmoins, un modèle est particulièrement employé aujourd’hui : les réseaux de neurones à couches. Comme leur nom l’indique, ils sont constitués de différentes couches : une d’entrée, une de sortie, et entre les deux, éventuellement une ou plusieurs couche(s) cachée(s). À l’intérieur d’une même couche, les neurones ne sont pas reliés entre eux. Mais ils sont, en général, connectés à tous les neurones des couches suivantes.

Parmi ces réseaux, le plus répandu est certainement le « perceptron multicouche », conçu à partir des travaux de l’Américain Frank Rosenblatt, en 1957. Il a été démontré qu’un tel modèle pouvait représenter toute fonction mathématique.

Pour cela, les réseaux de neurones artificiels font appel à leur propriété la plus remarquable : leur capacité d’apprentissage.

L’apprentissage

En effet, les réseaux de neurones peuvent trouver le lien qui unit des valeurs de sortie à celles en entrée, et ce, même lorsqu’on ne connaît pas cette fonction a priori. Afin de parvenir à ce résultat, il faut « entraîner » le modèle, à l’aide d’un jeu de données initial.

Celui-ci est alors divisé en deux parties : une pour l’apprentissage, l’autre pour tester le réseau. Dans un premier temps, on va donc soumettre des données d’entraînement au programme, qui comprennent des valeurs d’entrée, ainsi que les valeurs de sortie attendues. Au début, le réseau de neurones va tenter de calculer les résultats, mais avec peu d’informations, et va donc commettre des erreurs. On va ensuite ajuster ses paramètres, de sorte à réduire ces écarts à chaque itération.

Par exemple, un réseau de neurones peut être utilisé pour prévoir les risques d’apparition d’une maladie chez certains individus. En lui soumettant les caractéristiques de patients, le modèle va d’abord effectuer des prédictions aléatoires. Puis, en apprenant de ses erreurs, il sera de plus en plus pertinent dans son analyse.

L’écueil du surapprentissage

Mais à quel moment faut-il arrêter d’entraîner le réseau de neurones ? En réalité, il ne suffit pas d’obtenir les meilleurs résultats sur le jeu d’entraînement. Car le programme pourrait alors être si précis sur ces données qu’il deviendrait incapable de généraliser. On parle alors de « surapprentissage ».

Pour schématiser, reprenons le cas de la prévention de maladies. Imaginons que, dans le jeu de données initial, le programme constate que plusieurs patients à lunettes sont atteints d’un cancer. Avec du surapprentissage, le programme pourrait déduire que le port de lunettes est symptomatique d’un risque élevé d’apparition d’une telle maladie.

Afin d’éviter cet écueil, lors de la phase d’apprentissage, on divise le jeu d’entraînement en deux sous-ensembles, qu’on soumet en parallèle au réseau de neurones. Et tandis que le modèle apprend avec le premier, le deuxième sert d’échantillon de validation, pour vérifier la capacité d’extrapolation du programme. La meilleure configuration intervient alors quand l’erreur est minimale sur le jeu de validation.Les réseaux de neurones artificiels se distinguent donc par leur capacité à apprendre et à généraliser. Parmi les structures possibles, une forme est de plus en plus utilisée : celle du deep learning, qui fera l’objet d’une série d’articles dédiée.

Tags