Základy vytěžování dat



Podobné dokumenty
LDA, logistická regrese

logistická regrese Miroslav Čepek Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

logistická regrese Miroslav Čepek Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Přednáška 13 Redukce dimenzionality

Katedra kybernetiky laboratoř Inteligentní Datové Analýzy (IDA) Katedra počítačů, Computational Intelligence Group

Vytěžování znalostí z dat

Kybernetika a umělá inteligence, cvičení 10/11

Dobývání znalostí. Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze

Úloha - rozpoznávání číslic

Základy vytěžování dat

Pokročilé neparametrické metody. Klára Kubošová

Klasifikace a rozpoznávání. Lineární klasifikátory

Strukturální regresní modely. určitý nadhled nad rozličnými typy modelů

UČENÍ BEZ UČITELE. Václav Hlaváč

Algoritmy a struktury neuropočítačů ASN P9 SVM Support vector machines Support vector networks (Algoritmus podpůrných vektorů)

Úvod do optimalizace, metody hladké optimalizace

Katedra kybernetiky skupina Inteligentní Datové Analýzy (IDA) 9. ledna 2017

1 Tyto materiály byly vytvořeny za pomoci grantu FRVŠ číslo 1145/2004.

ANALÝZA A KLASIFIKACE DAT

Algoritmy a struktury neuropočítačů ASN P4. Vícevrstvé sítě dopředné a Elmanovy MLNN s učením zpětného šíření chyby

Rosenblattův perceptron

Fiala P., Karhan P., Ptáček J. Oddělení lékařské fyziky a radiační ochrany Fakultní nemocnice Olomouc

Moderní systémy pro získávání znalostí z informací a dat

Aplikovaná numerická matematika

Miroslav Čepek. Fakulta Elektrotechnická, ČVUT. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

AVDAT Nelineární regresní model

ANALÝZA A KLASIFIKACE BIOMEDICÍNSKÝCH DAT. Institut biostatistiky a analýz

oddělení Inteligentní Datové Analýzy (IDA)

Lineární klasifikátory

přetrénování = ztráta schopnosti generalizovat vlivem přílišného zaměření klasifikátorů na rozeznávání pouze konkrétních trénovacích dat

3. Vícevrstvé dopředné sítě

8 Střední hodnota a rozptyl

Obsah přednášky Jaká asi bude chyba modelu na nových datech?

Vytěžování znalostí z dat

Dobývání znalostí. Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze

Cvičení ze statistiky - 3. Filip Děchtěrenko

Algoritmus pro hledání nejkratší cesty orientovaným grafem

Státnice odborné č. 20

Ing. Petr Hájek, Ph.D. Podpora přednášky kurzu Aplikace umělé inteligence

Pokročilé neparametrické metody. Klára Kubošová

Usuzování za neurčitosti

Trénování sítě pomocí učení s učitelem

Pravděpodobně skoro správné. PAC učení 1

Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice

Asociativní sítě (paměti) Asociace známého vstupního vzoru s daným výstupním vzorem. Typická funkce 1 / 44

Numerické metody 6. května FJFI ČVUT v Praze

Optimální rozdělující nadplocha 4. Support vector machine. Adaboost.

AVDAT Mnohorozměrné metody, metody klasifikace

Aproximace funkcí. Numerické metody 6. května FJFI ČVUT v Praze

Vytěžování znalostí z dat

Dynamické programování

Aproximace funkcí. x je systém m 1 jednoduchých, LN a dostatečně hladkých funkcí. x c m. g 1. g m. a 1. x a 2. x 2 a k. x k b 1. x b 2.

Strojové učení Marta Vomlelová

Vytěžování znalostí z dat

Statistická teorie učení

Stavový model a Kalmanův filtr

Agent pracující v částečně pozorovatelném prostředí udržuje na základě senzorického modelu odhaduje, jak se svět může vyvíjet.

Pravděpodobnost, náhoda, kostky

Projekční algoritmus. Urychlení evolučních algoritmů pomocí regresních stromů a jejich zobecnění. Jan Klíma

Funkce - pro třídu 1EB

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

1. Vlastnosti diskretních a číslicových metod zpracování signálů... 15

Neuronové časové řady (ANN-TS)

3. ANTAGONISTICKÉ HRY

Odhady - Sdružené rozdělení pravděpodobnosti

7. Rozdělení pravděpodobnosti ve statistice

V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti

8.3). S ohledem na jednoduchost a názornost je výhodné seznámit se s touto Základní pojmy a vztahy. Definice

Umělé neuronové sítě

pouze u některých typů rovnic a v tomto textu se jím nebudeme až na

Neuronové sítě Ladislav Horký Karel Břinda

ANTAGONISTICKE HRY 172

Algoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

RNDr. Eva Janoušová doc. RNDr. Ladislav Dušek, Dr.

Lineární diskriminační funkce. Perceptronový algoritmus.

5. Lokální, vázané a globální extrémy

Binární vyhledávací stromy pokročilé partie

Úvod do Matlabu. Praha & EU: Investujeme do vaší budoucnosti. 1 / 24 Úvod do Matlabu

