Analyse de données séquentielles avec le deep learning
Programme
Dans ce chapitre nous allons voir :
- les bases de l'analyse de séquences en deep learning
- étudier le fonctionnement les réseaux de neurones récurrent (RNN) et de leurs principales variations, les réseaux long short term memory (LSTM) et les gated reccurent unit (GRU)
- apprendre a entrainer et optimiser des réseaux récurrents pour différents cas d'usages : le traitement du langage et l'analyse de série temporelles
Leçon : Les réseaux de neurones récurrents
Pour aller plus loin dans les maths
En fonction de vos besoins, je vous propose d'approfondir vos connaissances avec plus de détails mathématiques, le fonctionnement des réseaux récurrents pour différents types d'analyse de séquence en suivant quelques leçons du cours dédié d'Open Classroom (en français):
Prétraitements spécifiques à un domaine
Pour le traitement des sons
Dans le domaine du traitement des sons, on travaille souvent sur le contenu fréquentiel d'un signal sonore en transformant le signal en spectrogramme. En particulier, dans les sons d'origine naturelle, on utilise transforme souvent les spectrogramme en utilisant l'échelle Mel et les Mel Frequency Cepstral Coefficients(MFCCs)
Ces prétraitements sont souvent utilisés avec succès en machine learning, dans certaines tâches reliées à la reconnaissance audio, et génèrent des spectrogrammes prenant la forme d'images. Il est donc courant dans ce domaine d'utiliser des CNN plutôt que des RNN.
Tutoriels
Voyons ensemble les tutoriels de Tensorflow sur différents cas d'usages afin de vous servir de base pour vos travaux:
Cas d'usage : classification de texte
Cas d'usages : reconnaissance audio
Pré-traitements
Les librairies utiles pour traitement du langage
L'embedding
En traitement du langage, l'embedding va consister à encoder vos données textuelles en vecteurs dans un nouvel espace de représentation (en général à haute dimension). L'idée générale est de pouvoir encoder la proximité sémantique dans données d'entrée : des notions proches devraient être encodées par des vecteurs proches dans cet espace.
On distingue principalement 3 granularité d'embedding:
- le word embedding
: chaque mot est encodé par un vecteur
- le sentence embedding
: chaque phrase est encodée par un vecteur
- le document embedding
: chaque document est encodée par un vecteur
La propriété et la qualité de votre embedding va influencer les résulats (performances, interprétabilité). Vous pouvez utiliser des benchmark, comme MTEB pour décider de quel embedding utiliser en fonction de votre tâche ou du modèle que vous allez utiliser