Krzyże cech: kodowanie nieliniowe

Wyobraźmy sobie na obrazach 1 i 2, że:

  • Niebieskie kropki symbolizują chore drzewa.
  • Pomarańczowe kropki reprezentują zdrowe drzewa.

Południowo-zachodnie kwadry zajmują błękitne kropki, a południowo-zachodnie – kropki.

Rysunek 1. Czy problem jest linearny?

Czy można narysować linię, która oddziela chore drzewa od zdrowych drzew? Jasne. To jest problem liniowy. Ta linia nie będzie idealna. Choroba może znajdować się po stronie chorobowej, ale jej dokładność byłaby korzystna.

Spójrzmy teraz na następujący obraz:

Kropki w północno-zachodniej i południowo-zachodniej kropce zajmują błękitne kropki.

Rysunek 2. Czy problem jest linearny?

Czy można narysować prostą linię, która oddziela chore drzewa od zdrowych drzew? Nie, nie możesz. To jest problem nielinearny. Każda zaznaczona linia będzie kiepskim prognozem stanu drzewa.

Ten sam rysunek co na rysunku 2, z tą różnicą, że pionowa linia jest ułamana. Nad linią znajdują się niebieskie i pomarańczowe kropki, a linie – niebieskie i pomarańczowe.

Rysunek 3. Jeden wiersz nie może rozdzielać obu klas.

 

Aby rozwiązać problem nielinearny przedstawiony na rysunku 2, utwórz krzyż cech. Krzyży funkcji to funkcja syntetyczna, która koduje nieliniową przestrzeń w funkcji, mnożąc co najmniej 2 funkcje wejściowe. Termin krzyżyk pochodzi od słowa produkt krzyżowy). Utwórzmy krzyżową funkcję o nazwie \(x_3\) poprzez przejście \(x_1\) i \(x_2\):

$$x_3 = x_1x_2$$

Każda z nich jest traktowana jak nowa \(x_3\) funkcja. Formuła liniowa staje się:

$$y = b + w_1x_1 + w_2x_2 + w_3x_3$$

Algorytm liniowy może nauczyć się wagi \(w_3\)tak jak \(w_1\) i \(w_2\). Innymi słowy, \(w_3\) koduje informacje nielinearne, ale nie musisz zmieniać sposobu trenowania modelu liniowego, aby określić wartość \(w_3\).

Rodzaje krzyżyek

Możemy tworzyć różne rodzaje krzyżyków. Przykład:

  • [A X B]: krzyżyk kształtu mnożony przez 2 cechy.
  • [A x B x C x D x E]: krzyżyk kształtu mnożony przez pięć wartości.
  • [A x A]: pierwiastek ukształtowany przez kwadrat.

Dzięki zjazdowi gradientowemu można łatwo trenować modele liniowe. W rezultacie uzupełnienie przeskalowanych modeli liniowych o przecinki stanowiące tradycyjnie skuteczny sposób na trenowanie przy użyciu ogromnych zbiorów danych.