Dlaczego przekształcanie danych w wielowymiarową przestrzeń cech, w której klasy można rozdzielić liniowo, prowadzi do nadmiernego dopasowania?

10

Przeczytałem w mojej książce (statystyczna klasyfikacja wzorców według Webba i Wileya) w sekcji o maszynach SVM i liniowo nierozdzielnych danych:

W wielu praktycznych problemach w świecie rzeczywistym nie będzie liniowej granicy oddzielającej klasy, a problem poszukiwania optymalnej separującej hiperpłaszczyzny jest bez znaczenia. Nawet gdybyśmy użyli wyrafinowanych wektorów cech, , do przekształcenia danych w wielowymiarową przestrzeń cech, w której klasy można rozdzielić liniowo, doprowadziłoby to do nadmiernego dopasowania danych, a tym samym słabej zdolności do generalizacji .Φ(x)

Dlaczego przekształcanie danych w wielowymiarową przestrzeń cech, w której klasy można rozdzielić liniowo, prowadzi do nadmiernego dopasowania i słabej zdolności do generalizacji?

Gigili
źródło

Odpowiedzi:

8

@ffriend ma na ten temat dobry post, ale ogólnie rzecz biorąc, jeśli przekształcisz się w przestrzenną przestrzeń cech i trenujesz stamtąd, algorytm uczenia się jest „zmuszony” do uwzględnienia funkcji wyższej przestrzeni, nawet jeśli mogą nie mieć nic zrobić z oryginalnymi danymi i nie oferować żadnych predykcyjnych cech.

Oznacza to, że nie będziesz właściwie uogólniać zasady uczenia się podczas treningu.

Weźmy intuicyjny przykład: Załóżmy, że chcesz przewidzieć wagę na podstawie wzrostu. Masz wszystkie te dane, odpowiadające masom i wysokościom ludzi. Powiedzmy, że bardzo ogólnie są one zgodne z relacją liniową. Oznacza to, że możesz opisać wagę (W) i wzrost (H) jako:

W=mHb

, gdzie jest nachyleniem twojego równania liniowego, a jest przecięciem y lub w tym przypadku przecięciem W.bmb

Powiedzmy, że jesteś doświadczonym biologiem i wiesz, że związek jest liniowy. Twoje dane wyglądają jak wykres rozproszenia z tendencją wzrostową. Jeśli przechowujesz dane w dwuwymiarowej przestrzeni, dopasujesz do niej linię. To może nie trafić we wszystkie punkty, ale to w porządku - wiesz, że związek jest liniowy i i tak chcesz mieć dobre przybliżenie.

Powiedzmy teraz, że wziąłeś te dwuwymiarowe dane i przekształciłeś je w przestrzeń o wyższych wymiarach. Zamiast więc tylko dodajesz 5 dodatkowych wymiarów, , , , i .H 2 H 3 H 4 H 5 HH2H3H4H5H2+H7

Teraz idź i znajdź współczynniki wielomianu, aby dopasować te dane. Oznacza to, że chcesz znaleźć dla tego wielomianu, który „najlepiej pasuje” do danych:ci

W=c1H+c2H2+c3H3+c4H4+c5H5+c6H2+H7

Jeśli to zrobisz, jaki rodzaj linii dostaniesz? Dostałbyś taki, który wyglądałby jak skrajnie prawidłowa fabuła @ffriend. Przekroczyłeś dane, ponieważ „zmusiłeś” swój algorytm uczenia się do uwzględnienia wielomianów wyższego rzędu, które nie mają nic wspólnego z niczym. Biologicznie, waga zależy tylko liniowo od wzrostu. Nie zależy to od ani żadnych bzdur wyższego rzędu.H2+H7

Dlatego jeśli ślepo przekształcisz dane do wymiarów wyższego rzędu, ryzykujesz zbyt dużym niedopasowaniem, a nie uogólnieniem.

Spacey
źródło
6

Powiedzmy, że próbujemy znaleźć funkcję, która aproksymuje zbiór punktów 2D na równinie za pomocą regresji liniowej (co jest zasadniczo tym, co robi SVM). Na 3 zdjęciach poniżej czerwone krzyże to obserwacje (dane treningowe), a 3 niebieskie linie reprezentują równania o różnym stopniu wielomianu zastosowanym do regresji.

wprowadź opis zdjęcia tutaj

