Metody sztucznej inteligencji

Transkrypt

Metody sztucznej inteligencji
Metody sztucznej
inteligencji
dr inż.Marcin Blachnik
[email protected]
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:
wi – i-ta waga
xi – i-te neuronu (dendryt)
z – wyjście neuronu (akson)
b – wolny dendryt do niczego nie podłączony
Budowa neuronu – neuron nieliniowy
typu perceptron
Gdzie:
wi – i-ta waga
xi – 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  z 2 
f ( z ) = exp  − 2 
 2σ 
f ( z) = z 2 + σ 2
Wielomianowy
f ( z) = z 2 + σ 2
Hardyego
f ( z) =
Gdzie
1
z2 + σ 2
z = x - t np. z =
∑(x − t )
i
i
i
2
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:
Nh(uh) – operator przetwarzania neuronowego h-tej warstwy
Wh – 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=[y1, y2, … yn]T
u – wektor wartości wejściowych u=[u1, u2, … um]T
Fwyj – operator aktywacji neuronów warstwy wyjściowej
Nwyj – operator przetwarzania neuronów warstwy wyjściowej
Wwyj – 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
N1 – N4 – bloki reprezentujące grupy neuronów
Sieci ze sprzężeniem zwrotnym
Np.. Sieć Hopfielda,
Gdzie:
k – numer kolejnej iteracji
bi – sygnał sterowania
zewnętrznego
wij – 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)
1 n
2
e = ∑ ( yi − di )
n i =1
(RMSE)
Błąd średni (ME)
1 n
2
e=
y
−
d
( i i)
∑
n i =1
e=
∑ y −d
i
i
i
n
Znormalizowany błąd
średniokwadratowy (NMSE)
e=
1 n
2
y
−
d
( i i)
∑
n i =1
σ 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ą
(*) – „Sieci neuronowe w ujęciu algorytmicznym”, Ossowski
Błąd uczenia w funkcji
VCdim (złożoności modelu)
Im model bardziej złożony
tym większy błąd
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
walidujący
Zbiór testowy
Zbiór treningowy
Zbiór Uczący
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 Rj
Naucz model Hj na zbiorze Rj i wyznacz błąd
modelu na tym zbiorze REj
Wyznacz błąd XEj modelu Hj na całym zbiorze
danych X
Wyznacz optymizm optj=XEj-Rej
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
x0 – xn – wejścia (ilość analizowanych zmiennych)
w0 – wn – wagi neuronu
Funkcja aktywacji typu skok (-1, 1)
g(x) – wartość wyjściowa neuronu
x = [x0 – xn]T
Zadanie – podział na dwie klasy
g(x) = 0 – granica decyzji
Szukamy takiej prostej w i w0 która spełnia
zależność:
wTx(1)+w0 = wTx(2)+w0
5
g(x)=0
4
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!
Funkcja celu
Gdzie
J ( w ) = ∑ ( − w T x)
x∈Ω
w x = w1 x1 + w2 x2
wtx – iloczyn skalarny wektorów:
Ω-zbiór wektorów x które zostały błędnie sklasyfikowane
T
+ w3 x3 . + .. + wn xn
Algorytm:
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
t0=t;
for i=0:m
if (C(xi)=1) and (wTxi<0) => w=w+xi; t=t+1
if (C(xi)=-1) and (WTxi>0) => w=w-xi; t=t+1
end
until t0=t
Algorytm Rosenblatta
Gwarantuje zbieżność gdy klasy (-1 i 1) są liniowo separowalne!
Funkcja celu
Gdzie
J ( w ) = ∑ ( − w T x)
x∈Ω
w x = w1 x1 + w2 x2
wtx – iloczyn skalarny wektorów:
Ω-zbiór wektorów x które zostały błędnie sklasyfikowane
T
+ w3 x3 . + .. + wn xn
Algorytm:
Zbieżny jedynie dla danych
liniowo separowanych
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
t0=t;
for i=0:m
if (C(xi)=1) and (wTxi<0) => w=w+xi; t=t+1
if (C(xi)=-1) and (WTxi>0) => w=w-xi; t=t+1
end
until t0=t
Poprawa zbieżności i stabilności
Funkcja kosztu perceptronu:
J ( w ) = ∑ ( − w x)
T
Algorytm:
x∈Ω
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 ) = 1 t + 1
t=0
w = generuj losowo
for t=1:max_iter
for i=0:m
if (C(xi)=1) and (wTxi<0) => w=w+η(t)xi
if (C(xi)=-1) and (WTxi>0) => w=w-η(t)xi
end
end
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
zamiast: w t x ≤ 0
Funkcja kosztu:
J (w ) = ∑
x∈Ω
Stąd pochodna:
wt x ≤ b
decyzyjna:
∇J ( w ) = ∑
(w
T
x − b)
2
2
x
wT x − b
x
x∈Ω
2
x
I zasada aktualizacji wartości wag:
wt +1 = wt + η ( t ) ∑
x∈Ω
b − wT x
x
2
x
Uczenie neuronu poprzez minimalizację
błędu średniokwadratowego
Rozwiązanie problemów nie separowalnych!
 x1,1 x1,2 x1, n   w1   y1 
