Jak i dlaczego działa normalizacja i skalowanie funkcji?

61

Widzę, że wiele algorytmów uczenia maszynowego działa lepiej przy średnim anulowaniu i wyrównaniu kowariancji. Na przykład sieci neuronowe mają tendencję do szybszego konwergencji, a K-Means zazwyczaj zapewnia lepszą klastrowanie z wstępnie przetworzonymi funkcjami. Nie widzę intuicji za tymi krokami wstępnego przetwarzania, które prowadzą do poprawy wydajności. Czy ktoś może mi to wyjaśnić?

erogol
źródło

Odpowiedzi:

25

Jest to po prostu przypadek uzyskania wszystkich danych w tej samej skali: jeśli skale dla różnych funkcji są bardzo różne, może to mieć wpływ na twoją zdolność uczenia się (w zależności od metod, których używasz do tego) . Zapewnienie znormalizowanych wartości funkcji domyślnie waży wszystkie cechy jednakowo w ich reprezentacji.

Ben Allison
źródło
3
co rozumiesz przez „może to mieć wpływ na twoją zdolność uczenia się”, może mógłbyś to rozwinąć?
Charlie Parker,
14
To nie jest naprawdę dobre wytłumaczenie. Aby osiągnąć prawdziwe zrozumienie, musisz iść przynajmniej poziom głębszego wyjaśnienia.
Zelphir Kaltstahl
Potrzebuję odniesienia do mojej pracy magisterskiej
x-rw
40

To prawda, że ​​przetwarzanie wstępne w uczeniu maszynowym jest nieco czarną sztuką. W dokumentach nie jest zapisane, dlaczego kilka etapów wstępnego przetwarzania jest niezbędnych, aby działało. Nie jestem również pewien, czy jest to rozumiane w każdym przypadku. Aby skomplikować sprawę, zależy to w dużej mierze od metody, której używasz, a także od domeny problemu.

Niektóre metody, np. Niezmienne transformacji afinicznej. Jeśli masz sieć neuronową i po prostu zastosujesz transformację afiniczną do swoich danych, sieć nie straci ani nie zyska w teorii. W praktyce jednak sieć neuronowa działa najlepiej, jeśli wejścia są wyśrodkowane i białe. Oznacza to, że ich kowariancja jest przekątna, a średnia to wektor zerowy. Dlaczego to poprawia rzeczy? Dzieje się tak tylko dlatego, że optymalizacja sieci neuronowej działa z wdziękiem, ponieważ ukryte funkcje aktywacyjne nie nasycają się tak szybko, a zatem nie dają prawie zerowych gradientów na początku nauki.

Inne metody, np. K-Means, mogą dać ci zupełnie różne rozwiązania w zależności od przetwarzania wstępnego. Jest tak, ponieważ transformacja afiniczna implikuje zmianę w przestrzeni metrycznej: odległość euklidesowa między dwiema próbkami będzie inna po tej transformacji.

Na koniec dnia chcesz zrozumieć, co robisz z danymi. Np. Wybielanie w wizji komputerowej i normalizacja próbek to coś, co mózg ludzki robi również w swoim strumieniu widzenia.

bayerj
źródło
17

Kilka pomysłów, odniesień i wykresów wyjaśniających, dlaczego normalizacja danych wejściowych może być użyteczna dla ANN i k-średnich:

K oznacza :

Grupowanie w kształcie litery K jest „izotropowe” we wszystkich kierunkach przestrzeni, a zatem ma tendencję do tworzenia mniej lub bardziej okrągłych (a nie wydłużonych) gromad. W tej sytuacji pozostawienie nierówności nierównych jest równoznaczne z przypisaniem większej wagi zmiennym o mniejszej wariancji.

Przykład w Matlabie:

X = [randn(100,2)+ones(100,2);...
     randn(100,2)-ones(100,2)];

% Introduce denormalization
% X(:, 2) = X(:, 2) * 1000 + 500;

opts = statset('Display','final');

[idx,ctrs] = kmeans(X,2,...
                    'Distance','city',...
                    'Replicates',5,...
                    'Options',opts);

