Umělá Umělá inteligence II
Transkript
Umělá inteligence II Roman Barták, KTIML [email protected] http://ktiml.mff.cuni.cz/~bartak Úvodem Dnes budeme učit agenty, jak zlepšit svůj výkon ýk při ř řešení ř š í budoucích b d í h úloh úl h na základě ákl dě pozorování světa. p rozhodovací stromy regresní metody umělé neuronové sítě neparametrické é modely support pp vector machines boosting Umělá inteligence II, Roman Barták Proč se učit? Pokud můžeme chování agenta zlepšit, proč ho rovnou nenaprogramujeme lépe? těžko můžeme předvídat všechny situace, do kterých se agent může dostat těžko můžeme těžk ůž předvídat ř d íd t všechny š h změny ě světa ět v čase Můžeme agenta naprogramovat na průchod jedním bludištěm, ale projde všechna bludiště? pokud předvídáme cenu na burze, je potřeba se adaptovat na změnu situace často ani nemusíme vědět, jak řešení úkolu nap og amo at naprogramovat každý umíme rozpoznávat obličeje blízkých, ale jak proces rozpoznávání naprogramovat? Umělá inteligence II, Roman Barták Formy učení V principu můžeme zlepšovat každou část agenta. Zlepšení a použité techniky záleží na zodpovězení otázek: Jakou část agenta zlepšujeme? Jak reprezentujeme znalosti a zlepšovanou část? Jaké předchozí znalosti agent má? funkci užitku,, efektyy akcí,, převod p pozorování p na akci,, … l i ká reprezentace, Bayesovské logická B ké sítě íě Na základě jaké odezvy se agent učí? učení bez učitele (unsupervised learning) zpětnovazební učení (reinforced learning) například hledání vzorů klusterováním učení na základě odměn a trestů ů učení s učitelem (supervised learning) z dvojic j vstup-výstup p ý p se učíme odpovídající p j funkci Umělá inteligence II, Roman Barták Učení s učitelem Máme dána tréninková data vstup-výstup ((x1,y1), ),…,(x ,( N,yN), kde yi = f(x ( i)). Cílem je najít hypotézu h, která aproximuje funkci f. hypotézy vybíráme z prostoru hypotéz (například lineární funkce) hypotéza je konzistentní, konzistentní pokud h(xi) = yi přesnost hypotézy měříme na testovacích datech Typy ypy úloh klasifikace: množina výstupů yi je konečná (slunečno, zataženo, déšť) regrese: výstupy jsou čísla (teplota vzduchu) Umělá inteligence II, Roman Barták Ockhamova břitva Co když tréninkovým příkladům odpovídá více hypotéz? Obecně preferujeme jednodušší hypotézu. Někdy Někd může být lepší jednodušší jednod šší hypotéza, h poté a která kte á pouze aproximuje tréninková data, než složitější hypotéza, yp , která přesně p pokrývá p ý tréninkové příklady (přeučení). Jaká hypotéza yp je j jednodušší? j například lineární funkce je jednodušší než kvadratická Princip Ockhamovy břitvy ř – nejjednodušší šší vysvětlení je zpravidla správné. Umělá inteligence II, Roman Barták Rozhodovací stromy Rozhodovací strom je jednoduchý způsob reprezentace funkce, která vektor vstupních atributů ib ů převádí ř ádí na rozhodnutí h d í – výstupní hodnotu. rozhodnutí získáme posloupností l tí testů t tů na hodnoty vstupních atributů Uvažujme binární rozhodnutí (Booleovský rozhodovací strom) pro n atributů je rozhodovací funkce popsatelná tabulkou s 2n řádky n máme tedy 22 různých funkcí každou funkci můžeme triviálně popsat rozhodovacím stromem hloubky n Jak najít „malý“ konzistentní rozhodovací strom? Umělá inteligence II, Roman Barták Rozhodovací stromy řešená úloha Prostor hypotéz je tvořen rozhodovacími stromy a my hledáme ten, ten který odpovídá zadaným příkladům (konzistentní hypotéza). příklady ve tvaru (x, y) pro jednoduchost b d budeme pracovatt s Boolean výstupem příklad s restaurací (budeme čekat?) Umělá inteligence II, Roman Barták Rozhodovací stromy princip učení Strom budeme hledat metodou rozděl a panuj vybereme b nejvíce j í informativní i f ti í atribut, t ib t který kt ý dáme dá do d kořene p podle hodnot atributu rozdělíme p příkladyy pokud dostaneme příklady se stejným výstupem, jsme hotovi, jinak pokračujeme s dalším atributem J k poznáme Jak á nejvíce j í informativní i f ti í atribut? t ib t? je to ten, který do klasifikace přinese největší rozdělení š špatný ý atribut příklady vůbec nerozdělil dobrý atribut některé příklady sám klasifikoval Umělá inteligence II, Roman Barták Rozhodovací stromy algoritmus učení Algoritmus ID3 vrátí nejčastější výstup z příkladů rodiče vrátí nejčastější j j výstup ý p z příkladů pro rozdělení vybere nejvíce informativní atribut křivka kři k učení č í přesnost stromu podle počtu tréninkových příkladů Umělá inteligence II, Roman Barták Volba testovacího atributu Jaký atribut vybrat pro test v rozhodovacím stromu? Rozhodneme se p podle informačního zisku atributu ((větší jje lepší), p ) který je definován pomocí entropie. Entropie je míra neurčitosti náhodné proměnné měří se v „bitech bitech“ informace, informace které získáme znalostí hodnoty proměnné mince, kde vždy padá orel, má nulovou entropii klasická mince má entropii 1 „mince mince“ se čtyřmi stejně pravděpodobnými stranami má entropii 2 H(V) = - Σk p(vk) log2(p(vk)), vk jsou hodnoty proměnné V B(q) = - q.log2 q - (1-q).log2(1-q) entropie Booleovské proměnné H(Goal) = B(p/(p+n)) entropie sady p pozitivních a n negativních příkladů Atribut A rozdělí příklady dle hodnoty atributu očekávaná entropie po testu atributu A Remainder(A) = Σk B(pk /(pk +nk)).(pk +nk)/(p+n) informační zisk atributu Gain(A) = B(p/(p+n)) - Remainder(A) Gain(Patrons) ≈ 0.541 Gain(Type) = 0 Umělá inteligence II, Roman Barták Přeučení Někdy učící algoritmus vydá velký rozhodovací strom. Příklad: Příkl d Chceme Ch udělat děl t rozhodovací h d í strom, t který kt ý určí, čí zda na kostce padne 6 podle atributů jako je hmotnost a barva kostky, y, držení palců p apod. p dostaneme velký strom podle nalezených vzorů ve vstupních datech rozumný strom by měl mít jeden uzel s odpovědí NE V takových případech hovoříme o přeučení (overfitting). nastává obecně nejen u náhodných dat větší možnost přeučení je u větších prostorů hypotéz a u větších počtů atributů menší šance přeučení je u zvětšujícího se počtu tréninkových příkladů Umělá inteligence II, Roman Barták Prořezání stromu Přeučení můžeme zmírnit prořezáním nalezeného rozhodovacího stromu. vezmeme e meme poslední rozhodovací o hodo a í uzel el na nějaké cestě estě pokud je atribut irelevantní (detekuje pouze šum v datech), uzel vyřadíme Jak poznáme irelevantní atribut? test významnosti (χ2 test) uvažujme j data bez vzoru (nulová ( hypotéza) yp ) vypočteme odchylku aktuálních dat od nulové hypotézy n‘k = n . (pk+nk)/(p+n) p‘k = p . (pk+nk)/(p+n) 2 2 Δ = Σk (pk-p‘k) /p‘k + (nk-n‘k) /n‘k použitím χ2 tabulky najdeme hodnotu Δ zajišťující pro daný počet atributů (stupňů volnosti) přijetí či odmítnutí nulové hypotézy (přijetí znamená, že atribut je irelevantní) Můžeme ůž χ2 oříznutí ří í použít ží užž při ř konstrukci k k rozhodovacího h d íh stromu (včasné zastavení)? raději ne, protože oříznutí se týká jednoho atributu, ale k bi kombinace hodnot h d t víc í atributů t ib tů může ůž být iinformativní f ti í (například ( říkl d u stromu pro popis funkce XOR) Umělá inteligence II, Roman Barták Rozhodovací stromy praktické vlastnosti Pro reálné problémy potřebují rozhodovací stromy některá rozšíření resp. je potřeba vyřešit některé problémy: chybějící h bějí í data d ( h chybět (mohou h bě hodnoty h d některých ěk ý h atributů) ib ů) mnoha hodnotové atributy (každý příklad může mít jinou hodnotu mnoha-hodnotové atributu) informační zisk nemusí správně popisovat důležitost takových atributů nemusíme větvení dělat podle všech hodnot, ale binárně podle jedné hodnoty spojité jité nebo b čí číselné l é hodnoty h d t vstupních t í h atributů t ib tů Jak taková data klasifikovat? Jak upravit formuli pro výpočet informačního zisku? vezmeme četnost výskytu hodnot a na jejím základě chybějící hodnoty doplníme místo nekonečně mnoha větví se hodnoty atributů rozdělí podle vybraných bodů (příklady se setřídí podle hodnot atributu a za body dělení se berou hodnoty, kde se mění klasifikace) výpočtově ýpočto ě nejnáročnější nejná očnější část učení čení spojité hodnoty výstupního atributu bude potřeba regresní strom, tj. rozhodovací strom, který má v listech lineární funkci počítající na základě některých vstupních atributů výstupní hodnotu učící se algoritmus musí rozhodnout, kdy ukončit dělení stromu a aplikovat lineární regresi Rozhodovací stromy mají prakticky velmi důležitou vlastnost – je vidět, jak rozhodnutí bylo uděláno (což třeba neplatí u neuronových sítí). Umělá inteligence II, Roman Barták Regrese Jak naložíme se spojitými proměnnými? Prostorem hypotéz budou lineární funkce začneme s lineárními funkcemi jedné proměnné (univariate linear regression) zobecníme na lineární funkce více proměnných ((multivariate linear regression) g ) nakonec ukážeme lineární klasifikátory (použití prahové funkce) Umělá inteligence II, Roman Barták Lineární regrese Hledáme funkci ve tvaru y = w1.x + w0 Označme hw(x) = w1.x + w0, kde w = [w0,w1] Hledáme hypotézu hw, která nejlépe odpovídá datům (hledáme váhy w1 a w0). Jak měříme chybu vzhledem k datům? Nejčastěji se používá kvadratická chyba Loss(h ( w) =Σj (yj – hw((xj))2 = Σj (yj – ((w1.xj + w0))2 hledáme tedy w* = argminw Loss(hw) lze najít vyřešením rovnic ∂⁄∂w0 Σj (yj – (w1.xj + w0))2 = 0 ∂⁄∂w1 Σj (yj – (w1.xj + w0))2 = 0 j d jednoznačné č é řešení ř š í w1 = (N Σj xj yj – Σj xj Σj yj ) / (N Σj xj2 – (Σj xj)2) w0 = (Σj yj – w1. Σj xj) / N Umělá inteligence II, Roman Barták Nelineární regrese Pokud je prostor hypotéz definován jiným typem funkce, nemusí mít rovnice ∂⁄∂wi Loss(hw) = 0 analytické řešení. Můžeme použít metodu poklesu dle gradientu začneme s libovolným nastavením vah upravíme p váhyy podle p gradientu g (největší ( j pokles) p ) wi ←wi – α ∂⁄∂wi Loss(hw), kde α je tzv. learning rate (může být konstantní nebo v průběhu ů ě učení č í klesat) opakujeme do konvergence Pro lineární regresi dostaneme: w0 ←w0 + α Σj (yj – hw(xj)) w1 ←w1 + α Σj (yj – hw(xj)).x )) xj Umělá inteligence II, Roman Barták Regrese s více atributy Hypotéza yp je j tvaru hw((x)) = w0 + Σi wixi Příklady rozšíříme o nultý atribut s hodnotou 1 hw((x)) = wTx Problém můžeme řešit analyticky, tj. řešením rovnic ∂⁄∂wi Loss(hw) = 0 w* = (XTX)-1 XT y kde X je matice vstupních atributů tréninkových příkladů (řádek = příklad) Nebo použijeme metody poklesu dle gradientu wi ←wi + α Σj (yj – hw(xj)).xj,i Umělá inteligence II, Roman Barták Lineární klasifikátor Lineární funkci můžeme také použít pro klasifikaci – pro oddělení dvou množin příkladů. lineární eá separátor sepa á o hledáme hypotézu hw tž. alternativně můžeme funkci h definovat pomocí prahové funkce hw(x) = 1 pokud w.x ≥ 0, jinak 0 hw(x) = Threshold(w.x), kde Threshold(z) ( ) = 1,, pro p z ≥ 0,, jinak j 0 perceptronové učící pravidlo wi ←wi + α (y – hw(x)).xi pokud k d je j příklad říkl d klasifikován kl ifik á správně, á ě váha áh se nemění ě í pokud hw(x) ≠ y, potom se váha zvětší/zmenší dle xi klasifikátor můžeme „změkčit“ „změkčit použitím logistické prahové funkce Threshold(z) = 1 / (1+e-z) wi ←wi + α (y – hw(x)). hw(x).(1 (x).(1-h hw(x)).xi často používané v reálných aplikacích Umělá inteligence II, Roman Barták Neparametrické modely Když se lineární regrese naučí hypotézu, můžeme zahodit tréninková data. Hovoříme o tzv. parametrických modelech – data sumarizujeme do podoby omezeného předem daného počtu parametrů (vah) (vah). Když ale máme velké množství tréninkových příkladů, není lepší aby „mluvily mluvily sami za sebe sebe“ místo převodu do malého vektoru? Odpovědí p jjsou neparametrické p modely, y, které nejsou charakterizovány vektorem parametrů, ale „pamatují“ si tréninkové příklady. P novýý příklad Pro říkl d x vyhledáme hl dá v paměti ěti stejný t j ý příklad říkl d a pokud tam je, vrátíme odpovídající y. Ale co když v paměti příklad se stejnými atributy není? Umělá inteligence II, Roman Barták Nejbližší sousedé Jak najít odpověď pro příklad, který není v tabulce příkladů? Najdeme k nebližších tréninkových příkladů a odpověď p složíme z jejich j j výstupů. ý p v případě klasifikace vybereme mezi nalezenými příklady třídy s největším výskytem (proto se k volí liché) Umělá inteligence II, Roman Barták Nejbližší sousedé vzdálenost Když hovoříme o nejbližších sousedech, jak d f definujeme vzdálenost? dál Typicky se používá tzv. Minkowského vzdálenost Lp(xj,xq) = (Σi |xj,i – xq,i|p)1/p p = 1: Manhattanská vzdálenost p = 2: Euclidovská vzdálenost Booleovské hodnoty: Hammingova vzdálenost (počet odlišných dliš ý h hodnot) h d t) Pozor na měřítko! zpravidla idl se hodnoty h d t normalizují li jí místo xj,i bereme (xj,i – μi)/σi, kde μi je průměr a σi je standardní odchylka Umělá inteligence II, Roman Barták Neparametrické modely poznámky ke klasifikaci Problém dimenzionality metoda nejbližších žší sousedů ů funguje f dobře ř pro velké é počty č příkladů s malým počtem atributů (malou dimenzí) v mnoho-dimenzionálním prostoru jsou nejbližší sousedé hodně daleko Hledání sousedů Jak vlastně najdeme j k nejbližších j sousedů? tabulka: nalezení prvku trvá O(N) binární vyvážený strom: nalezení prvku trvá O(log N), ale j sousedé mohou být ý ve vedlejších j větvích nejbližší dobré, pokud je příkladů exponenciálně více než dimenzí hašovací tabulky: nalezení prvku trvá O(1) je potřeba hašovací funkce citlivá na vzdálenost (blízké prvky jsou ve stejném t j é kkoši) ši) sousedy nelze hledat přesně, ale aproximačně (například použijeme více hašovacích tabulek, v každé najdeme prvky odpovídají příkladu a mezi nimi vybereme k nejbližších) Umělá inteligence II, Roman Barták Neparametrická regrese Podobně jako klasifikační úlohy úloh můžeme řešit regresní eg esní úlohu. úloh Spojování bodů lineární regrese dvou bodů z okolí Li á í regrese Lineární uděláme lineární regresi k (3) nejbližších sousedů (není spojité) Průměr sousedů vezmeme průměrný výstup k (3) nejbližších jbližší h sousedů dů (není ( í spojité) jité) Lokálně vážená regrese lineární regrese k nejbližších sousedů, kde vzdálenější j bodyy mají j menší váhu váha určena kernel funkcí K w* = argminw Σj K(Dist(xq,xj))(yj – w.xj)2 Umělá inteligence II, Roman Barták Support Vector Machines SVM jje dnes asi nejrozšířenější j j metoda učení s učitelem. Metoda jje založená na třech základních vlastnostech: hledání lineárního separátoru s maximálním okrajem k j (vzdáleností ( dál tí od d příkladů) říkl dů) pokud nelze příklady lineárně separovat, převedeme je kernel funkcí do jiného prostoru, prostoru kde separovat jdou použijeme neparametrický přístup pro reprezentaci hypotézy (ale s málo příklady) Umělá inteligence II, Roman Barták Při hledání lineárního separátoru nejsou všechny tréninkové příklady stejně důležité! Ty, y, které se nacházejí j na rozhraní mezi třídami, jsou významnější. Budeme hledat separátor, který má největší okraj ( dál (vzdálenost t od d tréninkových t é i k ý h příkladů) říkl dů) SVM separace lze řešit přes duální reprezentaci argmaxα Σj αj – ½ Σj,k αj αk yj yk (xj.xk), kde αj ≥ 0, Σj αj yj = 0 řešíme technikami kvadratického programování všimněme si, že tréninkové příklady jsou při výpočtu brány po dvojicích Hypotéza je vyjádřena v duální reprezentaci nebo pro původní reprezentaci w = Σj αj .x j Důležitá vlastnost h( ) = sign(Σ h(x) ( j αj yj (x.x ( j) - b) hypotéza je sice reprezentována neparametricky tréninkovými příklady, ale pouze některé váhy jsou nenulové – váhy příkladů, které jsou nejblíže separátoru – tzv. support vectors SVM tak spojuje výhody neparametrických modelů s parametrickými (držíme jen několik málo příkladů, kde αj ≠ 0) Umělá inteligence II, Roman Barták Kernel funkce f1 = (x1)2 f2 = (x2)2 f3 = √2 x1x2 Co když ale nejsou tréninkové příklady lineárně separovatelné? Můžeme vstupní vektor mapovat funkcí F do jiného prostoru, kde příklady budou separovatelné. Při hledání separace jednoduše místo xj použijeme F(xj). Č Často nemusíí F aplikovat na samostatné é příklady, ale můžeme aplikaci provést rovnou po dvojicích. F(xj) F(xk) = (xj.xk)2 hovoříme o tzv. kernel funkci K(xj,xk) používá se například polynomiální kernel K(xj,xk) = (1+xjxk)d dává prostor jehož dimenze je exponenciální v d Umělá inteligence II, Roman Barták Skládání hypotéz Zatím jsem vždy hledali jedinou hypotézu. Co kdybychom hledali více hypotéz a jejich výsledky potom skládali? hypotézy „hlasují“ o výsledné klasifikaci – většina vyhrává – což zvyšuje šanci na správnou klasifikaci přirozeně se tak také zvětší prostor hypotéz můžeme například lineárním klasifikátorem klasifikovat lineárně neseparovatelné t l é příklady říkl d Umělá inteligence II, Roman Barták Boosting Metoda d skládání kládá í hypotéz h é založená l ž á na vážení áž í tréninkových příkladů a opakovaném hledání hypotézy: na začátku dáme všem tréninkovým příkladů stejnou váhu (např. 1) zvolenou metodou najdeme nějakou hypotézu u příkladů, které jsou špatně klasifikovány zvýšíme váhu o dobře klasifikovaných ji snížíme váhu, opakujeme hledání hypotézy získané hypotézy přispívají do výsledného klasifikátoru s vahou danou správnou klasifikací tréninkových příkladů dokáže d káž zlepšit l šit i slabé l bé metody t d učení (stačí když je základní metoda „o trochu“ lepší než náhodné hádá í výsledku) hádání ý l dk ) Umělá inteligence II, Roman Barták AdaBoost Umělá inteligence II, Roman Barták
Podobné dokumenty
1 Analýza nezávislých komponent
Nezávislé komponenty jsou skryté proměnné, které nemohou být přímo měřeny nebo pozorovány.
Například na obrázku (1), to jsou hlasy lidí. Předpokládáme, že matice A je neznámá, takže
z pozorovaného ...
Umělá inteligence I Roman Barták, KTIML
Umělá
inteligence I
Roman Barták, KTIML
[email protected]
http://ktiml.mff.cuni.cz/~bartak
ZDE
• Cassia alata extract: snižuje riziko poškození DNA nebo ho okamžitě opravuje.
• Kapsule se zapouzdřenými vitaminy C a E jsou aktivovány UV zářením. Vitaminy pak chrání pleť.
• Komplex vitaminu E,...
Vnější vyjímatelné panty - použití
stroje zůstal otevřený bez dalších přídavných mechanismů. K
dostání je v různých provedeních, každé s vlastním momentem
záběru, takže pro každé dveře je možno nastavit vhodné tření. Pro
lehké ovlád...