Náhodný vektor. Náhodný vektor. Hustota náhodného vektoru. Hustota náhodného vektoru. Náhodný vektor je dvojice náhodných veličin (X, Y ) T = ( X

1 0 0 u 22 u 23 l 31. l u11

1 Linearní prostory nad komplexními čísly

K možnostem krátkodobé předpovědi úrovně znečištění ovzduší statistickými metodami. Josef Keder

ANALYTICKÁ GEOMETRIE LINEÁRNÍCH ÚTVARŮ V ROVINĚ

Funkce a lineární funkce pro studijní obory

UNIVERZITA PARDUBICE. 4.4 Aproximace křivek a vyhlazování křivek

Předzpracování dat. Lenka Vysloužilová

Numerické metody a programování. Lekce 8

( + ) ( ) f x x f x. x bude zmenšovat nekonečně přesný. = derivace funkce f v bodě x. nazýváme ji derivací funkce f v bodě x. - náš základní zápis

Jednoduché cykly

Katedra kybernetiky, FEL, ČVUT v Praze.

Kombinatorická minimalizace

10. cvičení - LS 2017

Rozdělování dat do trénovacích a testovacích množin

5. Umělé neuronové sítě. Neuronové sítě

Kapitola 1. Logistická regrese. 1.1 Model

Polynomy a interpolace text neobsahuje přesné matematické definice, pouze jejich vysvětlení

MĚŘENÍ STATISTICKÝCH ZÁVISLOSTÍ

Regresní a korelační analýza

11MAMY LS 2017/2018. Úvod do Matlabu. 21. února Skupina 01. reseni2.m a tak dále + M souborem zadané funkce z příkladu 3 + souborem skupina.

Transkript:

Základy vytěžování dat předmět A7Bb36vyd Vytěžování dat Filip Železný, Miroslav Čepek, Radomír Černoch, Jan Hrdlička katedra kybernetiky a katedra počítačů ČVUT v Praze, FEL Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Klasifikace a predikce Odkaz na výukové materiály: https://cw.felk.cvut.cz/doku.php/courses/a7b36vyd/moduly/start (oddíl 5) Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Vytěžování dat, přednáška 7: Klasifikace Filip Železný Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Fakulta elektrotechnická, ČVUT 1 / 24 Klasifikace

Učení s učitelem Pravděpodobnostní rozdělení P XY na X Y Předpokládáme, že Y je konečná množina Data: D je multimnožina D = {(x 1, y 1 ), (x 2, y 2 ),... (x m, y 2 )} (m N) prvky vybrány náhodně a navzájem nezávisle z P XY Vzor se bude používat na tomtéž X, Y a P XY Obvykle hledáme vzory aproximující (pro zadané x X) podmíněnou pravděpodobnost P Y X (y x) = P XY (x, y)/p X (x) nebo nejpravděpodobnější hodnotu arg max y Y P Y X (y x) tyto vzory nazýváme klasifikátory 2 / 24 Klasifikace

Klasifikace s jedním příznakem X Vysoké příjmy ano ano ne ano ne ne ne ano ano ano ne Y Splácí úvěr ano ne ano ano ne ne ano ano ano ano ne Kontingenční tabulka Y (splácí úvěr) ano ne X (vysoké ano 5 1 6 příjmy) ne 2 3 5 7 4 11 Nový žadatel o úvěr má vysoké příjmy. Bude splácet úvěr? S jakou pravděpodobností? 3 / 24 Klasifikace

Klasifikace dle aposteriorní pravděpodobnosti Klient má vysoké příjmy. Jak bude splácet úvěr? Tedy z x = vysoké urči nejpravděpodobnější hodnotu y (třídu). Hledáme y vyhovující Řešení je y = splácí y = arg max P Y X (y vysoké) y P Y X (y vysoké) 2/3 S pravděpodobností 1 P Y X (y vysoké) klasifikujeme chybně. Klasifikací y = splácí tedy minimalizujeme chybu. 4 / 24 Klasifikace

Ztrátová funkce Každá chyba klasifikace je jinak drahá. Např. příliš optimististické hodnocení klienta stojí víc než příliš skeptické. Klasifikace dle aposteriorní pravděpodobnosti toto nerespektuje. Pro zohlednění odlišných ztrát pro různé chyby potřebujeme pojem ztrátové funkce. Ztrátová funkce L(y, y ) zachycuje ztrátu pro každou kombinaci y - skutečná třída y - třída, do které klasifikujeme Pro náš příklad L(y, y ) např.: y y splácí problémy nesplácí splácí 0 1 2 problémy 5 0 1 nesplácí 10 5 0 5 / 24 Klasifikace

Klasifikátor a Riziko Hledáme klasifikátor, tj. funkci f : X Y minimalizující střední hodnotu ztráty: R(f) = x,y L(y, f(x))p XY (x, y) Střední hodnotu ztráty pro f se nazývá riziko klasifikátoru f. Řešením f = arg min f R(f) je funkce f (x) = arg min y r(x, y ) kde r(x, y ) = y L(y, y )P Y X (y x) je riziko klasifikace y při příznaku x 6 / 24 Klasifikace

Klasifikace jako minimalizace rizika Jak klasifikovat vysokopříjmového klienta? P Y X L x y splácí problémy nesplácí vysoké 2/3 1/3 0/3 střední 2/6 2/6 2/6 nízké 0/2 1/2 1/2 y y splácí problémy nesplácí splácí 0 1 2 problémy 5 0 1 nesplácí 10 5 0 Klasifikace y = splácí skut. třída ztráta s pravděp. splácí 0 2/3 problémy 5 1/3 nesplácí 10 0 Riziko při této klasifikaci: 0 2/3 + 5 1/3 + 10 0 = 5/3 7 / 24 Klasifikace

Klasifikace jako minimalizace rizika Jak klasifikovat vysokopříjmového klienta? P Y X L x y splácí problémy nesplácí vysoké 2/3 1/3 0/3 střední 2/6 2/6 2/6 nízké 0/2 1/2 1/2 y y splácí problémy nesplácí splácí 0 1 2 problémy 5 0 1 nesplácí 10 5 0 Klasifikace y = problémy skut. třída ztráta s pravděp. splácí 1 2/3 problémy 0 1/3 nesplácí 5 0 Riziko při této klasifikaci: 1 2/3 + 0 1/3 + 5 0 = 2/3 8 / 24 Klasifikace

Klasifikace jako minimalizace rizika Jak klasifikovat vysokopříjmového klienta? P Y X L x y splácí problémy nesplácí vysoké 2/3 1/3 0/3 střední 2/6 2/6 2/6 nízké 0/2 1/2 1/2 y y splácí problémy nesplácí splácí 0 2 2 problémy 5 1 1 nesplácí 10 0 0 Klasifikace y = nesplácí skut. třída ztráta s pravděp. splácí 2 2/3 problémy 1 1/3 nesplácí 0 0 Riziko při této klasifikaci: 2 2/3 + 1 1/3 + 0 0 = 4/3 9 / 24 Klasifikace

Klasifikace jako minimalizace rizika Klasifikujeme do y = arg min r(vysoké, y) = problémy y Pozor, jiný výsledek než dle aposteriorní pravděpodobnosti y = arg max P Y X (y vysoké) = splácí y Při jaké ztrátové funkci L(y, y ) by výsledky vyšly stejně? y y splácí problémy nesplácí splácí 0 1 1 problémy 1 0 1 nesplácí 1 1 0 Tzv. L 01 ztrátová funkce. Je-li použita, je r(x, y ) pravděpodobnost, že klasifikace instance s příznakem x do třídy y je chybná. 10 / 24 Klasifikace

Klasifikace s několika příznaky Zatím jsme klasifikovali pouze dle jediného příznaku (x - výše příjmů) O klientech toho víme obvykle více. Příjmy (p) Rok narození (n) Úvěr (y) vysoké 1969 splácí nízké 1974 nesplácí střední 1940 problémy nízké 1985 problémy......... x (p, n) Třírozměrná kontingenční tabulka p vs. n vs. y 11 / 24 Klasifikace

Klasifikace s několika příznaky Na principech klasifikace se nic nemění. Např. jak klasifikovat nízkopříjmového klienta narozeného v r. 1985? Maximalizací aposteriorní pravděpodobnosti f(x) = y = arg max P Y P,N (y nízké, 1974) y Minimalizací rizika Z kontingenční tabulky f(x) = y = arg min y r((nízké, 1974), y) P Y P,N (y nízké, 1974) počet klientů s y = y, p = nízké, n = 1974 počet klientů s p = nízké, n = 1974 12 / 24 Klasifikace

Prokletí rozměrnosti P Y P,N (y nízké, 1974) počet klientů s y = y, p = nízké, n = 1974 počet klientů s p = nízké, n = 1974 Čím více příznaků, tím větší nebezpečí výsledku 0/0! Kolik dat potřebujeme, aby odhady dobře konvergovaly k pravděpodobnostem? Kontingenční tabulka musí být dostatečně zaplněna. V předchozím příkladě (jediný příznak) p y splácí problémy nesplácí vysoké 2 1 0 3 střední 2 2 2 6 nízké 0 1 1 2 4 4 3 11 v průměru 11/9 případů na kolonku tabulky. 13 / 24 Klasifikace

Prokletí rozměrnosti Předpokládejme, že 11/9 je dostatečný poměr. Kolik případů (m) potřebujeme pro jeho zachování se dvěma příznaky p a n? Přepodkládejme 100 možných roků narození. Kontingenční tabulka má 100 3 3 = 900 kolonek. m 900 = 11 9 tedy nyní již potřebujeme 11 900/9 = 1100 dat. Po přidání dalšího příznaku, např. roku ukončení studia už potřebujeme 11 90000/9 = 110000 dat! Obecně pro odhady z kontingenční tabulky (tzv. neparametrické odhady) roste potřebný počet dat exponenciálně s počtem příznaků. Prokletí rozměrnosti 14 / 24 Klasifikace

Podmíněně nezávislé příznaky Situace se zjednoduší, jsou-li výše příjmů a rok narození podmíněně nezávislé, tj. platí P P,N Y (p, n y) = P P Y (p y) P N Y (n y) pro každou z hodnot y {splácí, problémy, nesplácí) Využijeme tzv. Bayesova pravidla P Y P,N (y p, n) = P P,N Y(p, n y)p Y (y) P P,N (p, n) 15 / 24 Klasifikace

Podmíněně nezávislé příznaky Z Bayesova pravidla platí pro klasifikaci maximalizací aposteriorní pravděpodobnosti arg max y P Y P,N (y p, n) = arg max P P,N Y (p, n y)p Y (y) y Podobně pro klasifikaci minimalizací rizika arg min L(y, y )P Y P,N (y p, n) y y = arg min L(y, y )P P,N Y (p, n y)p Y (y) y Proč zmizelo P P,N (p, n)? Nezávisí na y! y K oběma typům klasifikace tedy potřebujeme odhady dvou rozdělení: P P,N Y a P Y. 16 / 24 Klasifikace

Podmíněně nezávislé příznaky K oběma typům klasifikace tedy potřebujeme odhady dvou rozdělení: P P,N Y a P Y. P Y odhadneme z jednorozměrné kontingenční tabulky Z podmíněné nezávislosti plyne P P,N Y = P P Y P N Y P P Y odhadneme z dvourozměrné tabulky 3 3 P N Y odhadneme z dvourozměrné tabulky 100 3. Nejnáročnější na počet dat, pro zachování poměru 11/9 vyžaduje cca 367 (<< 1100). Obecně: při podmíněně nezávislých příznacích neroste potřebný počet dat exponenciálně s počtem příznaků. Je určen příznakem s největším oborem hodnot. Příznaky obvykle nejsou podmíněně nezávislé! Je-li přesto použita tato metoda, mluvíme o naivní Bayesovské klasifikaci. 17 / 24 Klasifikace

Klasifikace dle nejbližšího souseda Metoda, která nevyžaduje odhad pravděpodobností. Předpoklad: umíme spočítat podobnost dvou datových instancí (jako např. u shlukování) Zde p, n N, u {splácí, problémy, nesplácí} 18 / 24 Klasifikace

Klasifikace dle nejbližšího souseda Zde podobnost např. (p 1 p 2 ) 2 + (n 1 n 2 ) 2 Zařazujeme do třídy nejpodobnější instance. Náchylné k šumu v datech. 19 / 24 Klasifikace

Klasifikace dle k nejbližších sousedů Zde podobnost např. (p 1 p 2 ) 2 + (n 1 n 2 ) 2 Zařazujeme do třídy převládající mezi k nejpodobnějšími instancemi. S rostoucím k klesá náchylnost k šumu. Nevýhody? 20 / 24 Klasifikace

Trénovací a skutečná chyba klasifikátoru Trénovací chyba Podíl instancí v datech chybně klasifikovaných klasifikátorem f sestrojeným z těchto dat (tzv. trénovacích dat). Skutečná chyba Pravděpodobnost chybné klasifikace f při náhodném výběru (x X, y Y) dle P XY. Při použití ztrátové funkce L 01 rovna riziku R(f). 21 / 24 Klasifikace

Jaké k je nejlepší? Experiment: generovaná data [Hastie et al.: Elements of Statistical Learning] k = 1 Nulová trénovací chyba, přesto klasifikace odlišná od optimální Dle maximální aposteriorní pravděpodobnosti (optimální) k = 15 Malá náchylnost k šumu, přesto klasifikace odlišná od optimální 22 / 24 Klasifikace

Trénovací vs. skutečná chyba Typický průběh chyb pro k = m (počet dat), m 1,... 1 Trénovací chyba obecně není dobrým odhadem skutečné chyby! 23 / 24 Klasifikace

Klasifikace dle etalonů Metoda nevyžadující přístup ke všem instancím při klasifikaci. Každá třída má etalon, tj. instanci s minimální průměrnou vzdáleností ke všem instancím třídy. (vybírána buďto z trénovacích dat, nebo z celého oboru hodnot (p, n)) Etalony jsou jednoduchým nepravděpodobnostním modelem dat. 24 / 24 Klasifikace

Vytěžování dat, přednáška 7: Rozhodovací stromy Filip Železný Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Fakulta elektrotechnická, ČVUT 1 / 26 Rozhodovací stromy

Reálné příznaky Lineární/polynomiální modely: příznaky jsou reálná čísla 2 / 26 Rozhodovací stromy

Nominální příznaky teplota bolest svalů diagnóza zvýšená ne nachlazení normální ne hypochondr horečka ano chřipka......... Lze převést na příznaky s oborem {0, 1} : reprezentace 1 z n teplota bolest diagnóza normální zvýšená horečka svalů nachlaz. chřipka hypoch. 0 1 0 0 1 0 0..................... Umožňuje využití lineárních resp. polynomiálních klasifikátorů, ale nešikovné. Klasifikační modely přímo pro nominální příznaky? 3 / 26 Rozhodovací stromy

Rozhodovací strom Klasifikační model Uzly (mimo listy): testy příznaků, hrany: možné hodnoty Klasifikace: cesta z kořene do listu podle hodnot příznaků Jak strom zkonstruovat? 4 / 26 Rozhodovací stromy

Rekurzivní rozdělování: příklad 2 binární příznaky x 1, x 2 {+, } Instance spadají do 3 tříd: 10 červených instancí 8 zelených instancí 5 modrých instancí Všech 10 s x 1 = + má y = Všech 10 s x 1 = + má y = Zbývá 13 instancí s x 1 = Všech 8 s x 2 = + má y = Všech 5 s x 2 = má y = 5 / 26 Rozhodovací stromy

Algoritmus pro tvorbu rozhodovacího stromu TDIT(D,I) /* Top Down Induction of Decision Trees */ Input: D trénovací data, I indexy příznaků if všechny instance v D mají stejnou třídu y then return uzel označený y else if I = then return uzel označený většinovou třídou v D else vyber i I a vytvoř uzel označený x i for v j Range(x i ) /* konečný obor hodnot x i */ do E j = všechny instance z D u nichž x i = v j Vyveď z uzlu x i hranu označenou v j if E j = then připoj list na hranu v j označený většinovou třídou v D else připoj výsledek TDIT(E j, I \ {i}) na hranu v i end end end end return vytvořený strom s kořenem x i 6 / 26 Rozhodovací stromy

TDIT: rekurzivní volání 7 / 26 Rozhodovací stromy

Výběr příznaku Jak implementovat příkaz vyber i I v algoritmu TDIT? Příklad Třída: barva Příznaky: tvar, velikost, průhlednost Začínáme konstruovat strom. Jaký příznak zvolit první? Měl by co nejčistěji dělit data podle tříd 8 / 26 Rozhodovací stromy

Výběr příznaku 9 / 26 Rozhodovací stromy

Entropie Entropie množiny instancí D s t třídami H(D) = t p i log 2 p i i=1 p 1, p 2... p t... poměrné velikosti tříd p i = počet instancí třídy i v D počet všech instancí v D Minimální H(D) = 0, pokud jsou všechny příklady v jedné třídě. Maximální H(D) = log 2 t, pokud p 1 = p 2 =... = p t. 10 / 26 Rozhodovací stromy

Entropie Pro dvě třídy 11 / 26 Rozhodovací stromy

Entropie p zelená = p červená = 1 2 H(D) = 1 ( ) 1 2 log 2 1 ( ) 1 2 2 log 2 = 1 2 12 / 26 Rozhodovací stromy

Entropie po rozdělení množiny E velké = velké instance p zelená = p červená = 0.5 H(E velké ) = 1 Vážený průměr entropií E malé = malé instance p zelená = p červená = 0.5 H(E malé ) = 1 j {velké,malé} E j D H(E j) = 2 4 1 + 2 4 1 = 1 13 / 26 Rozhodovací stromy

Entropie po rozdělení množiny E j H(Ej ) = 1 0 + 3 0.92 = 0.69 14 / 26 Rozhodovací stromy E průhledné = průhledné instance p zelená = 1 p červená = 0 H(E průhledné ) = 0 Vážený průměr entropií E neprůhledné = neprůhledné instance p zelená = 1/3 p červená = 2/3 H(E neprůhledné ) = 0.92

Entropie po rozdělení množiny E hranaté = hranaté instance p zelená = 1 p červená = 0 H(E hranaté ) = 0 Vážený průměr entropií E kulaté = kulaté instance p zelená = 0 p červená = 1 H(E kulaté ) = 0 j {hranaté,kulaté} 15 / 26 Rozhodovací stromy E j D H(E j) = 2 4 0 + 2 4 0 = 0

Pokles entropie H(D, x i ) = H(D) v j Range(x i ) E j D H(E j) Rozdíl entropie původní množiny D a váženého průměru entropií množiny rozdělené hodnotami příznaku x i Jak implementovat příkaz vyber i I v algoritmu TDIT? Vybereme i, které maximalizuje H(D, x i ) Pozn: pro výběr i není sčítanec H(D) důležitý (nezávisí na i). 16 / 26 Rozhodovací stromy

Pokles entropie Jak implementovat příkaz vyber i I v algoritmu TDIT? Vybereme i, které maximalizuje H(D, xi ) 17 / 26 Rozhodovací stromy

Složitost rozhodovacího stromu Algoritmus TDIT se snaží minimalizovat trénovací chybu za cenu velké složitosti (košatosti) stromu Stále platí kompromis mezi složitostí modelu a trénovací chybou! Vymyslete úpravu algoritmu TDIT omezující složitost stromu Nevětvíme, pokud maxi H(D, x i ) < θ, θ > 0... parametr 18 / 26 Rozhodovací stromy

Ordinální příznaky Ordinální veličina Veličina, jejíž obor hodnot je uspořádán Např. přirozená (nebo reálná) čísla 1 < 2 < 3 <... ale i např. nízký < střední < vysoký 19 / 26 Rozhodovací stromy

Ordinální příznaky Pro ordinální příznaky obvykle test x > h v uzlech, kde h je zvolená hraniční hodnota 20 / 26 Rozhodovací stromy

Převod na nominální příznaky Před tvorbou stromu můžeme každý ordinální příznak, např. teplota převést na množinu nominálních příznaků teplota > h 1, teplota > h 2,..., teplota > h n z nichž každý má binární obor hodnot. Co jsou h 1, h 2,... h n? V nejjednodušším případě celý obor hodnot původního příznaku, je-li konečný (a malý). Obvykle ale jen některé z oboru hodnot. Které? 21 / 26 Rozhodovací stromy

Diskretizace U některých veličin se hraniční hodnoty nabízejí. x i < 36.5 podchlazení 36.5 x i < 37 normální teplota 37 x i < 38 zvýšená teplota 38 x i < 42 horečka 42 x i smrt Zde tedy uvažujeme hraniční hodnoty {36.5, 37, 38, 42} Pozn.: převedení reálné veličiny (teplota) na veličinu s konečným oborem hodnot = diskretizace. V obecném případě vhodné hraniční hodnoty předem neznáme. 22 / 26 Rozhodovací stromy

Diskretizace: 3 obecné způsoby Intervaly stejné délky Intervaly stejné pravděpodobnosti Intervaly obsahující instance stejné třídy (nejužívanější pro stromy) 23 / 26 Rozhodovací stromy

Separace: srovnání Separace v prostoru dvou reálných příznaků Lineární klasifikátor (nelze rozdělit) Kvadratický klasifikátor Rozhodovací strom 24 / 26 Rozhodovací stromy

Separace rozhodovacím stromem Separace v prostoru dvou reálných příznaků 25 / 26 Rozhodovací stromy

Minimalizace nákladů na rozhodování Rozhodovací strom netestuje vždy všechny příznaky! TDIT lze přizpůsobit tak, aby levné testy byly blíže ke kořeni 26 / 26 Rozhodovací stromy

Vytěžování dat, přednáška 9: Lineární klasifikátor, rozšíření báze, LDA, logistická regrese Miroslav Čepek Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Fakulta elektrotechnická, ČVUT 1 / 32 Lineární klasifikátor

Klasifikátory Jaké znáte klasifikační algoritmy? Naive Bayes Rozhodovací strom KNN Jak fungují? Naive Bayes počítá pravděpodobnost přiřazení do třídy za podmínky dané pozorováním. Rozhodovací strom generuje posloupnost rozhodnutí. KNN hledá nejbližsí instance z trénovací množiny. 2 / 32 Lineární klasifikátor

Rozhodovací hranice Další možný pohled je z hlediska rozhodovací hranice. Rozhodovací hranice je místo, kde instance přestávají patřit do třídy A a začínají patřit do třídy B. Převzadto z http: //openclassroom.stanford.edu/mainfolder/documentpage. php?course=machinelearning&doc=exercises/ex8/ex8.html 3 / 32 Lineární klasifikátor

Rozhodovací hranice (2) Co když mám následující data: Jak bude vypadat nejjednodušší rozhodovací hranice, která data oklasifikuje bez chyby? Stačí přece přímka! 4 / 32 Lineární klasifikátor

Lineární klasifikátor Takovou přímku umíme celkem jednoduše najít a vyrobit :). Jak vypadá rovnice přímky? y = j w j x j = wx Jak zjistíme, do které třídy patří vzor x? Prostým dosazením! Pokud y > 0 vzor patří do jedné třídy, y < 0 vzor patří do druhé třídy. y = 0 je rozhodovací hranice, kde se nelze rozhodnout. Naštěstí se toto nestává často. Porovnání < 0 nebo > 0 můžeme nahradit například funkcí signum(y) která vrací +1 pro kladná čísla a 1 pro záporná. 5 / 32 Lineární klasifikátor

