40
1 Umělé neuronové sítě a Support Vector Machines Petr Schwraz [email protected]

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

  • Upload
    cian

  • View
    33

  • Download
    0

Embed Size (px)

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

Citation preview

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

1

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

Petr Schwraz

[email protected]

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

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

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

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

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

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

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

5

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

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

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

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

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í

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

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

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

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

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

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~

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

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

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

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

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

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

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

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

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

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ů

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

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.

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

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

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

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

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

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

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

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

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

22

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

shluky dat

x1

x2

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

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

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

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

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

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

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

26

Geometrická reprezentace II

w

xwxww

xw

wx

w

wxx

2..

1

..),(

d

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

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

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

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

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

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

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

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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

41

Software

• Existuje velni dobrá knihovna LibSVM

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

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

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.