plot(X(idx==1,1),X(idx==1,2),'r.','MarkerSize',12)
hold on
plot(X(idx==2,1),X(idx==2,2),'b.','MarkerSize',12)
plot(ctrs(:,1),ctrs(:,2),'kx',...
     'MarkerSize',12,'LineWidth',2)
plot(ctrs(:,1),ctrs(:,2),'ko',...
     'MarkerSize',12,'LineWidth',2)
legend('Cluster 1','Cluster 2','Centroids',...
       'Location','NW')
title('K-means with normalization')

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

(FYI: Jak mogę wykryć, czy mój zestaw danych jest klastrowany czy nieklastrowany (tj. Tworzy jeden klaster )

Klaster rozproszony :

Analiza porównawcza pokazuje, że wyniki rozproszonego grupowania zależą od rodzaju procedury normalizacyjnej.

Sztuczna sieć neuronowa (wejścia) :

Jeśli zmienne wejściowe są łączone liniowo, jak w MLP, rzadko jest absolutnie konieczna standaryzacja danych wejściowych, przynajmniej teoretycznie. Powodem jest to, że dowolne przeskalowanie wektora wejściowego można skutecznie cofnąć, zmieniając odpowiednie wagi i odchylenia, pozostawiając ci dokładnie takie same wyniki jak wcześniej. Istnieje jednak wiele praktycznych powodów, dla których ujednolicenie danych wejściowych może przyspieszyć trening i zmniejszyć ryzyko utknięcia w lokalnych optymach. Ponadto rozkład masy i oszacowanie bayesowskie można wykonać wygodniej dzięki znormalizowanym wejściom.

Sztuczna sieć neuronowa (wejścia / wyjścia)

Czy powinieneś zrobić coś z tych danych? Odpowiedź brzmi: to zależy.

Standaryzacja zmiennych wejściowych lub docelowych ma tendencję do usprawnienia procesu szkolenia poprzez poprawę warunku liczbowego (patrz ftp://ftp.sas.com/pub/neural/illcond/illcond.html ) problemu optymalizacji i zapewnienie różnych domyślnych wartości zaangażowane w inicjalizację i zakończenie są odpowiednie. Standaryzacja celów może również wpływać na funkcję celu.

Do standaryzacji spraw należy podchodzić ostrożnie, ponieważ odrzuca ona informacje. Jeśli informacje te są nieistotne, standaryzacja przypadków może być bardzo pomocna. Jeśli te informacje są ważne, standaryzacja przypadków może być katastrofalna.


Co ciekawe, zmiana jednostek miary może nawet doprowadzić do powstania zupełnie innej struktury klastrowania: Kaufman, Leonard i Peter J. Rousseeuw .. „Znajdowanie grup w danych: wprowadzenie do analizy skupień”. (2005).

W niektórych zastosowaniach zmiana jednostek miary może nawet doprowadzić do uzyskania zupełnie innej struktury klastrowania. Na przykład wiek (w latach) i wzrost (w centymetrach) czterech wyimaginowanych osób podano w tabeli 3 i wykreślono na rycinie 3. Wygląda na to, że {A, B) i {C, 0) są dwoma dobrze oddzielonymi grupami . Z drugiej strony, gdy wysokość wyrażona jest w stopach, otrzymuje się Tabelę 4 i Rycinę 4, gdzie oczywistymi skupieniami są teraz {A, C} i {B, D}. Ta partycja jest zupełnie inna niż pierwsza, ponieważ każdy temat otrzymał innego towarzysza. (Rycina 4 zostałaby spłaszczona nawet bardziej, gdyby wiek mierzono w dniach).

Aby uniknąć tej zależności od wyboru jednostek miary, istnieje możliwość standaryzacji danych. Konwertuje to oryginalne pomiary na zmienne bezjednostkowe.

wprowadź opis zdjęcia tutaj wprowadź opis zdjęcia tutaj

Kaufman i in. kontynuuje kilka interesujących uwag (strona 11):

Z filozoficznego punktu widzenia normalizacja tak naprawdę nie rozwiązuje problemu. Rzeczywiście, wybór jednostek miary powoduje powstanie względnych wag zmiennych. Wyrażenie zmiennej w mniejszych jednostkach doprowadzi do większego zakresu dla tej zmiennej, co będzie miało duży wpływ na wynikową strukturę. Z drugiej strony, poprzez ujednolicenie jednej próby nadania wszystkim zmiennym jednakowej wagi, w nadziei na osiągnięcie obiektywności. Jako taki może być stosowany przez praktyka, który nie posiada wcześniejszej wiedzy. Jednak może się zdarzyć, że niektóre zmienne są z natury ważniejsze niż inne w konkretnym zastosowaniu, a następnie przyporządkowanie wag powinno opierać się na wiedzy przedmiotowej (patrz np. Abrahamowicz, 1985). Z drugiej strony, podjęto próby opracowania technik klastrowania, które są niezależne od skali zmiennych (Friedman i Rubin, 1967). Propozycja Hardy'ego i Rassona (1982) polega na poszukiwaniu partycji, która minimalizuje całkowitą objętość wypukłych kadłubów klastrów. Zasadniczo taka metoda jest niezmienna w odniesieniu do transformacji liniowych danych, ale niestety nie istnieje algorytm do jej realizacji (z wyjątkiem aproksymacji ograniczonej do dwóch wymiarów). Dlatego dylemat standaryzacji wydaje się obecnie nieunikniony, a programy opisane w tej książce pozostawiają wybór użytkownikowi. Propozycja Hardy'ego i Rassona (1982) polega na poszukiwaniu partycji, która minimalizuje całkowitą objętość wypukłych kadłubów klastrów. Zasadniczo taka metoda jest niezmienna w odniesieniu do transformacji liniowych danych, ale niestety nie istnieje algorytm do jej realizacji (z wyjątkiem aproksymacji ograniczonej do dwóch wymiarów). Dlatego dylemat standaryzacji wydaje się obecnie nieunikniony, a programy opisane w tej książce pozostawiają wybór użytkownikowi. Propozycja Hardy'ego i Rassona (1982) polega na poszukiwaniu partycji, która minimalizuje całkowitą objętość wypukłych kadłubów klastrów. Zasadniczo taka metoda jest niezmienna w odniesieniu do transformacji liniowych danych, ale niestety nie istnieje algorytm do jej realizacji (z wyjątkiem aproksymacji ograniczonej do dwóch wymiarów). Dlatego dylemat standaryzacji wydaje się obecnie nieunikniony, a programy opisane w tej książce pozostawiają wybór użytkownikowi.

Franck Dernoncourt
źródło
6

Dlaczego działa skalowanie funkcji? Mogę dać ci przykład (z Quora )

Pozwól, że odpowiem na to pytanie z ogólnej perspektywy ML, a nie tylko z sieci neuronowych. Podczas zbierania danych i wyodrębniania funkcji wiele razy dane są gromadzone w różnych skalach. Na przykład wiek pracowników w firmie może wynosić od 21 do 70 lat, wielkość domu, w którym mieszkają, wynosi 500-5000 stóp kwadratowych, a ich pensje mogą wynosić od 80000. W tej sytuacji, jeśli używasz prostego euklidesowego metryka, funkcja wieku nie będzie odgrywać żadnej roli, ponieważ jest kilka rzędów mniejsza niż inne funkcje. Może jednak zawierać ważne informacje, które mogą być przydatne w zadaniu. Tutaj możesz chcieć normalizować funkcje niezależnie do tej samej skali, powiedzmy [0,1], więc mają one równy udział podczas obliczania odległości.30000

Vijay PR
źródło
4
Jeśli cytujesz post z Quory, naprawdę musisz link do źródła.
Matthew Drury
5

Istnieją dwa oddzielne problemy:

a) nauczenie się właściwej funkcji, np. k-średnich: skala wejściowa zasadniczo określa podobieństwo, więc znalezione klastry zależą od skalowania. regularyzacja - np. regularyzacja wag l2 - zakładasz, że każda waga powinna być „równie mała” - jeśli twoje dane nie są skalowane „odpowiednio”, nie będzie tak

b) optymalizacja, a mianowicie opadanie gradientu (np. większość sieci neuronowych). W przypadku spadku gradientu musisz wybrać współczynnik uczenia się ... ale dobry wskaźnik uczenia się (przynajmniej na 1. ukrytej warstwie) zależy od skalowania danych wejściowych: małe [odpowiednie] dane wejściowe zwykle wymagają większych obciążeń, więc chcesz uzyskać większą naukę szybkość dla tych ciężarów (aby dostać się tam szybciej) i vv dla dużych nakładów ... ponieważ chcesz użyć tylko jednego tempa uczenia się, przeskalowujesz swoje nakłady. (a wybielanie, tj. dekorelacja, jest również ważne z tego samego powodu)

