Perceptron jądra
Część serii poświęconej |
uczeniu maszynowemu i eksploracji danych |
---|
W uczeniu maszynowym perceptron jądra jest wariantem popularnego algorytmu uczenia się perceptronu , który może uczyć się maszyn jądra , tj. nieliniowych klasyfikatorów wykorzystujących funkcję jądra do obliczania podobieństwa próbek niewidocznych do próbek uczących. Algorytm został wynaleziony w 1964 roku, co czyni go pierwszym uczącym się klasyfikacji jądra.
Czynności wstępne
Algorytm perceptronu
Algorytm perceptronu to algorytm uczenia się online , który działa na zasadzie „uczenia się opartego na błędach”. Iteracyjnie ulepsza model, uruchamiając go na próbkach treningowych, a następnie aktualizując model, gdy stwierdzi, że dokonał nieprawidłowej klasyfikacji w odniesieniu do nadzorowanego sygnału. Model wyuczony przez standardowy algorytm perceptronu to liniowy klasyfikator binarny: wektor wag w (i opcjonalnie składnik przecięcia b , pominięty tutaj dla uproszczenia), który jest używany do klasyfikowania przykładowego wektora x jako klasa „jeden” lub klasa „minus jeden” wg
gdzie zero jest arbitralnie odwzorowane na jeden lub minus jeden. („ Kapelusz ” na ŷ oznacza szacunkową wartość).
W pseudokodzie algorytm perceptronu jest określony przez:
- Zainicjuj w do wektora zerowego o długości p , liczby predyktorów (cech).
- Dla pewnej ustalonej liczby iteracji lub do momentu spełnienia kryterium zatrzymania:
- Dla każdego przykładu uczącego x i z etykietą prawdy podstawowej y i ∈ {-1, 1 }:
- Niech ŷ = sgn( w T x i ) .
- Jeśli ŷ ≠ y i , zaktualizuj w ← w + y i x ja .
- Dla każdego przykładu uczącego x i z etykietą prawdy podstawowej y i ∈ {-1, 1 }:
Metody jądra
W przeciwieństwie do modeli liniowych wyuczonych przez perceptron, metoda jądra jest klasyfikatorem, który przechowuje podzbiór swoich przykładów uczących x i , przypisuje każdemu wagę α i i podejmuje decyzje dotyczące nowych próbek x' poprzez ocenę
- .
Tutaj K jest pewną funkcją jądra. Formalnie funkcja jądra jest nieujemnym półokreślonym jądrem (patrz warunek Mercera ), reprezentującym iloczyn wewnętrzny między próbkami w przestrzeni wielowymiarowej, tak jakby próbki zostały rozszerzone o dodatkowe cechy za pomocą funkcji Φ : K ( x , x' ) = Φ( x ) · Φ ( x' ) . Intuicyjnie można to traktować jako funkcję podobieństwa między próbkami, więc maszyna jądra ustala klasę nowej próbki przez ważone porównanie ze zbiorem uczącym. Każda funkcja x' ↦ K ( x i , x' ) służy jako funkcja bazowa w klasyfikacji.
Algorytm
Aby uzyskać ziarnistą wersję algorytmu perceptronu, musimy najpierw sformułować go w postaci dualnej , zaczynając od obserwacji, że wektor wag w można wyrazić jako liniową kombinację n próbek treningowych. Równanie wektora ciężaru to
gdzie α i jest liczbą błędnych klasyfikacji x i , wymuszających aktualizację w ← w + y i x i . Korzystając z tego wyniku, możemy sformułować algorytm podwójnego perceptronu, który przechodzi przez próbki tak jak poprzednio, dokonując prognoz, ale zamiast przechowywać i aktualizować wektor wagi w , aktualizuje wektor „licznika błędów” α . Musimy również przepisać formułę przewidywania, aby pozbyć się w :
Podłączenie tych dwóch równań do pętli treningowej przekształci ją w algorytm podwójnego perceptronu .
Wreszcie, możemy zastąpić iloczyn skalarny w podwójnym perceptronie dowolną funkcją jądra, aby uzyskać efekt mapy cech Φ bez jawnego obliczania Φ( x ) dla jakichkolwiek próbek. W ten sposób uzyskuje się algorytm perceptronu jądra:
- Zainicjuj α wektorem zerowym o długości n , czyli liczbie próbek uczących.
- Dla pewnej ustalonej liczby iteracji lub do momentu spełnienia kryterium zatrzymania:
- Dla każdego przykładu uczącego x j , y j :
- Niech
- Jeśli ŷ ≠ y j , wykonaj aktualizację zwiększając licznik błędów:
- α j ← α j + 1
- Dla każdego przykładu uczącego x j , y j :
Warianty i rozszerzenia
Jednym z przedstawionych powyżej problemów z perceptronem jądra jest to, że nie uczy się on rzadkich maszyn jądra. Początkowo wszystkie α i są zerowe, więc ocena funkcji decyzyjnej w celu uzyskania ŷ nie wymaga żadnych ocen jądra, ale każda aktualizacja zwiększa pojedynczy α i , przez co ocena jest coraz bardziej kosztowna. Co więcej, gdy perceptron jądra jest używany w online , liczba niezerowych α i, a tym samym koszt oceny, rośnie liniowo wraz z liczbą przykładów przedstawionych algorytmowi.
Aby rozwiązać ten problem, zaproponowano wariant perceptronu jądra typu Forgetron. Utrzymuje aktywny zestaw przykładów z niezerowym α i , usuwając („zapominając”) przykłady z aktywnego zestawu, gdy przekracza on z góry określony budżet i „kurcząc” (obniżając wagę) starych przykładów w miarę promowania nowych do niezerowego α i .
Innym problemem związanym z perceptronem jądra jest brak regularyzacji , co czyni go podatnym na przeuczenie . Algorytm uczenia jądra online NORMA można uznać za uogólnienie algorytmu perceptronu jądra z regularyzacją. Algorytm sekwencyjnej optymalizacji minimalnej (SMO) używany do uczenia maszyn wektorów nośnych można również uznać za uogólnienie perceptronu jądra.
Głosowany algorytm perceptronu Freunda i Schapire'a rozciąga się również na przypadek z jądrem, dając granice uogólnienia porównywalne z SVM jądra.