Zapisując:

   
x
x
x
2,2
2, n   w2  =  y2  ⇔ Xw = y
 2,1
 xm ,1 xm,2 xm, n   wn   yn 
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ć:
m
2
J ( x ) = ( wT x − y ) = ∑ ( wT x − y )
Stąd pochodna:
i =1
∇J = ∑ 2 ( wT xi − di ) yi = 2YT ( Yw − d )
I ostatecznie:
m
i =1
w = ( X X ) XT d
T
−1
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 (k2k)/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ą
(k2-k)4m2/(2k2)=2(1-1/k)m2 ☺
Klasa – reszta
Potrzebujemy k klasyfikatorów – liniowa zależność w
funkcji liczby klasyfikatorów ☺
ale tutaj całkowita złożoność jest:
km2 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
M
1
f1 ( z ) =
1 + exp ( − β z )
f 2 ( z ) = tgh ( β z )
f3 ( z ) = 2 f1 ( z ) − 1
z = ∑ wi xi + w0
i
Różniczkowalność funkcji sigmoidalnej
Pochodne funkcji aktywacji
df1 ( x )
= β f1 ( x ) (1 − f1 ( x ) )
dx
df 2 ( x )
= β (1 − f 22 ( x ) )
dx
df3 ( x )
= 2 β f1 ( x ) (1 − f1 ( x ) )
dx
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
1 M
2
E = ∑ ( yi − 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ć
(
1 n M
E = ∑∑ yi ( x j ) − di ( x j )
2 j =1 i =1
)
2
Inne odmiany funkcji celu
Funkcja z normą L1
1 M
E = ∑ yi − di
2 i =1
Minimalizacja wszystkich błędów równomiernie
Funkcja z normą wyższych rzędów
1 M
2K
E = ∑ ( yi − di )
2 i =1
Minimalizacja największych błędów (małe błędy stają
się nie istotne)
Inne odmiany funkcji celu. CD.
Kombinacja dwóch powyższych (Karayiannis):
M
1 M
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
φ (a) =
Dla dużych β
1
β
ln ( cosh ( β a ) )
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)
W ( k + 1) = W ( k ) + ∆W
∆W = η p (W )
η- współczynnik ucenia
p(W) – kierunek i wartość zmian wektora W
Algorytm wstecznej propagacji błędu
1.
2.
3.
4.
Analiza sieci neuronowej o zwykłym kierunku
przepływu sygnałów. Podanie na wejście danego
wektora xi i wyznaczenie odpowiedzi każdego z
nauronów dla każdej z warstw (odpowiednio di dla
wyjściowej i si dla ukrytej).
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 (yi-di)
Uaktualnienie wag odbywa się na podstawie
wyników uzyskanych w punkcie 1 i 2 wg.
zależności
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:
vi – 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 x1 x2 … xN]T i odpowiednio v=[1 v1 v2 … vK]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:
δ
(2)
i
= ( yi − di )
df ( ui(2) )
dui(2)
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:
η - wsp. uczenia
Żródło rysunku i wzorów: Ossowski, Sieci neuronowe w ujęciu algorytmicznym”, WNT
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(Wk)=0 i H(Wk) 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 Wk)
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 (ni-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 , kw – 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.
2.
Start procesu z rozwiązania początkowego W,
temperatura T=Tmax
Dopóki T>0 wykonaj L razy
3.
4.
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])
Zredukuj temperaturę T=rT (r –współczynnik
redukcji z przedziału [0,1])
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)
D
ii = arg min ( D ( x, pi ) )
i
c ( x ) → c ( pii )
D(x,p) – odległość pomiędzy wektorami x i p
ii = arg max ( S ( x, pi ) )
i
c ( x ) → c ( pii )
S(x,p) – podobieństwo pomiędzy wektorami x i p
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 ( x, y ) = exp − D ( x, y )
1
S ( x, y ) =
D ( x, y ) + 1
α
)
Różne miary odległości
n
DE ( x, y ) = ∑ ( xi − yi )
2
2
Odległość Euklidesa
i =1
n
DM ( x, y ) = ∑ xi − yi
Odległość Manhattan
i =1
DC ( x, y ) = max xi − yi
n
DMi ( x, y ) = ∑ xi − yi
α
Odległość Czebyszewa
α
i =1
0 ⇒ xi = yi
DH ( x, y ) = ∑ 
i =1 1 ⇒ xi ≠ yi
Odległość Minkowskiego
n
Odległość Hamminga
Odległość Heterogeniczna
Jeżeli atrybut ciągy
 DMi ( x, y )
