Umělé neuronové sítě a Support Vector Machines

Post on 08-Jan-2016

32 views 0 download

description

Umělé neuronové sítě a Support Vector Machines. Petr Schwraz schwarzp @fit.vutbr.cz. f(). y. Perceptron (1 neuron). x i – vstupy neuronu w i – váhy jednotlivých vstupů b – aktivační práh f() – nelineární funkce. Co um í perceptron ?. - PowerPoint PPT Presentation

transcript

1

Umělé neuronové sítě a Support Vector Machines

Petr Schwraz

schwarzp@fit.vutbr.cz

2

Perceptron (1 neuron)

)(1

bxwfy i

N

ii

1x

Nxf() y

2x

xi – vstupy neuronuwi – váhy jednotlivých vstupůb – aktivační práhf() – nelineární funkce

3

Co umí perceptron?

• Chceme klasifikovat mezi dvěmi třídami, řekněme, že:

pokud y>=0, vstupní vektor spadá do třídy 1.

pokud y<0, vstupní vektor spadá do třídy 2.• Pro zjednodušení náš vstupní vektor má pouze

dvě dimenze, předpokládejme f(a)=a• Kde je hranice mezi třídami?

0)(1

bxwfy i

N

ii

4

Co umí perceptron? II

• hranice mezi třídami je přímka => lze řešit pouze lineárně separovatelný problém

21

2

12 w

bx

w

wx 0y =>

x1

x2

5

Transformační funkce f(a)• Nejprve bez ni: f(a) = a, w1=2, w2=4, b=5

6

Transformační funkce f(a) II

• Sigmoida

• Omezuje dynamický rozsah výstupu neuronu v místě, kde si je neuron jist

xexf

1

1)(

7

Třívrstvá dopředná neuronová síť

• je schopna aproximovat libovolnou nelineární funkci• první vrstva pouze kopíruje vstup, dvě vrstvy neuronů• M výstupních neuronů

x1

x2

xN

1 2 3

y1

y2

yM

vstupní

8

Co umí třívrstvá síť

• Neurony ve druhé vrstvě (skryté) mají přenosovou funkci Sigmoidu, výstupní neuron má lineární přenosovou funkci

x1

x2

2

¨4

2-2

b1=5

b2=8

b3=0

1

1

9

Trénování síté

• Pro experiment je potřeba mít tři sady dat:

trénovací, krosvalidační, testovací• Sady obsahují vektory parametrů a požadované

výstupní vektory neuronové sítě (targets)• Je dobré data nejprve normalizovat• Je potřeba správně zvolit chybovou funkci • Je potřeba správně zvolit trénovací algoritmus

10

Normalizace dat

• z každého vektoru se odečte vektor středních hodnot odhadnutý na trénovací sadě a pak se vektor podělí vektorem směrodatných odchylek

• Dynamický rozsah hodnot se přizpůsobí dynamickému rozsahu vah

x1

x2

x1

x2

x1

x2

bez normalizace xx~

x

x~

11

Kriteriální funkce• ; t je target (chtěná hodnota)

– nejmenší čtverce (minimum square error) – chybová funkce je citlivá na vyvážení dat setu pro

jednotlivé třídy– je citlivá na distribuci dat uvnitř tříd

y-t

0

target pro třídu 1

target pro třídu 2

M

iii ytE

1

2)(

12

Back propagation

1. Váhy a prahy sítě se nainicializují náhodně

2. Pošlou se data skrze síť

3. Vypočte se chyba

4. Chyba se pošle zpět sítí

5. Podle chyby se upraví jednotlivé váhy a prahy

13

Zpětné šíření chyby

Zjednodušení zápisu: w0=b, x0=1

Hledáme minimum chyby

kde yi je výstup i-tého neuronu výstupní vrstvy, ti je chtěná hodnota i-tého neuronu výstupní vrstvy, je váha z j-tého neuronu skryté vrstvy k i-tému neuronu výstupní vrstvy, je výstup z j-tého neuronu skryté vrstvy

M

i

oj

N

i

ohi

M

iii xwftytE

ij1

2

01

2 ))(()(

)(0

i

N

iixwfy

ohijw

ojx

14

Zpětné šíření chyby II

oj

ok

N

k

ohiioh

ij

xxwFytw

Eij

)(')(20

M

iohij

jw

E

1

Chyba váh mezi skrytou a výstupní vrstvou:

Chyby neuronů ve skryté vrstvě:

oh – output-hidden

jk

N

k

hiihi

ij

xxwFw

Eij)('

0

Chyby vah mezi vstupní a skrytou vrstvou:

hi –hidden-input

15

Úprava vah

ij

oldij

newij w

Eww

Úpravu vah lze dělat:

1. po předložení všech vektorů trénovací sady (chyby se akumulují)

´- nejsprávnější přístup, ale pomalý

2. po každém vektoru

- rychlé trénování

- riziko, že se síť natrénuje na posledních pár vektorů z trénovací sady

- nelze optimálně využít cache procesoru

3. po předložení několika vektorů

16

Ochrana proti přetrénování

• používá se krosvalidační sada

• algoritmus New Bob:

1. proved jednu iteraci trénovaní

2. zjisti úspěšnost NN na CV sadě

- pokud přírustek je menší než 0.5%, sniž rychlost trénování na ½ ( )

- pokud přírustek opětovně menší než 0.5%, zastav trénování

• jdi na 1.

17

Implementace NN

• Trénovací algoritmus a i dopředný průchod sítí lze zapsat maticově (viz. diplomová práce - Stanislav Kontár), používají se akcelerované knihovny pro maticový počet (BLAS, ATLAS)

• Optimální využití cache procesoru• Zarovnaní všech paměťových struktur na 16-ky

bytes pro SIMD instrukce procesoru (SSE)• Software: Matlab, QuickNet, SNet

18

Pravděpodobnostní interpretace výstupů neuronových sítí

• Ze statistiky: pravděpodobnost lze transformovat z intervalu 0÷1 do intervalu -∞÷∞ pomocí funkce logit, kde se dobře modeluje:

• a nazpět:

vzorec je již použitá Sigmoida

p

pp

1log)logit(

yep

1

1

19

SoftMax• Chceme aby součet všech výstupů NN byl 1:

• Lze zajistit SoftMaxem - nelineární funkcí na výstupu NN, která jednotlivé výstupy spojuje:

• SoftMax se většinou pojí s Cross-entropy chybovým kritériem:

- klade větší důraz na chyby z hlediska pravděpodobnosti – když je má být výstup 1, nikdy nemůže být 0

11 M

iy

M

j

x

x

ij

i

e

ey

1

M

iiiii ytytE

1

)1log()1(log

21

Support Vector Machines

• SVM je perceptron (jeden neuron) s lineární výstupní funkcí

• Rozdíl a výhoda je v trénovacím algoritmu !!!• V základní verzi zvládne pouze lineárně

separovatelnou, a dvě nepřekrývající se třídy

bbxwy i

N

ii

w.x1

1x

Nxy

2x

22

SVM – chybové kritérium• Maximalizuje mezeru (margin) mezi dvěmi

shluky dat

x1

x2

23

Jak hýbat s mezerou mezi shluky?

• Máme diskriminační linii, která je dána normálovým vektorem w (váhy)

• I když se mění délka w (označíme |w|), tak sklon linie zůstává stejný (offset je dán prahem b)

• Pokud se mění |w|, tak se linie posouvá• Tohoto můzeme využít!

x1

x2

w

24

Příklad ve 2D

• Rovnice diskriminační linie

• Pokud násobíme w libovolnou konstantou, směrnice přímky ( ) se nemění

• Přímka se vzdaluje od počátku nepřímo úměrně |w|.

21

2

12 w

bx

w

wx

2

1

w

w

25

Geometrická reprezentace

• Mámě dva body• Chceme aby pro jednu třídu dával klasifikátor hodnoty 1 a pro

druhou -1: <w.x+>+b=+1, <w.x->+b=-1• Hodnoty na výstupu klasifikátoru nemají odpovídající geometrický

vztah k datům, proto normalizujeme vektor w jeho délkou

x1

x2

x+

x-

w

2

26

Geometrická reprezentace II

w

xwxww

xw

wx

w

wxx

2..

1

..),(

d

27

Trénování SVM

• Minimalizujeme délku |w|, čímž roztahujeme mezeru mezi shluky, hledáme optimální b a zároveň zavádíme omezující podmínky, aby mezera „nešla“ do dat.

• Minimalizace |w| je problematická, protože obsahuje odmocninu, proto raději budeme minimalizovat w2

28

Trénování SVM II

• Minimalizujeme

• S podmínkami:

l je počet trénovacích vektorů

• K minimalizaci se používá metoda Lagrangeových násobitelů (Lagrange multipliers)

www

.min,b

1).( bxwy ii li 1

29

Trénování SVM III – zápis pomocí Lagrangianu

• Minimalizujeme• Podmínka• V místě řešení platí

• Lagrangian:

ww.h

1).( bxwyg ii

)(.)( xgxf

l

iiii bxybL

1

]1).([,2

1),,( wwww

30

Důalní úloha

• Při minimalizaci se obvykle Lagrangian zderivuje, položí nule a najde minimum

• Při trénování SVM se ale přechází na „duální úlohu“ nebo „duální problém“, která zjednodušuje řešení a umožňuje použití skalárních součinů mezi daty (tzv. jader nebo kernels)

• Duální úloha má stejné řešení jako původní (primarní) úloha a existuje pro linearní nebo kvadratické úlohy.

31

Přechod na duální úlohu

0xw

αw

l

iiiiyw

bL

1

),,(

l

iiiy

1ixw

l

iiiy

1

0 0),,(

1

l

iiiyb

bL αw

• Dosazením zpět do Lagrandgianu

l

i

l

jijijijii yybL

1 ,

,2

1),,( xxαw

Dostali jsme funkci jedné proměnné, kterou maximalizujem s podmínkami

0i a

l

iiiy

1

0

32

• Řešením je vektor vah získaný váhováním trénovacích dat

• Tato reprezentace umožňuje zavedení skalárních součinů mezi daty (jader, kernels) i při klasifikaci

Řešení

l

iiiiy

1

xw

bybyl

iiii

1

.. xxxw

33

• Práh b nelze získat z duální úlohy, proto je nutné dosadit do podmínek primární úlohy.

Řešení II

2

.min.max 11 iyiy iibxwxw

34

Co jsou to Support Vectors?

• Jsou to vektory které leží na okraji prázdné oblasti a přímo ovlivňují řešení

• Pro ostatní vektory bude αi=0 a kdyby se vypustily z trénovacího setu, výsledek by se nezměnil

x1

x2support vectors

35

Lineárně neseparovatelná úloha

• Může být řešena mapováním dat do prostoru s více dimenzemi

• Jádra mohou být počítána optimálně bez přímého mapování

?

2D 3D

36

Příklad jádra

• Bod x=(x1, x2)• Projekce do vícedimenzionárního prostoru

může být Φ(x)={x1, x2, x12, x2

2}• K(x, y) = <Φ(x). Φ(y)> = x1 y1+ x2 y2+ x1

2

y12+ x2

2 y22,což potřebuje 8 nasobení a 4

součty• Toto muže být přepsáno na

K(x, y) =x1 (y1+ x1 y12)+ x2 (y2+ x2) y2

2, což potřebuje 6 nasobení a 3 součty

37

Překrývající se třídy

• Pro překrývající třídy uvedene řešení selže.

• Zavádějí se promněnné (slack variables), které oslabí omezující podmínky

x1

x2

ξi

38

Překrývající se třídy II

• Minimalizujeme

• S podmínkami:

• První term maximalizuje mezeru mezi shluky dat a druhý minimalizuje takzvanou strukturální chybu

• C udává důležitost strukturální chyby• Pokud je C velké, SVM funguje podobne jako

perceptron

l

ii

b

C1

2

,

.min www

iii bxwy 1).( li 10i

40

Použití

• Výhodné při znalosti jednoho pozitivního vzoru a velkého množství negativních (rozbalancovaná data)

• Při velmi velkých dimenzích vstupních vektorů

• Při řídkých datech

41

Software

• Existuje velni dobrá knihovna LibSVM

http://www.csie.ntu.edu.tw/~cjlin/libsvm/

42

Závěr

• Důležité je vždy nejdříve důkladně zapřemýšlet nad úlohou a podle toho zvolit správný klasifikátor, než se snažit bezhlavě optimalizovat náhodně vybraný klasifikátor na pro něj nevhodnou úlohu.