Jan 08, 2016
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.