seanv507
źródło
1

Ten artykuł mówi tylko o środkach k, ale dość dobrze wyjaśnia i udowadnia konieczność wstępnego przetwarzania danych.

Standaryzacja jest centralnym krokiem przetwarzania wstępnego w eksploracji danych w celu standaryzacji wartości cech lub atrybutów z różnych zakresów dynamicznych do określonego zakresu. W tym artykule przeanalizowaliśmy wydajność trzech metod standaryzacji na konwencjonalnym algorytmie K-średnich. Porównując wyniki dotyczące zestawów danych o chorobach zakaźnych, stwierdzono, że wynik uzyskany metodą standaryzacji z-score jest bardziej skuteczny i wydajny niż metody standaryzacji skalowania minimalnego i dziesiętnego.

.

... jeśli istnieją pewne cechy o dużym rozmiarze lub dużej zmienności, tego rodzaju funkcje będą silnie wpływać na wynik grupowania. W takim przypadku standaryzacja danych byłaby ważnym zadaniem wstępnego przetwarzania w celu skalowania lub kontrolowania zmienności zestawów danych.

.

... cechy muszą być bezwymiarowe, ponieważ wartości liczbowe zakresów cech wymiarowych zależą od jednostek miar, a zatem wybór jednostek miar może znacząco zmienić wyniki grupowania. Dlatego nie należy stosować miar odległości, takich jak odległość euklidesowa, bez normalizacji zbiorów danych

