Kontakt z nami
Kurs mistrzowski AI:

AI 101

Co to jest redukcja wymiarowości?

mm
Zaktualizowano on

Co to jest redukcja wymiarowości?

Redukcja wymiarowości to proces stosowany w celu zmniejszenia wymiarowości zbioru danych, przyjęcia wielu cech i przedstawienia ich jako mniejszej liczby cech. Na przykład redukcję wymiarowości można zastosować w celu zredukowania zbioru danych składającego się z dwudziestu obiektów do zaledwie kilku. Redukcja wymiarów jest powszechnie stosowana w uczenie się bez nadzoru zadania automatycznego tworzenia klas z wielu funkcji. Aby lepiej zrozumieć dlaczego i jak stosuje się redukcję wymiarowości, przyjrzymy się problematyce związanej z danymi wielowymiarowymi i najpopularniejszym metodom redukcji wymiarowości.

Więcej wymiarów prowadzi do nadmiernego dopasowania

Wymiarowość odnosi się do liczby obiektów/kolumn w zbiorze danych.

Często zakłada się, że w uczeniu maszynowym więcej funkcji jest lepszych, ponieważ tworzy to dokładniejszy model. Jednak więcej funkcji niekoniecznie przekłada się na lepszy model.

Cechy zbioru danych mogą się znacznie różnić pod względem użyteczności dla modelu, przy czym wiele cech ma niewielkie znaczenie. Ponadto im więcej cech zawiera zbiór danych, tym więcej próbek potrzeba, aby zapewnić, że różne kombinacje cech są dobrze reprezentowane w danych. Dlatego liczba próbek rośnie proporcjonalnie do liczby cech. Więcej próbek i więcej funkcji oznacza, że ​​model musi być bardziej złożony, a gdy modele stają się coraz bardziej złożone, stają się bardziej wrażliwe na nadmierne dopasowanie. Model zbyt dobrze uczy się wzorców z danych uczących i nie dokonuje uogólnień na dane spoza próbki.

Zmniejszenie wymiarowości zbioru danych ma kilka zalet. Jak wspomniano, prostsze modele są mniej podatne na nadmierne dopasowanie, ponieważ model musi przyjmować mniej założeń dotyczących wzajemnych powiązań funkcji. Ponadto mniejsza liczba wymiarów oznacza, że ​​do uczenia algorytmów potrzebna jest mniejsza moc obliczeniowa. Podobnie mniej miejsca jest potrzebne w przypadku zbioru danych o mniejszej wymiarowości. Zmniejszenie wymiarowości zbioru danych może również pozwolić na użycie algorytmów, które nie nadają się do zbiorów danych z wieloma funkcjami.

Typowe metody redukcji wymiarowości

Redukcja wymiarowości może odbywać się poprzez wybór cech lub inżynierię cech. Wybór funkcji polega na tym, że inżynier identyfikuje najbardziej istotne cechy zbioru danych inżynieria funkcji to proces tworzenia nowych funkcji poprzez łączenie lub przekształcanie innych funkcji.

Wyboru funkcji i inżynierii można dokonać programowo lub ręcznie. Podczas ręcznego wybierania i projektowania cech typowa jest wizualizacja danych w celu odkrycia korelacji między cechami i klasami. Przeprowadzenie redukcji wymiarowości w ten sposób może być dość czasochłonne i dlatego niektóre z najpopularniejszych sposobów redukcji wymiarowości obejmują użycie algorytmów dostępnych w bibliotekach takich jak Scikit-learn for Python. Te popularne algorytmy redukcji wymiarowości obejmują: analizę głównych składowych (PCA), rozkład wartości osobliwych (SVD) i liniową analizę dyskryminacyjną (LDA).

Algorytmy stosowane w redukcji wymiarowości w przypadku zadań uczenia się bez nadzoru to zazwyczaj PCA i SVD, natomiast algorytmy wykorzystywane do redukcji wymiarowości uczenia się pod nadzorem to zazwyczaj LDA i PCA. W przypadku modeli uczenia nadzorowanego nowo wygenerowane funkcje są po prostu wprowadzane do klasyfikatora uczenia maszynowego. Należy pamiętać, że opisane tutaj zastosowania to tylko ogólne przypadki użycia, a nie jedyne warunki, w których można zastosować te techniki. Opisane powyżej algorytmy redukcji wymiarów są po prostu metodami statystycznymi i są używane poza modelami uczenia maszynowego.

Analiza głównych składowych

Zdjęcie: Matryca ze zidentyfikowanymi głównymi składnikami

Analiza głównych składników (PCA) to metoda statystyczna, która analizuje cechy/cechy zbioru danych i podsumowuje cechy, które mają największy wpływ. Cechy zbioru danych są łączone w reprezentacje, które zachowują większość cech danych, ale są rozproszone w mniejszej liczbie wymiarów. Można to traktować jako „zgniatanie” danych z reprezentacji o wyższym wymiarze do reprezentacji zawierającej zaledwie kilka wymiarów.

Jako przykład sytuacji, w której PCA może być przydatna, rozważ różne sposoby opisu wina. Chociaż możliwe jest opisanie wina za pomocą wielu bardzo specyficznych cech, takich jak poziom CO2, poziom napowietrzenia itp., takie specyficzne cechy mogą być stosunkowo bezużyteczne przy próbie identyfikacji konkretnego rodzaju wina. Zamiast tego rozsądniej byłoby zidentyfikować typ na podstawie bardziej ogólnych cech, takich jak smak, kolor i wiek. PCA można wykorzystać do łączenia bardziej szczegółowych funkcji i tworzenia funkcji, które są bardziej ogólne, przydatne i rzadziej powodują nadmierne dopasowanie.

