Zależność między liczbą wektorów pomocniczych a liczbą funkcji

12

Uruchomiłem maszynę SVM dla danego zestawu danych i poczyniłem następującą obserwację: Jeśli zmienię liczbę funkcji budowania klasyfikatora, liczba wynikowych wektorów pomocniczych również zostanie zmieniona.

Chciałbym wiedzieć, jak wyjaśnić tego rodzaju scenariusz.

użytkownik3269
źródło
Jaki był rodzaj i styl tych dodatkowych funkcji? Gdzie wyglądają jak warianty istniejących funkcji lub kilka nowych funkcji, które według ciebie mogą mieć dodatkową moc rozdzielczą?
Philip Oakley,
Jest to problem z klasyfikacją dokumentów, a dodatkowe funkcje to tylko słowa. Użyłem unigram do budowy przestrzeni funkcji.
user3269,
Biorąc pod uwagę odpowiedź @ marc, która zmieniła się, liczba wektorów wzrosła wraz z liczbą cech lub odwrotnie.
Philip Oakley,
@Phillip, moja pierwotna odpowiedź była błędna. Myślę, że zredagowana odpowiedź jest teraz poprawna.
Marc Shivers,

Odpowiedzi:

13

Jeśli spojrzysz na problem optymalizacji rozwiązany przez SVM:

minw,ξ,b{12)w2)+doja=1nξja}

st dla wszystkichyja(wxja-b)1-ξja,    ξja0,ja=1,n

wektorami pomocniczymi są te których odpowiada . Innymi słowy, są to punkty danych, które są błędnie sklasyfikowane lub znajdują się blisko granicy.xjaξja>0

Porównajmy teraz rozwiązanie tego problemu, gdy masz pełny zestaw funkcji, z przypadkiem, gdy wyrzucisz niektóre funkcje. Wyrzucenie obiektu jest funkcjonalnie równoważne z zachowaniem obiektu, ale dodanie ograniczenia dla cechy , którą chcemy odrzucić. wjot=0jot

Porównując te dwa problemy optymalizacji i pracując nad matematyką, okazuje się, że nie ma ścisłego związku między liczbą funkcji a liczbą wektorów pomocniczych. Może pójść w obie strony.

Warto pomyśleć o prostej sprawie. Wyobraź sobie dwuwymiarowy przypadek, w którym cechy negatywne i pozytywne są skupione odpowiednio wokół (-1, -1) i (1,1) i można je rozdzielić za pomocą hiperpłaszczyzny oddzielającej przekątną z 3 wektorami nośnymi. Teraz wyobraź sobie, że upuszczasz element osi y, więc twoje dane są teraz rzutowane na oś x. Jeśli dane są nadal możliwe do rozdzielenia, powiedzmy przy x = 0, prawdopodobnie pozostałyby tylko 2 wektory wspierające, po jednym z każdej strony, więc dodanie funkcji y zwiększyłoby liczbę wektorów wspierających. Jeśli jednak danych nie można już rozdzielić, otrzymasz co najmniej jeden wektor wsparcia dla każdego punktu, który znajduje się po niewłaściwej stronie x = 0, w którym to przypadku dodanie funkcji y zmniejszyłoby liczbę wektorów wsparcia.

Jeśli więc intuicja jest prawidłowa, jeśli pracujesz w bardzo wymiarowych przestrzeniach cech lub używasz jądra, które odwzorowuje się na przestrzenne przestrzenie cech, to twoje dane są bardziej podatne na rozdzielenie, więc dodanie elementu będzie miało tendencję po prostu dodać kolejny wektor wsparcia. Chociaż jeśli twoich danych nie można obecnie oddzielić, a dodasz funkcję, która znacznie poprawia separowalność, to bardziej prawdopodobne jest zmniejszenie liczby wektorów pomocniczych.

Marc Shivers
źródło