Problem: obraz z przestrzeni, której nie widzimy
Dane rzeczywiste — wstawki słowne, profily wyrażania genów, aktywacje ukrytego warstwy sieci neuronowych — często żyją w setkach lub tysiącach wymiarów. Ludzie nie mogą na to patrzeć bezpośrednio. t-Distributed Stochastic Neighbour Embedding (t-SNE), wprowadzone przez Laurensa van der Maatena i Geoffrey Hinton w 2008 roku, znajduje układ punktów w 2D lub 3D, którego struktura sąsiedztwa odbija się jak najbardziej możliwe oryginalną strukturą wielowymiarową — punkty, które były bliskie w oryginalnej przestrzeni, kończą się blisko na obrazie, a punkty, które były odległe, kończą się daleko, co najmniej lokalnie.
Krok pierwszy: zamiana odległości na rozkład prawdopodobieństwa
t-SNE najpierw konwertuje wysokie wymiarowe odległości euklidesowe na rozkład prawdopodobieństwa nad parami: dla każdego punktu i, gęstwiną Gaussa centrowaną wokół i przypisuje warunkową prawdopodobieństwo p(j|i), że i wybierze j jako swoje sasiada, większe dla bliskich punktów i szybko spadające do blisko-niezerowego dla odległych. Te rozkłady są symetryzowane w pojedynczy wspólny rozkład pᵢⱼ nad wszystkimi parami we wprowadzonym przestrzeni.
podobieństwo wysokiego wymiaru (Gaussa): p(j|i) = exp(−||xi−xj||² / 2σi²) / Σ_k≠i exp(−||xi−xk||² / 2σi²) podobieństwo niskiego wymiaru (Student-t, 1 stopień swobody): q(i,j) = (1 + ||yi−yj||²)^−1 / Σ_k≠l (1 + ||yk−yl||²)^−1 Szerokość σᵢ gęstwiny Gaussa każdego punktu nie jest zawsze stała globalnie — jest dostosowywana indywidualnie tak, aby wynikowy rozkład miał ustalony perplexity, liscie odmianą dla
%effective number of sasiadów
%Punkty w gęstych regionach otrzymują szerszą gęstwinę Gaussa, a punkty w rzadszych regionach otrzymują szerszą, tak że każdy punkt końcowy rozważa porównywalny efektywny otoczenie niezależnie od gęstości lokalnej.
high-dim similarity (Gaussian): p(j|i) = exp(−||xi−xj||² / 2σi²) / Σ_k≠i exp(−||xi−xk||² / 2σi²) low-dim similarity (Student-t, 1 degree of freedom): q(i,j) = (1 + ||yi−yj||²)^−1 / Σ_k≠l (1 + ||yk−yl||²)^−1
Krok drugi: problem zastępowania i dlaczego ogony muszą być ciężkie
Jeśli podobnie jak w przypadku podobieństw niskowymiarowych użylibyśmy gęstości Gaussa, algorytm napotkałby problem zastępowania: w wysokowymiarowej przestrzeni ma miejsce dla punktu wiele scharakterystycznie oddalonych sąsiadów jednocześnie, ale 2-wymiarowa przestrzeń brakuje miejsca na taką ilość szybką, co zmusza wszystkie te średnio długie odległości do skompresować i zgromadzić się w pobliżu centrum każdego klastru. Rozwiązanie van der Maaten'a i Hintona polegało na nadaniu mapie niskowymiarowej rozkładu Studenta z jednym stopniem swobody (equivalent to a Cauchy distribution) zamiast gęstości Gaussa. Cięższe ogony pozwalają punktom, które są średnio niepodobne, na znaleźć się znacznie oddalonej od siebie na mapie bez dużej utraty prawdopodobieństwa, co pozwala na wykorzystanie miejsca i rozdzielenie klastrów od siebie, co prowadzi do jasno oddzielonych skupień, dla których znane są t-SNE diagramy.
Trzecia fazę: minimalizacja rozbieżności KL poprzez spadkową descent
Po zdefiniowaniu obu rozkładów, t-SNE szuka położenia punktów 2D y, które sprawiłyby, że rozkład niskodimensionalny QMATCHY rozkład wysokodimensionalny P jak najbardziej possible, pomiar Kullback-Leiblera i minimalizacja poprzez spadkową descent:
Koszt: C = KL(P || Q) = Σᵢ Σⱼ pᵢⱼ · log(pᵢⱼ / qᵢⱼ) Spadek (termu przyciągającego przyciąga podobne punkty razem, termu odpytającego oddziela niepodobne punkty od siebie): ∂C/∂yi = 4 Σⱼ (pᵢⱼ − qᵢⱼ)(yi − yj)(1 + ||yi−yj||²)⁻¹ Ponieważ rozbieżność KL jest nieprzemienne, kary za oddzielenie rzeczywiście bliskich punktów na odległe są znacznie silniejsze niż odwrotność — dlatego optymalizacja priorytetowo koncentruje się na zachowaniu struktury lokalnej z wykorzystaniem globalnych odległości, co jest dokładnie tym kompromisem, który sprawia, że t-SNE jest doskonałym narzędziem do odkrywania grup, ale niezawodnym dla czytania dokładnych odległości między nimi.
Cost: C = KL(P || Q) = Σᵢ Σⱼ pᵢⱼ · log(pᵢⱼ / qᵢⱼ) Gradient (attractive term pulls similar points together, repulsive term pushes dissimilar points apart): ∂C/∂yi = 4 Σⱼ (pᵢⱼ − qᵢⱼ)(yi − yj)(1 + ||yi−yj||²)⁻¹
Praktyczne ustawienia i różnice między t-SNE a PCA
Perplexość (zazwyczaj 5-50) oraz szybkość nauki są dwiema ustawieniami, które mają najważniejsze znaczenie, a obie zmieniają wygenerowane obrazy znacząco — standardowym podejściem jest uruchamianie t-SNE na kilku różnych poziomach perplexości przed podjęciem jakichkolwiek wniosków. W przeciwieństwie do PCA, które znajduje pojedyncze globalne liniowe projekcje, które maksymalizują zachowaną wariancję i są deterministycznymi i odwracalnymi, t-SNE jest nieliniowy, stochastyczny (różne początkowe losowe inicjalizacje dają różne układy), a nie konvexe, więc może się zatrzymać w różnych lokalnych minimum na różnych uruchomieniach — to narzędzie do odkrywania struktury, a nie ogólnodostępna kroczmarna metoda redukcji wymiarowości do dalszej modelizacji.
Często zadawane pytania
Jak rzeczywiście kontroluje parametr perplexity?
Perplexity to lisczba glładka proxy dla liczby efectywnych sąsiadów najbliższego dla każdego punktu, które rozważa podczas obliczania swojej rozkładu podobieństw w przestrzeni wielowymiarowej. Niski perplexity (około 5) skupia się na bardzo lokalnej strukturze i może rozbijać rzeczywiste klastry na wiele małych części; wysoki perplexity (50 lub więcej) rozważa więcej sąsiadów i taktuje do utworzenia szerszej struktury, zanikając szczegółowe lokale. Wartości typowe zaznaczają się od około 5 do 50, a wyniki powinny być sprawdzane dla kilku ustawień.
Dlaczego t-SNE używa rozkładu Studenta w przestrzeni niskowymiarowej, ale Gaussowskiego w wysokowymiarowej?
Ta asymetrię rozwiązuje problem 'zakłóceń': w wysokiej wymiarowości jest dużo miejsca dla wielu punktów, które mogą być tylko słabo oddalone od centralnego punktu, podczas gdy 2D ma znacznie mniej miejsca. Tak więc prawidłowe zachowanie wszystkich tych średnich odległości by mogło zacząć wszystko zbierać w jedno. Ciężkie ogony rozkładu Studenta pozwalają na to, że punkty wejściowe o średniej różnorodności kończą się znacznie oddalone na mapie 2D, co pozwala na utworzenie miejsca przy każdym klastrze i zapobiega skupieniu w jednym gruczołku.
Mogą Państwo zaufać odległości między klastrami na wykresie t-SNE?
Nie można tego rzeczywiście zaufać. t-SNE jest jasno optymalizowane do zachowania lokalnej struktury sąsiedztwa — które punkty są blisko których innych — a nie globalnych odległości ani względnych rozmiarów klastrów. Dwa klastry, które wydają się daleko oddalone, mogą być tak samo różnorodne jak dwa, które wydają się blisko. Rozmiary klastrów na wykresie niekoniecznie odzwierciedlają rzeczywistą gęstość danych. Użyj t-SNE do odkrycia, które punkty grupują się razem, a nie do czytania kwantyfikowanych odległości między grupami.
Wypróbuj na żywo
Wszystko powyżej działa bezpośrednio w Twojej przeglądarce — otwórz t-SNE Visualiser i zmieniaj parametry podczas działania. Nic nie jest instalowane ani przesyłane na serwer, cały model działa w jednej karcie.
▶ Otwórz symulację t-SNE Visualiser