• Aucun résultat trouvé

Les bibliothèques logicielles pour l’apprentissage profond

1.5 Aspects matériel et logiciel

1.5.2 Les bibliothèques logicielles pour l’apprentissage profond

Dans la communauté de l’apprentissage profond, on utilise des bibliothèques logicielles où un certain nombre de fonctions de base des réseaux de neurones sont déjà codées en python pour certaines d’entre elles, en C++ pour d’autres, ou

encore dans d’autres langages de programmation. Utiliser ces bibliothèques permet d’accélerer le travail puisque les optimisations CPU et GPU sont déjà faites.

1.5.2.1 Instabilité de l’outil de travail

J’ai débuté mon travail fin 2016 à une période où l’offre des bibliothèques logi-cielles dédiées à l’apprentissage profond évolue sans cesse. Cela crée des instabilités de différentes sortes :

— difficulté de réunir des individus expérimentés sur le même outil — difficulté de recrutement autant du côté académique qu’industriel — difficulté de choisir une bibliothèque logicielle pour le long terme

— prise en compte des bonds technologiques hoquetants — recommencer à zéro si mauvais choix de bibliothèque

— perte de temps

— mises à jour des codes lors des changements de versions des bibliothèques — perte de temps

— anticiper des conversions de codes inter-bibliothèques — inexistence de certaines évolutions techniques

— immaturité de certaines bibliothèques par rapport à d’autres

— bibliothèques différentes entre le monde industriel et le monde académique

1.5.2.2 Les bibliothèques existantes

Il existe différentes bibliothèques logicielles (framework) d’apprentissage pro-fond.

Celle que nous utilisons du début à la fin de ce doctorat est Theano, une bi-bliothèque logicielle Python d’apprentissage profond développé par Mila - Institut québécois d’intelligence artificielle, une équipe de recherche de l’université McGill et de l’université de Montréal [Team 16]. Cependant, l’arrivée de la version 1.0 de Theano le 15 novembre 2017 entraîne la fin de sa maintenance par Mila. Les codes pour mes futures expérimentations étant justement achevés à la même période, il est décidé de rester jusqu’à la fin de mon doctorat avec Theano.

D’autres bibliothèques existent.

TensorFlow est une bibliothèque Python et C++ développée par Google [Abadi 15]. Le code source est ouvert le 9 novembre 2015 sous licence Apache. Il est aujourd’hui l’un des outils les plus utilisés en intelligence artificielle. Je l’ai moi-même utilisé quelques mois du côté académique. Cependant il lui est reproché son manque de fluidité.

Apache MXNet est une bibliothèque logicielle C++ développée par Amazon Web Services [Tianqi 15].

1.5 Aspects matériel et logiciel Microsoft Cognitive Toolkit, anciennement CNTK est une bibliothèque logicielle développée par Microsoft Research [Seide 16].

PyTorch est une bibliothèque Python, C++ et CUDA qui s’appuie sur Torch développée par l’équipe de recherche sur l’intelligence artificielle (IA) de Facebook [Paszke 17]. Initiée en octobre 2016, elle est alors trop peu pourvue pour être choi-sie pour mon doctorat. Cependant, la bêta lancée en janvier 2017 rencontre un succès fulgurant avec un million de téléchargements. Dans la communauté scien-tifique, à la conférence Interspeech 2017 à Stockholm, l’attente de la sortie de la version 1.0 de Pytorch est palpable. Ce n’est que le 2 octobre 2018 que la version 1.0 de PyTorch sort. L’équipe de DreamQuark (à part moi), après une longue et fastidieuse comparaison des bibliothèques logicielles existantes choisit de passer de Theano à PyTorch. En effet, PyTorch associe les qualités nécessaires à la recherche et au développement de nouvelles architectures neuronales, ainsi qu’à leur déploie-ment rapide pour la production industrielle. Plusieurs autres grands acteurs de l’intelligence artificielle, Microsoft, Amazon Web Services, Google, décident de dé-velopper des outils permettant d’effectuer des jonctions avec PyTorch. Et plusieurs fabricants de composants orientés IA de premier plan soutiennent la bibliothèque : Nvidia, Qualcomm, Intel, Arm et IBM,...

1.5.2.3 Faciliter leur utilisation

Afin de faciliter l’utilisation des bibliothèques d’apprentissage profond exis-tantes, des surcouches logicielles existent pour la plupart d’entre elles.

Lasagne est une surcouche créée pour construire et entraîner des réseaux de neu-rones en utilisant comme bibliothèque soit TensorFlow, soit Theano [Dieleman 15]. Je l’ai majoritairement utilisée durant mon doctorat. Avec TensorFlow, on trouve une autre surcouche très connue et populaire, Keras. La présence de nombreux tu-toriels écrits et vidéos en ligne la rend particulièrement adaptée pour les débutants [Chollet 15]. Keras s’utilise également aujourd’hui pour travailler avec le Microsoft Cognitive Toolkit. Une dernière surcouche assez utilisée est Gluon qui s’appuie sur MXNet [AWS 17].

Chapitre 2

L’émotion

Jusqu’à 2016, date de début de ma thèse, la communauté de la reconnaissance des émotions dans la voix exploite très largement les découvertes faites dans le champ d’étude de la paralinguistique.

2.1 La paralinguistique

D’après le modèle de communication de Shannon et Weaver (1948), le langage repose sur l’interaction entre un émetteur (ou locuteur), qui envoie un message codé, et un récepteur (ou interlocuteur), qui peut décoder ce message.

Figure 2.1.1 – Schéma du modèle de communication de Shannon et Weaver. Adapté de [Shannon 49].

Ce message peut être décomposé en deux éléments : — les éléments ortholinguistiques,

— les éléments paralinguistiques.

En 2006, Beaucousin répète dans sa thèse les définitions du point de vue linguis-tique de ces différents éléments [Beaucousin 06].

1. la composante phonétique concerne les sons du langage ;

2. la composante phonologique représente l’organisation de ces sons au sein du message pour former des morphèmes (plus petites unités de sons porteuses de sens) ;

3. la composante morphologique correspond à la combinaison des morphèmes pour former des éléments du lexique (qui correspond à l’ensemble des mots) ; 4. la composante syntaxique représente le niveau d’organisation des morphèmes

pour former les énoncés signifiants ;

5. et enfin la composante sémantique concerne l’association des signifiés (ou concept) aux signifiants qui constituent les unités lexicales.

Ce message est également véhiculé par les éléments paralinguistiques du langage. Ce sont des éléments qui accompagnent le discours et permettent d’étoffer et de compléter le message véhiculé par les éléments ortholinguistiques. Ces éléments paralinguistiques sont :

— les expressions faciales, — les gestes,

— le contexte énonciatif (thème, sujet de la conversation, humour), — les inférences,

— et la prosodie affective ou intonation émotionnelle de la voix. »

Dans le cadre de ce doctorat, puisqu’on s’intéresse à reconnaître les émotions dans la voix, nous nous intéressons plus particulièrement à la prosodie affective.

2.2 La prosodie affective