Apprentissage profond appliqué à la reconnaissance des émotions dans la voix

Le concept d’apprentissage profond émerge au début des années 2010 avec la redécouverte des réseaux de neurones artificiels multicouches. Leur mise en application industrielle est désormais possible avec l’arrivée de machines de calcul matriciel puissantes. L’apprentissage machine nécessite de grandes bases de données et leur traitement bénéficie également des progrès technologiques autant des supports physiques que des logiciels. L’accès à des données massives est désormais possible avec leur dématérialisation systématique sous format numérique bien que leur usage dépende d’autorisations légales. La recherche scientifique en apprentissage profond se multiplie. Tous les domaines des sciences sont concernés et on compare ces nouvelles méthodes avec les méthodes d’apprentissage automatique plus classiques déjà en usage. Cependant le mécanisme décisionnel de la prédiction par les réseaux de neurones profonds reste largement incompris. Or, dans le cadre de leur industrialisation à grande échelle, il n’est pas souhaité et souhaitable d’utiliser des outils algorithmiques dont on est incapable d’expliquer le pourquoi de telle ou telle prédiction. Ainsi, la recherche en apprentissage profond cherche à obtenir des algorithmes plus performants, plus robustes, et plus transparents.

Enjeux scientifiques 

Jusqu’en 2015, la communauté de la reconnaissance des émotions dans la voix cherche à obtenir les meilleurs paramètres prosodiques possibles [Eyben 16]. Or, la nouvelle approche avec l’apprentissage profond prétend sélectionner automatiquement les meilleurs paramètres à partir de la forme brute ou spectrogramme du signal. Une partie de mon travail est de vérifier cela. En 2011, Stuhlsatz et al. introduisent une approche basée sur l’association d’une analyse discriminante généralisée avec des réseaux de neurones profonds pour la tâche de reconnaissance des émotions dans la voix [Stuhlsatz 11]. Les expériences faites sur neuf bases de données montrent une amélioration importante des performances par rapport aux algorithmes d’apprentissage automatique classiquement utilisés à ce moment-là que sont les séparateurs à vaste marge. Il faut attendre 2016, moment ou je commence ma thèse, pour voir des premières architectures bout-en-bout en reconnaissance vocale des émotions et le fameux papier : Adieu features ? End-to end speech emotion recognition using a deep convolutional recurrent network de Trigeorgis et al. [Trigeorgis 16]. L’équipe combine des réseaux de neurones à convolution (CNN) avec des réseaux récurrents à mémoire court-terme et long-terme (BLSTM). Le but de ce système est d’apprendre de manière autonome la meilleure représentation possible des émotions dans la voix directement du signal brut.

Cette thèse s’est déroulée dans le cadre du dispositif national Cifre (Conventions Industrielles de Formation par la REcherche) qui subventionne toute entreprise de droit français qui embauche un doctorant pour le placer au coeur d’une collaboration de recherche avec un laboratoire public. Les Cifre sont intégralement financées par le ministère de l’Enseignement supérieur, de la Recherche et de l’Innovation qui en a confié la mise en oeuvre à l’ANRT. L’ANRT – Association Nationale de la Recherche et de la Technologie – a été créée en 1953 par les principaux acteurs de la recherche en France. L’entreprise d’accueil de ce doctorat est DreamQuark. Cette start-up fondée en 2013 par Nicolas Méric développe une plate-forme baptisée Brain. Son but est de faciliter l’utilisation des technologies d’intelligence artificielle au sein des banques et des assurances. En 2016, des clients de DreamQuark cherchent une solution pour améliorer la rétention de la clientèle via les centres d’appel téléphonique. Automatiser l’étude de la satisfaction de la clientèle contactée par les téléconseillers est un enjeu industriel important pour eux. Au niveau national, en 2006, on comptait 3 500 centres relations client, employant pour la plupart moins de vingt salariés, et représentant près de 250 000 emplois au total. La majorité des centres se situent dans les secteurs suivants : banque, assurance, vente à distance, informatique et télécommunications [chiffres du Ministère du Travail, juillet 2019].

