Niektóre funkcje mogą być odrębnymi wartościami, które nie są ułożone w określonej kolejności. Mogą to być na przykład rasy psów, słów lub kodów pocztowych. Nazywamy je kategorią, a każdą wartością jest kategoria. Wartości kategorialne możesz podawać w postaci ciągów znaków, a nawet liczb, ale nie możesz porównywać tych danych ani od nich od siebie odchodzić.
Często cechy, które zawierają liczby całkowite, powinny mieć postać kategorii, a nie dane liczbowe. Możesz na przykład zastosować funkcję kodu pocztowego, w której wartości są liczbami całkowitymi. Jeśli przez pomyłkę przedstawisz tę funkcję w sposób liczbowy, prosisz model o znalezienie relacji numerycznej między różnymi kodami pocztowymi. Na przykład spodziewasz się, że model określi, że kod pocztowy 20004 jest dwukrotnie (lub połowę) sygnałem jako kodem pocztowym 10002. Reprezentując kody pocztowe jako dane kategorialne, model może znaleźć osobne sygnały dla każdego kodu.
Jeśli liczba kategorii pola danych jest mała, np. dzień tygodnia lub ograniczona liczba kolorów, możesz utworzyć unikalną funkcję dla każdej kategorii. Przykład:
Rysunek 1. Unikalna funkcja dla każdej kategorii
Model może dzięki temu poznać osobną wagę dla każdego koloru. Może na przykład zakładać, że czerwone samochody są droższe niż samochody.
Następnie możesz zindeksować te elementy.
Rysunek 2. Zindeksowane funkcje
Ten rodzaj mapowania jest nazywany słowniczkiem.
Słownictwo
W słowniku każda wartość odpowiada unikalnej funkcji.
Index Number | Category |
---|---|
0 | Red |
1 | Orange |
2 | Blue |
... | ... |
Model wyszukuje indeks na podstawie ciągu znaków, przypisując 1,0 do odpowiedniego boksu wektora funkcji, a 0,0 do wszystkich pozostałych boksów w wektorze cech.
Rysunek 3. Kompleksowy proces mapowania kategorii w taki sposób, aby przedstawiał wektory.
Uwaga na temat niewystarczającej reprezentacji
Jeśli kategorie są dni tygodnia, możesz na przykład reprezentować piątek z wektorem funkcji [0, 0, 0, 0, 1, 0, 0]. Większość implementacji systemów uczących się będzie jednak reprezentować ten wektor w pamięci podręcznej. Typowa reprezentacja to lista niepustych wartości oraz odpowiadających im indeksów, np.1,0 dla wartości i [4] dla indeksu. Dzięki temu możesz przeznaczać mniej pamięci na przechowywanie ogromnej liczby 0 s i wydajniej mnożyć macierzy. W kontekście matematyki [4] jest odpowiednikiem [0, 0, 0, 0, 1, 0, 0].
Poza chmurą (OOV)
Dane liczbowe zawierają dane odstające, podobnie jak dane kategorialne. Możesz na przykład użyć zbioru danych z opisami samochodów. Jedną z cech tego zbioru danych może być kolor samochodu. Załóżmy, że popularne kolory samochodów (czarny, biały, szary itd.) są dobrze reprezentowane w zbiorze danych. Każdy z nich pasuje do kategorii, dzięki czemu możesz poznać wpływ tych kolorów na wartość. Załóżmy jednak, że ten zbiór danych zawiera niewielką liczbę samochodów o ekscentrycznych kolorach (jasny, awokado, awokado). Zamiast podawać każdy z tych kolorów w osobnej kategorii, możesz je grupować jako Poza Vocab (OOV). Używając w tym celu spersonalizowanych systemów, nie będziesz tracić czasu na każdy z rzadkich kolorów.
Haszowanie
Możesz też zahaszować każdy ciąg (kategorię) w dostępne miejsce. Haszowanie często powoduje konflikty, ale polega na modelu, który uczy się na podstawie wspólnych reprezentacji kategorii w tym samym indeksie, co w danym przypadku sprawdza się najlepiej.
W przypadku ważnych haseł haszowanie może być gorsze niż wybieranie słowa ze względu na kolizje. Z kolei haszowanie nie wymaga ustawiania słownictwa, co jest dobre, jeśli rozkład funkcji się zmienia w miarę upływu czasu.
Ilustracja 4. Mapowanie elementów do słownika.
Hybrydowe haszowanie i słowność
Możesz zastosować metodę hybrydową i połączyć haszowanie ze słownikiem. Użyj słownika, aby wskazać najważniejsze kategorie w danych, ale zastąp OOV wieloma zasobnikami OOV i zaszyfruj kategorie do zasobników.
Kategorie w zasobnikach haszowania muszą współużytkować indeks, a model prawdopodobnie nie zapewni dobrych prognoz, ale przygotowaliśmy odpowiednią ilość pamięci, aby nauczyć się kategorii spoza naszego słownika.
Rysunek 5. Połączenie hybrydowe łączące słownictwo z haszowaniem.
Uwaga na temat umieszczania na stronie
Zwróć uwagę na to, że z tego szkolenia dotyczącego awarii systemów uczących się umieszczanie to funkcja kategoryczna reprezentowana przez funkcję o stałej wartości. Głębokie modele często konwertują indeksy z indeksu na miejsce docelowe.
Rysunek 6. Wektorowe przekształcenia obiektów
Inne omawiane przekształcenia mogą być przechowywane na dysku, ale osadzenia różnią się. Ponieważ elementy osadzone są trenowane, nie są typową transformacją danych, ponieważ są częścią modelu. Są trenowane na innych wagach modelu i funkcjonują tak samo jak warstwa wag.
Co z osadzonymi elementami umieszczonymi na stronie? Wytrenowane osadzenia wciąż są zwykle modyfikowane podczas trenowania, więc nadal są częścią koncepcji modelu.