D ( x, y ) = ∑ 
i =1 
 DH ( x, y ) Jeżeli atrybut symboliczny/binarny
n
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)
Bazują na CNN
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
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 pi
Dla danego wzorca uczącego xj 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 xj 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 p1
d2 – odległość wektora x od wzorca p2
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(||xj-ti||) 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
2.
Faza 2
3.
Uczenie jedynie wektora wagowego.
Niezależne uczenie wektora wagowego i
selekcja centrów funkcji bazowych
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 ki dla każdej z klas
Wylosuj bez zwracania ki 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.
2.
3.
4.
Przeprowadź uczenie sieci typu LVQ
Wydobądź wektory kodujące z sieci LVQ
Traktuj wektory kodujące jako centra
funkcji radialnych
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.
2.
3.
4.
Dokonaj uczenia drzewa decyzji
Dla każdego z niezależnych obszarów
wyznaczonych przez drzewo wyznacz jego
środek i umieść w nim centrum funkcji
radialnej
Wpisz do tego obszaru funkcję radialną tak
by była styczna z jego bokami (dokonaj
tego modyfikując odpowiednie wagi
odległości)
Naucz wektor wag korzystając z fazy 1
Faza 3
Jednoczesne uczenie wektorów wagowych oraz
położenia funkcji radialnych
1.
2.
3.
Dokonaj uczenia sieci RBF w oparciu o Fazę 2
Uzyskane wyniki traktuj jako inicjalizację sieci
przed uczeniem gradientowym
Ucz gradientowo wg. zależności
∆w jl = η ∑ φ j ( x a )( yla − dla )
k
Wagi neuronu
wyj.
.
a =1
∆pij = η ∑ φ j ( x
k
a
a =1
∆σ ij = η ∑ φ j ( x
)
k
a =1
a
a
xia − pij
σ ij2
)
(x
a
i
∑w (y
n
jb
b =1
− pij )
σ ij3
2
a
b
− dba )
a
a
w
y
−
d
(
∑ jb b b )
Położenie centrów
n
b =1
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: n2
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: n2
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ę