Lineární klasifikátor (2) Vidíte v rovnici nějaký problém? Zkusme dosadit do rovnice x 1 = x 2 = 0. Co vyjde? y = 0 bez ohledu na nastavení vah w 1, w 2. Rozhodovací hranice libovolného klasifikátoru tedy musí procházet nulou resp. vektorem (0, 0,..., 0). To je docela nepříjemné omezení rozhodovací hranice se vlastně pouze otáčí kolem nuly. Co s tím? Můžeme přidat změnit rovnici přímky na j w jx j + Θ = 0. Θ je aditivní konstanta a označuje se jako práh. 6 / 32 Lineární klasifikátor

Lineární klasifikátor (3) Rovnice pro lineární klasifikátor se tedy mírně změní: y = j w j x j + Θ = wx + Θ Ale jinak vše zůstane stejné. Pokud tedy vyjde, že y > 0 vzor patří do jedné třídy, y < 0 vzor patří do druhé třídy. 7 / 32 Lineární klasifikátor

Práh Teď zbývá pouze najít vektor koeficientů (vah) (w 1, w 2,..., w n ) a prahu Θ. Nejprve se zamysleme zda práh Θ představuje nějakou anomálii, která potřebuje speciální zacházení. Tak napůl :). Nepotřebuje, pokud trochu upravíme vstupní data. Co kdyby všechny vzory měli jeden atribut (vstupní proměnnou, řekněme x 0 ) se stejnou hodnotou? Když pak budu počítat w 0 x 0, vyjde mi vždy stejná hodnota... to je přece náš práh! Takže přidám ke každému vzoru ještě jednu dimenzi, která bude mít konstantní hodnotu pro jednoduchost 1 (ale můžete mu přiřadit libovolnou nenulovou hodnotu). Pak už se o práh nemusím speciálně starat. 8 / 32 Lineární klasifikátor

