1 / 40

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

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

cian
Download Presentation

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

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. Umělé neuronové sítě a Support Vector Machines Petr Schwraz schwarzp@fit.vutbr.cz

  2. f() y Perceptron (1 neuron) 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. x2 x1 Co umí perceptron? II • 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. b1=5 b3=0 2 x1 1 ¨4 1 2 -2 x2 b2=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

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

  11. target pro třídu 1 y-t 0 target pro třídu 2 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

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

  21. SVM – chybové kritérium • Maximalizuje mezeru (margin) mezi dvěmi shluky dat x2 x1

  22. x2 w x1 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!

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

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

  25. Geometrická reprezentace II

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

  27. 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)

  28. Trénování SVM III – zápis pomocí Lagrangianu • Minimalizujeme • Podmínka • V místě řešení platí • Lagrangian:

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

  30. Přechod na duální úlohu • Dosazením zpět do Lagrandgianu Dostali jsme funkci jedné proměnné, kterou maximalizujem s podmínkami a

  31. Ř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

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

  33. x2 x1 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 ztrénovacího setu, výsledek by se nezměnil support vectors

  34. ? 2D 3D 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í

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

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

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

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

  39. Software • Existuje velni dobrá knihovna LibSVM http://www.csie.ntu.edu.tw/~cjlin/libsvm/

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

More Related