Próbuję przewidzieć wynik złożonego układu wykorzystującego sieci neuronowe (ANN). Wartości wyników (zależne) wynoszą od 0 do 10 000. Różne zmienne wejściowe mają różne zakresy. Wszystkie zmienne mają z grubsza normalne rozkłady.
Rozważam różne opcje skalowania danych przed treningiem. Jedną z opcji jest skalowanie wejściowych (niezależnych) i wyjściowych (zależnych) zmiennych do [0, 1] o obliczenie skumulowanej funkcji rozkładu przy użyciu niezależnie wartości średniej i odchylenia standardowego każdej zmiennej. Problem z tą metodą polega na tym, że jeśli użyję funkcji aktywacji sigmoidalnej na wyjściu, najprawdopodobniej przegapię ekstremalne dane, szczególnie te niewidoczne w zestawie treningowym
Inną opcją jest użycie wyniku Z. W takim przypadku nie mam ekstremalnego problemu z danymi; jestem jednak ograniczony do liniowej funkcji aktywacji na wyjściu.
Jakie są inne akceptowane techniki normalizacyjne, które są używane z ANN? Próbowałem poszukać recenzji na ten temat, ale nie znalazłem nic przydatnego.
źródło
Odpowiedzi:
Standardowym podejściem jest skalowanie danych wejściowych tak, aby miały średnią 0 i wariancję 1. Bardzo pomaga również dekorelacja liniowa / wybielanie / pca.
Jeśli interesują Cię sztuczki w handlu, mogę polecić wydajny papier Lepropa.
źródło
Normalizacja 1- min-maks. Zachowuje pierwotny rozkład wyników z wyjątkiem współczynnika skalowania i przekształca wszystkie wyniki we wspólny zakres [0, 1]. Jednak ta metoda nie jest niezawodna (tj. Metoda jest bardzo wrażliwa na wartości odstające).
2- Standaryzacja (normalizacja Z-score) Najczęściej stosowana technika, która jest obliczana na podstawie średniej arytmetycznej i odchylenia standardowego danych. Jednak zarówno średnia, jak i odchylenie standardowe są wrażliwe na wartości odstające, a ta technika nie gwarantuje wspólnego zakresu liczbowego dla znormalizowanych wyników. Ponadto, jeśli wyniki wejściowe nie są rozkładem Gaussa, technika ta nie zachowuje rozkładu wejściowego na wyjściu.
3- Mediana i MAD: Mediana i mediana bezwzględnego odchylenia (MAD) są niewrażliwe na wartości odstające i punkty w skrajnych ogonach rozkładu. dlatego jest solidny. Jednak ta technika nie zachowuje rozkładu wejściowego i nie przekształca wyników we wspólny zakres liczbowy.
4- estry tanh: estymatory tanh wprowadzone przez Hampela i in. są solidne i wysoce wydajne. Normalizację podaje
gdzie μGH i σGH są, odpowiednio, oszacowaniami średniej i odchylenia standardowego rzeczywistego rozkładu wyników, podanymi przez estymatory Hampela.
Dlatego polecam estymatory tanh.
odniesienie https://www.cs.ccu.edu.tw/~wylin/BA/Fusion_of_Biometrics_II.ppt
źródło
Podałem podobną odpowiedź tutaj Kiedy przeprowadzając regresję wielokrotną, powinieneś wycentrować zmienne predykcyjne i kiedy je ujednolicić? ale pomyślał, że to wystarczająco różny kontekst, by znaleźć odpowiedź.
Istnieje świetny zasób usenet http://www.faqs.org/faqs/ai-faq/neural-nets/part2/section-16.html
W prosty sposób podaje niektóre kwestie i rozważania, kiedy chce się znormalizować / znormalizować / przeskalować dane. Ponieważ traktuje to zagadnienie z perspektywy uczenia maszynowego, a ponieważ twoje pytanie dotyczy ML, może to mieć pewne znaczenie.
źródło
Mógłbyś
źródło
Jeśli pracujesz
python
,sklearn
ma metodę wykonania tego przy użyciu różnych technik w swoimpreprocessing
module (plus ciekawą funkcję potoku, z przykładem w swoich dokumentach):źródło
Cóż, [0,1] jest standardowym podejściem. W przypadku sieci neuronowych działa najlepiej w zakresie 0-1. Skalowanie od Min-Max (lub Normalizacja) to podejście, którego należy przestrzegać.
Teraz na wartości odstające, w większości scenariuszy musimy je przyciąć, ponieważ wartości odstające nie są powszechne, nie chcesz, aby wartości odstające wpływały na twój model (chyba że wykrywanie anomalii jest problemem, który rozwiązujesz). Możesz przyciąć go w oparciu o zasadę empiryczną 68-95-99.7 lub wykonać wykres pudełkowy, obserwować i odpowiednio go przyciąć.
Formuła MinMax -
(xi - min(x)) / (max(x) - min(x))
lub można użyćsklearn.preprocessing.MinMaxScaler
źródło
„Zaakceptowane” jest tym, co działa najlepiej dla Ciebie - wtedy je akceptujesz.
Z mojego doświadczenia wynika, że dopasowanie dystrybucji z rodziny Johnson do każdej z funkcji ciągłych działa dobrze, ponieważ rozkłady są bardzo elastyczne i mogą przekształcić większość funkcji unimodalnych w standardowe rozkłady normalne. Pomoże to również w przypadku funkcji multimodalnych, ale najważniejsze jest to, że generalnie nadaje on funkcje najbardziej pożądanej możliwej formie (standardowe dane rozpowszechniane przez Gaussa są idealne do pracy - są kompatybilne, a czasem optymalne dla większości dostępna metoda statystyczna / ML).
http://qualityamerica.com/LSS-Knowledge-Center/statystycznyinference/johnson_distribution.php
źródło