43
Nelineární klasifikátory

Nel ine ární klasifikátory

  • Upload
    joben

  • View
    42

  • Download
    1

Embed Size (px)

DESCRIPTION

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. - PowerPoint PPT Presentation

Citation preview

Page 1: Nel ine ární klasifikátory

Nelineární klasifikátory

Page 2: 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

Page 3: Nel ine ární klasifikátory

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

Page 4: Nel ine ární klasifikátory

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

Page 5: Nel ine ární klasifikátory

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ů xs ohledem na každou z klasifikačníchnadrovin

– 2. fáze • výsledky první fáze spojíme dohromady a najdeme pozici x s ohledem na všechny

klasifikační nadroviny

Page 6: Nel ine ární klasifikátory

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)

Page 7: Nel ine ární klasifikátory

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

Page 8: Nel ine ární klasifikátory

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)

Page 9: Nel ine ární klasifikátory

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

Page 10: Nel ine ární klasifikátory

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 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

Page 11: Nel ine ární klasifikátory

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

Page 12: Nel ine ární klasifikátory

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

Page 13: Nel ine ární klasifikátory

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í

Page 14: Nel ine ární klasifikátory

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

Page 15: Nel ine ární klasifikátory

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

Page 16: Nel ine ární klasifikátory

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

Page 17: Nel ine ární klasifikátory

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ě

Page 18: Nel ine ární klasifikátory

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í

Page 19: Nel ine ární klasifikátory

„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

Page 20: Nel ine ární klasifikátory

„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–

Page 21: Nel ine ární klasifikátory

„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–+

Page 22: Nel ine ární klasifikátory

„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

Page 23: Nel ine ární klasifikátory

„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

Page 24: Nel ine ární klasifikátory

„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

Page 25: Nel ine ární klasifikátory

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

Page 26: Nel ine ární klasifikátory

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

axexp11xf

axexp1

axexp1cxf

Page 27: Nel ine ární klasifikátory

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:• wj

r váhový vektor neuronu j

ve vrstvě r (včetně prahu)• vj

r potenciál neuronu j ve vrstvě r

= vážený součet vstupů do neuronu j• yj

r výstup neuronu j ve vrstvě r

yjr = f(vj

r)aktivační funkce

Page 28: Nel ine ární klasifikátory

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 wj

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:

rj

rj

rj

rj

rj

oldnew

ww

www

n

1i

iEJ

2k

1mmm

r

iyiy21iE

tento člen zbývá spočítat

Page 29: Nel ine ární klasifikátory

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 (*)

rj

rj

Jμw

w

rj

rj

rj

rj

vv

iEiEww

δjr(i)

umíme spočítat přímo

i iδμ 1-rn

1i

rj

rj yw

výstup vrstvy r-1

(*)

Page 30: Nel ine ární klasifikátory

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

Page 31: Nel ine ární klasifikátory

Algoritmus zpětného šíření – zpětný krok

• výstupní vrstva (r=L):

• nevýstupní vrstva (r<L): derivace aktivační funkce

iv'fiyiyiδ Ljjj

Lj

rk

1k

rkj

rk

1rj

1rj

1rj

1-rj

wiδie

iv'fieiδ

Page 32: Nel ine ární klasifikátory

Algoritmus zpětného šíření – algoritmus

1. inicializace všech vah na malá náhodná čísla2. 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 vj

r(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)

3. zpětný výpočet• pro i=1,...,n a j=1,...,kr spočteme:

• následně spočteme ze vztahu (pro r = L, L-1,...2):

iv'fiyiyiδ Ljjj

Lj

rk

1k

rkj

rk

1rj

1rj

1rj

1-rj

wiδie

iv'fieiδ

Page 33: Nel ine ární klasifikátory

Algoritmus zpětného šíření – algoritmus

4. aktualizace vah• pro r = 1,...,L a j = 1,...,kr 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“

n

1i

1rrj

rj

rj

rj

rj

iiδμ

oldnew

yw

www

Page 34: Nel ine ární klasifikátory

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í

iiδμi1i 1rrj

rj

rj

yww

Page 35: Nel ine ární klasifikátory

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

Page 36: Nel ine ární klasifikátory

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

xx

y2

1

2

1

gfgf

yy

Page 37: Nel ine ární klasifikátory

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 xA

wTy + w0 < 0 pro xB

x

xy

k

1

f

f

(*)

Page 38: Nel ine ární klasifikátory

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

k

1iii0 fwwg xx

Page 39: Nel ine ární klasifikátory

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

Page 40: Nel ine ární klasifikátory

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

l

1i

2iii

1l

1i

l

1immiim

l

1iii0 xwxxwxwwg x

22111221

T

0T

w,w,w,w,w

wg

w

ywx

22

212121

T x,x,xx,x,xy

Page 41: Nel ine ární klasifikátory

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ů

!l!r!rlk

l21 pl

p2

p1 xxx

rppp l21

Page 42: Nel ine ární klasifikátory

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

21

2

1

xxxx

y

(00) → (000)(11) → (111)(10) → (100)(01) → (010)

(*)

Page 43: Nel ine ární klasifikátory

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

041y2yy 321

041xx2xx 2121

Bpro041xx2xxg

Apro041xx2xxg

2121

2121

xx

xx