L'encodage one-hot[1] ou encodage 1 parmi n consiste à encoder une variable à n états sur n bits dont un seul prend la valeur 1[2],[3], le numéro du bit valant 1 étant le numéro de l'état pris par la variable.

Cet encodage est courant en apprentissage automatique ou l'on représente usuellement une variable catégorielle à n catégories par n variables binaires, la i-ème variable binaire représentant la i-ème catégorie. Son usage est également répandu dans les FPGA pour représenter l'état d'une machine à états.

Exemple modifier

Le tableau ci-dessous présente un encodage 1 parmi n d'une variable fruit à 3 états possibles.

fruit code
pomme 001
ananas 010
orange 100

Chacune des modalités peut aussi être représentée dans sa propre colonne, chaque valeur étant 0 ou 1.

fruit bit2_orange bit1_ananas bit0_pomme
pomme 0 0 1
ananas 0 1 0
orange 1 0 0

La dernière colonne peut-être omise car elle peut être déduite des précédentes pour gagner un peu de mémoire.

Avantages et inconvénients modifier

L'un des avantages principaux de cet encodage est que pour passer d'un état à un autre, seules deux transitions sont nécessaires : un chiffre passe de 1 à 0, un autre de 0 à 1. En électronique numérique, un autre avantage est lié à la quantité réduite de logique combinatoire nécessaire pour tester l'état du système, seul le bit n étant à tester pour vérifier si l'état n est actif.

L'inconvénient est la taille de la variable en mémoire puisqu'il utilise autant de bits qu'il y a d'états. L'espace mémoire nécessaire augmente linéairement avec le nombre d'états. Alors qu'un code utilisant toutes les valeurs binaires possibles tel que le comptage classique en base 2 (0 → 0, 1 → 1, 2 → 10, 3 → 11, 4 → 100) conduit à une augmentation logarithmique du nombre de bits avec le nombre d'états.

Cet encodage one-hot est nécessaires aux pré-traitements des données catégorielles pour être utilisée par les algorithmes d'apprentissage automatique et d'apprentissage profond, en effet ces algorithmes travaillent uniquement avec des données et variables quantitatives ou numériques, les données et variables catégorielles doivent donc être transformées et encodées auparavant.

Voir aussi modifier

Sur les autres projets Wikimedia :

Notes et références modifier

  1. « Encodage one-hot », sur developers.google.com (consulté le )
  2. Tertulien Ndjountche, Électronique numérique 3 : Machines avec un nombre fini d'états, vol. 3, ISTE éditions, , 304 p. (ISBN 978-1-78405-153-2, lire en ligne), chap. 1.6 (« Codage des états »)
  3. Alain Grenier, « Circuits numériques synchrones et synthèse des automates (p. 38) », sur enseignement.polytechnique.fr (consulté le )