One-hot - One-hot
Binární | Šedý kód | Jeden horký |
---|---|---|
000 | 000 | 00000001 |
001 | 001 | 00000010 |
010 | 011 | 00000100 |
011 | 010 | 00001000 |
100 | 110 | 00010000 |
101 | 111 | 00100000 |
110 | 101 | 01000000 |
111 | 100 | 10000000 |
V digitálních obvodech a strojovém učení je one-hot skupina bitů, mezi nimiž jsou legální kombinace hodnot pouze ty, které mají jediný vysoký (1) bit a všechny ostatní nízké (0). Podobná implementace, ve které jsou všechny bity '1' kromě jedné '0', se někdy nazývá one-cold . V statistik , dummy proměnné představují podobné techniky představující kategoriálních dat .
Aplikace
Digitální obvody
Jednorázové kódování se často používá k indikaci stavu stavového automatu . Při použití binární nebo Gray kód , je dekodér je potřeba pro určení stavu. Jeden horký stavový automat však nepotřebuje dekodér, protože stavový stroj je v n -tom stavu právě tehdy, je-li n- tý bit vysoký.
Kroužek čítač s 15 postupně objednané státech je příklad stavového automatu. Implementace „one-hot“ by měla 15 sériově zapojených klopných obvodů s výstupem Q každého klopného obvodu připojeného ke vstupu D dalšího a vstupem D prvního klopného obvodu spojeného s výstupem Q 15. klopného obvodu . První klopný obvod v řetězci představuje první stav, druhý představuje druhý stav atd. K 15. klopnému obvodu, který představuje poslední stav. Po resetování stavového automatu se všechny klopné obvody resetují na „0“, s výjimkou prvního v řetězci, který je nastaven na „1“. Další hrana hodin, která dorazí k žabkám, posune jeden „horký“ bit do druhého žabky. Bit „hot“ tímto způsobem postupuje až do 15. stavu, po kterém se stavový stroj vrátí do prvního stavu.
Adresový dekodér konvertuje z binárního nebo šedé kódu na jednu horkou zastoupení. A priorita enkodéru konvertité od jednoho horkého reprezentace do binárního nebo Gray kódu.
Srovnání s jinými metodami kódování
Výhody
- Určení stavu má nízké a stálé náklady na přístup k jednomu klopnému obvodu
- Změna stavu má stálé náklady na přístup ke dvěma žabkám
- Snadné navrhování a úpravy
- Snadné odhalení nelegálních stavů
- Využívá hojné klopné obvody FPGA
Použití jednorázové implementace obvykle umožňuje, aby stavový stroj běžel rychlejší rychlostí hodin než jakékoli jiné kódování tohoto stavového stroje.
Nevýhody
- Vyžaduje více klopných obvodů než jiná kódování, což je pro zařízení PAL nepraktické
- Mnoho států je nelegálních
Zpracování přirozeného jazyka
Při zpracování přirozeného jazyka je jedním horkým vektorem matice (vektor) 1 × N používaná k rozlišení každého slova ve slovníku od každého druhého slova ve slovníku. Vektor se skládá z 0 ve všech buňkách, s výjimkou jediné 1 v buňce, která se používá jedinečně k identifikaci slova. Jednorázové kódování zajišťuje, že strojové učení nepředpokládá, že vyšší čísla jsou důležitější. Například hodnota „8“ je větší než hodnota „1“, ale to neznamená, že „8“ je důležitější než „1“. Totéž platí pro slova: hodnota „smích“ není důležitější než „smích“.
Strojové učení a statistiky
Ve strojovém učení je kódování za horka často používanou metodou řešení kategorických dat. Protože mnoho modelů strojového učení vyžaduje, aby jejich vstupní proměnné byly číselné, je třeba v předzpracovávací části transformovat kategorické proměnné.
Název jídla | Kategorické # | Kalorie |
---|---|---|
Jablko | 1 | 95 |
Kuře | 2 | 231 |
Brokolice | 3 | 50 |
Jablko | Kuře | Brokolice | Kalorie |
---|---|---|---|
1 | 0 | 0 | 95 |
0 | 1 | 0 | 231 |
0 | 0 | 1 | 50 |
Kategorická data mohou být buď nominální, nebo řadová. Pořadová data mají seřazené pořadí hodnot a lze je proto převést na číselná data pomocí pořadového kódování. Příkladem ordinálních dat by mohla být hodnocení testu v rozmezí od A do F, která by mohla být hodnocena pomocí čísel od 6 do 1. Jelikož neexistuje žádný kvantitativní vztah mezi jednotlivými hodnotami nominálních proměnných, může použití ordinálního kódování potenciálně vytvořit fiktivní pořadový vztah v datech. Proto se pro nominální proměnné často používá kódování za horka, aby se zlepšil výkon algoritmu.
Pro každou jedinečnou hodnotu v původním kategoriálním sloupci je v této metodě vytvořen nový sloupec. Tyto fiktivní proměnné jsou poté naplněny nulami a jednotkami (1 znamená TRUE, 0 znamená FALSE).
Protože tento proces vytváří více nových proměnných, je náchylný k vytvoření velkého problému p (příliš mnoho prediktorů), pokud je v původním sloupci mnoho jedinečných hodnot. Další nevýhodou kódování za horka je, že způsobuje multicollinearitu mezi jednotlivými proměnnými, což potenciálně snižuje přesnost modelu.
Pokud je kategorická proměnná také výstupní proměnná, můžete chtít hodnoty převést zpět do kategorické formy, abyste je mohli prezentovat ve své aplikaci.
V praxi je tato transformace často přímo prováděna funkcí, která bere kategorická data jako vstup a vydává odpovídající fiktivní proměnné. Příkladem může být funkce dummyVars knihovny Caret v R.
Viz také
- Bi-quinary kódované desítkově
- Unární číselná soustava
- Kvantifikace jedinečnosti
- XOR brána
- Binární dekodér
- Sériové desetinné číslo
- Jednoduchý vektor