Actualité Formation TensorFlow : Qu'est-ce que le One-hot encoding

Pour approfondir le sujet

Atos IT Challenge 2020 sur l’Intelligence Artificielle Coopérative – découvrez les équipes gagnantes

L'Atos IT Challenge 2020 s'est tenu cette année sur la thématique ''Intelligence Artificielle Coopérative'. Des équipes de 27 pays se sont affrontés au cours...

Marchés et des usages du numérique : Cap Digital présente sa nouvelle cartographie des tendances

Cap Digital a publié sa cartographie des tendances 2020/2021. Un dossier de 72 pages réalisé grâce à l'expertise des 1 000 membres du collectif...

Industrie 4.0 : Partenariat entre Renault et Google Cloud sur la digitalisation des usines et de la chaîne logistique

Aller plus loin dans l'industrie 4.0 grâce au machine learning et à l'intelligence artificielle, c'est l'objectif du Groupe Renault. Pour ce faire, le constructeur...

Ethique de l’intelligence artificielle : Participez à la consultation de l’UNESCO pour l’élaboration d’une recommandation

Dans le cadre de la décision de la Conférence générale de l'UNESCO lors de sa 40e session en novembre 2019, l'UNESCO s'est engagée dans...

Formation TensorFlow : Qu’est-ce que le One-hot encoding

Qu’est-ce que le One-hot encoding ? Cette nouvelle vidéo de la formation à TensorFlow s’intéresse à un concept important permettant d’exploiter des données représentant des classes distinctes.  En effet, comment faire en sorte qu’en encodant la lettre A sous forme numérique,celle-ci ne soit pas considérée comme 20 fois inférieure à la 20ème lettre de l’alphabet, la lettre T ? Encoder ces lettres en fonction de leur position dans l’alphabet serait réellement problématique, sachant que leurs valeurs sont destinées à être multipliées par le poids en entrée des neurones.

Le One-hot encoding permet de traiter les données sous formes vectorielle et de répondre à cette problématique. En utilisant cette fonctionnalité, un vecteur de valeurs binaires de la dimension : nombre de classes X 1 est automatiquement créé et utilisé.

Retrourner au sommaire de la formation à TensorFlow 2.0

 

 

Transcription de la vidéo :

Bienvenue à tous dans cette série de vidéos consacrées à Tensorflow 2.0.
Dans la dernière vidéo, on avait vu comment on va pouvoir générer des batchs. On a vu sur quel dataset on allait travailler pour générer des poèmes de Victor Hugo. Dans cette vidéo, on va voir un concept important, qui est le One Hot Encoding. Ces lettres que l’on va générer, ce ne sont pas réellement des lettres que l’on va traiter mais des chiffres. On va considérer qu’on a un vocabulaire assez réduit, constitué de seulement 4 caractères : L , U, I et ESPACE. Le nombre de lettres possibles est réduit.. On a donc seulement une séquence de 1, 2 ,3 ,4. La target du 1 est 2. La target du 2 est 3, la target du 3 est 4. Quand on repense aux premières vidéos que j’ai faites sur les réseaux de neurones, on imagine qu’on a seulement une seule entrée et que la valeur de cette input est un nombre : 1, 2, 3 ou 4. Il faut imaginer que cet input va être multiplié par des poids et avoir une importance numérique dans le calculs. Une valeur qui a 4 a plus d’importance qu’une valeur de 1. Quand le modèle va s’entraîner, il va modifier les poids du réseau pour que ces poids prêtent plus d’importance à certaines features et moins à d’autres features. Pour cela, lors de l’entrainement, certains poids vont s’augmenter ou diminuer. Mais puisque nos lettres en entrées sont symbolisées par des valeurs numériques, le caractère représenté par le 4 aura par défaut plus d’importance que celle symbolisée par le 1. Si nous avons 34 caractères, le caractère 34 sera 34 fois plus important que le 1er.

La question que l’on peut se poser est de savoir s’il y a une raison pour qu’un caractère soit 34 fois important qu’un autre par défaut et la réponse est bien sûr non. Pour limiter ça, on va non pas représenter nos nombres sous forme de nombre mais sous forme vectorielle. On va représenter chaque caractère sous forme de vecteur, c’est ce que l’on appelle le One Hot encoding. Ainsi, le 1er caractère sera représenté sous la forme d’un vecteur [1,0,0,0] , le 2ème sous la forme [0,1,0,0] , le 3ème sous la forme [0,0,1,0] et le 4ème sous la forme [0,0,0,1].

Cette manière de représenter des informations quand on a des classes permet d’éviter d’assigner une valeur supérieure à une classe qu’une autre. C’est cela, que l’on appelle le one hot encoding.

Si nous avons 34 caractères nous aurons donc des vecteurs de 34 valeurs, dont chaque exemple contiendra un seule 1 et les autres éléments seront à zéro.

J’ai donc créé un layer pour vous donner un exemple de comment on pourrait utiliser un layer dans un projet de ce type. On crée un layer personnalisé, dérivé de la classe layer, et l’on prend en paramètre la profondeur du layer (34 dans notre exemple). On utilise une fonction bas niveau de Tensorflow : tf.one_hot , qui permet automatiquement de convertir notre valeur en vecteur one hot encoding à partir d’une valeur et une profondeur. On crée ensuite un modèle très rapide qui utilise le layer que l’on vient de créer. On l’initialise avec la longueur de notre layer puis on lui passe nos valeurs.

Je génère un batch aléatoire (vu dans la dernière vidé) avec des séquences de 50 et batchs de 32. On initialise le modèle puis l’on fait une prédiction. On récupère ensuite le premier batch et la première prédiction de la séquence. On constate que la forme de la sortie est contient 32 éléments, où chaque élément est un élément de 33 valeurs. Nous pouvons également voir la représentation One hot encoding de notre troisème caractère en faisant un print de batch_inputs[0][0] et output[0]

Le One hot encoding n’est pas utilisé que dans les réseaux de neurones récurrents, mais également dans les réseaux de neurones classiques dès lors qu’il n’y a aucune raison qu’une classe soit plus importante qu’une autre.

Contributeur expert

Thibault Neveu

Thibault Neveu est jeune chercheur en intelligence artificielle. Il fut membre de la section rech

Partager l'article

Atos IT Challenge 2020 sur l’Intelligence Artificielle Coopérative – découvrez les équipes gagnantes

L'Atos IT Challenge 2020 s'est tenu cette année sur la thématique ''Intelligence Artificielle Coopérative'. Des équipes de 27 pays se sont affrontés au cours...

Marchés et des usages du numérique : Cap Digital présente sa nouvelle cartographie des tendances

Cap Digital a publié sa cartographie des tendances 2020/2021. Un dossier de 72 pages réalisé grâce à l'expertise des 1 000 membres du collectif...

Industrie 4.0 : Partenariat entre Renault et Google Cloud sur la digitalisation des usines et de la chaîne logistique

Aller plus loin dans l'industrie 4.0 grâce au machine learning et à l'intelligence artificielle, c'est l'objectif du Groupe Renault. Pour ce faire, le constructeur...

Ethique de l’intelligence artificielle : Participez à la consultation de l’UNESCO pour l’élaboration d’une recommandation

Dans le cadre de la décision de la Conférence générale de l'UNESCO lors de sa 40e session en novembre 2019, l'UNESCO s'est engagée dans...