Źródło: http://maxwellsci.com/print/rjaset/v6-3299-3303.pdf

Lew
źródło
1

Przetwarzanie wstępne często działa, ponieważ usuwa funkcje danych niezwiązane z problemem klasyfikacji, który próbujesz rozwiązać. Pomyśl na przykład o klasyfikacji danych dźwiękowych z różnych głośników. Wahania głośności (amplitudy) mogą być nieistotne, podczas gdy spektrum częstotliwości jest naprawdę istotnym aspektem. Tak więc w tym przypadku normalizacja amplitudy będzie naprawdę pomocna dla większości algorytmów ML, ponieważ usuwa aspekt danych, który jest nieistotny i spowodowałby, że sieć neuronowa nie pasowałaby do fałszywych wzorców.

Nicolas Schuck
źródło
1

Myślę, że dzieje się tak po prostu, aby funkcja o większej wartości nie przesłaniała efektów funkcji o mniejszej wartości podczas uczenia się klasyfikatora. Staje się to szczególnie ważne, jeśli funkcja o mniejszych wartościach faktycznie przyczynia się do separacji klas. Klasyfikatorzy, tacy jak regresja logistyczna, mieliby trudności z poznaniem granicy decyzji, na przykład, jeśli istnieje ona na poziomie mikro cechy, a mamy inne cechy rzędu milionów . Pomaga również algorytmowi w lepszej konwergencji. Dlatego nie ryzykujemy, kodując je w naszych algorytmach. Klasyfikatorowi znacznie łatwiej jest poznać wkład (wagi) funkcji w ten sposób. Dotyczy to również K, gdy stosuje się normy euklidesowe (zamieszanie z powodu skali). Niektóre algorytmy mogą również działać bez normalizacji.

Vaibhav Arora
źródło