Rappel du perceptron simple Un perceptron peut être vu comme le type de réseau
Rappel du perceptron simple Un perceptron peut être vu comme le type de réseau de neurone le plus simple. C'est un classifieur linéaire. Ce type de réseau neuronal ne contient aucun cycle (il s'agit d'un réseau de neurone à propagation avant). Dans sa version simplifiée, le perceptron est monocouche et n'a qu'une seule sortie (booléenne) à laquelle toutes les entrées (booléennes) sont connectées. Plus généralement, les entrées peuvent être des nombres réels. - Inconvénient : Un perceptron simple ne sait traiter que les problèmes linéairement séparables. - Problème : Trouver une droite de séparation efficace n’est pas possible Le perceptron multicouche 1-Introduction : Le perceptron multicouche (PMC) est la deuxième grande famille de réseaux de neurones. Après avoir décrit l'architecture de ces réseaux on va aborder leur apprentissage, et le concept de rétropropagation de l'erreur. Le perceptron multicouche (multilayer perceptron MLP) est un type de réseau neuronal multicouches organisé en plusieurs couches au sein desquelles une information circule de la couche d'entrée vers la couche de sortie uniquement ; il s'agit donc d'un réseau à propagation directe (feedforward). Chaque couche est constituée d'un nombre variable de neurones, les neurones de la dernière couche (dite « de sortie ») étant les sorties du système global. Les premiers réseaux de neurones n'étaient pas capables de résoudre des problèmes non linéaires ; cette limitation fut supprimée au travers de la rétropropagation du gradient de l'erreur dans les systèmes multicouches, proposé par Paul Werbos en 1974 et mis au point douze années plus tard, en 1986 par . Pour ce dernier une combinaison de séparateurs linéaires permettrait de produire un séparateur global non- linéaire. Dans le perceptron multicouche à rétropropagation, les neurones d'une couche sont reliés à la totalité des neurones des couches adjacentes. Ces liaisons sont soumises à un coefficient altérant l'effet de l'information sur le neurone de destination. Ainsi, le poids de chacune de ces liaisons est l'élément clef du fonctionnement du réseau : la mise en place d'un Perceptron multicouche pour résoudre un problème passe donc par la détermination des meilleurs poids applicables à chacune des connexions inter-neuronales. Ici, cette détermination s'effectue au travers d'un algorithme de rétropropagation. 2-Structure du PMC Le perceptron est organisé en trois parties : La couche d’entrée (input layer) = un ensemble de neurones qui portent le signal d’entrée. Par exemple, si notre réseau essaie d’apprendre à réaliser un XOR entre 2 bits, on aura en entrée bit1 et bit2 (donc 2 neurones, un pour chaque information). Si vous voulez apprendre au réseau à estimer le prix d’un appartement, vous aurez autant de neurones que de variables… Ou bien souvent davantage (comme on le verra ensuite). Tous les neurones de cette couche sont ensuite reliés à ceux de la couche suivante. La couche cachée (hidden layer) ou plus souvent LES couches cachées (couche cachée 1, couche cachée 2, …). Il s’agit du cœur de notre perceptron, là où les relations entre les variables vont être mises en exergue ! Choisir le bon nombre de neurones par couche et le bon nombre de couches est très difficile pour un data scientist et demande une certaine expérience. Toutefois, de manière générale, deux couches suffisent pour la plupart des problèmes, et aller au-delà de 6 à 10 couches entraîne très très souvent des problèmes d’overfitting (on a tellement appris qu’on ne peut plus généraliser). En pratique, on a souvent au moins autant de neurones par couche que ce qu’on avait d’entrées. La couche de sortie (output layer) : cette couche représente le résultat final de notre réseau, sa prédiction. Important : de base, les neurones de la couche de sortie n’ont pas de signification particulière. C’est vous, en lui donnant des exemples, qui déterminez le rôle de chaque neurone d’entrée et de sortie. Si cela peut paraître abstrait, voici un cas pratique : En entrée, vous donnez les pixels d’une image (toujours dans le même ordre). En sortie, vous avez deux neurones. Dans les résultats attendus, vous voulez que le premier neurone fasse 1 si l’image était un chien et 0 si c’était un chat (inversement pour le deuxième neurone : 0 et 1). Vous avez donc entraîné votre réseau en donnant comme sens au premier neurone de sortie “c’est un chien” et au deuxième “c’est un chat” ! Vous interprétez donc les valeurs de sortie (par rapport à ce que vous avez utilisé dans l’apprentissage). 3-Apprentissage : En quoi consiste l’apprentissage automatique ? De manière générale, un programme informatique tente de résoudre un problème pour lequel nous avons la solution. Par exemple : calculer la moyenne générale des étudiants, classer les étudiants selon leur moyenne. . . Pour certains problèmes, nous ne connaissons pas de solution exacte et donc nous ne pouvons pas écrire de programme informatique. Par exemple : reconnaître automatiquement des chiffres écrits à la main à partir d’une image scannée, d´exterminer automatiquement une typologie des clients d’une banque, jouer automatiquement aux échecs contre un humain ou un autre programme. . . En revanche, pour ces problèmes il est facile d’avoir une base de données regroupant de nombreuses instances du problème considéré. L’apprentissage automatique consiste alors à programmer des algorithmes permettant d’apprendre automatiquement de données et d’expériences passées. I- Calcul de l'erreur : En connaissant la valeur attendue ei à la sortie d'un perceptron pour des entrées données, on peut calculer l'écart avec la prédiction grâce à une fonction objectif, le plus souvent l’erreur quadratique moyenne (abréger MSE), telle que : Cette fonction n'est pas linéaire, et sa dérivée est plus grande si la prédiction est éloignée de la valeur attendue, permettant ainsi un apprentissage plus rapide. Au contraire, l'erreur moyenne absolue (MAE) a une dérivée constante, et donc un taux d'apprentissage qui ne varie pas : En minimisant ces fonctions objectives, les prédictions gagnent en précision. II- Calcul du gradient : Le gradient d'une fonction de plusieurs variables en un certain point est un vecteur qui caractérise la variabilité de cette fonction au voisinage de ce point. Défini en tout point où la fonction est différentiable, il définit un champ de vecteurs, également dénommé gradient. Le gradient est la généralisation à plusieurs variables de la dérivée d'une fonction d'une seule variable. Le gradient ∇ permet de calculer la variation de la fonction objective par rapport à l'un des paramètres θij En utilisant le théorème de dérivation des fonctions composées, la variation de la fonction objective par rapport à l'un des poids est Avec ∂y ∕∂0 la dérivée partielle de la fonction d'activation, et ∂C ∕∂y la dérivée partielle de la fonction objective par rapport à la prédiction finale y. En développant et en utilisant la règle de dérivation des sommes ∂y ∂o = y (1−y ), si la fonction sigmoïde sert d'activation, ou ∂y ∂o =1−y 2 pour la tangente hyperbolique ; ∂0 ∂ω=yi−1; uploads/Ingenierie_Lourd/ expose-pmc.pdf
Documents similaires