Gradientní sestup krok stranou Gradientní sestup je iterativní optimalizační metoda. Jde o to, že máme funkci f(x) a hledáme její minimum. A jak minimum najít? Budu hledat takové x, kde má funkce f(x) nejnižší hodnotu. Mám nějaké x 0 a znám hodnotu f(x 0 ). A hledám v okolí x 0, nejaké x 1, kde bude hodnota f(x 1 ) nižší. A to budu opakovat stále dokola, až to dál nepůjde. Na horách se chci dostat do údolí. Podívám se, kterým směrem se kopec nejvíc snižuje a udělám krok tím směrem. A zase se podívám, kam je to nejvíc z kopce a udělám krok. A tak dále, až jednou zjistím, že to dál nejde, čili jsem v údolí. 9 / 32 Lineární klasifikátor

Gradientní sestup krok stranou (2) V matematice existuje možnost, jak zjistit směr největšího vzestupu hodnoty funkce - gradient. To je první parciální derivace podle všech dimenzí. Když půjdu přesně opačně, půjdu ve směru největšího poklesu. Gradient je vektor parciálních derivací podle jednotlivých proměnných: grad(f(x 1, x 2,..., x n )) = ( f x 1, f x 2,..., f x n ) 10 / 32 Lineární klasifikátor

Chybová funkce a gradientní sestup Stejně jako u jiných klasifikačních metod, hledáme nastavení klasifikátoru (zde vah) takové, aby klasifikoval správně co nejvíc vzorů. Mějme tedy chybovou funkci J(w, χ), která vrací počet špatně klasifikovaných vzorů x z množiny vzorů χ (například z testovací množiny) při daných vahách w. Ale taková se nám nehodí neumím spočítat parciální derivace (a tudíž ani gradient). Zkusme jinou E(w) = x χ err( w(t)x), kde χerr jsou špatně klasifikované vzory z χ. To už je spojitá funkce. A chybovou funkci E mohu minimalizovat změnou vah pomocí gradientního sestupu. 11 / 32 Lineární klasifikátor

Chybová funkce a gradientní sestup Parciální derivace chybové funkce E podle jedné proměnné vypadá takto: E = x 1 χ err( w 1(t)x 1 ) w 1 w 1 Kde x 1 je první souřadnice z x a w 1 je první souřadnice z w. x 1 χ err( w 1(t)x 1 ) w 1 = x 1 χ err x 1 Z toho plyne závěr, že nejvíce chybu snížím, pokud váhu w 1 změním o součet hodnot prvních vstupních proměnných x 1 vzorů na kterých jsem udělal chybu. Analogicky i ostatní vstupní proměnné (včetně prahu). 12 / 32 Lineární klasifikátor

Učení lineárního klasifikátoru A přesně na této myšlence je založen Perceptronový algoritmus. (Proč zrovna perceptronový, necháme teď stranou). 1. Inicializuj váhy na náhodné hodnoty. 2. Vezmi náhodný vstupní vzor x. A spočítej hodnotu y(x) = sgn( j w jx j = wx). 3. Pokud se požadovaný výstup d(x) liší od skutečného y(x), oprav váhy (w) takto: e(x) = d(x) y(x) wi (t + 1) = w i (t) + ηe(x)x i 4. Pokud chceš, pokračuj bodem 2). η je koeficient učení, který s postupem času může klesat k nule. http://neuron.felk.cvut.cz/courseware/data/chapter/36nan028/s04.html 13 / 32 Lineární klasifikátor

Jednoznačnost výsledné přímky Jak poznám, že se perceptronový algoritmus zastavil? Je výsledná přímka jediná možná? Ne, takových přímek je dokonce nekonečně mnoho. Přesto jsou některé lepší něž jiné. Kterou mám vybrat? A kterou nám vybere Perceptronový algoritmus? 14 / 32 Lineární klasifikátor

Lineárně separovatelné problémy Lze pomocí tohoto algoritmu klasifikovat bezchybně následující data? Ne! Třídám (datům), které lze oddělit přímkou říkáme lineárně separovatelná. 15 / 32 Lineární klasifikátor

Lineárně ne separovatelné problémy Lze pomocí lineárního klasifikátoru vyřešit lineárně ne-separovatelné problémy? Ne. K tomu potřebuji přidat další kvalitu. 1. Jednou z možností je zkombinovat lin. klasifikátory. (O tom bude příští přednáška.) 2. Rozšíření báze. 16 / 32 Lineární klasifikátor

