Data Mining. Module 12 - Microsoft Neural Networks
1. Moduł 12. Sieci neuronowe firmy Microsoft ialgorytm regresji logistycznej firmy Microsoft Marcin Szeliga Trener & konsultant BETACOM S.A.
2. W tym module dowiemy się: Czym jest sieć neuronowa? Co łączy sieci neuronowe firmy Microsoft z zaimplementowanym w serwerze SQL algorytmem regresji logistycznej? Jaka jest struktura sieci neuronowych firmy Microsoft? Na czym polega normalizacja wartości atrybutów i ich mapowanie na neurony? W jaki sposób przebiega uczenie sieci neuronowych firmy Microsoft? Jakie są wady i zalety sieci neuronowych firmy Microsoft i algorytmu regresji logistycznej firmy Microsoft? Jak parametryzować sieci neuronowe firmy Microsoft? Jak tworzyć modele eksploracji danych używające sieci neuronowych firmy Microsoft i algorytmu regresji logistycznej firmy Microsoft? Jak przy użyciu sieci neuronowych firmy Microsoft i algorytmu regresji logistycznej firmy Microsoft oszacować zyski, które przyniosą firmie poszczególni klienci? Jak przy użyciu sieci neuronowych firmy Microsoft i algorytmu regresji logistycznej firmy Microsoft, zbudować klasyfikujący dokumenty filtr antyspamowy?
3. Sieci neuronowe firmy Microsoft i algorytm regresji logistycznej firmy Microsoft Sieci neuronowe firmy Microsoft oraz algorytm regresji logistycznej firmy Microsoft należą do kategorii algorytmów uczenia nadzorowanego. W serwerze SQL sieci neuronowe firmy Microsoft i algorytm regresji logistycznej firmy Microsoft stosowane są do szacowania i klasyfikacji. Ponieważ użycie sieci neuronowych do asocjacji byłoby wyjątkowo czasochłonne (wymagałoby zbudowania osobnych sieci dla każdego zagnieżdżonego atrybutu), serwer SQL nie wspiera tej techniki.
4. Omówienie Początki bada nad sieciami neuronowymi sięgają lat 40. XIX wieku Model mózgu WarrenaMcCullochai Waltera Pitsa W 1957 roku Frank Rosenblatt i Charles Wightman zbudowali działającą sieć neuronową (percepton) Lata 70. XIX wieku to zastój spowodowany wynikami badańMinskiego i Paperta W 1982 roku John Hopfield opracowuje mechanizm sprzężenie zwrotnego Liczbę wszystkich neuronów w mózgu szacuje się na sto miliardów, liczbę istniejących pomiędzy nimi połączeń (synapsów) — na sto do dwustu bilionów
5. Omówienie c.d. Sieci neuronowe firmy Microsoft składają się z węzłów (neuronów) i łączy Węzły wejściowe, ukryte i wyjściowe Kierunek łącza symbolizuje kierunek przepływu danych podczas uczenie sieci i odpowiadania przez nią na zapytania predykcyjne Wszystkie łącza prowadzą w tym samym kierunku Od węzłów wejściowych do ukrytych Od węzłów ukrytych do wyjściowych
6. Omówienie c.d. Węzły wejściowe Mają jedno wejście i wiele wyjść Reprezentują poszczególne zmienne objaśniające Węzły ukryte Są połączone z wszystkimi węzłami wejściowymi Sygnał na wyjściu jest sumą ważoną jego sygnałów wejściowych Występuje najwyżej jedna ukryta warstwa Węzły wyjściowe Reprezentują poszczególne zmienne objaśniane Sygnał na wyjściu jest sumą ważoną sygnałów wejściowych Liczba zmiennoprzecinkowa z zakresu od 0 do 1 Jeżeli w modelu zdefiniowanych zostało wiele zmiennych objaśnianych i jednocześnie objaśniających, dla każdej z nich budowana jest osobna sieć neuronowa Algorytm regresji logistycznej firmy Microsoft został zaimplementowany jako sieć neuronowa bez ukrytej warstwy
7. Omówienie c.d. W pierwszej kolejności określana jest struktura sieci Liczba węzłów wejściowych i wyjściowych jest zależna od danych treningowych Konfiguracja topologii sieci sprowadza się do określenia liczby ukrytych węzłów Liczba ukrytych węzłów ma zasadniczy wpływ na dokładność i wiarygodność otrzymanych za pomocą sieci neuronowej wyników Nie jest to jednak zależność liniowa Zwiększenie liczby ukrytych neuronów wydłuża czas uczenia sieci Zbyt mała liczba ukrytych węzłów może spowodować, że sieć neuronowa nie wykryje niektórych z istniejących pomiędzy atrybutami wejściowymi zależności Liczba ukrytych węzłów sieci neuronowej wyznaczana jest na podstawie liczby jej węzłów wejściowych i wyjściowych
8. Omówienie c.d. Domyślnie c =4 Liczba węzłów wejściowych (m) zależy od liczby ciągłych zmiennych objaśniających Każda z nich mapowana jest do do dwóch węzłów wejściowych Iloczynu liczby dyskretnych zmiennych objaśniających i liczby ich stanów Każdy stan mapowany jest do jednego węzła wejściowego Liczba węzłów wyjściowych (n) zależy od liczby zmiennych objaśnianych Jeżeli przekroczy ona 500, utworzonych zostanie wiele sieci neuronowych
9. Omówienie c.d. Po utworzeniu sieci neuronowej następuje jej uczenie Szukanie optymalnych wag wszystkich łącz poprzez porównywanie otrzymanych na danym etapie wyników i eliminowaniu błędów poprzez zmianę znalezionych wag Początkowo wagi są losowe W ramach kolejnych iteracji otrzymane wartości zmiennych objaśnianych (wartości węzłów wyjściowych) są porównywane z danymi testowymi Po obliczeniu skali błędu jest ona używana do zmiany wag łączy
10. Omówienie c.d. Normalizacja Poszczególnym stanom atrybutów dyskretnych przypisywane są równo oddalone od siebie liczby z zakresu od 0 do 1 Wartości atrybutów dyskretnych są normalizowane na podstawie prawdopodobieństw wystąpienia poszczególnych stanów Wartości atrybutów ciągłych są normalizowane za pomocą klasycznej formuły standaryzacji Mapowane do węzłów wejściowych Atrybuty ciągłe są mapowane do dwóch węzłów Jeden reprezentuje wartości tego atrybutu Drugi reprezentuje ich brak za pomocą specjalnego stanu Missing Atrybuty dyskretne mapowane są do tylu węzłów, ile przyjmują stanów oraz do jednego dodatkowego węzła reprezentującego ich brak za pomocą specjalnego stanu Missing
11. Omówienie c.d. Kombinacja i aktywacja Sygnały wejściowe są w węźle łączone Przeprowadzane są na nich określone obliczenia Ich wynik zgłaszany jest na wyjściu węzła W sieciach neuronowych firmy Microsoft zastosowana została technika sum ważonych polegająca na przemnożeniu poszczególnych sygnałów przez wagi ich łącz i zsumowaniu tak otrzymanych wartości
12. Omówienie c.d. Nieliniowość W warstwie wyjściowej zastosowana została funkcje sigmoid W warstwie ukrytej hiperboliczna funkcja tanh Sprzężenie zwrotne Podczas kolejnych iteracji algorytm porównuje wartości wyjściowe z faktycznymi i dla każdego węzła wyjściowego oblicza jego błąd Następuje zmiany wag łączy prowadzących do danego węzła wyjściowego Zmiany te są propagowane z warstwy wyjściowej do ukrytej, a następnie z warstwy ukrytej do wejściowej
13. Omówienie c.d. Proces uczenia sieci neuronowej Wagi poszczególnych łączy przyjmują losowe wartości z zakresu od -1 do 1 Dane treningowe dzielone są na zestaw treningowy i testowy Zestaw treningowy używany jest do obliczenia wartości węzłów wyjściowych, zestaw testowy — do porównania ich wartości z wartościami zmiennych objaśnianych Dla każdego węzła wyjściowego wyznaczany jest błąd reprezentujący różnicę pomiędzy zwróconymi przez ten węzeł wartościami, a danymi z zestawu testowego Sieci neuronowe firmy Microsoft wyznaczają skalę błędu po każdorazowym przeanalizowaniu wszystkich danych treningowych, czyli po zakończeniu kolejnej epoki Informacje o błędach są używane do zmiany wag poszczególnych łączy Punkty 2-4 są powtarzane, aż do zakończenia uczenia
14. Omówienie c.d. Błąd epoki: Suma pierwiastków kwadratowych błędów poszczególnych węzłów lub ich wzajemnej entropii Im mniejszy błąd epoki, tym mniejszy będzie aktualny współczynnik uczenia sieci Początkowo błąd epoki ustawiany jest na wartość maksymalną 1 W pierwszych iteracjach wagi łączy zmieniają się gwałtownie Zakończenie uczenia następuje, gdy: Błąd epoki spadnie poniżej określonego minimum Ostatnie zmiany wag łączy będą mniejsze niż określone minimum Przekroczona zostanie maksymalna liczba iteracji
15. Ograniczenia Algorytm regresji logistycznej nie nadaje się do rozwiazywania nieliniowych problemów Sieci neuronowe zwracają nieliniową funkcję opisującą nieliniowe zależności w sposób ciągły W większości wypadków algorytm regresji logistycznej firmy Microsoft jest prawie że tak samo dokładny, co sieci neuronowe tej firmy, a czas jego uczenia jest wielokrotnie krótszy Interpretacja zwracanych przez oba algorytmy wyników jest bardzo trudna Stosowane wyłącznie do predykcji Użycie atrybutów dyskretnych znacznie zwiększa liczbę węzłów sieci neuronowych
16. Ocena kształtu figur na podstawie ich współrzędnych Ograniczenia sieci neuronowych i algorytmu regresji logistycznej firmy Microsoft Ćwiczenie
17. Parametry HIDDEN_NODE_RATIO (Enterprise Edition) Określa liczbę węzłów w ukrytej warstwie sieci neuronowej Domyślna wartość to 4 Ustawiając jego wartość na 0 otrzymamy sieć neuronową bez ukrytej warstwy, czyli model algorytmu regresji logistycznej firmy Microsoft HOLDOUT_PERCENTAGE (Enterprise Edition) Określa procent przypadków użytych przez algorytm do sprawdzenia procesu uczenia (domyślnie 30%) HOLDOUT_SEED (Enterprise Edition) Określa zalążek użyty do zainicjowania generatora liczb pseudolosowych Domyślna wartość 0 oznacza, że będzie on obliczony na podstawie nazwy modelu
18. Parametry c.d. MAXIMUM_INPUT_ATTRIBUTES (Enterprise Edition) Określa maksymalną liczbę wejściowych (objaśniających) atrybutów Po jej przekroczeniu (domyślna wartość wynosi 255) analizowanych będzie tylko 255 najsilniej powiązanych z atrybutami wyjściowymi atrybutów Zmiana tego parametru na 0 spowoduje uwzględnienie wszystkich wejściowych atrybutów MAXIMUM_OUTPUT_ATTRIBUTES (Enterprise Edition) Określa maksymalną liczbę wyjściowych (objaśnianych) atrybutów Po jej przekroczeniu (domyślna wartość wynosi 255) uwzględnionych zostanie tylko 255 najczęściej występujących atrybutów wyjściowych Zmiana tego parametru na 0 spowoduje uwzględnienie wszystkich wyjściowych atrybutów
19. Parametry c.d. MAXIMUM_STATES (Enterprise Edition) Określa maksymalną liczbę uwzględnianych stanów atrybutów Po jej przekroczeniu (domyślna wartość wynosi 100) analizowanych będzie tylko 100 najczęściej występujących stanów atrybutów, a pozostałe zostaną potraktowane jak wartości brakujące Zmiana tego parametru na 0 spowoduje uwzględnienie wszystkich stanów atrybutów SAMPLE_SIZE (Enterprise Edition) Określa maksymalną liczbę przypadków użytych do trenowania modelu Domyślnie wynosi ona 10 000 lub jest wynikiem wyrażenia:liczba przypadków * (1 – HOLDOUT_PERCENTAGE/100)