Przekleństwo wielowymiarowości i techniki redukcji wymiarów

– Cześć Otylka! Co dzisiaj robiłaś? – zapytałem młodszą córeczkę po powrocie do domu.

– Bla bla bla – odpowiedziała jak zawsze z uśmiechem, gdy wracam z pracy.

– A ja dzisiaj rozpoznawałem temat redukowania wymiarów.

– A co to ta refuksja? –  zapytała Jagoda wybiegając ze swojego pokoju

– Hmm… to tak jakbyś miała taki ogromny tort. Nie ma możliwości, abyś zjadła go naraz w całości. Mogłabyś użyć wówczas redukcji wymiarów. Są to takie urządzenia, dzięki którym można zmniejszyć ten tort do takiego malutkiego rozmiaru. Będziesz mogła wtedy spróbować go całego i mieć pewność, że posmakujesz większości ukrytych w nim smaków. Jednak robiąc to niektóre smaki lub jego części nadal możesz niestety pominąć. Jednak sama decydujesz o tym jak mocno chcesz zmniejszyć jego rozmiar.

– Najważniejsze aby czekolada się na nim nie zmniejszyła – zakończyła naszą rozmowę Jagódka.

Przekleństwo wielowymiarowości

Określenia „przekleństwo wymiarowości” po raz pierwszy użyto w opracowaniu wydanym w 1961 roku przez Richarda Ernesta Bellmana „Adaptive control processes” (wiki).

Przekleństwo wymiarowości dotyczy problemu wykładniczego wzrostu danych w problemach związanych z uczeniem maszynowym. Oznacza to, że im większy wymiar tym znacznie więcej danych potrzebujemy. Dodatkowo oprócz potrzeby coraz większej ilości danych, to wykładniczo rośnie liczba możliwych wariantów, co znacznie zwiększa złożoność obliczeniową naszych algorytmów.

Co to jest redukcja wymiarów?

Redukcja wymiaru jest do proces przekształcający pierwotny zbiór danych w zbiór o mniejszej liczbie wymiarów zachowując przy tym informacje, które te dane ze sobą niosą.

Techniki te są często wykorzystywane podczas rozwiązywania problemów z dziedziny data science w celu uzyskania ważnych zmiennych.

Możemy sobie z tym poradzić dzięki redukcji wymiarów albo redukcji cech. W tym wpisie wyjaśnimy ten pierwszy element.

Czym jest wielowymiarowość?

Spróbujmy sobie wyobrazić czym jest wielowymiarowość. Pomyślmy sobie, że mamy przed sobą zbiór danych. Niech to będą wszystkie pokemony! Aby było prościej przyjrzyjmy się tylko dwóm rodzajom pokemonów: ognistym(fire) i ziemnym (ground).

Jednym z wymiarów niech będzie moc. Wówczas możemy narysować nasz zbiór.

Możemy dodać następnie kolejny wymiar. Niech to będzie obrona.

Dodajmy teraz kolejną cechę – szybkość.

Z matematycznego punktu widzenia możemy robić to dalej, czyli dołożyć jeszcze kilka kolejnych cech. Gdybyśmy mieli więcej charakterystyk wówczas można byłoby dodać 20 czy nawet 100 z nich opisujących nasz zbiór.

Natomiast bardzo ciężko będzie to nam narysować. Gdybyśmy chcieli zwizualizować jak daleko od siebie są pokemony ogniste od pokemonów ziemnych należałoby wykorzystać metody redukcji wymiaru.

Teraz odwróćmy powyższy proces. Zamiast dokładać kolejny wymiar zmniejszmy liczbę wymiarów (redukcja) z trzech do dwóch.

Jedną z podstawowych metod jest rzutowanie punktów na płaszczyznę. Poniżej przykład jak wygląda zrzutowanie na płaszczyznę OX, OY oraz OZ.

Jak widać rzutowanie na konkretne płaszczyzny powoduje, że tracimy trochę cennej informacji.

Jednak płaszczyzna, na którą rzutujemy nie musi być żadną z osi tylko można ją osadzić dowolnie w naszej przestrzeni.

Różne metody korzystają z innych sposobów zmniejszania wymiarowości, natomiast główna idea jest taka sama – jak najlepsze odzwierciedlenie położenia punktów i zależności między nimi.

Warto pamiętać o najważniejszym fakcie – redukując wymiary musimy się zgodzić na utratę jakiejś części informacji.

Jakie są główne zastosowania redukcji wymiarów?

1) wizualizacja i zrozumienie danych

Żyjemy w trójwymiarowej rzeczywistości. Nasz mózg bardzo dobrze się w niej odnajduje. Natomiast wszystko, co wykracza ponad trzy wymiary najczęściej bardzo ciężko nam sobie wyobrazić. Korzystając z metod redukcji wymiarów możemy „spłaszczyć” liczbę wymiarów naszego zbioru i narysować go w przestrzeni 2D lub 3D, które potrafimy przedstawić na wykresie. Warto jednak podkreślić, że nie zawsze będziemy w stanie zinterpretować co opisują zredukowane wymiary.

Np. możemy zwizualizować embedingi (jest to reprezentacja słów w przestrzeni) poprzez redukcję wymiarów i zobaczyć czy dobrze zostały przygotowane.

2) kompresja danych i przyśpieszenie obliczeń

Również w dzisiejszych czasach mamy tak wiele danych, że ciężko byłoby wszystkie je zbierać na raz. Można wykorzystać redukcję wymiarów do kompresji danych, co pozwoli oszczędzić miejsce ale też przyśpieszy algorytmy uczenia. 

3) wykrywanie anomalii

Dużym zagadnieniem jest wykrywanie anomalii. Natomiast ciekawym zastosowaniem jest zredukowanie wymiarów, aby w prosty sposób wychwytywać różnego rodzaju anomalie występujące w naszym zbiorze danych.

4) pomaga uniknąć „ przekleństwa wielowymiarowości”

Gdy mamy mało obserwacji a dużo wymiarów może to powodować, że nasz model będze za mocno dopasowywał się do danych, np. może się okazać, że mamy 1.000 obserwacji oraz 2.000 wymiarów. Możemy wówczas zredukować wymiary i spróbować podejść do problemu ponownie.

Najczęściej stosowane metody

a) metody w oparciu o szukanie czynników pomiędzy wymiarami (components / factor base):

  • Principal Component Analysis (PCA)
  • Independent Component Analysis (ICA)
  • Factor Analysis

b) metody w oparciu o rzutowanie jednego wymiaru na inny (Projection base):

  • t-SNE
  • ISOMAP
  • UMAP
  • Autoenkodery

Podsumowanie

Mam nadzieję, że redukcja wymiarów jest już dla Was jaśniejsza. W kolejnych wpisach postaram zaprezentować najlepiej jak rozumiem niektóre z opisanych metod.

Pozdrawiam,

.

3 Comments on “Przekleństwo wielowymiarowości i techniki redukcji wymiarów”

  1. Dzięki Mirek! Twój artykuł pomógł mi lepiej zrozumieć sens i istotę redukcji wymiarów której się obecnie uczę. Szczególnie spodobało mi się porównanie danych do pokemonów. 😉

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *