Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Nelineární klasifikátory. obsah: –XOR problém –dvouvrstvý perceptron –třívrstvý perceptron –algoritmy založené na přímé klasifikaci trénovací množiny.

Podobné prezentace


Prezentace na téma: "Nelineární klasifikátory. obsah: –XOR problém –dvouvrstvý perceptron –třívrstvý perceptron –algoritmy založené na přímé klasifikaci trénovací množiny."— Transkript prezentace:

1 Nelineární klasifikátory

2 obsah: –XOR problém –dvouvrstvý perceptron –třívrstvý perceptron –algoritmy založené na přímé klasifikaci trénovací množiny „tiling“ algoritmus –algoritmus zpětného šíření –zobecněný lineární klasifikátor polynomiální klasifikátor

3 Nelineární klasifikátory nyní se budeme zabývat problémy, které nejsou lineárně separabilní –tedy lineární klasifikátor nepovede k uspokojivým výsledkům –pokusíme se vyjít od problému lineárního klasifikátoru a rozšířit jej, aby uměl pracovat i s nelineárně separabilními třídami nejjednodušší nelineárně separabilní problém je XOR funkce => neexistuje jediná nadrovina (přímka), která tyto dvě třídy odděluje

4 Nelineární klasifikátory na rozdíl od funkce XOR jsou funkce AND a OR lineárně separabilní => pro tyto funkce lze najít perceptron, který je klasifikuje –na obrázku je perceptron pro funkci OR

5 Klasifikace více nadrovinami k vyřešení problému XOR se pokusíme použít dvě nadroviny (místo jediné): g 1 (x)=0 a g 2 (x)=0 => nyní lze třídy A a B separovat třída A... (+) část z g 1 (x) (–) část z g 2 (x) třída B... obráceně dostali jsme 2 fáze klasifikace –1. fáze spočteme pozici příznakových vektorů x s ohledem na každou z klasifikačních nadrovin –2. fáze výsledky první fáze spojíme dohromady a najdeme pozici x s ohledem na všechny klasifikační nadroviny

6 Klasifikace více nadrovinami – 1. fáze 1. fáze pro problém XOR: –použijeme 2 perceptrony –perceptrony budou mít vstupy x 1 a x 2 a příslušné váhy –výstup i-tého perceptronu je y i = f (g i (x)) pro i = 1, 2 –v tabulce jsou shrnuty hodnoty y i pro všechny možné vstupy: => 1. fáze je mapování vstupního vektoru x do nového vektoru y = (y 1,y 2 )

7 Klasifikace více nadrovinami – 2. fáze 2. fáze pro problém XOR: –výsledky první fáze jsou spojovány dohromady –rozhodování je prováděno na transformovaných datech třída A... y 1 = (1,0) třída B... y 2 = (0,0) a y 3 = (1,1) => tyto transformované vzory lze snadno oddělit jedinou nadrovinou g(y) => nelineárně separabilní problém jsme namapovali na lineárně separabilní problém XOR problém lze vyřešit 3 perceptrony, které jsou uspořádány do tzv. dvouvrstvého perceptronu –jednotlivé dělicí nadroviny: g 1 (x) = x 1 + x 2 – 1/2 = 0 g 2 (x) = x 1 + x 2 – 3/2 = 0 g(y) = y 1 – y 2 – 1/2 = 0

8 Dvouvrstvý perceptron struktura dvouvrstvého perceptronu: jednotlivé vrstvy: –vstupní vrstva počet jednotek odpovídá dimenzi vzorů předložena data a ty se jen rozdistribuují do dalších vrstev (nic nepočítají) –skrytá vrstva realizuje první fázi –výstupní vrstva realizuje druhou fázi pro jednoduchost se omezíme na 1 výstupní neuron (lze snadno zobecnit)

9 Dvouvrstvý perceptron – skrytá vrstva skrytá vrstva –provede mapování vstupního prostoru na vrcholy jednotkové hyperkostky H p v p- dimenzionálním prostoru –mapování vstupního prostoru na vrcholy hyperkostky se dosáhne vytvořením p nadrovin –každá nadrovina je tvořena jedním perceptronem ve skryté vrstvě –výstup skrytého neuronu je 0 nebo 1

10 Dvouvrstvý perceptron – skrytá vrstva na obrázku je příklad tří protínajících se nadrovin –i-tá složka ve vrcholu odpovídá pozici oblasti s ohledem na i-tou nadrovinu g i –např. vrchol 001 odpovídá oblasti, která je (+) poloprostoru nadroviny g 1, (–) poloprostoru g 2 a (+) poloprostoru g 3 skrytá vrstva: –skrytá vrstva rozdělí l-dimenzionální vstupní prostor do mnohostěnů, které jsou dány průniky nadrovin –všechny vektory uvnitř jednoho mnohostěnu jsou mapovány na jeden vrchol hyperkostky

11 Dvouvrstvý perceptron – výstupní vrstva výstupní vrstva –zatím uvažujeme jen jeden výstupní perceptron –realizuje další nadrovinu, která rozdělí hyperkostku na 2 části příklad: –třída A... oblasti namapované na vrcholy 000, 001, 011 –třída B... oblasti namapované na vrcholy 010, 100, 110, 111 => nadrovina oddělující tyto třídy má tvar: –y 1 – y 2 – y 3 +0,5 = 0 a je realizována výstupním neuronem

12 Dvouvrstvý perceptron – výstupní vrstva jiný příklad: –třída A... oblasti namapované na vrcholy 000, 111, 110 –třída B... zbytek => není možné sestrojit jedinou nadrovinu, která třídy oddělí dvouvrstvý perceptron –umí separovat třídy, které jsou sjednocením mnohostěnných oblastí –ale neumí separovat každé sjednocení mnohostěnných oblastí pozn. –existují vrcholy, které neodpovídají žádně mnohostěnné oblasti (např. 101).... virtuální mnohostěny –tyto oblasti nemají vliv na klasifikaci

13 Třívrstvý perceptron dvouvrstvý perceptron: –neumí separovat třídy, které jsou libovolným sjednocením mnohostěnných oblastí –ekvivalentní problém jako perceptron versus XOR => přidáme další vrstvu => třívrstvý perceptron třívrstvý perceptron: –zvládne separovat třídy, které jsou libovolným sjednocením mnohostěnných oblastí

14 Třívrstvý perceptron – skryté vrstvy předpoklad: –nechť třída A je sjednocení J mnohostěnných oblastí a třída B jsou ostatní oblasti 1. skrytá vrstva –má p neuronů –provede mapování vstupního prostoru na vrcholy jednotkové hyperkostky H p v p- dimenzionálním prostoru 2. skrytá vrstva –pro třídu A potřebujeme J neuronů ve 2. skryté vrstvě –každý neuron realizuje jednu nadrovinu, která izoluje právě jediný vrchol hyperkostky na jedné straně nadroviny bude vybraný vrchol hyperkostky na druhé straně budou zbylé vrcholy hyperkostky výstupní vrstva –pro jednoduchost uvažujeme jen 1 výstupní perceptron –výstupní neuron realizuje OR-bránu pro jednotlivé třídy

15 Třívrstvý perceptron – činnost sítě 1. skrytá vrstva –provede mapování vstupního prostoru na vrcholy jednotkové hyperkostky H p v p- dimenzionálním prostoru 2. skrytá vrstva –vstupní vektor je ze třídy A jeden z neuronů ve 2. skryté vrstvě dá výstup 1 ostatních J-1 neuronů ve 2. skryté vrstvě dá výstup 0 –vstupní vektor je ze třídy B všechny neurony ve 2. skryté vrstvě dají 0 výstupní vrstva –výstupní neuron realizuje OR-bránu pro jednotlivé třídy výstup bude 1 pro třídu A výstup bude 0 pro třídu B

16 Třívrstvý perceptron – shrnutí struktura sítě –vstupní vrstva propaguje data do sítě –1. skrytá vrstva vytváří nadroviny –2. skrytá vrstva vytváří oblasti –výstupní vrstva vytváří třídy zobecnění struktury na více tříd –výstupní vrstva bude mít více neuronů, které realizují funkci OR pro každou třídu

17 Třívrstvý perceptron – praxe třívrstvý perceptron má schopnosti separovat libovolné sjednocení mnohostěnných oblastí –v praxi ale máme jen množinu trénovacích dat a neznáme tvar oblastí –chceme algoritmus, který nám dá nastavení vah (popř. struktury sítě) podle trénovacích dat 2 základní techniky: 1. algoritmy založené na přímé klasifikaci trénovací množiny sít je vytvářena tak, aby správně klasifikovala všechna dostupná trénovací data 2. algoritmus zpětného šíření zvolíme si pevnou strukturu sítě a hledáme nastavení vah, abychom minimalizovali ztrátovou funkci sítě

18 Algoritmy založené na přímé klasifikaci trénovacích dat jsou to tzv. konstruktivní algoritmy –vyjdeme z malé sítě (která typicky není schopna řeši problém) –síť rozšiřujeme, dokud celá trénovací množina není správně klasifikována existující algoritmy: –Meza 1989 („tiling“ algoritmus), Frea 1990 přidávají vrtsvy do sítě –Kout 1994, Bose 1996 používají 1-2 skryté vrstvy přidávají neurony do těchto skrytých vrstev –některé algoritmy umožní vazby mezi libovolnými vrstvami (Frea 1990) –některé algoritmy povolí vazby mezi neurony v jedné vrstvě (Refe 1991) typický postup –dekompozice problému na menší problémy (které zvládne 1 neuron) a z nich sestavíme výsledné řešení

19 „Tiling“ algoritmus – Meza, 1990 algoritmus –většinou vytvoří síť s více skrytými vrstvami –popíšeme pro případ klasifikace do 2 tříd –množinu trénovacích dat označíme X –uvažujme tyto trénovací data

20 „Tiling“ algoritmus – krok 1 Krok 1 – vytváření 1. vrstvy –algoritmus začíná s jediným neuronem n(X) v 1. vrstvě... hlavní neuron –hlavní neuron je naučen podle přihrádkového algoritmu na trénovací množině X –po naučení se trénovací množina X rozdělí do dvou podmnožin X + a X – X + jsou vzory z X, které hlavní neuron klasifikuje 1 X – jsou vzory z X, které hlavní neuron klasifikuje 0 –když X + obsahuje vzory z obou tříd => přidáme další neuron n(X + )... pomocný neuron tento pomocný neuron n(X + ) je naučen jen pomocí trénovacích dat z X + –když X – obsahuje vzory z obou tříd => přidáme další pomocný neuron n(X – ) tento pomocný neuron n(X – ) je naučen jen pomocí trénovacích dat z X –

21 „Tiling“ algoritmus – krok 1 pomocný neuron n(X + ) je naučen na množině X + : pomocný neuron n(X – ) je naučen na množině X – : dostaneme: X ++ X+–X+– X –– X–+X–+

22 „Tiling“ algoritmus – krok 1 když některá z množin X ++ nebo X +– odpovídajících neuronu n(X + ) obsahuje vektory z obou tříd => pro danou množinu přidáme další pomocné neurony když některá z množin X –+ nebo X –– odpovídajících neuronu n(X – ) obsahuje vektory z obou tříd => pro danou množinu přidáme další pomocné neurony proces opakujeme, dokud pomocné neurony neklasifikují správně svojí trénovací množinu –trénovací množina je konečná => po konečném počtu kroků se proces zastaví => první vrstva bude mít 1 hlavní neuron a více pomocných neuronů lze ukázat, že žádné 2 vzory z různých tříd nebudou mít stejný výstup z první vrstvy

23 „Tiling“ algoritmus – krok 2 Krok 2 – vytváření 2. vrstvy –označme X 1 = {y; y = f 1 (x), pro všechna x z množiny X} kde f 1 je mapování implementované první vrstvou => množina X 1 je nyní trénovací množina pro 2. vrstvu –nyní použijeme postup v Kroku 1 a trénovací množinu X 1 a vytvoříme 2. vrstvu postup opakujeme –dokud nově vzniklá vrstva neobsahuje jen hlavní neuron, který klasifikuje správně příslušnou trénovací množinu

24 „Tiling“ algoritmus – závěr výsledná síť pro „náš“ příklad: Meza 1989 ukázal –vhodná volba vah mezi sousedními vrstvami zajistí, že každý nově přidávaný neuron bude klasifikovat správně všechny vektory, které klasifikoval správně hlavní neuron v „předchozí“ vrstvě, a navíc minimálně jeden další vektor => tedy v konečném počtu kroků síť bude správně klasifikovat celou trénovací množinu X

25 Algoritmus zpětného šíření obecný algoritmus na učení vrstevnatých sítí pevná architektura sítě –hledáme nastavení vah, které minimalizuje ztrátovou funkci budeme uvažovat obecnou vrstevnatou síť –síť je tvořena L vrstvami k 0 je počet vstupních jednotek k r je počet neuronů ve vrstvě r (r=1,...,L) –vstupní jednotky „nic nepočítají“, jen propagují informaci dál –všechny neurony mají stejnou aktivační funkci –aktivační funkce je spojitá a derivovatelná (místo skokové funkce) –trénovací vzory jsou dvojice ( x(i); y(i) ) pro i=1,...,n vstup požadovaný výstup

26 Algoritmus zpětného šíření – aktivační funkce aktivační funkce –aktivační funkce je spojitá a derivovatelná sigmoidální funkce kde a je strmost hyperbolický tangens pro hodnoty z intervalu (-1,+1) pokud začneme používat spojité aktivační funkce => mapování vektorů na vrcholy hyperkostky je neplatné nyní to bude ztrátová funkce, která bude určovat správnou klasifikaci

27 Algoritmus zpětného šíření – idea algoritmu idea algoritmu –během učení předložíme síti i-tý trénovací vzor x(i) –síť nám dá „svůj“ výstup ŷ(i) výstup sítě se liší od požadovaného výstupu y(i) –váhy se počítají tak, aby ztrátová funkce J byla minimalizována ztrátová funkce J závisí na y(i) a ŷ(i) pro i = 1,...,n –minimalizaci ztrátové funkce uděláme iterativně pomocí metody snižování gradientu –značení proměnných: w j r váhový vektor neuronu j ve vrstvě r (včetně prahu) v j r potenciál neuronu j ve vrstvě r = vážený součet vstupů do neuronu j y j r výstup neuronu j ve vrstvě r y j r = f(v j r ) aktivační funkce

28 Algoritmus zpětného šíření – metoda snižování gradientu základní krok iterace (změny váhového vektoru) kde w j r (new) je aktuální odhad váhového vektoru Δw j r je oprava váhového vektoru w j r ztrátovou funkci definujeme: –kde E(i) je chyba při rozpoznávání trénovací dvojice ( x(i); y(i) ) a síť dá výstup ŷ(i) –typicky se chyba na jednom vzoru E(i) definuje jako: tento člen zbývá spočítat

29 Algoritmus zpětného šíření – odvození potřebujeme spočítat člen k jeho spočtení použijeme řetízkové pravidlo řetízkové pravidlo dosadíme do (*) δ j r (i) umíme spočítat přímo výstup vrstvy r-1 (*)

30 Algoritmus zpětného šíření – zpětný krok pro spočtení δ j r (i) použijeme techniku zpětného šíření –pro výstupní vrstvu lze spočítat hodnotu δ j r (i) přímo –pro nevýstupní vrstvu r využijeme hodnoty spočtené ve vrstvě r+1 spočtení δ j r nastavení vah spočtení y j r

