# Lekcia 1: Úvod do predmetu Umelá inteligencia - Pojmem "umelá inteligencia" - Je schopnosť strojov vykonávať úlohy, ktoré obvykle vyžadujú ľudskú inteligenciu, ako napr. rozprávanie reči, rozhodovanie a učenie sa z vlastných skúseností. - V podstate ide o systém, ktorý dokáže: 1. Analyzovať dáta 2. Usudzovať na základe tejto analýzy 3. Prispôsobiť sa novým situáciám v priebehu času - História a súčasnosť tohto odboru - [Šachový automat (Turek)](http://www.vystava.sav.sk/wp-content/uploads/%C5%A0achov%C3%BD-automat-W.-von-Kempelena.pdf) - Veda o UI existuje cca viac ako pol storočia. - Základné prúdy umelej inteligencie - Symbolický funkcionalizmus: 1. Reprezentácia problému a inteligentné prehľadávanie pristoru stavov, 2. Logika, 3. Vety prirodzeného jazyka. - Konekcionizmus: - Inteligencia vyplýva z prepojenia veľkého počtu jednoduchých výpočtových jednotiek. - Myšlienka (inšpirovaná mozgom), základná jednotka je model neurónu. - Hlavnou vetvou sú neuronové siete. - Skúma zdanlivo chaotické prepojenia. - Robotický funkcionalizmus: - Koncentruje na funkcionalitu modelovaného systému. - Inteligentným správanie je interakcia medzi entitami: _systém_, _prostredie_, _úloha_. - Turingov test, problémy testu, jeho modifikácie - Otázka testu: _"Môže stroj myslieť?"_ - _Mysliaci počítač_ je taký, ktorého chovanie nebudeme schopný rozoznať od človeka. - Test je imitačná hra (rozlíšenie 2 ľudí podľa pohlavia). - Test spočíva v tom, že imitátorom človeka by bol počítač. - Doteraz žiadnemu programu sa **nepodarilo** splniť. - Modifikácie: 1. Komunikácia medzi hráčmi: - Ľudský vyšetrovateľ komunikuje s dvoma hráčmi, _A_ a _B_. - Ak vyšetrovateľ nedokáže určiť, ktorý hráč je počítač a ktorý je človek, tak počítač zložil test. - Ak je počítač nerozoznateľný od človeka vo všeobecnom rozhovore o prirodzenom jazyku, musí sa dostať do inteligencie na úrovni človeka. 2. Simulácia iba jednej z mnohých schopností človeka (schopnosť jazyka v písanej forme). 3. Simulácia všetkých ľudských schopností (spĺňa iba pokročilý humanoidní robot). - Problémy: 1. Pôvodnosť - počítač nemyslí, pretože myslenie je spojené s pôvodnosťou. Z počítača však dostaneme iba modifikáciu toho, co doň vložíme. 2. Niekedy tieto testy môžu zisťovať to, _či počítač sa správa viac ako človek_, ako to, _či je inteligentný_. 3. Paradox čínskej izby - splnenie testu ešte nemusí znamenať myslenie a uvedomovanie si. 4. Dokonalosť - počítač môže byť odhalený práve tým, že nerobí chyby, počíta rýchlejšie. --- # Lekcia 2: Riešenie problémov - vyjadrenie problému - Vyjadrenie problému v AI (začiatočný stav, množina operátorov, stavový priestor, cieľový test, cena cesty) - Začiatočný stav - v ňom sa agent nachádza. - Množina operátorov - opisujú aký stav vznikne vykonaním akcie v danom stave. - Stavový priestor - množina všetkých dosiahnuteľných stavov zo začiatočného stavu ľubovoľnou postupnosťou akcií. - Cieľový test: - Testuje, či sa dosiahol cieľ. - Predstavuje hodnotenie nejakého stavu alebo hodnotenie cesty v stavovom priestore. - Môže byť daný: 1. _explicitne_ - ako množina stavov, 2. _implicitne_ - vlastnosťou stavu. - Cena cesty: - Súčet cien jednotlivých akcií na ceste. - Pri viacerých riešeniach daného problému, pomocou ceny cesty nájdeme riešenie, ktoré pozostáva z menšieho počtu alebo lacnejších akcií. - **cena riešenia** = **cena cesty k riešeniu** _+_ **cena hľadania** - Základné problémy pre algoritmy hľadania riešenia - Hľadanie riešenia je prístup, pri ktorom nevychádzame z algoritmu riešenia problému. Vychádzame z algoritmu ako riešenie hľadať. - Problém **nie** je algoritmicky riešiteľný pre neefektívnosť alebo preto, že algoritmus nepoznáme. - Neinformatívne hľadanie - prehľadávanie do šírky, stratégia rovnomernej ceny - Prehľadávanie do šírky: - Rozvinie sa koreňový uzol, potom všetky uzly vzniknuté jeho rozvitím, potom sa rozvijú všetky ich nasledovníci atď... - V strome hľadania sa expandujú všetky uzly v hĺbke `d` skôr ako sa rozvijú uzly v hĺbke `d + 1`. - Patrí medzi systematické stratégie. - Nevynechá ani jeden uzol. - Žiadny uzol sa nevyberie dvakrát. - Ak riešenie existuje, pri hľadaní sa **určite nájde**, t.j. stratégia je **úplná**. - Pri hľadaní sa nájde _najplytkejšie_ riešenie. - Stratégia rovnomernej ceny (_uniform - cost search_): - Na expanziu sa vyberie vždy uzol, ktorý je na najlacnejšej ceste. - Optimálne riešenie sa nájde vždy, ak sa pri postupe nezníži, napr. súčet cien aplikácie operátov a pod. - Obojsmerné hľadanie - Môže sa použiť iba keď máme problém, ktorého riešením je cesta a cieľový stav je známy. - Musí byť splnená podmienka existencie inverzných operátorov. - Stratégia: 1. Od počiatočného stavu bude hľadanie postupovať vpred smerom k cieľovému stavu (priame hľadanie), 2. Od cieľového stavu bude hľadanie postupovať vzad (inverzné operátory) smerom k počiatočnému stavu (spätné hľadanie), 3. Ak oba procesy vygenerujú ten istý stav, nájde sa cesta spájajúca počiatočný stav s cieľovým. - Problémy: 1. _Ak sa dajú definovať inverzné operátory, **nie** je ich výpočet zložitejší?_ 2. _Ako postupovať aj je viacej cieľových stavov?_ 2. Ak sú ciele dané implicitne, je ťažko nájsť predchodcov. - Prehľadávanie do hĺbky a jeho modifikácie - V strome hľadania sa najprv expanduje uzol, ktorého hĺbka je **najväčšia**. Keď sa narazí na uzol bez nasledovníkov, dôjde k navracaniu (_back tracking_), teda hľadanie sa vráti k expanzii uzlov na plytších úrovniach. - Často rýchlejší ako prehľadávanie do šírky. - Nezaručuje nájdenie riešenia (hlavne pri problémoch) - je **neúplná**. - Hľadanie sa nemusí orientovať smerom k optimálnemu riešeniu. - Modifikácie: - Ohraničené prehľadávanie do hĺbky: - Zamedzí, aby riešenie uviazlo hlboko v strome. - Stanoví sa hraničná hĺbka, do ktorej sa bude hľadať. - Cyklicky sa prehlbujúce hľadanie: - Postupne vyskúša všetky možné hraničné hĺbky - od najmenšej po najväčšiu. - Hľadanie do hĺbky s návratom: - Pri výbere uzla na skúmanie sa generuje iba jeden jeho nasledovník, ktorá ak nie je listový uzol sa ďalej skúma, inak sa vráti k najbližšiemu nerozvitému uzlu. - Šetrí pamäť a nevygeneruje uzly napravo od cesty. - Nemožno použiť žiadnu doplňujúcu informáciu na výber najlepšieho nasledovníka, lebo sa vždy vygeneruje iba jeden. --- # Lekcia 3: Heuristické prehľadávanie, Genetické algoritmy, Hry ako problém hľadania - Lačné hľadanie - Aaa - Algoritmus A* - Aaa - Heuristiky zmenšujúce priestor stavov - Aaa - Genetické algoritmy - Aaa - Herné problémy, algoritmus Min-Max - Aaa --- # Lekcia 4: Znalosti - Znalosti - Aaa - Vlastnosti znalostných systémov - Aaa - Reprezentácia znalosti (vyjadriteľnosť, použiteľnosť, začleniteľnosť) - Aaa - Logika, výroková logika, predikátová logika - Aaa - Pravidlá - Aaa - Sémantické siete, ontológie - Aaa --- # Lekcia 5: Vnímanie - Rozpoznávanie vzorov - Aplikácie rozpoznávania vzorov - Aaa - Príznakové rozpoznávanie - Aaa - OCR systémy - Aaa - Časti OCR systémov - Aaa - Príznaky a spôsoby výberu príznakov - Aaa --- # Lekcia 6: Strojové učenie - Rozhodovacie stromy - Čo reprezentujú rozhodovacie stromy - Aaa - Rozhodovacie stromy a strojové učenie - Aaa - Prepis stromu na pravidlá - Aaa - Výber vlastností pre tvorbu ulov - Aaa - Klasifikačná chyba - Aaa - Pravidlá pre ukončenie rekurzie tvorby stromov - Aaa --- # Lekcia 7: Strojové učenie, Naive Bayes, Q-learning - Oblasti využitia strojového učenia - Aaa - Biflovanie, induktívne učenie sa - Aaa - Naivný Bayesovský klasifikátor - Aaa - Typy strojového učenia - Aaa --- # Lekcia 8: Strojové učenie - Regresia - Lineárna regresia - Aaa - Residual sum of squares (RSS) - Aaa - Stupne polynómu - komplexnosť modelu - Aaa - Pridanie ďalších parametrov - Aaa --- # Lekcia 9: Spracovanie prirodzeného jazyka (NLP) - Predspracovanie textu - Aaa - Tokenizázia - Aaa - Lematizácia - Aaa - Stop slová - Aaa - POS tagging - Aaa