Encodage one-hot
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 | modifier le code]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.
Voir aussi
[modifier | modifier le code]Notes et références
[modifier | modifier le code]- ↑ « Encodage one-hot », sur developers.google.com (consulté le )
- ↑ 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 »)
- ↑ Alain Grenier, « Circuits numériques synchrones et synthèse des automates (p. 38) », sur enseignement.polytechnique.fr (consulté le )