Pierwszy obraz jest generowany przez równanie liniowe. Jak widać, odbija punkty dość słabo. Nazywa się to niedopasowaniem , ponieważ algorytm uczenia się podaliśmy za mało „stopnia swobody” (wielomian zbyt małego stopnia). Drugi obraz jest znacznie lepszy - użyliśmy wielomianu drugiego stopnia i wygląda całkiem dobrze. Jeśli jednak zwiększymy „stopień swobody”, otrzymamy trzeci obraz. Niebieska linia przechodzi przez krzyże, ale czy uważasz, że ta linia naprawdę opisuje zależność? Nie wydaje mi się Tak, błąd uczenia zestawu treningowego (odległość między krzyżami a linią) jest bardzo mały, ale jeśli dodamy jeszcze jedną obserwację (powiedzmy, z rzeczywistych danych), najprawdopodobniej błąd będzie większy niż gdybyśmy użyli równania z drugiego wizerunek. Ten efekt nazywa się nadmiernym dopasowaniem- staramy się zbyt uważnie śledzić dane treningowe i mieć problemy. Używanie wielomianów jednej zmiennej jest prostym przykładem jądra - zamiast jednego wymiaru ( ) używamy kilku ( , , itd.). Widać, że przełożenie danych na przestrzeń wyższego wymiaru może pomóc pokonać niedostatek , ale może również prowadzić do nadmiernego dopasowania . Prawdziwym wyzwaniem jest znalezienie tego, co jest „w sam raz”. Kilka wskazówek do dalszych badań w tym temacie. Możesz wykryć nadmierne dopasowanie za pomocą procedury zwanej krzyżową weryfikacjąx x 2 x 3xxx2x3. Krótko mówiąc, podzieliłeś swoje dane, powiedzmy, na 10 części, weź 9 z nich na szkolenie i 1 na sprawdzenie. Jeśli błąd w zestawie walidacyjnym jest znacznie większy niż w zestawie pociągowym, oznacza to, że masz do czynienia z przełożeniem. Większość algorytmów uczenia maszynowego wykorzystuje pewne parametry (np. Parametry jądra w SVM), które pozwalają przezwyciężyć nadmierne dopasowanie. Jednym z popularnych słów kluczowych jest tutaj regularyzacja - modyfikacja algorytmu, która bezpośrednio wpływa na proces optymalizacji, dosłownie mówiąc: „nie należy ściśle śledzić danych treningowych”.

BTW, nie jestem pewien, czy DSP jest odpowiednią stroną do tego rodzaju pytań, prawdopodobnie będziesz zainteresowany odwiedzeniem CrossValidated .

przyjaciel
źródło
To był --stolen - zapożyczony z wykładów wideo Andrew Ng na temat uczenia maszynowego. Chyba że to ty Dr. Ng. W takim razie czy szukasz doktoranta do swojego laboratorium? (Wykłady można znaleźć na coursera.com dla tych, którzy są zainteresowani)
CyberMen
@CyberMen: został skradziony z images.google.com :) Ale tak, notacja jest bardzo podobna do tej Ng. I zdecydowanie sugerowałbym jego kurs (i inne artykuły) na wprowadzenie do uczenia maszynowego.
zaprzyjaźnij się
Myślę, że DSP jest właściwym miejscem dla tego rodzaju pytań, przynajmniej wśród innych stron SE.
Gigili,
2

Czytałeś dalej?

Pod koniec sekcji 6.3.10:

„Jednak często trzeba ustawić parametry jądra , a zły wybór może prowadzić do złej uogólnienia. Wybór najlepszego jądra dla danego problemu nie został rozwiązany, a dla poszczególnych problemów opracowano specjalne jądra, na przykład klasyfikację dokumentów „

co prowadzi nas do sekcji 6.3.3:

Dopuszczalne jądra muszą być możliwe do wyrażenia jako produkt wewnętrzny w przestrzeni cech, co oznacza, że ​​muszą spełniać warunek Mercer”

Jądro według własnego dość trudnego obszaru, możesz mieć duże dane, w których w różnych częściach należy zastosować różne parametry, takie jak wygładzanie, ale nie wiem dokładnie, kiedy. Dlatego coś takiego jest dość trudne do uogólnienia.

sigrlami
źródło
Czytam „4.2.5 Wspierające maszyny wektorowe”, jak powiedziałem, nie wiem o której części 6 mówisz. Ponieważ akapit po tym, o czym wspomniałem w pytaniu, nie ma nic na ten temat, pomyślałem, że lepiej go tutaj zapytam.
Gigili
Przepraszam, że pomieszałem to z rozpoznawaniem wzorców statystycznych również przez Webba, którego właśnie szukam i które mają te same rozdziały.
sigrlami,