Umělá inteligence Věda, jejímž úkolem je naučit stroje, aby dělaly věci, které vyžadují inteligenci, jsouli prováděny člověkem. Marvin Minsky 1950 Alan Turing: Computing Machinery and Intelligence. Mind 59, 1950, s.433460 Turingův test: úkolem stroje je v komunikaci s experimentátorem předstírat, že je člověk. od roku 1991 Loebnerova cena pro program, který nejlépe uspěje v redukované podobě Turingova testu www.loebner.net/prizef/loebnerprize.html 1
ELIZA 1965, J. Weizenbaum, imitace chování psychiatra pacient: Ahoj. Eliza: AHOJ, JAK SE CÍTÍŠ? pacient: Cítím se strašně. Eliza: CO TÍM PŘESNĚ MYSLÍŠ? pacient: Jsem v depresi. Eliza: PROČ SI MYSLÍŠ, ŽE JSI V DEPRESI. pacient: Protože je mi smutno. Eliza: ŽIJEŠ S RODINOU? pacient: Ne. Eliza: MÁŠ PŘÁTELE? pacient: Celkem ne. Eliza: PROČ? pacient: Nevím. Eliza: OPRAVDU NEVÍŠ NEBO SE JEN VYHÝBÁŠ ODPOVĚDI? pacient: Dřív jsem přátele měl. Eliza: KDY? pacient: Než jsem se oženil. Eliza: NEŘEKL JSI MI, ŽE SES OŽENIL. pacient: Už jsem se zase rozvedl. Eliza: POVĚZ MI O SVÉM ROZVODU.... 2
Směry umělé inteligence psychologický inženýrský Oblasti hraní her dokazování teorémů obecné řešení úloh percepce řeč vidění porozumění přirozenému jazyku tvorba expertních systémů strojové učení Etapy 50.60. léta: hledání univerzálního řešícího postupu 70.90. léta: otázka reprezentace znalostí 90. léta: učení a adaptace, komunikace Klasická vs. nová umělá inteligence je pro inteligenci důležitá reprezentace znalostí a usuzování? 3
Mezníky v historii AI rok událost 1943 model neuronu; McCulloch, Pitts 1950 Turingův test; Turing 1956 Dartmouthská konference; Minsky, McCarthy, Simon, Newell 1957 Perceptron; Rosenblatt GPS (General Problem Solver); Newell, Simon, Shaw formální gramatiky; Chomsky 1958 LISP; McCarthy 1965 DENDRAL; Feigenbaum, Buchanan fuzzy logika; Zadeh rezoluční princip; Robinson 1968 sémantické sítě; Quillian SHRDLU; Winograd 1969 kniha Perceptrons; Minsky, Papert 1970 PROLOG; Colmerauer, Roussell 1971 HEARSAY I ; Lesser 1973 MYCIN; Shortliffe, Buchanan 1975 rámce; Minsky 1976 DempsterShaferova teorie; Dempster, Shafer PROSPECTOR; Duda, Hart 1977 OPS; Forgy 1978 R1/XCON; McDermott 1979 ReTe algoritmus; Forgy 1981 japonský projekt počítačů páté generace 1982 Hopfieldova neuronová síť; Hopfield 1983 KEE; IntelliCorp 1984 CyC; Lenat 4
Meze klasické umělé inteligence Churchova teze: Použitelnost počítačů je omezena na ty činnosti, které lze přesně popsat v přirozeném resp. umělém jazyce (algoritmu). Godelova věta o úplnosti: Formule je logicky platná v teorii T právě když je dokazatelná v teorii T. Věta o rozhodnutelnosti: Pro každou formuli v teorii T lze algoritmicky rozhodnout, zda formule je nebo není dokazatelná. Výrokový počet je úplný a rozhodnutelný. Predikátový počet je úplný ale nerozhodnutelný. 5
Práce se znalostmi polovina 70. let expertní systémy v té době mělo získávání znalostí podobu transferu znalostí přelom 80. a 90. let získávání znalostí jako modelování znalostí = tvorba přehledných a opakovaně použitelných modelů dané úlohy metodika CommonKADS současnost ontologie = domluvená terminologie pro určitou aplikační oblast, která umožňuje sdílení znalostí z této oblasti: generické ontologie zachycují obecné zákonitosti platící napříč různými aplikačními oblastmi (projekt CyC, Lenat, 1990) doménové ontologie jejich předmětem je určitá specifická věcná oblast (Enterprise Ontology) projekt Semantic Web zaměřený na přidání sémantiky k webovým stránkám (v podobě metadat) 6
Práce s neurčitostí polovina 70. let ad hoc přístupy v expertních systémech později využití propracovaných teorií: teorie pravděpodobnosti (17. století) v umělé inteligenci např. bayesovské sítě, fuzzy teorie teorie možnosti (possibility theory) v současné umělé inteligenci oblast nazývaná soft computing = označení pro metody, které umožňují rychle nalézat řešení (byť ne zcela optimální) vágně a neúplně popsaných problémů (Zadeh, 1995): fuzzy logika neuronové sítě genetické algoritmy pravděpodobnostní metody teorie chaosu 7
Učení a adaptace 50 a 60. léta učení a adaptace v kybernetice (teorii řízení) v umělé inteligenci neuronové sítě 80. léta oblast strojového učení = vývoj algoritmů pro automatizované získáváné znalostí z dat (rozhodovací stromy a pravidla, neuronové sítě, genetické algoritmy, případové usuzování...) 90. léta dobývání znalostí z databází = netriviální extrakce implicitních, dříve neznámých a potenciálně užitečných informací z dat (Fayyad a kol. 1996) v současnosti snahy vybavit učící se systémy rysy adaptivity: inkrementální učení (průběžné doučování na základě nových dat), učení a zapomínání (schopnost rozpoznat změnu konceptu a této změně se přizpůsobit), integrace znalostí (schopnost kombinovat více zdrojů znalostí), metaučení (schopnost kombinovat více modelů znalostí v průběhu rozhodování), revize znalostí (schopnost aktualizovat používané znalosti), využívání analogií. 8
Komunikace a kooperace pol. 80. let komunikace jako jeden z principů umělé inteligence (Minski, Society of Mind, 1986) nová umělá inteligence jako inteligence bez reprezentace znalostí a bez uvažování, vznikající ze vzájemné interakce jednoduchých, takzvaných reaktivních agentů (Brooks, 1991). v současné klasické umělé inteligenci distribuovaná umělá inteligence a multiagentní systémy. Racionální agent (agent schopný se rozhodnout o následné akci co nejoptimálnějším způsobem) je charakterizován: autonomností (schopnost nezávisle pracovat), reaktivitou (schopnost průběžně reagovat na změny prostředí), intencionalitou (schopnost uvažovat o svých dlouhodobých cílech), sociální inteligencí (schopnost komunikovat s ostatními agenty). 9
Hanojská věž zadání [111] [112] [113]... řešení [333] 10
Stavový prostor 1. množina stavů S = {s} 2. množina přechodů mezi stavy Φ = {φ} 3. počáteční stav s 0 4. množina koncových stavů G = {g} 11
Prohledávání stavového prostoru Nalezení cesty z počátečního stavu do některého z koncových stavů 1. slepé úplné prohledávání nevyužívající žádné dodatečné informace do šířky do hloubky 2. heuristické úplné nebo částečné prohledávání využívající hodnocení zvolené cesty, paprskové (beam search) gradientní (hillclimbing) uspořádané (bestfirst) A* 3. náhodné 12
Prohledávání do šířky Při tomto způsobu prohledávání máme jistotu, že vždy nalezneme koncový stav, musíme ale projít značně velký počet uzlů (procházíme všechny uzly, které mají hloubku menší, než je hloubka koncového uzlu). Každý uzel v grafu navštívíme nejvýše jednou. 13
Algoritmus prohledávání do šířky NEROZVIN := poč. stav NEROZVIN prázdný? přesuň první uzel z NEROZVIN (označ N) do ROZVIN rozviň N, všechny následníky ulož do NEROZVIN na konec některý uzel z NEROZVIN je cíl? 14
Prohledávání do hloubky Tento způsob prohledávání může vést k cíli mnohem rychleji, než prohledávání do šířky (zvláště když se vydáme správným směrem), ale nemáme zaručeno (v případě nekonečné větve), že vždy nalezneme koncový stav. Na rozdíl od prohledávání do šířky můžeme některými uzly procházet vícekrát, neboť se často musíme navracet. 15
Algoritmus prohledávání do hloubky NEROZVIN := poč. stav NEROZVIN prázdný? přesuň první uzel z NEROZVIN (označ N) do ROZVIN rozviň N, všechny následníky ulož do NEROZVIN na začátek některý uzel z NEROZVIN je cíl? 16
Paprskové prohledávání heuristické omezené prohledávání do šířky heuristikou je odhad vzdálenosti ke koncovému stavu NEROZVIN := poč. stav NEROZVIN prázdný? přesuň všechny uzly z NEROZVIN (označ N i ) do ROZVIN rozviň N i, všechny následníky ulož do NEROZVIN na konec uspořádej NEROZVIN dle heuristiky kromě prvních p odstraň z NEROZVIN všechny uzly některý uzel z NEROZVIN je cíl? 17
Gradientní prohledávání úplné heuristické prohledávání do hloubky heuristikou je odhad vzdálenosti ke koncovému stavu NEROZVIN := poč. stav NEROZVIN prázdný? přesuň první uzel z NEROZVIN (označ N) do ROZVIN rozviň N, všechny následníky uspořádej dle heuristiky a ulož do NEROZVIN na začátek některý uzel z NEROZVIN je cíl? 18
Uspořádané prohledávání úplné heuristické prohledávání do hloubky doplnění gradientního prohledávání o paměť NEROZVIN := poč. stav NEROZVIN prázdný? přesuň první uzel z NEROZVIN (označ N) do ROZVIN rozviň N, všechny následníky ulož do NEROZVIN uspořádej NEROZVIN dle heuristiky některý uzel z NEROZVIN je cíl? 19
Algoritmus A* cena přechodu z počátečního stavu přes stav s do koncového stavu f(s) = g(s) h(s) heuristika h(s) jako dolní odhad ceny přechodu z s do koncového stavu, pro h(s) = 0 provádí A* prohledávání do šířky NEROZVIN := poč. stav NEROZVIN prázdný? přesuň první uzel z NEROZVIN (označ N) do ROZVIN rozviň N, všechny následníky N* ulož do NEROZVIN jeli v NEROZVIN uzel N* s vyšší hodnotou g(n*) odstraň jej uspořádej NEROZVIN dle funkce f některý uzel z NEROZVIN je cíl? 20
Fuzzy množiny Na rozdíl od klasických množin, kdy o každém objektu lze jednoznačně říci, zda je nebo není prvkem množiny (např. množina všech sudých čísel), je v případě fuzzy množin příslušnost k množině vyjádřena charakteristickou funkcí µ(x) [0, 1]. 1 µ(x) 0 35 36 37 38 39 x Figure 1: Zvýšená teplota 21
LISP Programovací jazyk pro manipulaci se symbolickými výrazy (LISt Processor) vytvořený na přelomu padesátých a šedesátých let na MIT skupinou kolem J. McCarthyho. Data Svýrazy: atomy (nečíselné, číselné, T, NIL) seznamy jsouli s 1, s 2 Svýrazy, je i (s 1 s 2 ) Svýraz Funkce (f s 1 s 2... s n ) (CONS s 1 s 2 ) funkce, která ze dvou vstupních Svýrazů s 1 a s 2 vytvoří Svýraz (s 1 s 2 ) (CAR s) funkce, jejíž hodnotou je první prvek seznamu s (CDR s) funkce, jejíž hodnotou je zbytek seznamu po oddělení prvního prvku (EQ s 1 s 2 ) funkce, která testuje shodu svých argumentů. Je definována pouze pro atomy (ATOM s) funkce, která má hodnotu T, jeli S atom Nové funkce se definují pomocí funkčních výrazů (λvýrazů) (LAMBDA(x 1 x 2... x n )e). 22
Hanojská věž LISP (DEFUN HANOJ (LAMBDA (N) (PRESUN_VEZ N A B C) )) (DEFUN PRESUN_VEZ (LAMBDA (K X Y Z) ((EQ K 0)) (PRESUN_VEZ (DIFFERENCE K 1) X Z Y) (TAH X Z) (PRESUN_VEZ (DIFFERENCE K 1) Y X Z) )) (DEFUN TAH (LAMBDA (X Z) (PRIN1 "Presun disk z ") (PRIN1 X) (PRIN1 " na ") (PRIN1 Z)) 23