Rozšíření báze Když data nejsou separabilní v originálním prostoru, zkusme jestli by nebyla lineárně separovatelná ve více-dimenzionálním prostoru. 17 / 32 Lineární klasifikátor

Transformace Zase existuje mnoho transformací. Jedna z těch jednodušších přidává ke stávajícím dimenzím také součiny originálních dimenzí. Je charakterizovaná parametrem s maximálním stupněm součinu. Pro s = 2 z původních dimenzí (x 1, x 2 ) získám 5D prostor dimenzí (x 1, x 2, χ 1, χ 2, χ 3 ), kde χ 1 = x 2 1 χ2 = x 1 x 2 χ 3 = x 2 2 18 / 32 Lineární klasifikátor

Učení nelineárního klasifikátoru Když mám teď nové dimenze, jak naučím můj klasifikátor? Díky rozšíření báze teď mám více-dimenzionální prostor a (třeba) teď dokáži třídy lineárně separovat. Úplně stejně jako v předchozím případě. Tj použiji například perceptronový algoritmus. Pokud se mi nepodaří získat lineární separaci, mohu zkusit zvýšit maximální stupeň součinu a zkusit separaci znovu. 19 / 32 Lineární klasifikátor

Rozhodovací hranice Jak pak bude vypadat projekce rozhodovací hranice zpět do originálních dimenzí? Tím se nám podařilo dosáhnout toho, že se rozhodovací hranice ohnula. A pokud budu zvyšovat parametr s, bude hranice stále poddajnější. 20 / 32 Lineární klasifikátor

Rozhodovací hranice (2) Můžu zvyšovat maximální stupeň součinu (parametr s) do nekonečna? Nebo někde narazím? S vyšším maximálním stupněm s vyvstávají dva problémy: 1. Jednak mám více vah, které musím nastavovat a perceptronový (nebo jakýkoliv jiný) algoritmus to nemusí zvládnout čili váhy se nastaví špatně. 2. Zvyšuji pravděpodobnost, že se klasifikátor přeučí. Tj. naučí se šum a chyby v trénovacích datech a nedokáže vlastnosti trénovacích dat zobecnit. (Podobně jako například 1-NN klasifikátor.) 21 / 32 Lineární klasifikátor

Klasifikace do několika tříd Co když mám více než dvě třídy? Mohu použít (ne-)lineární separaci? Případně jak? Budu rozhodovat o každé třídě samostatně. Čili pro problém s N třídami budu mít N klasifikátorů. Každý bude říkat Instance patří do mé třídy / Instance nepatří do mé třídy. Při rozhodování o neznámé instanci x se zeptám všech N klasifikátorů na jejich rozhodnutí. 1. x patří právě do jedné třídy. 2. x patří do více tříd pak se musím rozhodnout například podle hodnoty xw (čím je větší, tím je x dále od rozhodovací hranice). 3. analogoicky, pokud x nepatří do žádné třídy. Hledám tedy trídu, kam x nepatří nejméně :). 22 / 32 Lineární klasifikátor

Problémy lineárních klasifikátorů Linearita Pokud se dostatečně pohnu i jen v jedné proměnné, můžu získat obrácený výsledek. Hodnota xw roste se vzdáleností od rozhodovací hranice a nemá žádnou interpretaci. Lineární klasifikátory špatně snášejí chybějící hodnoty. Pokud provádím rozšíření báze, může trvat učení velmi dlouho. 23 / 32 Lineární klasifikátor

Linear Discriminant Analysis LDA je statistický přístup k problému lineární separace. Pamatujete si PCA? (Principal Component Analisis mluvili jsme o něm u SOM) LDA redukuje původní prostor na přímku (1 dimenzi) a to tak, co nejvíce oddělil vzory různých tříd. V jistém smyslu je to opak rozšíření báze. 24 / 32 Lineární klasifikátor

Linear Discriminant Analysis (2) Obraz vzoru v nové souřadnici pak získám jako xw, kde w jsou váhy. V principu počítám to samé jako u lineárního klasifikátoru, ale interpretace a postup jsou úplně jiné. 25 / 32 Lineární klasifikátor

Linear Discriminant Analysis (3) Při počítání LDA se snažím maximalizovat separaci mezi třídami. Nejprve pro každou třídu musím spočítat rozptyl v obraze (scatter). µ s1 = 1 s 1 x i s 1 x i y i = x i w µ s1 = 1 s 1 s 1 2 = y i = 1 s 1 x i s 1 µ s1 x 1 s 1 y i x i s 1 x i w 26 / 32 Lineární klasifikátor

Linear Discriminant Analysis (4) A nyní můžu spočítat míru separace pro projekci danou vahami w. J(w) = µ s 1 µ s2 2 s 2 2 1 + s 2 Hledáme tedy projekci, která co nejvíc seskupí vzory stejné třídy a co nejvíc zároveň oddělí vzory různých tříd. 27 / 32 Lineární klasifikátor

LDA pro více tříd LDA lze zobecnit tak, aby dokázalo klasifikovat do více tříd. Pak se nevytváří pouze jedna nová dimenze, ale počet tříd -1 nových dimenzí a mírně se upraví vzorečky :). 28 / 32 Lineární klasifikátor

Problémy LDA Stejně jako všechno, má i LDA nějaké mouchy: Počet dimenzí vytvořený LDA nemusí stačit ke správném zařazení do třídy. LDA předpokládá normální rozložení dat ve třídách. A selhává, pokud tomu tak není. (Například třídy mají komplexní tvary). Rozíly mezi třídami jsou spíše v rozptylu hodnot než v rozdílu středních hodnot. 29 / 32 Lineární klasifikátor

Logistická regrese Co kdybych chtěl, abych dokázal vzdálenosti od rozhodovací hranice nějak interpretovat. Ideálně ještě tak, že je to pravděpodobnost příslušnosti k dané třídě. Existuje logistická funkce, která je definovaná takto f(z) = 1 1+e z Její hodnoty jsou omezené na interval 0... 1. A navíc kolem z = 0 (rozhodovací hranice) je její změna největší. 30 / 32 Lineární klasifikátor

Logistická regrese (2) Zkusíme zavést pojem sance = p 1 p Abychom ji dostali do rozmezí 0... 1 zkusme ji zlogaritmovat. Tím získáme funkci logit(p) = log(sance(p)) = log( p 1 p ) Zkusme předpokládat, že logit(p) = β 0 + β 1 x 1 + β 2 x 2 +... + β k x k Kde β 1,..., β k jsou regresní koeficienty a β 0 je posun. A teď zkusme opět dopočítat pravděpodobnost vzoru x. p(x) = 1 1+e β 0 +β 1 x 1 +β 2 x 2 +...+β k x k 31 / 32 Lineární klasifikátor

Zdroje LDA převzata z research.cs.tamu.edu/prism/lectures/pr/pr_l10.pdf http://www.omidrouhani.com/research/ logisticregression/html/logisticregression.htm 32 / 32 Lineární klasifikátor

