Aller au contenu

Encodage one-hot

Un article de Wikipédia, l'encyclopédie libre.

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.

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 | modifier le code]

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.

L'encodage one-hot se retrouve notamment dans le pré-traitement des données catégorielles (i.e. qui s'assimilent à des classes) utilisées en entrée dans certains algorithmes d'apprentissage automatique et d'apprentissage profond de classification ; en effet, ces algorithmes utilisant des données et variables quantitatives ou numériques, les données et variables catégorielles sont généralement transformées et encodées au préalable.

Sur les autres projets Wikimedia :

Notes et références

[modifier | modifier le code]
  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 )