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.
Nazwa żywności | Kategoryczny # | Kalorie |
---|---|---|
jabłko | 1 | 95 |
kurczak | 2 | 231 |
brokuły | 3 | 50 |
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ż
- Dziesiętny kodowany w formacie binarnym
- Jednoargumentowy system liczbowy
- Kwantyfikacja niepowtarzalności
- Brama XOR
- Dekoder binarny
- Szeregowy dziesiętny
- Wektor pojedynczego wejścia