Metody sztucznej inteligencji dr inż.marcin Blachnik marcin.blachnik@polsl.pl http://metet.polsl.pl/~mblachnik
Literatura S. Osowski, Sieci neuronowe w ujęciu algorytmicznym, WNT, 1996 L. Rutkowski, Metody i techniki sztucznej inteligencji, PWN, 2006 T. Wieczorek, Neuronowe modelowanie procesów technologicznych, Wyd. Politechniki Śl. 2008 N. Jankowski Ontogeniczne sieci neuronowe. O sieciach zmieniających swoją strukturę, AOW Exit, 2003 R Duda, P Hart, D Stork, Pattern Classification, J. Wiley & Sons, 2001
Inteligencja Władysław Kopaliśki, Słownik wyrazów obcych i zwrotów obcojęzycznych inteligencja psych. zdolność rozumienia, kojarzenia; pojętność, bystrość; zdolność znajdowania właściwych, celowych reakcji na nowe zadania i warunki życia, sprawnego zdobywania i wykorzystywania wiedzy.
Sztuczna inteligencja Co to takiego? ang. Artificial intelligence (AI) Ile książek tyle definicji co to AI John McCarthy w 1956 zdefiniował AI jako nauka i inżynieria robienia inteligentnych maszyn Inteligentna maszyna to system który analizuje swoje środowisko i podejmuje działanie które maksymalizuje prawdopodobieństwo odniesienia sukcesu w tym środowisku Lub po prostu: Rozwiązywanie problemów nie algorytmizowalnych lub trudno algorytmizowalnych
Sztuczna inteligencja Co to takiego? cd. Sztuczna inteligencja część informatyki w jej skład wchodzą: Struktury danych używane do reprezentacji wiedzy Algorytmy wykorzystujące zebraną wiedzę (w postaci powyższych struktu) Język i techniki programowania wykorzystywane do implementacji powyższych Obecnie coraz częściej mówi się o inteligencji obliczeniowej zamiast o sztucznej inteligencji, lub też traktuje sztuczną inteligencję jako podzbiór inteligencji obliczeniowej.
Ciekawostki AI a etyka: Jeżeli zbudujemy inteligentną maszynę, czy będzie ona miała zdolność do odczuwania? Jeśli tak, to czy mając zdolność odczuwania będzie ona miała takie same prawa jak ludzie?
Historia AI 1822-1859 - Charles Babbage & Ada Lovelace -> pierwszy komputer 1854 - George Boole -> definiuje algebrę Boola 1913 - Bertrand Russell i Alfred North Whitehead opublikowali Principia Mathematica, co zrewolucjonizowało logikę formalną. 1943 - Warren Sturgis McCulloch i Walter Pitts publikują "A Logical Calculus of the Ideas Immanent in Nervous Activity" (1943), dając podstawy matematycznej budowy sztucznego neuronu 1948 - John von Neumann powiedział (jako komentaż do wypowiedzi E.T. Jaynes) Sugerujesz że jest coś czego maszyna nie może zrobić? Jeśli zdefiniujesz mi dokładnie co takiego maszyna nie może zrobić, wówczas ja mogę zrobić maszynę która będzie robiła dokładnie to! obecnie maszyna = program 1949 Donald Hebb publikuje książkę The Organization of Behavior" gdzie definiuje tzw regułę uczenia na zasadzie wzmocnienia tzw. Regułę Hebba 1950 Alan Turing definiuje Test Turninga określający poziom inteligencji maszyny 1950 - Claude Shannon definiuje algorytm gry w szachy bazujący na metodach przeszukiwania 1956 - Johhn McCarthy po raz pierwszy używa nazwy artificial intelligence jako tematu organizowanej przez niego konferencji the second Dartmouth Conference. 1954 - John McCarthy (MIT) wymyśla język programowania logicznego Lisp 1958 Frank Rosenblatt opisuje Perceptron - pierwszy inteligentny komputer sieć neuronową która ma zdolność automatycznego uczenia się i wykorzystuje ją do automatycznego rozpoznawania pisma 1960 - Bernard Widrow oraz Ted Hoff budują sieć ADALINE (adaptacyjny liniowy neuron) oraz MADALINE (wiele adaline) 1965 L. Zadech w Fuzzy sets daje podstawy teorii zbiorów rozmytych 1968 - Minsky i Papert publikują dowód o ograniczeniach perceptronu -> problem xor 1974 - Werbsa 1982 - Parkera algorytm uczenia sieci neuronowych poprzez wsteczną propagację błędu 1986 Rumelharta 1982 Hopfield sieć ze sprzężeniem zwrotnym Ponowny bójny rozwój metod AI
Problemy Typowe problemy inteligencji obliczeniowej Znajdowanie rozwiązań dla różnych gier (szachy, warcaby, wychodzenie z labiryntów itp.) Automatyczne wnioskowanie i dowodzenie twierdzeń Systemy ekspertowe - budowanie dużych baz wiedzy Przetwarzanie i rozumienie języka naturalnego translacja pomiędzy językami (np. Google tłumacz), rozumienie zdań, rozpoznawanie mowy (np. Ms. Vista, Opera), chatterboty itp Modelowanie ludzkich potrzeb chatterboty jako wirtualny pomocnik, systemy autoasocjacyjne, diagnozowanie medyczne Planowanie i robotyka automatyczne planowanie produkcji, sterowanie robotem itp. Konstruowanie języka i środowiska do przetwarzania wiedzy (prolog, lisp) Rozpoznawanie i analiza obrazów itp.
Podejścia do rozwiązywania problemów sztucznej inteligencji Neurologia budowa mózgu Psychologia poznawcza i kognitywistyka jak uczą się ludzie i jak reprezentują wiedzę systemy rozmyte, systemy bazujące na prototypach Biologia algorytmy genetyczne, algorytmy ewolucyjne, algorytmy mrówkowe Inżynieria alg. Symulowanego wyżarzania Statystyka teorie probabilistyczne, posybilistyczne itp.
Jak budować inteligentne systemy = szeregowe przetwarzanie informacji Zmiana wewnętrznych parametrów modeli składowych Np. algorytmy genetyczne Pozyskanie informacji (danych) Wstępne przetwarzanie danych przygotowanie ich do dalszej analizy Selekcja informacji Ostateczny model decyzyjny Ocena modelu Model końcowy Wizualizacja danych - Normalizacja danych - Usuwanie wartości odstających (nietypowych) - Usuwanie wartości brakujących - Wstępna transformacja danych - Szukanie które sygnały wejściowe (pomiarowe) są nam naprawdę potrzebne do rozwiązania zadania - Szukanie nowych sygnałów, które można znaleźć na podstawie już istniejących, które pozwalają na jak najlepsze podejmowanie decyzji - Dobór zbioru uczącego - np.. Metody rankingowe bazujące na Spearman ie - Ostateczny model decyzyjny - Regresyjny SVM, sieci neuronowe, typu MLP lub RBF, metody okien Parzena, drzewa decyzji itp. - Klasyfikacyjny SVM, sieci neuronowe, drzewa decyzji itp
Formy reprezentacji wiedzy W postaci klasycznych reguł jeżeli.. To.. List reguł Jeżeli temperatura<15 i wilgotność > 80 to będzie padać Drzew decyzji
Formy reprezentacji wiedzy W postaci reguł rozmytych Jeżeli temperatura jest około 15st i wilgotność jest około 80 to będzie padać
Formy reprezentacji wiedzy W postaci reguł bazujących na prototypach Jeżeli pogoda jest zła to będzie padać w przeciwnym razie nie będzie padać
Formy reprezentacji wiedzy W postaci probabilistycznej P(wilgotność,temperatura padać) > P(wilgotność,temperatura nie padać) => nie będzie padać
Formy reprezentacji wiedzy Za pomocą zbiorów przybliżonych (definiujemy dolną i górną aproksymację dla zbioru padać) i na podstawie odpowiedniej heurystyki podejmujemy decyzję Dolna aproksymacja Górna aproksymacja
Formy reprezentacji wiedzy Sieci semantyczne (np. gra w 20 pytań)
To tyle w kwestii wstępu
Sztuczne sieci neuronowe (SNN)
SSN - podstawy Sieci neuronowe stosowane są do rozwiązywania problemów typu uczenie maszyn: rozpoznawanie obrazów Rozpoznawanie mowy itp. Cecha: Zdolność automatycznego uczenia się poprzez adaptację swojej struktury i jej właściwości do stawianego sieci zadania
Podział sieci ze względu na charakter problemu Uczenie nienadzorowane, Uczenie z krytykiem Uczenie nadzorowane Autoasocjacja
Uczenie nienadzorowane analiza skupień, klasteryzacja, grupowanie danych Ucząc model nie wiemy nic o tym czego czego mamy się nauczyć przykład: sieci samoorganizujące się Kochonena, Przykład: Czytając różne książki nie wiemy co się na ich podstawi nauczymy ale na pewno czegoś się nauczymy. Przykład: Mając dane dotyczące różnych kwiatów np. irysów (długości i szerokości kielicha oraz długości i szerokości płatka) chcemy się dowiedzieć iloma różnymi odmianami irysa dysponujemy
Uczenie nienadzorowane analiza skupień, klasteryzacja, grupowanie danych Ucząc model nie wiemy nic o tym czego czego mamy się nauczyć przykład: sieci samoorganizujące się Kochonena, Przykład: Czytając różne książki nie wiemy co się na ich podstawi nauczymy ale na pewno czegoś się nauczymy. Przykład: Mając dane dotyczące różnych kwiatów np. irysów (długości i szerokości kielicha oraz długości i szerokości płatka) chcemy się dowiedzieć iloma różnymi odmianami irysa dysponujemy
Uczenie nadzorowane Uczymy się na przykładach które już ktoś rozwiązał i próbujemy zrozumieć jak zostały rozwiązane, by później samemu móc rozwiązywać podobne zadania Problemy regresyjne gdy nasz cel uczenia daje się zapisać jako liczba rzeczywista (np.. Cena itp) Na podstawie położenia lokalu, jego powierzchni, wieku itp. Dokonać automatycznej wyceny tegoż lokalu (Boston houses) Na podstawie analiz rynku przewidzieć zmiany wartości akcji przedsiębiorstwa Problemy klasyfikacyjne gdy nasz celu uczenia jest czymś co nie jest liczbą, jest symbolem (np. typ choroby, gatunek roślin itp)
Uczenie nadzorowane Uczymy się na przykładach które już ktoś rozwiązał i próbujemy zrozumieć jak zostały rozwiązane, by później samemu móc rozwiązywać podobne zadania Problemy regresyjne gdy nasz cel uczenia daje się zapisać jako liczba rzeczywista (np.. Cena itp) Na podstawie położenia lokalu, jego powierzchni, wieku itp. Dokonać automatycznej wyceny tegoż lokalu (Boston houses) Na podstawie analiz rynku przewidzieć zmiany wartości akcji przedsiębiorstwa Problemy klasyfikacyjne gdy nasz celu uczenia jest czymś co nie jest liczbą, jest symbolem (np. typ choroby, gatunek roślin itp)
Uczenie nadzorowane Uczymy się na przykładach które już ktoś rozwiązał i próbujemy zrozumieć jak zostały rozwiązane, by później samemu móc rozwiązywać podobne zadania Problemy regresyjne gdy nasz cel uczenia daje się zapisać jako liczba rzeczywista (np.. Cena itp) Na podstawie położenia lokalu, jego powierzchni, wieku itp. Dokonać automatycznej wyceny tegoż lokalu (Boston houses) Na podstawie analiz rynku przewidzieć zmiany wartości akcji przedsiębiorstwa Problemy klasyfikacyjne gdy nasz celu uczenia jest czymś co nie jest liczbą, jest symbolem (np. typ choroby, gatunek roślin itp) Na podstawie zawartości alkoholu, kwasowości, zawartości fenoli, intensywności koloru itp. odgadnąć producenta wina spośród trzech producentów z tego samego regionu Włoch (wine) Na podstawie analiz medycznych przewidzieć czy pacjentka cierpi na raka piersi czy nie
Uczenie nadzorowane Uczymy się na przykładach które już ktoś rozwiązał i próbujemy zrozumieć jak zostały rozwiązane, by później samemu móc rozwiązywać podobne zadania Problemy regresyjne gdy nasz cel uczenia daje się zapisać jako liczba rzeczywista (np.. Cena itp) Na podstawie położenia lokalu, jego powierzchni, wieku itp. Dokonać automatycznej wyceny tegoż lokalu (Boston houses) Na podstawie analiz rynku przewidzieć zmiany wartości akcji przedsiębiorstwa Problemy klasyfikacyjne gdy nasz celu uczenia jest czymś co nie jest liczbą, jest symbolem (np. typ choroby, gatunek roślin itp) Na podstawie zawartości alkoholu, kwasowości, zawartości fenoli, intensywności koloru itp. odgadnąć producenta wina spośród trzech producentów z tego samego regionu Włoch (wine) Na podstawie analiz medycznych przewidzieć czy pacjentka cierpi na raka piersi czy nie
Uczenie z krytykiem Uczenie gdy jedyną dostępną informacja o tym co nauczyliśmy się jest typu nagroda/kara. W pewnym sensie odmiana uczenia pod nadzorem gdzie nie jest znana wielkość popełnionego błędu a jedynie informacja typu prawda fałsz Przykład: Uczenie robota chodzenia przewróci się (-) nie przewrócił się (+) Strategie przetrwania dla systemów agentowych przeżył (+), zginął (-)
Uczenie z krytykiem Uczenie gdy jedyną dostępną informacja o tym co nauczyliśmy się jest typu nagroda/kara. W pewnym sensie odmiana uczenia pod nadzorem gdzie nie jest znana wielkość popełnionego błędu a jedynie informacja typu prawda fałsz Przykład: Uczenie robota chodzenia przewróci się (-) nie przewrócił się (+) Strategie przetrwania dla systemów agentowych przeżył (+), zginął (-)
Analiza koszykowa -> asocjacja Problemy asocjacyjne to problem typu co wiąże się z czym przykład sieci Hopfielda Przykładowe zastosowania socjo-marketing idąc do sklepu co jeszcze kupujemy kupując paluszki słone. Innymi słowy z czym wiążą się paluszki podczas zakupów np. piwo
Analiza koszykowa -> asocjacja Problemy asocjacyjne to problem typu co wiąże się z czym przykład sieci Hopfielda Przykładowe zastosowania socjo-marketing idąc do sklepu co jeszcze kupujemy kupując paluszki słone. Innymi słowy z czym wiążą się paluszki podczas zakupów np. piwo
Budowa neuronu neuron biologiczny
Budowa neuronu neuron liniowy Wg. McCullocha i Pittsa: Gdzie: w i i-ta waga x i i-te neuronu (dendryt) z wyjście neuronu (akson) b wolny dendryt do niczego nie podłączony
Budowa neuronu neuron nieliniowy typu perceptron Gdzie: w i i-ta waga x i i-te neuronu (dendryt) z wyjście neuronu (akson) b wolny dendryt do niczego nie podłączony f nieliniowa funkcja aktywacji neuronu
Budowa neuronu neuron nieliniowy funkcje aktywacji Binarna: unipolarna i bipolarna (Perceptron Rosenblatta) Ciągła: Sigmoidalny również nazywany perceptronem
Budowa neuronu neuron nieliniowy funkcje aktywacji - cd Neurony radialne (lokalnym charakter działania) Gaussowski 2 z f ( z) = exp 2 2σ 2 2 f ( z) = z + σ Wielomianowy 2 2 f ( z) = z + σ Hardyego f ( z) = z 1 + σ 2 2 Gdzie z = x - t ( ) 2 np. z = xi ti i
Architektury sieci neuronowych Typy architektur: sieci jednokierunkowe (feedforward networks) sieci o jednym kierunku przepływu sygnałów sieci rekurencyjne sieci ze sprzężeniem zwrotnym sieci komórkowe
Sieci jednokierunkowe
Sieci jednokierunkowe cd. Wynikiem przetwarzania pojedynczej warstwy takiej sieci jest: Gdzie: N h (u h ) operator przetwarzania neuronowego h-tej warstwy W h macierz współczynników wag połączeń pomiędzy warstwami (h-1) i (h) Natomiast całą sieć można opisać jako: Gdzie: y wektor wartości wyjściowych y=[y 1, y 2, y n ] T u wektor wartości wejściowych u=[u 1, u 2, u m ] T F wyj operator aktywacji neuronów warstwy wyjściowej N wyj operator przetwarzania neuronów warstwy wyjściowej W wyj macierz współczynników wag połączeń pomiedzy warstwami H-tą a wyjściową Przykłady: perceptron wielowarstwowy (dowolna ilość warstw, najczęściej 3), RBF (dwie warstwy)
Sieci ze sprzężeniem zwrotnym N 1 N 4 bloki reprezentujące grupy neuronów
Sieci ze sprzężeniem zwrotnym Np.. Sieć Hopfielda, Gdzie: k numer kolejnej iteracji b i sygnał sterowania zewnętrznego w ij wagi połączeń pomiedzy j-tym wyjściem a i-tym wejściem
Sieci komórkowe Sprzężenia i współpraca pomiędzy sąsiednimi neuronami sieci Przykład: mapy Kochonena, LVQ
Jakość uczenia i generalizacja
Dokładność uczenia Jest koncepcją miary w jakim stopniu nasza sieć nauczyła się rozwiązywać określone zadanie Dokładność mówi na ile nauczyliśmy się rozwiązywać zadania które już znamy, a generalizacja na ile potrafimy rozwiązywać nowe zadania podobne do tych które znamy ale mogą też być inne
Miary dokładności uczenia dla problemów klasyfikacyjnych Macierz konfuzji parametr (ang. true positive) TP parametr (ang. false positive) FP
Miary dokładności uczenia dla problemów klasyfikacyjnych cd. Dokładność (ang. accuracy) Dokładność zbalansowana (ang. Balanced accuracy)
Miary dokładności uczenia krzywa ROC i AUC
Miary dokładności uczenia dla problemów regresyjnych Błąd średniokwadratowy (MSE) (RMSE) n i = 1 i i 1 n ( ) 2 e = y d n i = 1 i i 1 n ( ) 2 e = y d Błąd średni (ME) e = i y i n d i Znormalizowany błąd średniokwadratowy (NMSE) e = 1 n i i n i= 1 ( y d ) 2 σ σ y d
Co to jest generalizacja Generalizacja zdolność do uogólniania zdobytej wiedzy Jeśli wszyscy uczyliby się do egzaminu równy okres czasu to i tak będą rozbieżności w ocenach. Dlaczego? Gdyż jedni uczą się szybciej a inni wolniej, jedni uczą się z przyjemnością fizyki, a inni wolą uczyć się na temat malarstwa. To samo zjawisko występuje w SSN i inteligencji obliczeniowej Generalizacja jest więc koncepcją określającą zdolnością do zastosowania zdobytej wiedzy w nowych sytuacjach, z którymi system nie spotkał się dotychczas.
Co to jest generalizacja Generalizacja Dokładność
Generalizacja a dokładność Poziom uogólnienia w funkcji VCdim Im model bardziej złożony tym bardziej maleje generalizacja Krzywa reprezentująca zależność pomiędzy dokładnością a generalizacją Błąd uczenia w funkcji VCdim (złożoności modelu) Im model bardziej złożony tym większy błąd (*) Sieci neuronowe w ujęciu algorytmicznym, Ossowski
Dokładność a generalizacja Zbyt duża generalizacja
Dokładność a generalizacja Przeuczenie (*) Pattern classification Duda, Hart, Stork
Dokładność a generalizacja Dobra generalizacja
Dokładność a generalizacja (*) Sieci neuronowe w ujęciu algorytmicznym, Ossowski
Problem rozmiaru sieci Im mamy bardziej pojemną sieć tym dłużej musimy się uczyć i tym więcej przypadków musimy przeanalizować Problem Jeżeli mamy bardzo dużą sieć to może dojść do niedouczenia sieci, jak i do przeuczenia się danego problemu Przykład Jeżeli mamy do rozwiązania zadanie z fizyki aby określić drogę jaką przebył kamień spadając przez 10s to można zadanie rozwiązać: 2 a) g t s = 2 b) wyliczyć z definicji przyspieszenia iż jest to druga pochodna z drogi po czasie, robiąc odpowiednie przekształcenia i uwzględniając tarcie powietrza itp..
Metody oceny generalizacji Zasada minimalnej długości opisu (ang. Minimal description length) - bazuje na analizie rozmiaru zbioru oraz stopnia złożoności modelu h wyrażonego w bitach Gdzie: - jest długością opisu modelu h pod warunkiem kodowania C - jest długością opisu zbioru X pod warunkiem modelu h oraz kodowania C.
Metody oceny generalizacji cd. Zasada minimalizacji ryzyka strukturalnego (ang. structural risk minimization, SRM) - Idea współczynnika SRM polega na uwzględnieniu obok dokładności modelu h drugiego czynnika opisującego jego złożoność, tym samym wariancję modelu - Rzeczywisty koszt popełnienia błędu - Empiryczny koszt popełnienia błędu - Współczynnik Vapnika-Czervonenkisa - Pewna stała
Empiryczne metody oceny generalizacji Podział trening/test Kroswalidacja (ang cross validation) lub test krzyżowy Test typu jeden pozostaw Test typu bootstrap
Podział trening test Wydzielenie ze zbioru danych części na której będzie dokonywane uczenie i części na której będzie dokonywana ocena (testowanie) modelu Wada łatwo może dojść do przeuczenia modelu lub dostosowania modelu do zbioru testowego!!! Zbiór danych Zbiór Uczący Zbiór walidujący Zbiór treningowy Zbiór testowy
Test krzyżowy Podziel zbiór danych X na N równych niezależnych części R(i), i=1..n (losowanie bez zwracania) For i=1:n Ucz model na zbiorze X / R(i) Testuj model na R(i) Dwa typy testu krzyżowego: normalny losowo podział zbioru danych Stratyfikowany losowy podział ale zapewniający stały rozkład punktów w poszczególnych klasach
Jeden pozostaw Test jeden pozostaw (ang. Leave one out) jest szczególną wersją testu krzyżowego, gdzie zawsze tylko 1 wektor pozostawiany jest do testowania, a proces uczenia odbywa się M razy, gdzie M liczba wektorów w zbiorze uczącym Zalety test nie obciążony Wady duża złożoność obliczeniowa (znane są różne uproszczenia testu LOO)
Bootstrap (by Efron) Mając zbiór X o M wektorach Ze zbioru danych X wylosuj ze zwracaniem M wektorów aby powstał zbiór R j Naucz model H j na zbiorze R j i wyznacz błąd modelu na tym zbiorze RE j Wyznacz błąd XE j modelu H j na całym zbiorze danych X Wyznacz optymizm opt j =XE j -Re j Powtórz kroki 1:4 J krotnie Wyznacz średni optymizm opt Wyznacz błąd na zbiorze uczącym E (trening modelu i jego testowanie odbywa się na zbiorze X) Na tej podstawie estymatę błędu generalizacji (e) wynosi e = E + opt
Podstawowe metody uczenia
Problem separowalny 5 4 3 2 1 0-1 -2-3 -4-5 -5-4 -3-2 -1 0 1 2 3 4
Problem nieseparowalny 4 3 2 1 0-1 -2-3 -4-4 -3-2 -1 0 1 2 3 4
Problem liniowo separowalny 5 4 3 2 1 0-1 -2-3 -4-5 -5-4 -3-2 -1 0 1 2 3 4
Problem liniowo nieseparowalny 8 6 4 2 0-2 -4-6 -8-6 -4-2 0 2 4 6
Neuron liniowy x 0 x n wejścia (ilość analizowanych zmiennych) w 0 w n wagi neuronu Funkcja aktywacji typu skok (-1, 1) g(x) wartość wyjściowa neuronu x = [x 0 x n ] T
Zadanie podział na dwie klasy g(x) = 0 granica decyzji Szukamy takiej prostej w i w 0 która spełnia zależność: w T x (1) +w 0 = w T x (2) +w 0 5 4 g(x)=0 3 2 1 0-1 -2-3 -4-5 -4-3 -2-1 0 1 2 3 4 5
Uczenie sieci/neuronu = problem optymalizacyjny Jak znaleźć położenie prostej g(x) czyli wyznaczyć parametry wektora w? Przez optymalizację Znalezienie optymalnej funkcji g(x) => problem NP zupełny Wykorzystanie metod suboptymalnych Metody gradientowe, największego spadku itp Metody optymalizacji stochastycznej (Monte Carlo, algorytmy genetyczne, ewolucyjne itp) Problem => definicja funkcji celu/kosztu którą będziemy optymalizować
Algorytm Rosenblatta Gwarantuje zbieżność gdy klasy (-1 i 1) są liniowo separowalne! T J ( w) = ( w x) Funkcja celu x Ω Gdzie w t x iloczyn skalarny wektorów: Ω-zbiór wektorów x które zostały błędnie sklasyfikowane Algorytm: T w x = w... 1x1 + w2 x2 + w3 x3 + + wn x t numer iteracji w wektor wag C(x) funkcja zwracająca etykietę klasy dla wektora x m liczba wektorów uczących t = 0 w = generuj losowo repeat t 0 =t; for i=0:m if (C(x i )=1) and (w T x i <0) => w=w+x i ; t=t+1 if (C(x i )=-1) and (W T x i >0) => w=w-x i ; t=t+1 end until t 0 =t n
Algorytm Rosenblatta Gwarantuje zbieżność gdy klasy (-1 i 1) są liniowo separowalne! T J ( w) = ( w x) Funkcja celu x Ω Gdzie w t x iloczyn skalarny wektorów: Ω-zbiór wektorów x które zostały błędnie sklasyfikowane Algorytm: T w x = w... 1x1 + w2 x2 + w3 x3 + + wn x Zbieżny jedynie dla danych t numer iteracji w wektor wag liniowo separowanych C(x) funkcja zwracająca etykietę klasy dla wektora x m liczba wektorów uczących t = 0 w = generuj losowo repeat t 0 =t; for i=0:m if (C(x i )=1) and (w T x i <0) => w=w+x i ; t=t+1 if (C(x i )=-1) and (W T x i >0) => w=w-x i ; t=t+1 end until t 0 =t n
Poprawa zbieżności i stabilności Funkcja kosztu perceptronu: T J ( w) = ( w x) x Ω Algorytm: t numer iteracji w wektor wag C(x) funkcja zwracająca etykietę klasy dla wektora x m liczba wektorów uczących η(j) współczynnik uczenia -> funkcja malejąca w czasie np. t = 0 w = generuj losowo for t=1:max_iter for i=0:m if (C(x i )=1) and (w T x i <0) => w=w+η(t)x i if (C(x i )=-1) and (W T x i >0) => w=w-η(t)x i end end η ( t) = 1 t + 1
Kształt funkcji kosztu Problem: płaska postać część funkcji kosztu w części separowalnej Kształt schodkowej funkcji kosztu (liczba wektorów błędnie klasyfikowanych) Kształt funkcji kosztu algorytmu Perceptronu
Jaka hiperpłaszczyzna jest lepsza? 5 4 3 2 1 0-1 -2-3 -4-5 -6-5 -4-3 -2-1 0 1 2 3 4
Jaka hiperpłaszczyzna jest lepsza? 5 4 3 2 1 0-1 -2-3 -4-5 -6-5 -4-3 -2-1 0 1 2 3 4
Jaka hiperpłaszczyzna jest lepsza? 5 4 3 2 1 0-1 -2-3 -4-5 -6-5 -4-3 -2-1 0 1 2 3 4
Kolejna modyfikacja algorytm z marginesem Procedura relaksacji: nowa funkcja t zamiast: w x Funkcja kosztu: Stąd pochodna: 0 J ( w) decyzyjna: = x Ω J ( w) = x Ω ( T w x b) 2 2 x T w x b x 2 x t w x b I zasada aktualizacji wartości wag: ( ) w = w + η t t+ 1 t b x Ω T w x 2 x x
Uczenie neuronu poprzez minimalizację błędu średniokwadratowego Rozwiązanie problemów nie separowalnych! Zapisując: x1,1 x1,2 x1, n w1 y1 x2,1 x2,2 x 2, n w 2 y = 2 Xw = y xm,1 xm,2 x m, n w n y n Gdzie X jest macierzą reprezentującą cały zbiór uczący o m wektorach, każdy n elementowy Zapisująć błąd jako e=xw-y wówczas funkcja kosztu przyjmuje postać: Stąd pochodna: I ostatecznie: J ( ) ( T ) ( T x = w x y = w x y) 2 m i= 1 m i= 1 J = 2 w x d y = 2Y Yw d ( T ) T i i i ( ) ( T ) 1 T w = X X X d
To tyle w tym temacie
Krótko o problemie systemów wieloklasowych
Od klasyfikatora dwuklasowego do wieloklasowego Klasa reszta Klasa - klasa (*) Duda, Hart, Stork, Pattern Classification ->
Klasyfikacja wieloklasowa - porównanie Dwie koncepcje: Klasa klasa Problem skalowalności mając k klas potrzebujemy (k 2 - k)/2 klasyfikatorów, czyli liczba klasyfikatorów rośnie z kwadratem liczby klas, ale jeśli rozmiar zbioru jest m i mamy równą ilość przypadków w danej klasie a złożoność uczenia algorytmu jest kwadratowa to uczenie jednego modelu ma złożoność (2m/k) 2 mamy więc złożoność całkowitą (k 2 -k)4m 2 /(2k 2 )=2(1-1/k)m 2 Klasa reszta Potrzebujemy k klasyfikatorów liniowa zależność w funkcji liczby klasyfikatorów ale tutaj całkowita złożoność jest: km 2
Uczenie sieci typu MLP
Przypomnienie budowa sieci typu MLP
Przypomnienie budowy neuronu Neuron ze skokową funkcją aktywacji jest zły!!! Powszechnie stosuje -> modele z sigmoidalną funkcją aktywacji β - współczynnik nastromienia. Im większy tym bardziej skokowa funkcja aktywacji f 1 ( z) 2 1 = 1 + exp β z ( ) ( ) 3 1 ( ) ( ) = ( β ) f z tgh z f z = 2 f z 1 M = i i + i z w x w 0
Różniczkowalność funkcji sigmoidalnej Pochodne funkcji aktywacji df 1 ( x) dx df ( x) ( ) 1 ( ) ( ) = β f x f x 1 1 ( x) ( 1 f ) 2 2 2 dx = β df 3 ( x) dx ( ) ( ) ( ) = 2β f x 1 f x 1 1
Trochę o uczeniu Uczenie sieci MLP to optymalizacja wartości wag w celu minimalizacji błędu popełnianego przez sieć. Funkcja celu - kryterium, według którego można oceniać dokonany wybór rozwiązania najlepszego spośród dopuszczalnych rozwiązań (wariantów), czyli jak dany system w procesie swego działania zbliża się do osiągnięcia wyznaczonego celu. Działając zgodnie z zasadami ekonomii (zasadą oszczędności i zasadą wydajności) dąży się każdorazowo do maksymalizacji lub minimalizacji funkcji celu w zależności od postawionego celu działania. Funkcja celu określa więc w sposób formalny zależność między celem systemu (firmy) a środkami służącymi do jego realizacji. wg. portalwiedzy.onet.pl Jak zdefiniować funkcję celu? Stosując metody gradientowe funkcja celu musi spełniać warunek różniczkowalności!!!
Funkcja celu Błąd średniokwadratowy dla sieci o M wyjściach M 1 E = ( y ) 2 i di 2 i= 1 y rzeczywista wartość i-tego wyjścia sieci d wyliczona wartość i-tego wyjścia sieci Całkowita wartość funkcji celu po prezentacji n przypadków uczących ma postać n M 1 E = ( y ( ) ( )) 2 i x j di x j 2 j= 1 i= 1
Inne odmiany funkcji celu Funkcja z normą L 1 M 1 E = yi d 2 Minimalizacja wszystkich błędów równomiernie i= 1 Funkcja z normą wyższych rzędów M 1 E = yi d 2 i= 1 ( ) 2 Minimalizacja największych błędów (małe błędy stają się nie istotne) i i K
Inne odmiany funkcji celu. CD. Kombinacja dwóch powyższych (Karayiannis): M M 1 2 E = λ ( yi di ) + ( 1 λ ) φ ( yi di ) 2 i= 1 i= 1 Dla λ=1 -> minimalizacja błędu średniokwadratowego Dla λ=0 -> minimalizacja błędu zdefiniowanego przez funkcję φ W praktyce uczymy zaczynając od λ=1 i stopniowo w trakcie uczenia zmniejszamy λ do 0 φ 1 ln cosh β ( a ) = ( β a ) ( ) Dla dużych β zachodzi φ(a)= a
Problem uczenia sieci MLP Jak dobrać odpowiednie wartości wag? Jak wyznaczyć błąd popełniany przez warstwy ukryte? Jak więc uczyć warstwy ukryte by minimalizować ów błąd? Jak określić kierunek zmian wartości wag, czy + czy -, o jaką wartość zmieniać wagi?
Metody optymalizacji Stochastyczne Monte carlo Algorytmy genetyczne Algorytmy ewolucyjne Gradientowe Największego spadku (reguła delta) ( 1) ( ) η p ( W ) W k + = W k + W W = η- współczynnik ucenia p(w) kierunek i wartość zmian wektora W
Algorytm wstecznej propagacji błędu 1. Analiza sieci neuronowej o zwykłym kierunku przepływu sygnałów. Podanie na wejście danego wektora x i i wyznaczenie odpowiedzi każdego z nauronów dla każdej z warstw (odpowiednio d i dla wyjściowej i s i dla ukrytej). 2. Stworzenie sieci propagacji wstecznej zamieniając wejścia sieci na jej wyjścia oraz zamieniając funkcje aktywacji neuronu na pochodne oryginalnych funkcji aktywacji. Na wejście sieci należy podać różnicę sygnałów wyjściowego i oczekiwanego (y i -d i ) 3. Uaktualnienie wag odbywa się na podstawie wyników uzyskanych w punkcie 1 i 2 wg. zależności 4. Opisany proces powatarzaj aż błąd nie spadnie poniżej wartości progowej ε<threshold
Trochę wzorów Funkcja celu uwzględniając dwie warstwy ukryte: v i wyjścia warstwy ukrytej, co dalej możemy zapisać jako Uwaga sumowanie po K od 0 bo zakładamy że nasz wektor ma postać x=[1 x 1 x 2 x N ] T i odpowiednio v=[1 v 1 v 2 v K ] T Uwaga N-wejść, K- neuronów ukrytych i M wyjść z sieci Żródło rysunku i wzorów: Ossowski, Sieci neuronowe w ujęciu algorytmicznym, WNT
Wzory cd. Zmaina wag warstwy wy. Gdzie przyjmując: ( y d ) δ = (2) i i i (2) ( i ) df u du (2) i Ostatecznie zmianę wag dla wa-wy 2 możemy zapisać jako: Dla warstwy ukrytej (nr 1) zależność ta przyjmuje postać: Gdzie zmiana wag wynikająca z wa-wy wyj (2), zmiana wag z wa-wy ukrytej(1) Żródło rysunku i wzorów: Ossowski, Sieci neuronowe w ujęciu algorytmicznym, WNT
Wzory cd.. Uwzględniając poszczególne składniki otrzymujemy Co dla poniższych oznaczeń: Pozwala zapisać pochodną funkcji kosztu w warstwie ukrytej jako Ostatecznie zmiana wag realizowana jest jako: Żródło rysunku i wzorów: Ossowski, Sieci neuronowe w ujęciu algorytmicznym, WNT η - wsp. uczenia
Problem minimów lokalnych Rys. M. Kordos Search-based Algorithms for Multilayer Perceptrons PhD
Różne wersje algorytmów algorytmy gradientowe W sąsiedztwie najbliższego rozwiązania rozwijają funkcję celu E(W) w szereg Taylora (najczęściej do pierwszych 3 składników) Gdzie: Oraz macierz drugich pochodnych p wektor kierunkowy liczenia pochodnych zależny od W Optymalne rozwiązanie gdy g(w k )=0 i H(W k ) jest dodatnio określona (wszystkie wartości własne macierzy H są > 0) lub Żródło rysunku i wzorów: Ossowski, Sieci neuronowe w ujęciu algorytmicznym, WNT
Inne metody optymalizacji Algorytm największego spadku (rozwinięcie tylko do pierwszej pochodnej) Algorytm zmiennej metryki (wykorzystanie kwadratowego przybliżenia funkcji E(W) w sąsiedztwie W k ) Algorytm Levenberga-Marquardta (najlepsza, zastąpienie H(W) przez aproksymację G(W) z reguloaryzacją)
Dobór współczynnika uczenia η Stały współczynnik uczenia W praktyce jeśli jest stosowany to jest on wyznaczany niezależnie dla każdej warstwy (n i -liczba wejść i-tego neuronu) Adaptacyjny dobór wsp. Uczenia Przyjmując jako błąd uczenia oraz η (i+1), η i współczynniki uczenia w iterazji i oraz i+1 oraz odpowiednio błąd uczenia ε (i+1), ε i, k w dopuszczalny wzrost wartości wsp η if then else Gdzie ρ d <1 (np. 0.7) oraz ρ i >1 (np. 1.05) Żródło rysunku i wzorów: Ossowski, Sieci neuronowe w ujęciu algorytmicznym, WNT
Dobór współczynnika uczenia η (inne metody) Dobór wsp. uczania przez minimalizację kierunkową Reguła delta-bar-delta doboru wsp. uczenia
Inicjalizacja wag Inicjalizacja wag wpływa na rozwiązanie zależy w którym miejscu funkcji powierzchni funkcji celu zaczniemy optymalizację Losowa PCA W praktyce zastosowanie metody wielostartu Rys. M. Kordos Search-based Algorithms for Multilayer Perceptrons PhD
Metody optymalizacji globalnej Dotychczasowe metody mają charakter lokalny (optymalizujemy w obrębie najbliższych rozwiązań) Metody globalne patrzą na problem całościowy i całościowo optymalizują sieć. Optymalizacja globalna to metody optymalizacji stochastycznej symulowane wyżarzania, algorytmy genetyczne i ewolucyjne
Przykład symulowane wyżarzanie 1. Start procesu z rozwiązania początkowego W, temperatura T=T max 2. Dopóki T>0 wykonaj L razy Wybierz nowe rozwiązanie W w pobliżu W Oblicz funkcję celu =E(W )-E(W) Jeżeli <= 0 to W=W W przeciwnym przypadku ( >0) jeżeli e - /T >R to W=W (gdzie R to liczba losowa z przedziału [0,1]) 3. Zredukuj temperaturę T=rT (r współczynnik redukcji z przedziału [0,1]) 4. Po redukcji temperatury T do 0 ucz metodą gradientową
Sieci typu LVQ i klasyfikator knn
Dygresja - metody bazujące na podobieństwie Podstawowa zasada: Elementy podobne powinny należeć do tej samej klasy -> inspiracja kognitywistyczna Problem: co to znaczy podobne i jak zdefiniować podobieństwo? W.Duch Similarity based methods a general framework for classification approximation and association. Control and Cybernetics, 2000 Podobieństwo to różne miary odległości lub ich odwrotności (miary podobieństwa)
Klasyfikator najbliższego sąsiada Uczenie: Zapamiętaj położenie wszystkich wektorów zbioru treningowego Testowanie: Dla każdego wektora testowego wyznacz jego odległość do wszystkich wektorów zbioru treningowego. Wybierz spośród wszystkich odległości wektor najbliższy (najbardziej podobny) danego wektora testowego Przypisz etykietę wektorowi testowemu równą etykiecie najbliższego sąsiada.
Klasyfikator najbliższego sąsiada Klasyfikator 1NN (1 najbliższego sąsiada ang. one nearest neighbor) ii = arg min c ( D( x p )) ( ) ( ), i D(x,p) odległość pomiędzy wektorami x i p ii = D i x arg max c x i S(x,p) podobieństwo pomiędzy wektorami x i p c p ii ( S ( x p )) c p ( ) ( ) ii, i
Podobieństwo a odległość Podobieństwo jest odwrotnością odległości: Metody transformacji odległości do podobieństwa i odwrotnie np.: S S ( α D x y ) x, y = exp, ( ) ( ) x, y ( ) = D 1 x, y + 1 ( )
Różne miary odległości ( x, y) ( ) ( x, y) n 2 2 D = x y E i i i= 1 n ( x, y) D = x y M i i i= 1 ( x y) D, = max x y C i i D α = x y α Mi i i i= 1 n Odległość Euklidesa Odległość Manhattan Odległość Czebyszewa Odległość Minkowskiego D H ( x, y) n = 0 xi = y 1 x y i= 1 i i i Odległość Hamminga D ( x,y ) n = i= 1 D D Odległość Heterogeniczna Mi H ( x y) ( x y), Jeżeli atrybut ciągy, Jeżeli atrybut symboliczny/binarny
Klasyfikator k najbliższych sąsiadów Klasyfikator knn (k najbliższych sąsiadów) Wyznacz odległości wektora testowego x do wszystkich przypadków zbioru treningowego. Znajdź k najbliższych sąsiadów Przeprowadź głosowanie klasy pomiędzy k najbliższymi sąsiadami, wybierz klasę najczęściej występującą Ewentualne konflikty rozwiąż losowo
Uwagi na temat knn Dokładność klasyfikatora 1NN na zbiorze treningowym zawsze = 100%!!! Gorzej działa w rzeczywistości, choć i tak dobrze W problemach klasyfikacyjnych nigdy nie używaj 2NN, bo w pobliżu granicy decyzji zawsze będzie konflikt podczas głosowania (jeden za, jeden przeciw) knn duży nakład obliczeniowy w przypadku dużych zbiorów treningowych (duża złożoność przy testowaniu)
Obszary Voronoi
Obszary Voronoi / Przykład 1NN
Wada 1NN
Przykład knn 1NN 3NN 2.5 2.5 2 2 1.5 1.5 1 1 0.5 0.5 0 0 0.5 1 1.5 2 2.5 0 0 0.5 1 1.5 2 2.5
Rozszerzenie knn wybór wektorów referencyjnych Algorytm knn można usprawnić poprzez: usunięcie ze zbioru prototypów (przechowywanych wektorów) przypadki błędne lub nietypowe Usunąć wektory leżące daleko od granicy gdyż one nie biorą czynnego udziału w procesie podejmowania decyzji
Przykład Przypadki błędne Wektory nieistotne
Algorytm ENN Autor Wilson. Metoda ta usuwa wszystkie wektory stanowiące szum w zbiorze danych treningowych. Dla każdego wektora wyznaczanych jest k najbliższych sąsiadów spośród zbioru uczącego, które użyte są do głosowania. Jeżeli wynikiem głosowania k sąsiadów jest błędna klasa, wówczas wektor taki zostaje oznaczony do usunięcia P = T\T, gdzie T jest zbiorem wektorów przeznaczonych do usunięcia. Rezultatem działania tego algorytmu jest usunięcie wektorów odstających oraz wektorów brzegowych, a jedyną wartością nastawną jest k (autor zaleca k = 3).
Algorytm ENN
Algorytm RENN i All knn RENN Modyfikacją algorytmu ENN jest metoda RENN (ang. repeated ENN), gdzie algorytm ENN jest wielokrotnie powtarzany aż do momentu, w którym żaden z wektorów nie jest już usuwany w wyniku działania algorytmu ENN. All knn algorytm All k-nn polega na porównywaniu wyników dla różnych wartości parametru k.
Algorytm RENN
Algorytm CNN Metoda ta należy do grupy przyrostowych. Rozpoczyna ona od losowo wybranego wektora jako prototypu P, następnie w pętli klasyfikuje pozostałe przypadki i jeżeli któryś zostaje błędnie sklasyfikowany przez aktualny zbiór prototypów jest on do niego dodawany P = P x. Procedura ta jest powtarzana aż wszystkie wektory zostają sklasyfikowane poprawnie.
Algorytm CNN
Inne metody RNN (Wilson/Martinez) DROP1-5 (Wilson/Martinez) Metody GE oraz RNG bazują bezpośrednio n stworzeniu i oczyszczeniu diagramu Voronoi Metody selekcji losowej/genetycznej/wspinaczki itp. Metody grupowania danych (klasteryzacji) Algorytm częściowo nadzorowanej klasteryzacji CFCM Bazują na CNN
Sieci LVQ a 1NN Usprawnienie 1NN redukcja liczby wzorców Zamiast wykorzystywać cały zbiór danych treningowych w 1NN, można wziąć tylko wybrane najważniejsze przypadki, ale które? Rozwiązanie: sieci typu LVQ Sieci LVQ szukają metodami optymalizacyjnymi najlepszego położenia wektorów wzorcowych
LVQ pojęcia Wektory kodujące (wzorce do których będziemy porównywali nasz wektor testowy) Miara odległości określa stopień podobieństwa do wektora testowego, w praktyce najczęściej odległość Euklidesa
Uczenie sieci LVQ1 Algorytm uczenia Określ liczbę wektorów kodujących Wylosuj położenie każdego z wektorów kodujących p i Dla danego wzorca uczącego x j znajdź najbliższy wzorzec kodujący, Dokonaj aktualizacji położenia wzorca zgodnie z zależnością Symbol (+) występuje gdy obydwa wzorce są z tej samej klasy wektor treningowy przyciąga wzorzec kodujący Symbol ( ) występuje gdy obydwa wzorce są z różnych klas wektor treningowy odpycha wzorzec kodujący Dokonaj aktualizacji wsp. uczenia α (z to numer iteracji)
Uczenie sieci LVQ2 Algorytm uczenia Dla danego wektora treningowego x j znajdź dwa najbliższe wektory kodujące Jeśli etykiety wektorów kodujących są zgodne z etykietą wektora treningowego aktualizuj położenie najbliższego wektora kodującego (jak LVQ1) Jeśli etykiety sąsiednich wektorów kodujących są różne, aktualizuj zgodnie z zależnością LVQ1 obydwa wektory kodujące (przyciągaj wektor zgodny, odpychaj niezgodny) (Lepsza dokładność niż LVQ1)
LVQ2.1 Algorytm identyczny z LVQ2 z tą różnicą iż najpierw realizowana jest weryfikacja czy wektor x wpada do okna zdefiniowanego jako Jeśli tak rób LVQ2, jeśli nie LVQ1 Gdzie w rozmiar okna d1 odległość wektora x od wzorca p 1 d2 odległość wektora x od wzorca p 2 s względna wielkość okna
LVQ3 Identyczny z LVQ2 z tą różnicą iż, jeśli obydwa najbliższe wektory kodujące są z tej samej klasy dokonaj aktualizacji w oparciu o zależność: Gdzie ε - stała zależna od rozmiaru okna w Celem LVQ3 jest nie tylko poprawna klasyfikacja ale również odtworzenie rozkładu danych uczących poprzez równomierny rozkład wektorów wzorcowych
OLVQ Optimized LVQ Uniezależnienie wartości wsp. Uczenia dla każdego wektora kodującego α i (z) wg. zależności aktualizacja wsp. uczenia następuje jedynie dla wektorów kodujących, których położenie zostało zaktualizowane Cel OLVQ - zapewnienie by wektory rzadko aktualizowane miały szansę wziąć większy udział w procesie uczenia rzadko aktualizowane mają większy wsp. Uczenia więc mogą bardziej radykalnie zmieniać swoje położenie
Problemy z sieciami LVQ Dobór liczby wektorów kodujących Algorytm Dyn LVQ Algorytmy przeszukiwania Algorytm wyścigu Inicjalizacja położenia wektorów kodujących Losowa Wstępna klasteryzacja Klasteryzacja nazworowana algorytm CFCM
Uczenie sieci radialnych (RBF)
Budowa sieci radialnej Lokalne odwzorowanie przestrzeni wokół neuronu MLP RBF
Budowa sieci radialnych Zawsze jedna warstwa ukryta
Budowa neuronu Neuron radialny powinien lokalnie (promieniście) odwzorowywać przestrzeń wokół swojego centrum Typowe neurony: Gaussowski Hardy ego Wielomainowy
Budowa neuronu radialnego
Trochę matematyki uczenie sieci radialnej Zależność przyjmując oznaczenie ϕ ji =G( x j -t i ) można zapisać jako funkcję liniową: Stąd wektor wag w można wyliczyć jako:
Trochę matematyki W praktyce, zwtkle k << n (liczba centrów k jest znacznie mniejsza od liczby wektorów treningowych n) więc macierz Φ jest prostokątna. Jak obliczyć Φ -1 Macierz pseudoodwrotna - Φ + =(Φ T Φ) -1 Φ T Wówczas: w = Φ + y rozwiązanie to jest równoważne minimalizacji błędu średniokwadratowego
Trzy fazy uczenia sieci RBF 1. Faza 1 Uczenie jedynie wektora wagowego. 2. Faza 2 Niezależne uczenie wektora wagowego i selekcja centrów funkcji bazowych 3. Faza 3 Nadzorowane i wspólne (jednoczesne) uczenie wektorów wagowych i centrów oraz parametrów funkcji bazowych
Faza 1 Najczęściej stosowane rozwiązanie: w = Φ + y Uwzględniając regularyzację Funkcja kosztu (błąd średnikwadratowy z rtegularyzacją): Czynnik regularyzacyjny Wówczas: w = Gy, przy czym G =(Φ +λ1) -1
Faza 2 Niezależne uczenie centrów funkcji radialnych oraz wektorów wagowych Metody wyznaczania położenia funkcji radialnych Losowy wybór centrów funkcji radialnych Wykorzystanie algorytmów grupowania danych Wykorzystanie algorytmu LVQ Wykorzystanie drzew decyzji
Faza 2 Losowy wybór centrów funkcji radialnych Problem regresyjny/klasyfikacyjny Określ liczbę funkcji radialnych k Wylosuj bez zwracania k wektorów zbioru treningowego Użyj tych wektorów jako centrów funkcji radialnej Problem klasyfikacyjny Określ liczbę funkcji radialnych k i dla każdej z klas Wylosuj bez zwracania k i wektorów z przypadków zbioru treningowego należących do i-tej klasy Użyj tych wektorów jako centrów funkcji radialnej Naucz wektor wagowy wg zależności z fazy 1
Faza 2 Losowy wybór centrów funkcji radialnych 5 4 3 2 1 0-1 -2-3 -4-5 -5-4 -3-2 -1 0 1 2 3 4 5
Faza 2 Algorytmy grupowania Problem regresyjny/klasyfikacyjny 1. Dokonaj na całym zbiorze danych procesu grupowania danych. 2. Traktuj centra klasterów jako położenie funkcji radialnych 3. Dla metod grupowania typu GMM, FCM itp. Dokonaj estymacji macierzy kowariancji Problem klasyfikacyjny 1. Dokonaj grupowania danych osobno dla przypadków należących do każdej z klas 2. Traktuj centra klasterów jako położenie funkcji radialnych 3. Dla metod grupowania typu GMM, FCM itp. dokonaj estymacji macierzy kowariancji Naucz wektor wagowy wg zależności z fazy 1
Faza 2 Algorytmy grupowania 5 4 3 2 1 0-1 -2-3 -4-5 -5-4 -3-2 -1 0 1 2 3 4 5
Czego nauczył się algorytm 5 4 3 2 1 0-1 -2-3 -4-5 -5-4 -3-2 -1 0 1 2 3 4 5
Faza 2 Algorytm LVQ Tylko problemy klasyfikacyjne 1. Przeprowadź uczenie sieci typu LVQ 2. Wydobądź wektory kodujące z sieci LVQ 3. Traktuj wektory kodujące jako centra funkcji radialnych 4. Naucz wektor wag korzystając z fazy 1
Faza 2 Algorytm LVQ 5 4 3 2 1 0-1 -2-3 -4-5 -5-4 -3-2 -1 0 1 2 3 4 5
Dobór szerokości funkcji radialnych W typowych przypadkach wówczas σ jest wspólne dla wszystkich neuronów (zwykle stosowane dla fazy 1 i 2) Sieć można też rozbudować i zdefiniować σ osobno dla każdego neuronu (np.. Tak by spełnić zasadę pokrywania całej przestrzeni danych z minimalnym progiem) Można też poddać dalszej modyfikacji, tak by w ramach pojedynczego neuronu każdy kierunek miał swoją własną wagę (stosowane np.. Przy metodzie uczenia drzewem) Można też zastosować macierz kowariancji wykorzystując informacje z algorytmów grupowania takich jak FCM, GMM
Faza 2 Algorytm drzew decyzji
Faza 2 Algorytm drzew decyzji Położenie funkcji radialnych
Faza 2 Algorytm drzew decyzji 1. Dokonaj uczenia drzewa decyzji 2. Dla każdego z niezależnych obszarów wyznaczonych przez drzewo wyznacz jego środek i umieść w nim centrum funkcji radialnej 3. Wpisz do tego obszaru funkcję radialną tak by była styczna z jego bokami (dokonaj tego modyfikując odpowiednie wagi odległości) 4. Naucz wektor wag korzystając z fazy 1
Faza 3 Jednoczesne uczenie wektorów wagowych oraz położenia funkcji radialnych 1. Dokonaj uczenia sieci RBF w oparciu o Fazę 2 2. Uzyskane wyniki traktuj jako inicjalizację sieci przed uczeniem gradientowym 3. Ucz gradientowo wg. zależności k a a a ( )( ) w = η φ x y d jl j l l a= 1 k a x p p = η φ x w y d n a i ij a a ( ) 2 ( ) ij j jb b b a= 1 σ ij b= 1 k a x p σ = η φ 2 ( ) ( ) n a i ij a a x 3 w ( y d ) ij j a jb b b a= 1 σ ij b= 1 Wagi neuronu. wyj. Położenie centrów Wagi odległości j-tego centrum
Inne metody uczenia nadzorowanego
SVM
Inne metody uczenia nadzorowanego SVN Drzewa decyzji Systemy regułowe Klasyczne Rozmyte Metody zbiorów przybliżonych Metody Bayessowskie Klasyfikator Naiwny Bayessowski Metody okien Parzena RVM
Metody grupowania danych
Sieci typu SOM
Sieci rekurencyjne
Wstępne przetwarzanie danych
Metody selekcji cech
A po co to Często mamy do dyspozycji dane w postaci zbioru cech lecz nie wiemy które z tych cech będą dla nas istotne. W zbiorze cech mogą wystąpić cechy redundantne niosące identyczną informację jak istniejące już cechy Cel wybranie ze zbioru dostępnych cech tych które nas interesują Interesujące cechy to takie, których kombinacja pozwala na możliwie najlepszą klasyfikację lub regresję!
8 7 6 5 Przykład z danymi iris 4 3 2 6 4 2 2 1 0 5 6 7 8 2 3 4 2 4 6 0 1 2
Podział metod selekcji cech Ze względu na charakter problemu Nadzorowane Nienadzorowame Ze względu na relację z innymi algorytmami nadrzędnymi Filtry Wrappery (opakowane) Frapery kombinacja filtrów i Wrapperów Metody wbudowane
Filtry cech Filtry cech to taka grupa metod, która autonomicznie podejmuje decyzję, które z cech będą istotne dla późniejszego procesu uczenia. Decyzja ta podejmowana jest na podstawie niezależnego od klasyfikatora współczynnika takiego jak informacja wzajemna lub dywergencja Kullbacka Leiblera
Informacja wzajemna i dywergencja Kullbacka Leiblera Informacja wzajemna (ang. Mutual Information) Dla zmiennych o rozkładach dyskretnych p(x) i q(x) Dla zmiennych ciągłych o rozkładach p(x) i q(x) Dywergencja Kullbacka Leiblera (ang. Kullback Leibler divergence) Dla zmiennych o rozkładach dyskretnych p(x) i q(x) Dla zmiennych ciągłych o rozkładach p(x) i q(x)
Metody opakowane Metody opakowane to grupa metod w której występuje sprzężenie zwrotne pomiędzy elementem decyzyjnym (np.. Siecią neuronową) a algorytmem selekcji cech. Dzięki temu podzbiór cech optymalizowany jest pod kątem konkretnego klasyfikatora
Metody filtrów Zalety Uniwersalność uzyskany podzbiór cech jest niezależny od klasyfikatora, dzięki czemu teoretycznie możemy użyć dowolny klasyfikator W problemach medycznych jak analiza DNA zależy nam na znalezieniu genów odpowiedzialnych za pewne cechy, nie chcemy by wynik był zależny od użytej sieci neuronowej Szybkość jesteśmy niezależni od metody klasyfikacyjnej dzięki czemu złożoność obliczeniowa nie wpływa na szybkość i wydajność tego algorytmu Uniwersalność - algorytm tego typu może być wykorzystany do każdego problemu klasyfikacyjnego Wady Konieczność estymacji wielowymiarowych rozkładów prawdopodobieństwa
Metody opakowane Zalety Wybrany podzbiór cech jest dostosowany do wymagań lub charakteru algorytmu decyzyjnego (sieci neuronowej itp) Większa dokładność niż metod filtrów Uniwersalność - algorytm tego typu może być wykorzystany do każdego problemu klasyfikacyjnego Wady Często większa złożoność obliczeniowa
Kombinacje filtrów i metod opakowanych Wykorzystuje się algorytm filtrów do selekcji cech, jednakże parametry filtru dostraja się na podstawie metody opakowującej. Właściwości Szybkość Często większa dokładność niż metod filtrów, lecz mniejsza niż metod opakowanych Uniwersalność - algorytm tego typu może być wykorzystany do każdego problemu klasyfikacyjnego
Metody wbudowane Metody wbudowane to taka grupa algorytmów które wykorzystują pewne cechy algorytmów uczenia dokonując automatycznej selekcji cech na etapie uczenia sieci neuronowej lub innego algorytmu decyzyjnego Właściwości Szybkość selekcja cech realizowana jest podczas procesu uczenia dzięki czemu nie musimy dokonywać żadnych dodatkowych obliczeń Dokładność metody te są zaprojektowane pod kątem konkretnego algorytmu Brak uniwersalności metody te można wykorzystywać jedynie dla danego algorytmu
Algorytmy przeszukiwania
Selekcja w przód Startuje z pustego zbioru cech i stopniowo zwiększ jego rozmiar aż do osiągnięcia maksimum funkcji oceniającej (np.. MI lub max. dokładność sieci neuronowej) Złożoność obliczeniowa: n 2
Selekcja w tył Startuje z pełnego zbioru cech i stopniowo usuwa z niego najmniej użyteczne cechy aż do osiągnięcia maksimum funkcji oceniającej (np.. MI lub max. dokładność sieci neuronowej) Złożoność obliczeniowa: n 2
Inne Selekcja z wykorzystaniem algorytmów genetycznych Selekcja typu i w przód j w tył i odwrotna Dadajemy algorytmem selekcji w przód i nowych cech po czym z rezultatu usówamy j najmniej użytecznych. Warunek i>j Z całego podzbioru usuwamy i najmniej istotnych cech, po czym dodajemy j nowych. Warunek i>j
Metody rankingowe
Metody rankingowe Metody rankingowe są bardzo wydajnymi (szybkimi) metodami selekcji cech Stosowane są jako filtry wówczas należy podać liczbę wybranych cech jako wejście algorytmu Stosowane jako frappers (kombinacja metod filtrów i opakowanych) wówczas liczba wybranych cech optymalizowana jest przez algorytm decyzyjny (np.. Sieć neuronową) Wady brak stabilności
Metody rankingowe - algorytm
Współczynniki rankingowe Znormalizowany zysk informacji (ang. Normalized information gain) lub asymetryczny współczynnik zależności (ang. asymmetric dependency coecient, ADC) znormalizowany względny zysk informacyjny (ang. normalized gain ratio) kryterium DML Gdzie: H(c) entropia klasy H(f) entropia cechy MI(c,f) informacja wzajemna Pomiędzy cechą i klasą
Dziękuję za uwagę