PCA przeprowadza się poprzez określenie, jak cechy wejściowe różnią się od średniej względem siebie, ustalenie, czy istnieją jakieś zależności pomiędzy cechami. W tym celu tworzona jest macierz kowariantna, ustanawiająca macierz złożoną z kowariancji względem możliwych par cech zbioru danych. Służy do określenia korelacji między zmiennymi, przy czym ujemna kowariancja wskazuje na odwrotną korelację, a dodatnia korelacja wskazuje na dodatnią korelację.

Główne (najbardziej wpływowe) składniki zbioru danych tworzone są poprzez tworzenie liniowych kombinacji zmiennych początkowych, co odbywa się za pomocą koncepcji algebry liniowej zwanych wartości własne i wektory własne. Kombinacje są tworzone w taki sposób, że główne składniki są ze sobą nieskorelowane. Większość informacji zawartych w zmiennych początkowych jest kompresowana do kilku pierwszych głównych składników, co oznacza, że ​​utworzone zostały nowe funkcje (główne składniki), które zawierają informacje z oryginalnego zbioru danych w mniejszej przestrzeni wymiarowej.

Rozkład według wartości osobliwych

Zdjęcie: Cmglee – Opracowanie własne, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=67853297

Rozkład według wartości osobliwych (SVD) is używane do upraszczania wartości w macierzy, redukując macierz do jej części składowych i ułatwiając obliczenia z tą macierzą. SVD można wykorzystać zarówno do macierzy wartości rzeczywistych, jak i złożonych, ale na potrzeby tego wyjaśnienia zbadamy, jak rozłożyć macierz wartości rzeczywistych.

Załóżmy, że mamy macierz złożoną z danych o wartości rzeczywistej, a naszym celem jest zmniejszenie liczby kolumn/cech w macierzy, podobnie jak w przypadku PCA. Podobnie jak PCA, SVD skompresuje wymiarowość macierzy, zachowując jednocześnie jak najwięcej zmienności macierzy. Jeśli chcemy operować na macierzy A, możemy przedstawić macierz A jako trzy inne macierze zwane U, D i V. Macierz A składa się z oryginalnych elementów x * y, natomiast macierz U składa się z elementów X * X (jest to macierz ortogonalna). Macierz V jest inną macierzą ortogonalną zawierającą y*y elementów. Macierz D zawiera elementy x*y i jest macierzą diagonalną.

Aby zdekomponować wartości macierzy A, musimy przekonwertować oryginalne wartości macierzy osobliwej na wartości diagonalne znalezione w nowej macierzy. Podczas pracy z macierzami ortogonalnymi ich właściwości nie zmieniają się, jeśli zostaną pomnożone przez inne liczby. Dlatego możemy przybliżyć macierz A, korzystając z tej właściwości. Kiedy mnożymy macierze ortogonalne przez transpozycję macierzy V, wynikiem jest macierz równoważna naszemu oryginalnemu A.

Kiedy macierz a jest rozkładana na macierze U, D i V, zawierają one dane znalezione w macierzy A. Jednak kolumny macierzy znajdujące się najbardziej na lewo będą zawierały większość danych. Możemy wziąć tylko te kilka pierwszych kolumn i otrzymać reprezentację macierzy A, która ma znacznie mniej wymiarów i większość danych w macierzy A.

Liniowa analiza dyskryminacyjna

 

Po lewej: macierz przed LDA, po prawej: oś po LDA, teraz można ją rozdzielić

Liniowa analiza dyskryminacyjna (LDA) to proces, który pobiera dane z wielowymiarowego wykresu i ponownie rzutuje to na wykres liniowy. Można to sobie wyobrazić, myśląc o dwuwymiarowym wykresie wypełnionym punktami danych należącymi do dwóch różnych klas. Załóżmy, że punkty są rozproszone tak, że nie można narysować linii, która wyraźnie oddzielałaby dwie różne klasy. Aby poradzić sobie z tą sytuacją, punkty znalezione na wykresie 2D można zredukować do wykresu 1D (linii). Na tej linii będą rozmieszczone wszystkie punkty danych i, miejmy nadzieję, można ją podzielić na dwie sekcje, które reprezentują najlepszą możliwą separację danych.

Podczas przeprowadzania LDA istnieją dwa główne cele. Pierwszym celem jest minimalizacja wariancji klas, natomiast drugim celem jest maksymalizacja odległości pomiędzy średnimi obu klas. Cele te osiąga się poprzez utworzenie nowej osi, która będzie istnieć na wykresie 2D. Nowo utworzona oś ma na celu oddzielenie obu klas w oparciu o wcześniej opisane cele. Po utworzeniu osi punkty znalezione na wykresie 2D są umieszczane wzdłuż osi.

Aby przenieść oryginalne punkty do nowej pozycji wzdłuż nowej osi, wymagane są trzy kroki. W pierwszym kroku do obliczenia rozdzielności klas wykorzystywana jest średnia odległości pomiędzy poszczególnymi klasami (wariancja międzyklasowa). W drugim etapie obliczana jest wariancja w obrębie różnych klas, poprzez określenie odległości pomiędzy próbą a średnią dla danej klasy. W ostatnim kroku tworzona jest przestrzeń niskowymiarowa, która maksymalizuje wariancję między klasami.

Technika LDA osiąga najlepsze wyniki, gdy średnie dla klas docelowych są daleko od siebie oddalone. LDA nie może skutecznie oddzielić klas za pomocą osi liniowej, jeśli średnie rozkładów nakładają się.

 

Bloger i programista specjalizujący się w Nauczanie maszynowe i głęboki Learning tematy. Daniel ma nadzieję pomóc innym wykorzystać moc sztucznej inteligencji dla dobra społecznego.