Réseaux de neurones et big data pour le machine learning
Structure des réseaux de neurones
Organisés en couches successives de plusieurs neurones, le réseau de neurone reçoit l’information (sous forme de nombres) grâce à la première couche aussi appelée Input Layer. Le résultat est obtenu grâce à la dernière couche ou Output Layer. Les différentes couches intermédiaires situées entre la première et la dernière sont les Hidden Layers. Suivant les données à traiter et les résultats à obtenir, le nombre de couches intermédiaires varie ainsi que l’organisation de celles-ci. Il existe donc une importante variétés de structures de réseaux de neurones avec des efficacités différentes selon le problème à résoudre.
Fonctionnement et applications des réseaux de neurones
Une des grandes applications des réseaux de neurones concerne le traitement des images. En effet, après un apprentissage, les réseaux de neurones permettent de « lire » des images avec de grandes précisions.
Chaque neurone d’une couche intermédiaire reçoit en paramètre le résultat des neurones de la couche précédente associé à un poids. Ces données sont traitées à l’aide d’une fonction d’activation dont le choix est très important. Certaines fonctions d’activations prennent le résultat des neurones précédents et retournent un nombre entre -1 et 1, d’autres ne gardent que la valeur maximale parmi toutes les valeurs des neurones de la couche précédente. Par ailleurs, chaque neurone est caractérisé par un nombre qui permet de modifier le résultat de la fonction d’activation, appelé biais ou bias en anglais. Cela permet de régler le neurone en le rendant plus ou moins sensible aux données des couches précédentes.
En entrée, chaque neurone de la première couche ou Input Layer reçoit une zone de l’image à traiter sous forme d’une liste de nombres associée à chacun des pixels de l’image. Un pixel sombre va être attribué d’une valeur proche de 0 tandis qu’un pixel blanc va recevoir la valeur 1. Intervient ensuite le traitement des couches intermédiaires ou Hidden Layers. Enfin, dans la dernière couche, les neurones retournent un chiffre entre 0 et 1. En effet, chaque neurone de la dernière couche est associé à une réponse particulière. Par exemple, si le programme trouve que l’image en entrée est un chat, ce neurone va retourner un nombre proche de 1. Plus ce nombre est proche de 1, plus la probabilité que l’image soit un chat est importante. Le deuxième neurone de la dernière couche est par exemple associé à un chien. De la même façon et indépendamment des autres neurones, il va proposer un nombre entre 0 et 1. Tous les autres neurones de la dernière couche vont ainsi donner un résultat. Le plus grand nombre donné sera considéré comme le résultat du programme.
Phase d’apprentissage et amélioration du résultat à l’aide d’une fonction coût
Lors de la phase d’apprentissage, intervient alors la fonction de coût. Celle ci va comparer le nombre de chaque neurone de la dernière couche avec celui qu’il aurait dû proposer. Si l’image en entrée était un chien, le neurone associé au chien aurait dû proposer 1 alors que le neurone associé au chat aurait du proposer 0. Plus les différences entre le résultat trouvé et le résultat réel sont importantes, plus la fonction de coût va renvoyer un nombre important. Le principe de la phase d’apprentissage sera de régler tous les neurones de la couche intermédiaire (Hidden layers) pour minimiser le retour de la fonction de coût. On force ainsi le logiciel à sortir le résultat recherché.
Alors, une fois que le réseau de neurones est correctement réglé, il s’agit de lui donner des nouvelles images pour qu’ils puisse déterminer si c’est un chat ou bien un chien. Cela est rendu possible grâce aux réglages réalisés sur les neurones de la couche intermédiaire pendant la phase d’apprentissage.
Apprentissage Supervisé et non supervisé
Le mode d’apprentissage décrit ci dessus est appelé mode d’apprentissage supervisé. En effet, lors de la phase d’apprentissage on associe une image à un résultat. A l’inverse, lorsque l’image ne possède pas d’étiquette lors de la phase d’apprentissage c’est un apprentissage dit non supervisé. Le réseau de neurone cherche seul les similitudes entres différentes images.