Vytěžování dat, přednáška 10: Neuronové sítě s dopřednou architekturou Miroslav Čepek Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Fakulta elektrotechnická, ČVUT 1 / 30 Neuronové sítě

Umělé neuronové sítě Umělá neuronová síť je matematickým přiblížením biologické neuronové sítě. A snahou je napodobovat funkci biologických neuronových sítí. Umělé neuronové sítě představují jiný přístup k řešení problémů než konvenční výpočetní technika. Ale mezi schopnostmi umělých neuronových sítí a mozku je přecejen ještě obrovský rozdíl. 2 / 30 Neuronové sítě

Biologická neuronová síť Více si můžete přečíst například na http://www.mindcreators.com/neuronbasics.htm nebo http://www.generation5.org/content/2000/nn00.asp. 3 / 30 Neuronové sítě

Umělá neuronová síť Se skládá ze vzájemně propojených jednotek neuronů. Každý neuron transformuje své vstupy na výstup. Čili umí jen velmi málo, ale jejich síla je v jejich spolupráci. Konekcionistivký přístup k umělé inteligenci představa, že spoluprácí mnoha hloupých jednotek dosáhnu chování, které je kvalitativně chytřejší než jen součet možností jednotlivých elementů. Neuron při transformaci může uplantit svou lokální paměť. Výstupy neuronu jsou přivedeny na vstupy dalších neuronů. 4 / 30 Neuronové sítě

Historie První, kdo se začal zabývat výzkumem umělých neuronových sítí byl v roce 1943 jistý profesor McCulloch a jeho žák Pitts. Oba v prvním plánu hledali matematický model biologického neuronu. Tento jejich model se dodnes používá a nazývá se McCulloch-Pittsův neuron. Občas se označuje také jako Perceptron. http://wwwold.ece.utep.edu/research/webfuzzy/docs/ kk-thesis/kk-thesis-html/node12.html 5 / 30 Neuronové sítě

Princip práce McCulloch-Pittsova neuronu Na vstupy x 1, x 2,... x n (na předchozím odrázku označeny jako I 1, I 2,... I n ) předložím pozorované hodnoty. Tyto hodnoty přenásobím vahami w 1, w 2,... w n a spočítám tzv. aktivaci neuronu. n a = w i x i i=1 Aktivace odpovídá aktivaci biologického neuronu. A ten vypálí výstup jen v případě, že aktivace překročí určitý práh. To se v umělých neuronových sítích simuluje pomocí aktivační funkce. V případě perceptronu skokovou funkcí. f(a) = 0, pro a < konst, jinak f(a) = 1. Nepřipomíná vám to něco? 6 / 30 Neuronové sítě

Rozhodovací hranice a učení Jak vypadá rozhodovací hranice Perceptronu (McCulloch-Pittsova neuronu)? A jak nastavíme váhy? Přece pomocí perceptronového algoritmu! Jaké jsou limity perceptronu? 7 / 30 Neuronové sítě

Aktivační funkce Prvním vylepšením perceptronu jsou různé aktivační funkce, kterými se transformuje aktivaci na výstup. 8 / 30 Neuronové sítě

ADALINE Drobné vylepšení perceptronu, které se týká učícího algoritmu. Při učení se chyba nepočítá přímo z výstupu, ale z aktivace. Což znamená, že musím znát požadovanou aktivaci. 9 / 30 Neuronové sítě

Vícevrstvá síť perceptronů Madaline MADALINE Multiple Adaptive Linear Element síť s jednou skrytou vrstvou a jednou výstupní vrstvou. 10 / 30 Neuronové sítě

MADALINE vybavování Výpočet odpovědi sítě na předložený vstupní vzor je jednoduchý. Přivedu na vstupy všech neuronů odpovídající hodnoty vstupů. Pro každý neuron přenásobím vstupní hodnoty vstupnímy vahami a sečtu. Tím získám aktivaci neuronu. Aktivaci transformuji aktivační funkcí na výstup. Když takto vypočítám výstupy všech neuronů, aplikuji majoritu (spočítám kolik neuronů zařadilo vzor do třídy 0 a kolik do třídy 1). A podle toho předpovím výstupní třídu sítě. 11 / 30 Neuronové sítě

Učení MADALINE Učení jen nastíním předložím vstupní vzor a spočítám výstup sítě. Pokud se výstup shoduje s požadovaným, nedělám nic. Pokud se vypočítaný a skutečný výstup liší, musím změnit váhy nějakého neuronu, který předpovídá špatnou třídu, aby příště změnil názor a tím se majorita přiklonila na správnou stranu. A nejjednodušší je přesvědčit neuron, který má aktivaci nejblíž nule. Tomuto neuronu přepočítám váhy. 12 / 30 Neuronové sítě

Použití MADALINE Je dnes spíše ilustrativní. Učící algoritmus nezvládá komplexní úpravy a nedokáže měnit váhy neuronů dostatečně flexibilně. Druhý a stejně závažný problém MADALINE z principu fungování nemůže zvládnout lineárně neseparabilné problémy. Vymyslíte proč? Problém dělá ta majorita... 13 / 30 Neuronové sítě

Back Propagation Neuronová síť typu back propagation představuje elegantní cestu, jak se vypořádat s problémy sítě MADALINE a zárověň zvládnout učení několika skrytých vrstev. Podle jména dochází k zpětnému šíření kokrétně ke zpětnému šíření chyby. Nejedná se v pravém slova smyslu o jednu neuronovou síť, ale označuje se tímto pojmem libovolná síť, ve které se při učení šíří chyba z výstupu zpět na vstup. Můžete narazit i na jiné back propagation síť, než o které budu vyprávět já. BP jsou prakticky jediným typem sítí, který je znám mimo výzkumnou komunitu zabývající se NS. 14 / 30 Neuronové sítě

Struktura Back Propagation Jedná se o dopřednou síť s jednou nebo dvěma skrytými vrstvami. Vrstva se skládá z neuronů jejich počet v jednotlivých vrstvách (a počet vrstev) je jedním z parametrů, který musíte určit experimentálně tj. zkusit. Existuje celá teorie, která dokazuje, že k aproximaci libovolné funkce (libovolné rozhodovací hranice) stačí dvě skryté vrstvy. 15 / 30 Neuronové sítě

Back Propagation neuron Jedná se o standardní Perceptron se spojitou (!!) aktivační funkcí. Spojitost funkce budeme používat při učení budeme počítat derivace. 16 / 30 Neuronové sítě

Back Propagation aktivační funkce 17 / 30 Neuronové sítě

Back Propagation učení (1) Učící algoritmus je trochu podobný tomu, co jsme již viděli. Nejprve se spočítá odpověď (výstup) sítě na předložený vstup, pak se spočítá rozdím mezi vypočítaným a požadovaným výstupem. Co je úplně jiné je výpočet změny vah. Chyba se totiž distribuuje zpět ke vstupům a postupně se upravují váhy ve skrytých vrstvách. A pak se pokračuje předložením dalšího vzoru, až do té doby než dosáhneme zastavujícího kritéria. 18 / 30 Neuronové sítě