DreamQuark choisit alors d’initier un projet de recherche pour investiguer l’utilisation de l’apprentissage profond appliqué à de la reconnaissance des émotions dans la voix. DreamQuark n’est pas un spécialiste en reconnaissance des émotions et c’est pourquoi la start-up choisit de s’associer avec l’équipe de Laurence Devillers du groupe du Traitement du Langage Parlé (TLP) du Laboratoire d’informatique pour les mécanique et les sciences de l’ingénieur (LIMSI) d’Orsay en Essonne. Laurence Devillers est professeur en Intelligence Artificielle au LIMSI et travaille sur les dimensions affectives et sociales des interactions parlées avec des robots, ainsi que les enjeux éthiques. C’est dans ce cadre que je suis désignée pour effectuer des travaux de recherche sur l’application de l’apprentissage profond à la reconnaissance des émotions dans la voix.

L’apprentissage profond 

Aspect chronologique

Un algorithme d’apprentissage profond est basé sur des réseaux de neurones artificiels avec plusieurs couches cachées qui sont inspirés des réseaux de neurones biologiques. Bien qu’actuellement à la « mode », l’origine de l’apprentissage profond date du début du XXeme ` siècle et son concept s’est construit tout au long de même siècle .

En 1906, Santiago Ramón y Cajal et Camillo Golgi reçoivent le prix Nobel de physiologie ou médecine pour leurs travaux sur la structure du système nerveux. En effet, ce sont les pères fondateurs des neurosciences modernes. Camillo Golgi met au point en 1873 une technique de coloration argentique qui permet de visualiser les structures des neurones. En réutilisant cette technique de coloration et en l’améliorant, Santiago Ramón y Cajal, met en évidence qu’il existe différents types de neurones et que ceux-ci sont les unités structurelles et fonctionnelles de base du système nerveux constituées d’un corps cellulaire, d’un axone et de dendrites .

En 1943, Warren Sturgis McCulloch & Walter Pitts proposent le concept du neurone formel qui est une représentation mathématique et informatique d’un neurone biologique (cf Fig. 1.1.3). L’analogie avec un neurone biologique peut se faire ainsi :
— les entrées d’un neurone correspondent aux dendrites,
— sa sortie correspond à l’axone,
— les connexions avec les autres neurones sont les synapses,
— et enfin la fonction d’activation correspond au potentiel de seuil dépassé dans un cône axonique en fonction des stimulations en entrée qui activent la sortie et permettent la naissance de l’influx nerveux. En 1949, Donald Hebb pose le principe de la plasticité synaptique comme base de l’apprentissage biologique. Ses travaux fondateurs proposent que si deux neurones sont actifs en même temps, les synapses entre ces neurones seront renforcées introduisant le concept de plasticité cérébrale. Dans le cadre de l’apprentissage profond introduit plus tard, ces approches neuromimétiques de l’association et la mise en réseaux de neurones biologiques sont d’énormes simplifications des mécanismes d’apprentissage du cerveau. En 1952, Friedrich August von Hayek propose dans « The Sensory Order » que les sens humains fonctionnent comme un principe de classification.

En 1957, Franck Rosenblatt du laboratoire d’aéronautique de l’université Cornell invente un algorithme d’apprentissage supervisé de classifieurs binaires (séparant deux classes) appelé perceptron. Le perceptron est un neurone formel muni d’une règle d’apprentissage qui permet de déterminer automatiquement les poids synaptiques. Si le problème est linéairement séparable, un théorème assure que la règle du perceptron permet de trouver une séparatrice entre les deux classes. C’est le début de l’apprentissage automatique. En 1986, David Rumelhart, Geoffrey Hinton et Ronald Williams ajoutent des couches cachées et inventent ainsi le concept d’apprentissage profond et de réseaux de neurones artificiels multicouches (réseau à propagation avant, feedforward neural network) [Rumelhart 86]. La compréhension des règles qui régissent l’association et la mise en réseaux de neurones biologiques inspire directement le concept des réseaux de neurones artificiels et s’appuie directement sur les travaux fondateurs de Donald Hebb (1949). Le principe de l’apprentissage profond repose sur un apprentissage hiérarchique couche par couche. Entre chaque couche interviennent des transformations non linéaires et chaque couche reçoit en entrée la sortie de la couche précédente. La première couche cachée correspond ainsi à une représentation des entrées. Initialisés au départ, les poids synaptiques et biais (paramètres) du réseau sont actualisés au cours de la phase d’apprentissage de la dernière couche vers la première. Le mécanisme consiste à rétropropager l’erreur commise par un neurone à ses synapses et aux neurones qui y sont reliés. L’un des enjeux en apprentissage profond est d’optimiser au mieux cette rétropropagation de l’erreur.

Apprentissage profond supervisé 

En apprentissage statistique, le but est que la machine entraîne des algorithmes sur des données connues afin qu’ils puissent faire des prédictions sur des données inconnues. On distingue deux types d’apprentissage :
— supervisé,
— non supervisé.
Les algorithmes d’apprentissage supervisé utilisent un jeu de données où à chaque échantillon est associé une étiquette ou catégorie ou classe (label, target) [Goodfellow 16]. Cela implique d’avoir des bases de données annotées en fonction de ces classes. Un algorithme d’apprentissage supervisé se base sur la correction des erreurs de prédiction en comparant la classe prédite d’une donnée par rapport à la classe à laquelle appartient effectivement cette donnée. A contrario, l’apprentissage non supervisé n’a pas de données d’entraînement étiquetées à sa disposition. Dans ce cas-là, l’algorithme tente de trouver dans les données des caractéristiques qui permettent de les différencier et de mettre en évidence l’existence de classes ou groupes. Au cours de ce doctorat, nous faisons exclusivement de l’apprentissage profond supervisé. Un algorithme d’apprentissage supervisé dans le cadre d’un réseau de neurones artificiels regroupe plusieurs étapes :
1. Initialisation des poids du réseau
2. Propagation avant
3. Rétropropagation du gradient de l’erreur
4. Mise à jour des poids du réseau
Nous allons les détailler dans cette section.

Rétropropagation du gradient
L’objectif au cours de l’apprentissage est de trouver une configuration de poids qui minimise l’erreur de prédiction. L’algorithme de rétropropagation du gradient (backpropagation) permet de calculer l’erreur pour chaque neurone, de la dernière couche vers la première, et ce pour tous les paramètres du réseau, grâce à une méthode développée en 1986 par Rumelhart, Hinton et Williams [Rumelhart 86]. L’algorithme de rétropropagation du gradient se déroule en deux temps :
1. calculer l’erreur δ (sortie) en comparant la sortie avec le résultat attendu,
2. propager l’erreur de couche en couche vers l’arrière.

Le principe de l’algorithme de descente de gradient

L’algorithme de descente du gradient utilise le résultat de l’algorithme de rétropropagation pour mettre à jour les paramètres. Il cherche à minimiser la fonction de coût C(x) en modifiant x. Il est itératif et procède par améliorations successives. Son but est de trouver ou de s’approcher d’un point stationnaire ou minimum global, c’est à dire d’un point où le gradient de la fonction de coût est nul et ainsi aboutir à une configuration stable du réseau neuronal. On a schématisé dans la Figure 1.2.3 son déplacement le long d’une pente d’erreur vers une valeur d’erreur minimale (cf Figure 1.2.3). Le principe de cet algorithme remonte à 1847 avec Cauchy [Cauchy 47]. Après une descente de gradient donc après une itération d’optimisation, les erreurs sont corrigées selon l’importance des neurones à participer à l’erreur finale. Les poids synaptiques qui contribuent à engendrer une erreur importante sont modifiés de manière plus significative que les poids qui engendrent une erreur marginale. Les poids sont ainsi soit diminués, soit augmentés, et le modèle est mis à jour. Le biais est une valeur scalaire ajouté en entrée. Cela permet d’avoir toujours des neurones actifs quelque soit la force du signal d’entrée. Ces biais sont modifiés comme les poids au cours de l’apprentissage. La descente de gradient peut s’effectuer de plusieurs manières [Maurice 18] :
— De manière globale (batch gradient) : on envoie au réseau toutes les données en une seule fois, puis le gradient est calculé et les poids ajustés.
— Par des lots (mini-batch gradient) : on envoie au réseau les données par petits groupes d’une taille définie par l’expérimentateur dont on calcule les erreurs, puis l’erreur moyenne est calculée et enfin les poids sont mis à jour.
— De façon unitaire, stochastique (stochastic gradient) : cette méthode envoie une seule donnée à la fois dans le réseau et donc les poids sont mis à jour à chaque fois juste après.

Le rapport de stage ou le pfe est un document d’analyse, de synthèse et d’évaluation de votre apprentissage, c’est pour cela chatpfe.com propose le téléchargement des modèles complet de projet de fin d’étude, rapport de stage, mémoire, pfe, thèse, pour connaître la méthodologie à avoir et savoir comment construire les parties d’un projet de fin d’étude.

Table des matières

Introduction
1 L’apprentissage profond
1.1 Aspect chronologique
1.2 Apprentissage profond supervisé
1.2.1 Initialisation des poids
1.2.2 Propagation avant
1.2.3 Rétropropagation du gradient
1.2.3.1 Calculer l’erreur pour la couche de sortie
1.2.3.2 Rétropropager l’erreur
1.2.4 Mise à jour des poids
1.2.4.1 Le principe de l’algorithme de descente de gradient
1.2.4.2 La descente de gradient stochastique : SGD
1.2.4.3 La méthode du moment : Momentum
1.2.4.4 Gradient accéléré de type Nesterov
1.2.5 Les fonctions d’activation
1.2.5.1 La fonction sigmoïde
1.2.5.2 La fonction tangente hyperbolique
1.2.5.3 La fonction ReLU
1.2.5.4 La fonction softmax
1.3 Les réseaux de neurones convolutifs
1.3.1 Origine des réseaux de neurones convolutifs
1.3.2 Principe des réseaux de neurones convolutifs
1.4 Les réseaux de neurones récurrents bidirectionnels à mémoire courtterme et long-terme (BLSTM)
1.4.1 Origine en reconnaissance de la parole
1.4.2 Réseaux récurrents et problème de disparition et explosion du gradient
1.4.3 Le réseau récurrent à mémoire court-terme et long terme ou LSTM
1.5 Aspects matériel et logiciel
1.5.1 Les processeurs graphiques en apprentissage profond
1.5.2 Les bibliothèques logicielles pour l’apprentissage profond
1.5.2.1 Instabilité de l’outil de travail
1.5.2.2 Les bibliothèques existantes
1.5.2.3 Faciliter leur utilisation
2 L’émotion
2.1 La paralinguistique
2.2 La prosodie affective
2.2.1 La prosodie
2.2.2 Les émotions
2.3 Traduction de l’information émotionnelle en langage automate
2.3.1 Approche catégorielle
2.3.2 Approche dimensionnelle
2.3.3 Ce que nous retenons
2.4 Modélisation de l’information émotionnelle du signal audio
2.4.1 Modélisation acoustique
2.4.1.1 Les méthodes existantes en reconnaissance de la parole
2.4.1.2 Parole spontanée versus parole préparée
2.4.2 Les indices paralinguistiques
3 La reconnaissance automatique des émotions dans la voix
3.1 Apprentissage automatique des émotions dans la voix
3.1.1 À l’extérieur du laboratoire
3.1.2 Au sein du laboratoire
3.2 Apprentissage profond appliqué à la reconnaissance des émotions dans la voix
3.2.1 Premières utilisations
3.2.2 Nos références de base : des travaux par Microsoft
3.3 L’architecture bout-en-bout
3.3.1 Qu’est ce que c’est ?
3.3.2 En reconnaissance de la parole
3.3.3 En reconnaissance des émotions dans la voix
3.4 Ce qu’il faut retenir
4 Données et prétraitements des données
4.1 Les bases de données
Conclusion

Lire le rapport complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *