1 / 43

Nel ine ární klasifikátory

Nel ine ární klasifikátory. Nelineární klasifikátory. 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.

joben
Download Presentation

Nel ine ární klasifikátory

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Nelineární klasifikátory

  2. Nelineární klasifikátory • 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é): g1(x)=0 a g2(x)=0 => nyní lze třídy A a B separovat • třída A ... (+) část z g1(x) (–) část z g2(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 x1 a x2 a příslušné váhy • výstup i-tého perceptronu je yi= f (gi (x)) pro i = 1, 2 • v tabulce jsou shrnuty hodnoty yi pro všechny možné vstupy: => 1. fáze je mapování vstupního vektoru x do nového vektoru y =(y1,y2)

  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 ... y1 = (1,0) • třída B ... y2 = (0,0) a y3 = (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: g1(x) = x1 + x2– 1/2 = 0 g2(x) = x1 + x2– 3/2 = 0 g(y) = y1– y2– 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 Hp 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 gi • např. • vrchol 001 odpovídá oblasti, která je (+) poloprostoru nadroviny g1, (–) poloprostoru g2 a (+) poloprostoru g3 • 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: –y1 –y2 –y3 +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 Hp 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 Hp 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–: X++ dostaneme: 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 X1 = {y; y = f1(x), pro všechna x z množiny X} • kde f1 je mapování implementované první vrstvou => množina X1 je nyní trénovací množina pro 2. vrstvu • nyní použijeme postup v Kroku 1 a trénovací množinu X1 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ý neuronbude 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 • k0 je počet vstupních jednotek • kr 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í metodysnižování gradientu • značení proměnných: • wjr váhový vektor neuronu j ve vrstvě r (včetně prahu) • vjr potenciál neuronu j ve vrstvě r = vážený součet vstupů do neuronu j • yjr výstup neuronu j ve vrstvě r yjr = f(vjr) 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 wjr(new) je aktuální odhad váhového vektoru Δwjr je oprava váhového vektoru wjr • 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 (*) (*) umíme spočítat přímo δjr(i) výstup vrstvy r-1

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

  31. Algoritmus zpětného šíření – zpětný krok • výstupní vrstva (r=L): • nevýstupní vrstva (r<L): derivace aktivační funkce

  32. Algoritmus zpětného šíření – algoritmus • inicializace všech vah na malá náhodná čísla • 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 vjr(i) • výstup každého neuronu yjr(i) pro j=1,...,kr a r=1,...,L • výstup L-té vrstvy je skutečný výstup sítě ŷ(i) • zpětný výpočet • pro i=1,...,n a j=1,...,krspočteme: • následně spočteme ze vztahu (pro r = L, L-1,...2):

  33. Algoritmus zpětného šíření – algoritmus • aktualizace vah • pro r = 1,...,L a j = 1,...,kr aktualizujeme váhy • 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 g1 a g2 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í • f1(∙), ... , fk(∙) jsou nelineární funkce fi:Rl→ R pro i=1,...,k které definují mapování x є Rl→ y Rk • cíl: zjistit, zda existuje hodnota k a funkce fi 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Rk: wTy+w0> 0 pro xA wTy+w0< 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í fi(x) => problém odhadnutí funkce na základě vybraných interpolačních funkcí fi(x) => řeší numerická matematika • když zvolíme funkce fi • „stačí“ spočítat váhy wi 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 fi • 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ů wr r =1,..,c • jeden neuron pro každou třídu • r-tou třídu vybereme podle maximálního výstupu wrT·y + wr0

  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= (x1,x2)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 fi): • 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

More Related