31 Algoritmus zpětného šíření – zpětný krok výstupní vrstva (r=L): nevýstupní vrstva (r

32 Algoritmus zpětného šíření – algoritmus 1.inicializace všech vah na malá náhodná čísla 2.dopředný výpočet pro každý trénovací vzor x(i) pro i=1,...,n spočteme (od nejnižších vrstev výše): potenciál každého neuronu v j r (i) výstup každého neuronu y j r (i) pro j=1,...,k r a r=1,...,L výstup L-té vrstvy je skutečný výstup sítě ŷ(i) 3.zpětný výpočet pro i=1,...,n a j=1,...,k r spočteme: následně spočteme ze vztahu (pro r = L, L-1,...2):

33 Algoritmus zpětného šíření – algoritmus 4.aktualizace vah pro r = 1,...,L a j = 1,...,k r aktualizujeme váhy 5.dokud nejsou splněny ukončovací podmínky, opakujeme krok 2 nejčastější ukončovací podmínka je „dokud celková ztráta neklesne pod danou mez“

34 Algoritmus zpětného šíření – poznámky konvergence je ovlivněna parametrem μ.... parametr učení –μ je velké rychlá konvergence snadno může přeskočit úzké globální minimum ztrátové funkce –μ je malé pomalá konvergence –je možné udělat parametr učení adaptivní minimalizace může skončit v lokálním minimu –nutná reinicializace a zopakování učení popsané učení je tzv. dávkové učení –existuje i online učení

35 Algoritmus zpětného šíření – klasifikace když je neuronová síť naučena, pak můžeme klasifikovat –to je krok 2 v algoritmu učení klasifikace: –předložíme neznámý vzor –zjistíme výstup sítě („odezva sítě na tento vzor“) –vzor je klasifikován do třídy, která je indikována výstupem

36 Zobecněný lineární klasifikátor u problému XOR jsme ukázali, že neurony ve skryté vrstvě provádí mapování –mapování převede původní (nelineárně separabilní) problém na transformovaný (lineárně separabilní) problém –mapování: x → y kde f(∙) je aktivační funkce a g 1 a g 2 je lineární kombinace vstupů na jednotlivých neuronech z tohoto pozorování vyjdeme a zobecníme ho

37 Zobecněný lineární klasifikátor předpoklady: –uvažujme l-dimenzionální příznakový vektor, který patří do jedné ze tříd A a B –třídy A a B jsou nelineárně separabilní –f 1 (∙),..., f k (∙) jsou nelineární funkce f i : R l → R pro i=1,...,k které definují mapování x є R l → y  R k cíl: zjistit, zda existuje hodnota k a funkce f i takové, že třídy A a B jsou lineárně separabilní v k-dimenzionálním prostoru vektoru y –chceme zjistit, zda existuje k-dimenzionální prostor, kde můžeme zkonstruovat nadrovinu w  R k : w T y + w 0 > 0 pro x  A w T y + w 0 < 0 pro x  B (*)

38 Zobecněný lineární klasifikátor − odvození předpokládáme, že v původním prostoru byly třídy A a B nelineárně separovatelné –nelineární hyperplocha g(x)=0 separuje třídy podmínky (*) jsou v podstatě ekvivalentní odhadu nelineární g(x) jako lineární kombinace funkcí f i (x) => problém odhadnutí funkce na základě vybraných interpolačních funkcí f i (x) => řeší numerická matematika když zvolíme funkce f i –„stačí“ spočítat váhy w i nadroviny v k-dimenzionálním prostoru => zobecněný lineární klasifikátor

39 Zobecněný lineární klasifikátor − odvození zobecněný lineární klasifikátor lze realizovat dvouvrstvou sítí –neurony mají různé aktivační funkce f i –první vrstva neuronů udělá mapování do prostoru vektoru y –druhá vrstva neuronů spočte nadrovinu klasifikace do c tříd –je nutné navrhnout c váhových vektorů w r r = 1,..,c jeden neuron pro každou třídu –r-tou třídu vybereme podle maximálního výstupu w r T ·y + w r0

40 Polynomiální klasifikátor příklad zobecněného lineárního klasifikátoru –funkce g(x) je aproximována pomocí polynomů nejvýše r-tého stupně (proměnné x) pro r = 2 dostaneme: –když x = (x 1,x 2 ) T, pak vektor y bude v obecném případě mít tvar –klasifikační plocha bude mít tvar => počet volných parametrů určuje hledanou dimenzi k

41 Polynomiální klasifikátor zobecnění pomocí na polynomy stupně r je přímé při zobecnění dostaneme součiny kde pro polynomy stupně r a l-dimenzionální vektory x dostaneme např. r = 10 a l = 10 => dostaneme k = 184,756 –tedy i pro středně velké vektory a stupně polynomů dostaneme obrovksý počet volných parametrů

42 Polynomiální klasifikátor − funkce XOR vrátíme se zpět k příkladu s funkcí XOR –definujeme vektor y (a tím definujeme funkce f i ): –vstupní vektory jsou namapovány na 3 vrcholy trojrozměrné jednotkové kostky (00) → (000) (11) → (111) (10) → (100) (01) → (010) (*)

43 Polynomiální klasifikátor − funkce XOR vrcholy kostky jsou oddělitelné nadrovinou (rovinou) do této rovnice dosadíme mapování (*) a dostaneme oddělující plochu => výsledná klasifikační funkce je


Stáhnout ppt "Nelineární klasifikátory. obsah: –XOR problém –dvouvrstvý perceptron –třívrstvý perceptron –algoritmy založené na přímé klasifikaci trénovací množiny."

Podobné prezentace


Reklamy Google