introduction aux réseaux de neurones pour le traitement automatique des langues · 2017. 7....
TRANSCRIPT
![Page 1: Introduction aux réseaux de neurones pour le traitement automatique des langues · 2017. 7. 21. · I Il a été prouvé qu’un réseau de neurone avec une couche cachée contenant](https://reader035.vdocuments.fr/reader035/viewer/2022070219/612f537e1ecc515869435f13/html5/thumbnails/1.jpg)
Introduction aux réseaux de neurones pour letraitement automatique des langues
Matthieu Labeau
LIMSI-CNRS
10 Février, 2015
![Page 2: Introduction aux réseaux de neurones pour le traitement automatique des langues · 2017. 7. 21. · I Il a été prouvé qu’un réseau de neurone avec une couche cachée contenant](https://reader035.vdocuments.fr/reader035/viewer/2022070219/612f537e1ecc515869435f13/html5/thumbnails/2.jpg)
Plan
Perceptron
Réseau de Neurones
Backpropagation
Notre problème en pratique
![Page 3: Introduction aux réseaux de neurones pour le traitement automatique des langues · 2017. 7. 21. · I Il a été prouvé qu’un réseau de neurone avec une couche cachée contenant](https://reader035.vdocuments.fr/reader035/viewer/2022070219/612f537e1ecc515869435f13/html5/thumbnails/3.jpg)
Perceptron
Perceptron
Réseau de Neurones
Backpropagation
Notre problème en pratique
![Page 4: Introduction aux réseaux de neurones pour le traitement automatique des langues · 2017. 7. 21. · I Il a été prouvé qu’un réseau de neurone avec une couche cachée contenant](https://reader035.vdocuments.fr/reader035/viewer/2022070219/612f537e1ecc515869435f13/html5/thumbnails/4.jpg)
Perceptron
Le perceptron
I Élément ’de base’ d’un réseau de neurones.I Est capable de séparer des données linéairement.I On utilise un vecteur de poids w et un biais b pour décider
de la catégorie des données x :
f (x) = sign(〈w , x〉+ b) = sign(b +n∑
i=1
wixi)
![Page 5: Introduction aux réseaux de neurones pour le traitement automatique des langues · 2017. 7. 21. · I Il a été prouvé qu’un réseau de neurone avec une couche cachée contenant](https://reader035.vdocuments.fr/reader035/viewer/2022070219/612f537e1ecc515869435f13/html5/thumbnails/5.jpg)
Perceptron
Interprétation
I En dimension 2, c’est équivalent à décider de quel cotéd’une ligne x se situe : (〈w , x〉+ b) = 0 est l’équationd’une ligne perpendiculaire au vecteur w avec le biais bpermettant de s’écarter de l’origine.
I Les paramètres seront ces poids w et biais b : oncherchera à les apprendre en utilisant les données x . Celareviendra à trouver une ligne qui sépare les points quicorrespondent à deux catégories différentes.
![Page 6: Introduction aux réseaux de neurones pour le traitement automatique des langues · 2017. 7. 21. · I Il a été prouvé qu’un réseau de neurone avec une couche cachée contenant](https://reader035.vdocuments.fr/reader035/viewer/2022070219/612f537e1ecc515869435f13/html5/thumbnails/6.jpg)
Perceptron
Exemples : Portes logique
I On peut modéliser les portes logiques avec un perceptron.I Essayez avec AND, OR, et XOR.
![Page 7: Introduction aux réseaux de neurones pour le traitement automatique des langues · 2017. 7. 21. · I Il a été prouvé qu’un réseau de neurone avec une couche cachée contenant](https://reader035.vdocuments.fr/reader035/viewer/2022070219/612f537e1ecc515869435f13/html5/thumbnails/7.jpg)
Réseau de Neurones
Perceptron
Réseau de Neurones
Backpropagation
Notre problème en pratique
![Page 8: Introduction aux réseaux de neurones pour le traitement automatique des langues · 2017. 7. 21. · I Il a été prouvé qu’un réseau de neurone avec une couche cachée contenant](https://reader035.vdocuments.fr/reader035/viewer/2022070219/612f537e1ecc515869435f13/html5/thumbnails/8.jpg)
Réseau de Neurones
Comment étendre le perceptron ?
I Le perceptron est un modèle relativement faible : il ne peutclasser des données que lorsqu’elle sont séparableslinéairement.
I La plupart des problèmes que l’on voudra traiter sonnon-linéaire, et obtenir la meilleure approximation possibleavec le perceptron est très difficile.
I Il y a 2 généralisations que l’on peut faire :I Faire une transformation non-linéaire des données.I Utiliser plusieurs modèles de perceptron conjointement.
![Page 9: Introduction aux réseaux de neurones pour le traitement automatique des langues · 2017. 7. 21. · I Il a été prouvé qu’un réseau de neurone avec une couche cachée contenant](https://reader035.vdocuments.fr/reader035/viewer/2022070219/612f537e1ecc515869435f13/html5/thumbnails/9.jpg)
Réseau de Neurones
Réseau de Neurones
On appelle les neurones intermédiaires (entre entrées etsorties) les couches cachées.
![Page 10: Introduction aux réseaux de neurones pour le traitement automatique des langues · 2017. 7. 21. · I Il a été prouvé qu’un réseau de neurone avec une couche cachée contenant](https://reader035.vdocuments.fr/reader035/viewer/2022070219/612f537e1ecc515869435f13/html5/thumbnails/10.jpg)
Backpropagation
Perceptron
Réseau de Neurones
Backpropagation
Notre problème en pratique
![Page 11: Introduction aux réseaux de neurones pour le traitement automatique des langues · 2017. 7. 21. · I Il a été prouvé qu’un réseau de neurone avec une couche cachée contenant](https://reader035.vdocuments.fr/reader035/viewer/2022070219/612f537e1ecc515869435f13/html5/thumbnails/11.jpg)
Backpropagation
Le principe
I Les paramètres sont l’ensemble des poids et des biais dechaque ’neurone’. Pour simplifier, choisissons un seulparamètre θ.
I On a une fonction objectif, dépendant des données x et deθ, que l’on cherche à minimiser par rapport à θ :
θ∗ = minθf (x , θ)
![Page 12: Introduction aux réseaux de neurones pour le traitement automatique des langues · 2017. 7. 21. · I Il a été prouvé qu’un réseau de neurone avec une couche cachée contenant](https://reader035.vdocuments.fr/reader035/viewer/2022070219/612f537e1ecc515869435f13/html5/thumbnails/12.jpg)
Backpropagation
Descente de gradient
I Pour trouver les paramètres optimaux θ∗, on utilise uneméthode d’optimisation.
I Puisque le modèle est compliqué et le nombre deparamètres potentiellement très grand, on utilise uneméthode de premier ordre : la descente de gradient.
I On retranche à chaque paramètre une quantitéproportionnelle à la négative du gradient pris au pointactuel de la fonction objectif. Ainsi, on approchera d’unminimum local.
θn+1 = θn − α∂f (x , θn)
∂θn
![Page 13: Introduction aux réseaux de neurones pour le traitement automatique des langues · 2017. 7. 21. · I Il a été prouvé qu’un réseau de neurone avec une couche cachée contenant](https://reader035.vdocuments.fr/reader035/viewer/2022070219/612f537e1ecc515869435f13/html5/thumbnails/13.jpg)
Backpropagation
Le learning rate
I Il faut déterminer à quel point l’on veut progresser dans ladirection obtenue : c’est le learning rate α qui nouspermettra de le décider.
I Un learning rate fixe et suffisament petit peut normalementnous assurer un minimum local satisfaisant pour peu quele réseau soit convenablement initialisé.
I Mais il peut y avoir de nombreuses complications et ilexiste des méthodes et algorithmes pour adapter ceparamètre au fur et à mesure de l’algorithme, commeAdagrad ou Adadelta.
![Page 14: Introduction aux réseaux de neurones pour le traitement automatique des langues · 2017. 7. 21. · I Il a été prouvé qu’un réseau de neurone avec une couche cachée contenant](https://reader035.vdocuments.fr/reader035/viewer/2022070219/612f537e1ecc515869435f13/html5/thumbnails/14.jpg)
Backpropagation
Procédure et Propagation de l’erreur
I Toute la difficulté est de calculer le gradient pour tous lesparamètres : la fonction objectif est une fonctioncompliquée puisqu’elle va imbriquer plusieurs couches deneurones.
I L’algorithme de backpropagation utilise le gradient calculépour les paramètre de sortie et calcule les gradients desparamètres des couches précédentes en utilisant la règlede la chaine et en re-propageant en arrière les gradientqu’il connait.
I Heuresement, on ne va pas l’implémenter...
![Page 15: Introduction aux réseaux de neurones pour le traitement automatique des langues · 2017. 7. 21. · I Il a été prouvé qu’un réseau de neurone avec une couche cachée contenant](https://reader035.vdocuments.fr/reader035/viewer/2022070219/612f537e1ecc515869435f13/html5/thumbnails/15.jpg)
Backpropagation
Fonction d’activation
I Puisque l’on veut utiliser une descente de gradient, il nousfaut des neurones qui soient différentiables, ce qui n’estpas le cas d’une fonction ’sign’.
I On utilisera alors une fonction strictement croissante, quitend vers 0 pour −∞ et 1 pour +∞ et qui est différentiablepartout, avec une dérivée calculable.
I Les plus utilisées sont la fonction sigmoïde et la tangentehyperbolique, qui sont des fonctions logistiques et ont cetteforme :
![Page 16: Introduction aux réseaux de neurones pour le traitement automatique des langues · 2017. 7. 21. · I Il a été prouvé qu’un réseau de neurone avec une couche cachée contenant](https://reader035.vdocuments.fr/reader035/viewer/2022070219/612f537e1ecc515869435f13/html5/thumbnails/16.jpg)
Backpropagation
Approximateur universel
I Il a été prouvé qu’un réseau de neurone avec une couchecachée contenant un nombre fini de neurones peutapproximer n’importe quelle fonction réelle continue endimension finie.
I Ce théorème a été prouvé pour la première fois avec desfonctions d’activation sigmoïde.
I Cependant, il ne dit rien sur la possibilité d’apprendre cesfonctions ...
![Page 17: Introduction aux réseaux de neurones pour le traitement automatique des langues · 2017. 7. 21. · I Il a été prouvé qu’un réseau de neurone avec une couche cachée contenant](https://reader035.vdocuments.fr/reader035/viewer/2022070219/612f537e1ecc515869435f13/html5/thumbnails/17.jpg)
Notre problème en pratique
Perceptron
Réseau de Neurones
Backpropagation
Notre problème en pratique
![Page 18: Introduction aux réseaux de neurones pour le traitement automatique des langues · 2017. 7. 21. · I Il a été prouvé qu’un réseau de neurone avec une couche cachée contenant](https://reader035.vdocuments.fr/reader035/viewer/2022070219/612f537e1ecc515869435f13/html5/thumbnails/18.jpg)
Notre problème en pratique
Nos données ?
I En entrée : des mots. Pour les représenter, on vacommencer par une représentation one-hot (0 et 1)
I On choisit le corpus Brown, facilement accessible grâce àla librairie NLTK
I Pour commencer, on travaillera avec des bigram : lecontexte est de taille 1, il y a donc un mot en entrée et unmot à prédire.
![Page 19: Introduction aux réseaux de neurones pour le traitement automatique des langues · 2017. 7. 21. · I Il a été prouvé qu’un réseau de neurone avec une couche cachée contenant](https://reader035.vdocuments.fr/reader035/viewer/2022070219/612f537e1ecc515869435f13/html5/thumbnails/19.jpg)
Notre problème en pratique
Pré-traitement
I On va créer un vocabulaire, ou chaque mot aura un indice.I On va parcourir les phrases du corpus, récupérant tous les
bigrams.I On va transformer le contexte ( = premier mot ) en vecteur
: Ainsi, le vecteur qui n’aura que des zéros sauf en ime
position représentera le mot qui a l’indice i . On garderal’indice du deuxième mot pour savoir quel est le mot àprédire.
![Page 20: Introduction aux réseaux de neurones pour le traitement automatique des langues · 2017. 7. 21. · I Il a été prouvé qu’un réseau de neurone avec une couche cachée contenant](https://reader035.vdocuments.fr/reader035/viewer/2022070219/612f537e1ecc515869435f13/html5/thumbnails/20.jpg)
Notre problème en pratique
Nos outputs ?
I On cherche à obtenir des probabilités sur l’ensemble desmots. Ainsi, notre sortie sera un vecteur de la taille duvocabulaire, qui nous donnera les probabilités que chaquemot soit le mot suivant.
I On utilisera la fonction exponentielle pour n’obtenir quedes valeurs positives (scores) en sortie, puis on lesnormalisera pour obtenir des probabilités (valeurscomprises entre 0 et 1, et somme égale à 1).
I Cette fonction s’appelle softmax.
![Page 21: Introduction aux réseaux de neurones pour le traitement automatique des langues · 2017. 7. 21. · I Il a été prouvé qu’un réseau de neurone avec une couche cachée contenant](https://reader035.vdocuments.fr/reader035/viewer/2022070219/612f537e1ecc515869435f13/html5/thumbnails/21.jpg)
Notre problème en pratique
Le token <UNK>
I À cause de la répartition des fréquences des mots (Loi deZipf) on aura beaucoup de mots très rares quin’apparaîtront qu’une fois ou deux et que l’on a très peu dechance de prédire. Les garder dans le vocabulaire ne feraitqu’augmenter le temps de calcul et embrouiller le modèle.
I Pour régler ce problème, on mappe ces mots rares vers lemême token <UNK>, pour inconnu.
I Dans les cas réels, on utilise d’autres modèles plussimples conjointement pour s’occuper de ces mots rares.
![Page 22: Introduction aux réseaux de neurones pour le traitement automatique des langues · 2017. 7. 21. · I Il a été prouvé qu’un réseau de neurone avec une couche cachée contenant](https://reader035.vdocuments.fr/reader035/viewer/2022070219/612f537e1ecc515869435f13/html5/thumbnails/22.jpg)
Notre problème en pratique
Overfitting ?
I Le surapprentissage survient quand le modèle a assez decapacité pour apprendre ’par coeur’ les données plutôt qued’apprendre à les généraliser.
I C’est un danger permanent avec les réseaux de neurones; pour l’éviter, on utilisera d’abord la validation croisée : onutilise une partie des données pour valider les résultats,sans que le modèle ne les ai vu. Au bout d’un moment, lemodèle obtiendra de mauvais résultats sur ces données : ilsera en surapprentissage.
![Page 23: Introduction aux réseaux de neurones pour le traitement automatique des langues · 2017. 7. 21. · I Il a été prouvé qu’un réseau de neurone avec une couche cachée contenant](https://reader035.vdocuments.fr/reader035/viewer/2022070219/612f537e1ecc515869435f13/html5/thumbnails/23.jpg)
Notre problème en pratique
Régularisation
I Une autre façon d’empêcher le surapprentissage est derégulariser le modèle.
I Il s’agit d’appliquer une pénalité sur les paramètres dumodèle pour le ’forcer’ à rester simple. Pour nous, celareviendra à minimiser la norme des paramètres (onajoutera alors cette norme à la fonction objectif).
![Page 24: Introduction aux réseaux de neurones pour le traitement automatique des langues · 2017. 7. 21. · I Il a été prouvé qu’un réseau de neurone avec une couche cachée contenant](https://reader035.vdocuments.fr/reader035/viewer/2022070219/612f537e1ecc515869435f13/html5/thumbnails/24.jpg)
Notre problème en pratique
Pour la prochaine fois...
I Repartir de la correction, et ajouter à l’aide descommentaires, la vérification des résultats avec un corpusde test.
I Faire varier les paramètres pour essayer d’obtenir demeilleurs résultats, et les analyser.
I Essayer de transformer les fonctions de preprocessing etla structure du réseau pour travailler avec des trigrams (ou,encore mieux, généraliser aux n-grams !)
I Si il y a des problèmes/questions, et pour la rédaction d’uncourt rapport sur votre travail : [email protected]