Back Propagation učení (2) 1. Inicializuj všechny váhy všech neuronů na náhodné hodnoty. 2. Vytvoř permutaci trénovací množiny. 3. Vyber další vzor x i z vytvořené permutace. 4. Vypočítej výstup sítě y i. 5. Spočítej chybu (rozdíl) mezi y i a skutečnou hodnotou d i. 6. Postupně propaguj chybu zpět a modifikuj váhy. 7. Pokud jsi dosud nepředložil všechny prvky z trénovací množiny pokračuj bodem 3. 8. Pokud chyba přes všechny trénovací vzory je větší než zvolené kritétium, pokračuj bodem 2. 19 / 30 Neuronové sítě

Back Propagation učení (3). Výpočet výstupu sítě se provádí již známým způsobem. Pro každý neuron, u nějž známe všechny vstupy spočítáme aktivaci. n a = w i x i + Θ i=1 Pokud znám aktivaci můžu spočítat výstup pomocí zvolené aktivační funkce. Pro, například, logistickou funkci tedy 1 y = 1 + e γa Takto postupuji pro všechny neurony, až zjistím výstup výstupního neuronu. 20 / 30 Neuronové sítě

Back Propagation učení (4) Když zjistím výstup pro všechny vzory v trénovací množině, můžu zjistit globální chybu (energii) sítě. E = 1 n (y 2 i d i ) 2 i=1 A snažíme se chybu (energii) minimalizovat. To se dá dělat různě a jednou z variant je gradientní sestup. Gradientní metoda mění váhy tak, aby energie klesla co možná nejvíc. 21 / 30 Neuronové sítě

Back Propagation učení (4) Na horách se chci dostat do údolí. Podívám se, kterým směrem se kopec nejvíc snižuje a udělám krok tím směrem. A zase se podívám, kam je to nejvíc z kopce a udělám krok. A tak dále, až jednou zjistím, že to dál nejde, čili jsem v údolí. V matematice existuje možnost, jak zjistit směr největšího vzestupu hodnoty funkce - gradient. To je první parciální derivace podle všech dimenzí. Když půjdu přesně opačně, půjdu ve směru největšího poklesu. 22 / 30 Neuronové sítě

Back Propagation učení (5) Po chvíli derivování spočítáme (viz například skripta Miroslav Šnorek: Neuronové sítě a neuropočítače ), dojdeme k následujícím vzorcům. δ o i (t) = (y o i d i )S (ϕ) Kde δi o (t) je požadovaná změna neuronu i ve výstupní vrstvě o při skutečném výstupu y i oproti skutečnému výstupu d i. S je funkce inverzní k aktivační funkci a ϕ je aktivace neuronu. Změnu váhy mezi neuronem i ve vástupní vrstvě a neuronem j v první skryté vrstvě pak spočítám takto: w o ij(t + 1) = w o ij(t) + w o ij(t) w o ij(t) = ηδ o i (t)y h j Kde y h j je výstup j-tého neuronu ve druhé skryté vstvě. 23 / 30 Neuronové sítě

Back Propagation učení (6) Nový práh neuronu i ve výstupní vrstvě o pak spočítám takto: Θ o i (t + 1) = Θ o i (t) + Θ o i (t) Θ o i (t) = ηδ o i (t) 24 / 30 Neuronové sítě

Back Propagation učení (7) V druhé skryté vrstvě pak změnu vah vypočítám podle následujících vzorců: δ h i (t) = y h i (1 yh i ) w o ik δo k w h ij(t + 1) = w h ij(t) + w h ij(t) w h ij(t) = ηδ h i (t)y h 1 j Θ h i (t + 1) = Θ h i (t) + Θ h i (t) Θ h i (t) = ηδi h (t) Kde w h ij e váha mezi neuronem i ve druhé skryté vrstvě a j v první skryté vrstvě. y h 1 j je výstup j-tého neuronu v první skryté vrstvě. 25 / 30 Neuronové sítě

Back Propagation vylepšení trénovacího algoritmu Všechna vylepšení směřují k tomu, abych zvýšil pravděpodobnost toho, že (rychleji) najdu globální minimum energetické funkce. Lze si jednoduše představit situaci, kdy gradientní sestup tak jak jsem o něm teď mluvil skončí v lokálním extrému. (Všechny body ve vzdálenosti 1 krok jsou výše, ale rozhodně nejsem v globálním minimu). Setrvačnost při hledání směru kroku v čase t + 1 zohledním nejen současný gradient, ale i směr a velikost minulého kroku. Restart nejde o vylepšení učícího algoritmu v pravém smyslu slova, ale pokud se sestup energetické funkce zastaví, zapamatuji si výsledek a začnu znova. Další podrobnosti viz. například skripta Miroslav Šnorek: Neuronové sítě a neuropočítače. 26 / 30 Neuronové sítě

Další neuronové sítě Prezentované sítě nejsou zdaleka jediné, které existují. I když Back propagation je nejznámější, neznamená to, že je nejlepší, nejzajímavější a nejlépe fungující. Exitují například sítě, které při učení mění nejen váhy, ale i svou strukturu sítě GMDH a GAME. Navíc mohou používat úplně jiné aktivační funkce. Síť s jiným typem neuronů (a v každé vrstvě jiné) RBF síť. Sítě s velkými počty neuronů, kde váha mezi neurony i a j není určena zapamatovanou hodnotou, ale nějakou funkcí w(i, j) HyperNEAT (umožňuje tvořit sítě s tisíci neuronů). Sítě pro shlukování SOM. 27 / 30 Neuronové sítě

Použití neuronových sítí Klasifikace Regrese Shlukování Komprese dat Filtrování Řízení 28 / 30 Neuronové sítě

Problémy / Nevýhody Umělé neurnové sítě (stejně jako cokoliv) nejsou všemocné. A na některé problémy se nehodí nebo jsou zbytečně složité. Předtím než začnete zkoušet NS zkuste se zamyslet nad následujícími otázkami: Dokáži jednoduše popsat řešení problému? Pokud ano, je mnohem jednodušší držet se tradičního programování. Mám dostatečné množství ohodnocených dat v trénovací množině? Musím získat absolutně přesné hodnoty na výstupu? Potřebuji být schopen jednoduše vysvětlit funkci modelu? 29 / 30 Neuronové sítě

Zdroje http://www.mind.ilstu.edu/curriculum/modoverview. php?modgui=212 http://neuron.felk.cvut.cz/courseware/html/ chapters.html skripta Miroslav Šnorek: Neuronové sítě a neuropočítače. série knih Mařík a spol: Umělá inteligence http://www.mindcreators.com/tableofcontents.htm 30 / 30 Neuronové sítě

Vytěžování dat, cvičení 9: Strojové učení Radomír Černoch Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Fakulta elektrotechnická, ČVUT 1 / 11 Strojové učení

Iris data ještě jednou 2 / 11 Strojové učení