ETUDE ET MISE EN PLACE DE LA SOLUTION VOIP OVER LTE, DIMENSIONNEMENT ET MESUR...
Emotion recognition for EEG signals using CNN and LSTM
1. Prédiction des émotions
pour les signaux EEG
générés utilisant VAE et
CNN combiné avec LSTM
Elaboré par: Amir BOUZIDI
Encadré par: Boudour AMMAR, Rahma FOURATI et Maher YANGUI
2. Société accueil: CISEN Computer
◉ CISEN Computer
◉ Fondée: 1996
◉ Directeur: Ing. YANGUI Maher
◉ Activité: La vente, l'installation des réseaux, la maintenance
du matériel informatique, SAV, la conception des sites web,
la formation professionnelle ainsi que le développement des
logiciels et des projets d'ingénierie.
2
5. Objectif du projet
Accélérer et faciliter le diagnostic pour
les patients et réduire l’utilisation des
questionnaires et formulaires et pour
les thérapeutes en passant par la
lecture classique des courbes de
signaux EEG.
5
Contexte Problématique Solution Géneration par cVAE Prédiction avec CNN-LSTM Conclusion
Contexte
6. Pourquoi la reconnaissance
d’émotions ? 1:2
Médecine
◉ Optimiser la psychothérapie
◉ Améliorer la réhabilitation des patients.
Marketing
◉ Prioriser les appels des clients agacés.
◉ Optimiser les systèmes de
recommandation.
6
Contexte Problématique Solution Géneration par cVAE Prédiction avec CNN-LSTM Conclusion
Contexte
7. Pourquoi la reconnaissance
d’émotions ? 2:3
Loisir
◉ Satisfaire les besoins d’utilisateurs avec le
bon contenu (Musique , vidéos) suite au
feedback de ses émotions.
Apprentissage en ligne
◉ Ajuster la présentation en ligne d'un
tuteur en ligne en détectant l'état de
l'apprenant.
7
Contexte Problématique Solution Géneration par cVAE Prédiction avec CNN-LSTM Conclusion
Contexte
8. Pourquoi la reconnaissance
d’émotions ? 3:3
Sécurité
◉ Améliorer les outils d’investigation avec
les criminels et les témoins.
Surveillance
◉ Détecter l'état des conducteurs et
l'avertir pour éviter les accidents.
8
Contexte Problématique Solution Géneration par cVAE Prédiction avec CNN-LSTM Conclusion
Contexte
9. Comment le machine connait
les émotions ?
Reconnaissance faciale Reconnaissance vocale
9
Les biosignals
◉ Rythme cardiaque
◉ Signaux EEG
Contexte Problématique Solution Géneration par cVAE Prédiction avec CNN-LSTM Conclusion
Contexte
11. Inconvénients des applications de
reconnaissance des émotions
◉ Manque d’essais cliniques
◉ Préprogrammés: Manque d’IA
◉ Manque de suivi du cadre médical
◉ Manque de précision dans le diagnostic
11
Contexte Problématique Solution Géneration par cVAE Prédiction avec CNN-LSTM Conclusion
Problématique
12. Besoin d’application
Thérapeutes et patients
souffrant des trauma et
anxieté, surtout les sourds,
muets, aveugles et enfants
ont besoin d’une telle
application de prédiction
d’émotions
12
Contexte Problématique Solution Géneration par cVAE Prédiction avec CNN-LSTM Conclusion
Problématique
13. Phénomène d’anxieté
◉ L'anxiété est l'inquiétude à propos d'un futur
événement indésirable ou la peur d'une situation
réelle
◉ OMS: Les troubles d’anxiété sont les problèmes
mentaux les plus courants dans le monde
◉ Tunisie: 111 dans l'indice de joie mondial en 2018
◉ EEG: Bons «connaisseurs» d’émotions
13
Contexte Problématique Solution Géneration par cVAE Prédiction avec CNN-LSTM Conclusion
Problématique
14. Probléme posée
Génération suffisante des
signaux EEG issus de la base
de données DASPS par les
Variational Autoencoders et
prédire les émotions en
utilisant le CNN combiné avec
la technique LSTM du
machine learning.
14
Contexte Problématique Solution Géneration par cVAE Prédiction avec CNN-LSTM Conclusion
Problématique
16. EEG : Avantages
◉ Bonne résolution
temporelle.
◉ Rapide à la
représentation du
visage humain.
16
Contexte Problématique Solution Géneration par cVAE Prédiction avec CNN-LSTM Conclusion
Solution
17. Les ondes des signaux EEG
1. Delta: Apprentissage
2. Beta: Engagement
3. Alpha: Relaxation
4. Théta: Rêver
5. Gamma: Someil
profond
17
Contexte Problématique Solution Géneration par cVAE Prédiction avec CNN-LSTM Conclusion
Solution
18. ◉ DASPS est élaboré au laboratoire
REGIM en collaboration avec
l'hôpital Hédi Chaker
◉ DASPS contenant des signaux EEG
De 23 participants pendant l'élicitation
de l'anxiété
◉ L'anxiété est bien déclenchée en 1 s
18
La base de donnée DASPS
Contexte Problématique Solution Géneration par cVAE Prédiction avec CNN-LSTM Conclusion
Solution
22. ◉ Algorithme non supervisé produit une sortie similaire à l’entrée
22
C’est quoi l’AE ?
Contexte Problématique Solution Géneration par cVAE Prédiction avec CNN-LSTM Conclusion
Génération par cVAE
23. 23
Comment fonctionne l’AE ?
Contexte Problématique Solution Géneration par cVAE Prédiction avec CNN-LSTM Conclusion
Génération par cVAE
24. ◉ AE génère des données significatives et autres non significatives à cause de son
latent space qui n'est pas régularisé.
24
Inconvénient d'AE
Contexte Problématique Solution Géneration par cVAE Prédiction avec CNN-LSTM Conclusion
Génération par cVAE
26. Astuce de régularisation
26
Il faut optimiser
(poids et biais) pour
minimiser l’erreur et
améliorer
l’apprentissage
Solution: échantillonner
aléatoirement b à partir de
la distribution souhaitée,
puis à la multiplier par la
moyenne et à ajouter la
variance au résultat
Contexte Problématique Solution Géneration par cVAE Prédiction avec CNN-LSTM Conclusion
Génération par cVAE
27. 27
Contexte Problématique Solution Géneration par cVAE Prédiction avec CNN-LSTM Conclusion
Génération par cVAE
Résultats de generation avec et sans régularisation
28. Avantages VAE
◉ Latent space sont continus
◉ Permette un échantillonnage aléatoire
◉ Le principal avantage de la VAE p/r l'AE : Elle suit
une distribution gaussienne permet de générer
des données de haute qualité.
28
Contexte Problématique Solution Géneration par cVAE Prédiction avec CNN-LSTM Conclusion
Génération par cVAE
29. Anomalie du VAE
◉ Problème: Aucun contrôle sur le type de données qu'il génère.
29
Input: Je veux
l’image du caniche
Y= output/Berger !!
Solution: “Conditionner" l’architecture à génerer des données bien
déterminée avec un conditional VAE
Contexte Problématique Solution Géneration par cVAE Prédiction avec CNN-LSTM Conclusion
Génération par cVAE
30. 30
Comment implémenter CVAE
Contexte Problématique Solution Géneration par cVAE Prédiction avec CNN-LSTM Conclusion
Génération par cVAE
Générer des données avec le label
spécifique en alimentant le décodeur
avec le bruit échantillonné à partir de la
distribution gaussienne et de le label
attribuée.
Concaténer la representation
cachée avec le label correspondante
et la transmetter au décodeur pour
entraîner le réseau.
31. Programmation sur COLAB
Code divisé en 4 parties :
1. Créer la couche d’échantillonnage
2. Définir le modèle d'encodeur autonome
3. Définir le modèle de décodeur autonome
4. Définir la CVAE avec un training step :
La génération est effectué avec une
sampling layer suivie du décodeur, nous
avons généré différents échantillons, des
labels codées sur 4 bits.
31
Contexte Problématique Solution Géneration par cVAE Prédiction avec CNN-LSTM Conclusion
Génération par cVAE
32. Évaluation du processus de génération
◉ Qualitative + Quantitatve
◉ Visualisation : t-SNE fournit comment
les données sont organisés dans l’espace
d’haute dimension
◉ T-SNE classe les categories de manière
automatique
32
Contexte Problématique Solution Géneration par cVAE Prédiction avec CNN-LSTM Conclusion
Génération par cVAE
33. Carte topographique EEG
◉ Nous avons tracé la carte topographique
33
Contexte Problématique Solution Géneration par cVAE Prédiction avec CNN-LSTM Conclusion
Génération par cVAE
ORG
GEN
37. C’est quoi le pooling ?
◉ Une forme de sous-échantillonnage de l'image.
◉ Le pooling permet le gain en puissance de calcul.
Max pooling
avec filtre 2 × 2
et un pas de 2.
42
Contexte Problématique Solution Géneration par cVAE Prédiction avec CNN-LSTM Conclusion
Prédiction avec CNN LSTM
38. Pourqoi utiliser Recurrent Neural Networks ?
◉ Bien pour la prédiction données séquentiels (Voix, texte, signal..)
◉ RNN utilise sa sortie comme seconde entrée "mémoire" avec la nouvelle
entrée pour classifier la nouvelle sortie
43
Contexte Problématique Solution Géneration par cVAE Prédiction avec CNN-LSTM Conclusion
Prédiction avec CNN LSTM
39. Avantage d’LSTM
Avec LSTM, éviter le problème de disparition du
gradient : Mémoire longue
44
Contexte Problématique Solution Géneration par cVAE Prédiction avec CNN-LSTM Conclusion
Prédiction avec CNN LSTM
40. Réseau LSTM
◉ LSTM: Traiter des séquences de données comme la
reconnaissance des signaux, la traduction automatique
45
Contexte Problématique Solution Géneration par cVAE Prédiction avec CNN-LSTM Conclusion
Prédiction avec CNN LSTM
41. Principe LSTM
41
Etat cachée
précédente
Nouvelle entrée
La porte d’entrée:
Multiplication du sortie de
tanh par la sortie du sigmoid
Transformer la sortie
Xt et ht-1 en une
valeur entre -1 et 1 à
par la fonction
d’activation tanh
Porte d’oubli: Décide quel donnée
conservée/jetée, St est concaténé à la donnée
puis on y applique la fonction sigmoïde pour
avoir en sortie 0 et 1
• Si la sortie de la sigmoïde = 0 : oublier
• Si la sortie de la sigmoïde = 1 mémoriser
Dernière étape :
la porte de sortie
doit décider de
quel sera le
prochain état
caché, qui
contient des
informations sur
les entrées
précédentes du
réseau et sert aux
prédictions.
42. 48
Contexte Problématique Solution Géneration par cVAE Prédiction avec CNN-LSTM Conclusion
Prédiction avec CNN LSTM
Architecture
CNN-LSTM
43. Résultats de reconnaissance
des EEG
A
49
Contexte Problématique Solution Géneration par cVAE Prédiction avec CNN-LSTM Conclusion
Prédiction avec CNN LSTM
On a un overfitting
puisque l’erreur de
validation (erreur après
validation du dataset) >
erreur d’entrainement
(erreur pendant le
training)
44. Résultats de reconnaissance
des EEG
B
49
Contexte Problématique Solution Géneration par cVAE Prédiction avec CNN-LSTM Conclusion
Prédiction avec CNN LSTM
Training accuaracy > validation accuaracy
Car la machine est familiarisé
avec les signaux EEG lors de
l’entrainement mais les
données de validation sont
des inconnus et nouvelle au
machine
45. Impact de l’augmentation des
données sur la classification
50
Contexte Problématique Solution Géneration par cVAE Prédiction avec CNN-LSTM Conclusion
Prédiction avec CNN LSTM
Sans
augmentation
Avec augmentation
89.96%
200 500 1000 2000
90.21% 94.27% 95.41% 92.87%
46. Matrice de confusion
Mesurer la qualité d'un système de
classification.
1. Ligne: une classe réelle
2. Colonne: une classe estimée
50
Contexte Problématique Solution Géneration par cVAE Prédiction avec CNN-LSTM Conclusion
Prédiction avec CNN LSTM
Estimé
Réelle
47. 47
Charger l’input .mat
Contexte Problématique Solution Géneration par cVAE Prédiction avec CNN-LSTM Conclusion
Prédiction avec CNN LSTM
49. Diagramme de GANTT
49
Mois
Tâches Mars Avril Mai Juin
Ecriture du rapport
Code du cVAE
Code du CNN - LSTM
Création du GUI
Contexte Problématique Solution Géneration par cVAE Prédiction avec CNN-LSTM Conclusion
Prédiction avec CNN LSTM
51. Conclusion
51
1. La reconnaissance d’émotions a plusieurs utilités
2. La génération des données s’est faite par les CVAE
3. L’identification d’émotions par le CNN-LSTM
4. Le GUI est l’outil facile, ergonomique pour le thérapeute
5. La découverte du domaine de la santé psychologique
6. L’importance de machine Learning pour la médecine
Contexte Problématique Solution Géneration par cVAE Prédiction avec CNN-LSTM Conclusion
Conclusion
52. Perspectives
◉ Collaborer avec le ministère de santé pour passer
des tests cliniques au rendement de l’application
◉ Inviter les neurologistes, les thérapeutes et les
ingénieurs pour améliorer l’application
◉ Optimiser la performance d’application par des
nouvelles données
◉ Utiliser les GANs pour générer des données
52
Contexte Problématique Solution Géneration par cVAE Prédiction avec CNN-LSTM Conclusion
Conclusion
Je tiens à remercier mr le president ainsi que les membres des jurys pour leurs assistance
Av et inc dans 2 diapo
Parmi la phéno de reconnaissance d’emoti,
Encodeur : f compresse l'entrée dans une représentation du latent space. f(x) = h
Décodeur : g reconstruit l'entrée à partir de la représentation du latent space. g(h)~ x
Prenez des données dans l’espace original de haute dimension
Projetez les données dans un nouvel espace à partir duquel elles peuvent être restaurées avec précision. (Latent space)
Dimensionality reduction c’est une technique de réduction du nombre de variables d’entrée dans une dataset
L’opération de reconstruction se fait par l’algorithme d’optimisation descente de gradient réduisant l’erreur de recon.
La difficulté en AE c de réduire la dimension tout en gardant la structure majeure des données compressé dans le latent space
La grande degré de liberté de l’AE cause un overfitting pour cela il n’est pas une bonne solution
Pour cela on doit utiliser un VAE
Pour cela on doit utiliser un VAE
L’encodeur est composé des couches de convolutions et le décodeur est composé des couches de ConvTranspose.
ConvTranspose est l’inverse de la convolution. En fait l’encodeur permet de compresser l’information, alors que le décodeur va reconstruire l’information à partir de la version compressée.
La fonction objective du VAE contient deux termes: un terme RMSE qui calcule le taux d’erreur de reconstruction et un 2ème terme qui calcule le DKL entre la distribution gaussienne et la distribution du latent space Z.
On a fait le plot des données réelles et leurs classes ( de 0 à 3) et plot des données générées et leurs classes (de 4 à 7).
Le t-SNE permet de visualiser la distibution des données. On remarque que les données réelles et les données générées sont en chevauchement ce qui montre que la distinction entre réelle et générée est presque absente et donc les données sont similaires.
DENSE consiste essentiellement en des poids (paramètres w ou thêta ..) que nous multiplions par l'entrée, nous ajoutons des biais b et appliquons une fonction d'activation // chaque neurone est simplement connecté à tous les neurones de la couche précédente.
C'est la dernière couche du modèle CNN qui contient les résultats des labels déterminés pour la classification et attribue une classe aux images. (inputs)
Nous avons allons utiliser LSTM à la place du Softmax qui est bonne surtt avec les images
Réduire la taille spatiale d'une image intermédiaire avec la quantité de paramètres et ce accélere le calcul dans le réseau.
Dans notre code nous avons 4 blocs:
• Input layer, Conv2D layer, batch normalization, leaky ReLU activation function, Max pooling 2D layer and dropout.
Conv2D layer, batch normalization, leaky ReLU activation function, Max pooling 2D layer X 3
Flattening layer, reshape, LSTM, dropout, first dense layer and second
dense layer (Output).
A: Nous avons un overfitting puisque le validation loss (erreur après validation du dataset) > training loss (erreur pendant le training)
B: Nous avons le training accuaracy > validation accuaracy puisque le machine est familiarisé avec les signaux EEG lors du training et les data de validation sont des inconnus et nouvelle au machine
Le training data est utilisé pour obtenir le training accuaracy à l'opposé du validation data utilisé pour mésurer le validation accuaracy
A: Nous avons un overfitting puisque le validation loss (erreur après validation du dataset) > training loss (erreur pendant le training)
B: Nous avons le training accuaracy > validation accuaracy puisque le machine est familiarisé avec les signaux EEG lors du training et les data de validation sont des inconnus et nouvelle au machine
Le training data est utilisé pour obtenir le training accuaracy à l'opposé du validation data utilisé pour mésurer le validation accuaracy
Nous avons généré différente taille de données, à savoir 200, 500, 1000 et 2000.
Le meilleur taux de classification est réalisé avec 1000 données générées.
En passant à 2000, le taux de classification se dégrade pour cela nous avons arreté le processus de génération.
En comparison avec le taux de classification sans augmentation, on remarque une amélioration de 6% et donc l’objectif de ce travail est atteint.
Le thérapeute peut charger un fichier .mat puis afficher la carte topographique comme indiqué dans l'image a
Le résultat de classification est affiché dans l'image b à chaque fois qu'on charge un nouvel fichier du nouvel patient
Étape 1 : collecter les signaux EEG et à collecter les ensemble de données orignial (dans notre cas on a DASPS), mais le problème c'est l'unbalance data qui va provoqué mauvaise classification, pour cette raison nous passons à l'étape2 : générer de nouvelles données.
2. étape2 : générer de nouvelles données à l'aide du conditional variational autoencoder
3. étape finale :e à prédire les émotions à l'aide de CNN récurrents via LSTM et créer un GUI pour l'utiliser par les thérapeutes au diagnostic
Étape 1 : collecter les signaux EEG et à collecter les ensemble de données orignial (dans notre cas on a DASPS), mais le problème c'est l'unbalance data qui va provoqué mauvaise classification, pour cette raison nous passons à l'étape2 : générer de nouvelles données.
2. étape2 : générer de nouvelles données à l'aide du conditional variational autoencoder
3. étape finale :e à prédire les émotions à l'aide de CNN récurrents via LSTM et créer un GUI pour l'utiliser par les thérapeutes au diagnostic