Jeden gorący - One-hot

Dwójkowy Kod szary Jeden gorący
000 000 00000001
001 001 00000010
010 011 00000100
011 010 00001000
100 110 00010000
101 111 00100000
110 101 01000000
111 100 10000000

W układów cyfrowych i uczenia maszynowego , o jeden gorący jest grupa bitów wśród których kombinacje prawne wartości są tylko te z jednym wysoki (1) Bit i wszystkim niski inne (0). Podobna implementacja, w której wszystkie bity mają wartość „1” z wyjątkiem jednego „0”, jest czasami nazywana jednym zimnym . W statystykach , zmienne fikcyjne reprezentują podobną technikę reprezentujący dane kategoryczne .

Aplikacje

Obwody cyfrowe

Kodowanie na gorąco jest często używane do wskazywania stanu automatu stanowego . Podczas korzystania binarne lub kod Grey , A dekoder jest potrzebne do określenia stanu. Jednak maszyna stanu z jednym gorącym stanem nie potrzebuje dekodera, ponieważ automat stanu jest w stanie n- tym wtedy i tylko wtedy, gdy n- ty bit jest wysoki.

Licznik pierścień z 15 zamówionych kolejno stanach jest przykładem maszynie państwowej. Implementacja ` ` one-hot '' miałaby 15 klapek połączonych szeregowo z wyjściem Q każdego przerzutnika podłączonym do wejścia D następnego, a wejście D pierwszego przerzutnika podłączonego do wyjścia Q piętnastego przerzutnika. . Pierwszy przerzutnik w łańcuchu reprezentuje stan pierwszy, drugi stan drugi i tak dalej, aż do piętnastego przerzutnika, który reprezentuje stan ostatni. Po zresetowaniu automatu stanowego wszystkie przerzutniki są resetowane do „0” z wyjątkiem pierwszego w łańcuchu, który jest ustawiony na „1”. Następna krawędź zegara docierająca do klapek przesuwa jeden `` gorący '' bit do drugiego klapki. Bit „gorący” przesuwa się w ten sposób aż do 15 stanu, po którym automat stanowy powraca do pierwszego stanu.

Adres dekoder konwertuje z kodu binarnego lub szarego do jednego gorącego reprezentacji. A priorytet kodera Konwersja z jednego gorącego reprezentacji na kod binarny lub szarym.

Porównanie z innymi metodami kodowania

Zalety
  • Określenie stanu ma niski i stały koszt dostępu do jednego przerzutnika
  • Zmiana stanu ma stały koszt dostępu do dwóch przerzutników
  • Łatwy w projektowaniu i modyfikowaniu
  • Łatwe do wykrycia nielegalne stany
  • Wykorzystuje liczne przerzutniki FPGA

Użycie implementacji typu one-hot pozwala zwykle maszynie stanów działać z większą częstotliwością zegara niż jakiekolwiek inne kodowanie tej maszyny stanów.

Niedogodności
  • Wymaga więcej przerzutników niż inne kodowania, co czyni go niepraktycznym dla urządzeń PAL
  • Wiele stanów jest nielegalnych

Przetwarzanie języka naturalnego

W przetwarzaniu języka naturalnego jeden gorący wektor to macierz 1 ×  N (wektor) używana do odróżnienia każdego słowa w słowniku od każdego innego słowa w słowniku. Wektor składa się z zer we wszystkich komórkach z wyjątkiem pojedynczego jedynki w komórce używanej jako jednoznaczne do identyfikacji słowa. Kodowanie typu one-hot zapewnia, że ​​uczenie maszynowe nie zakłada, że ​​większe liczby są ważniejsze. Na przykład wartość „8” jest większa niż wartość „1”, ale to nie sprawia, że ​​„8” jest ważniejsze niż „1”. To samo dotyczy słów: wartość „śmiech” nie jest ważniejsza niż „śmiech”.

Uczenie maszynowe i statystyki

W uczeniu maszynowym kodowanie typu one-hot jest często stosowaną metodą radzenia sobie z danymi kategorialnymi. Ponieważ wiele modeli uczenia maszynowego wymaga, aby ich zmienne wejściowe były numeryczne, zmienne kategorialne muszą zostać przekształcone w części przetwarzania wstępnego.

Kodowanie etykiet
Nazwa żywności Kategoryczny # Kalorie
jabłko 1 95
kurczak 2 231
brokuły 3 50
Jedno gorące kodowanie
jabłko kurczak brokuły Kalorie
1 0 0 95
0 1 0 231
0 0 1 50

Dane kategorialne mogą być nominalne lub porządkowe. Dane porządkowe mają uporządkowaną kolejność wartości i dlatego można je przekształcić w dane liczbowe za pomocą kodowania porządkowego. Przykładem danych porządkowych mogą być oceny w teście od A do F, które można uszeregować za pomocą liczb od 6 do 1. Ponieważ nie ma ilościowego związku między indywidualnymi wartościami nominalnych zmiennych, użycie kodowania porządkowego może potencjalnie stworzyć fikcyjną relacja porządkowa w danych. Dlatego kodowanie typu one-hot jest często stosowane do zmiennych nominalnych, aby poprawić wydajność algorytmu.

Dla każdej unikalnej wartości w oryginalnej kolumnie kategorialnej jest tworzona nowa kolumna w tej metodzie. Te zmienne zastępcze są następnie wypełniane zerami i jedynkami (1 oznacza PRAWDA, 0 oznacza FAŁSZ).

Ponieważ ten proces tworzy wiele nowych zmiennych, jest podatny na tworzenie dużego problemu p (zbyt wielu predyktorów), jeśli w oryginalnej kolumnie występuje wiele unikatowych wartości. Inną wadą kodowania typu one-hot jest to, że powoduje ono współliniowość między poszczególnymi zmiennymi, co potencjalnie zmniejsza dokładność modelu.

Ponadto, jeśli zmienna kategorialna jest zmienną wyjściową, możesz chcieć przekonwertować wartości z powrotem na postać kategorialną, aby przedstawić je w aplikacji.

W praktyce transformacja ta jest często wykonywana bezpośrednio przez funkcję, która pobiera dane jakościowe jako dane wejściowe i generuje odpowiadające im zmienne fikcyjne. Przykładem może być funkcja dummyVars biblioteki Caret w R.


Zobacz też

Bibliografia