Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
Umělé neuronové sítě a Support Vector Machines
Petr Schwraz
2
Perceptron (1 neuron) f() y xi – vstupy neuronu
wi – váhy jednotlivých vstupů b – aktivační práh f() – 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?
4
Co umí perceptron? II => x1 x2 hranice mezi třídami je přímka => lze řešit pouze lineárně separovatelný problém
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
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ů 1 2 3 vstupní x1 y1 x2 y2 xN yM
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 b1=5 b2=8 b3=0 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 bez normalizace 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
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 target pro třídu 1 target pro třídu 2
12
Back propagation Váhy a prahy sítě se nainicializují náhodně
Pošlou se data skrze síť Vypočte se chyba Chyba se pošle zpět sítí 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
14
Zpětné šíření chyby II Chyba váh mezi skrytou a výstupní vrstvou:
oh – output-hidden Chyby neuronů ve skryté vrstvě: Chyby vah mezi vstupní a skrytou vrstvou: hi –hidden-input
15
Úprava vah Úpravu vah lze dělat:
po předložení všech vektorů trénovací sady (chyby se akumulují) ´- nejsprávnější přístup, ale pomalý 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: proved jednu iteraci trénovaní 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
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
20
SoftMax II Herman Ney – On the Probabilistic Interpretation of Neural Network Classifiers and Discriminative Training Criteria – ukazal, že chybové funkce „Minimum Square Error“ a „Cross-Entropy“ vedou na dobrý pravděpodobnostní výstup NN i bez SoftMaxu SoftMax nelze přímo derivovat, používá se aproximace – výstup není závislý na ostatních
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 y
22
SVM – chybové kritérium
Maximalizuje mezeru (margin) mezi dvěmi shluky dat x2 x1
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|.
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 x2 x+ x- x1
26
Geometrická reprezentace II
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)
29
Trénování SVM III – zápis pomocí Lagrangianu
Minimalizujeme Podmínka V místě řešení platí Lagrangian:
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
Dosazením zpět do Lagrandgianu Dostali jsme funkci jedné proměnné, kterou maximalizujem s podmínkami a
32
Řešení Ř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
33
Řešení II Práh b nelze získat z duální úlohy, proto je nutné dosadit do podmínek primární úlohy.
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 x2 support 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, x22} K(x, y) = <Φ(x). Φ(y)> = x1 y1+ x2 y2+ x12 y12+ x22 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) y22, 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 x2 ξi x1
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
39
Rank normalizace Sjednocuje dynamický rozsah parametrů
Normalizuje libovolné rozložení na uniformní v intervalu 0 až 1 Hodnoty každé dimenze vektoru parametrů jsou nahrazeny indexem do vektoru získaného seřazením všech hodnot odpovídající dimenze z trénovacího setu a znormovány do intervalu 0 až 1
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
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.
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.