diff --git a/KIV UIR/01. Základní pojmy.md b/KIV UIR/01. Základní pojmy.md new file mode 100644 index 0000000..6ced2f2 --- /dev/null +++ b/KIV UIR/01. Základní pojmy.md @@ -0,0 +1,25 @@ +# Základní pojmy + +**Inteligence** +- shopnost člověka abstraktně a rozumně přemýšlet a od toho odvozovat účelná jednání (přijímat účelná rozhodnutí) + +**Umělá inteligence** +- schopnost počítače (stroje) abstraktně a rozumně přemýšlet a od toho odvozovat účelná jednání (přijímat účelná rozhodnutí) ++ schopnost počítačových programů napodobovat inteligenci člověka +- věda o vytváření strojů, které budou při řešení určitého úkolu užívat takového postupu, který - kdyby ho dělal člověk - bychom považovali za projev jeho inteligence + +**Turingův test** +- dokážeme rozlišit stroj od člověka dle chování? + - ne -> inteligentní + - splněno 2023 (ChatGPT) + +**Oblasti umělé inteligence** +- řešení úloh +- hry +- automatické dokazování +- počítačové vidění +- reprezentace znalostí a expertní systémy +- porozumění přirozenému jazyku +- robotika +- automatické řízení +- plánování diff --git a/KIV UIR/02. Řešení a dekompozice úloh.md b/KIV UIR/02. Řešení a dekompozice úloh.md new file mode 100644 index 0000000..4d855fc --- /dev/null +++ b/KIV UIR/02. Řešení a dekompozice úloh.md @@ -0,0 +1,110 @@ +# Řešení úloh + +**Úloha** +- dvě množina stavů + - $X = \{x_{1}, x_{2}, \dots, x_{k}\}$ ... množina výchozích stavů + - $Y = \{y_{1}, y_{2}, \dots, y_{m}\}$ ... množina cílových stavů +- zobrazení $X \to Y$ + +**Řešením úlohy** +- postup (posloupnost operací), kterým převedeme úlohu z některého výchozího stavu $x_{i}$ do definovaného cílového stavu $y_{j}$ + +**Posloupnost stavů** +- $x_{i} = s_{0}, s_{1}, \dots, s_{t} = y_{j}$ +- pro přechod mezi jednotlivými $s_{i}$ slouží operátory $r_{i}$ popisující elementární operace + +**Operátory** +- $\text{R} = \{r_{1}, r_{2}, \dots, r_{l}\}$ +- úlohu vyjádříme jako $x_{i} \to^{R_{Kij}} y_{j}$ + +**Definice úlohy** +- trojice $(X, Y, R)$ +- vždy známe dvě složky a třetí určujeme + - $(X, ?, R)$ ... deduktivní + - $(?, Y, R)$ ... abduktivní + - $(X, Y, ?)$ ... induktivní + +## Hledání řešení úlohy + +Hledáme takové sestavení operátorů $R$, které vyhovuje zadaným množinám stavů $X$ a $Y$ a je v nějakém (obvykle daném) smyslu optimální. + +**Postup** +- metodou pokusů a omylů vytváříme strom řešení úlohy +- současným prohledáváním hledáme takový kompoziční operátor $R_{Kij}$ (sestavení operátorů), který vyhovuje množinám stavů $X$ a $Y$ ++ procházení stromu řešení + - deterministické + - náhodné + - heuristické + +**Předpoklady** +1. existuje konečná **množina stavů** $S = \{s_{i}\}$, ve kterých se může úloha nacházet +2. existuje alespoň jeden **výchozí** (**počáteční**) **stav** úlohy $s_{0} \in S$ +3. existuje konečná množina **cílových** (**požadovaných**) **stavů** úlohy $G = \{g_{j}\}$, přičemž $G \subseteq S$ +4. existuje konečná množina **elementárních operátorů** $R = \{r_{l}\}$, které převádějí úlohu ze tavu $s_{p}$ do stavu $s_{q}$ + +**Stavový prostor** - definován dvojice $(S, R)$ + +**Konkrétní řešení úlohy** +- definováno trojicí $(s_{0}, s_{j}, R_{K_{0}j})$ na $S$ +- $R_{K_{0}j}$ - kompoziční operátor pro převod úlohy z $s_{0}$ do $s_{j} = g_{_{k}}$ + +**Řešení úlohy ve stavovém prostoru** +- kompoziční operátor $R_{K_{0}j} = r_{1}r_{2}r_{3}\dots r_{r-1}r_{r}$ takový, že + - $s_{1} \leftarrow r_{1} (s_{0})$ + - $s_{2} \leftarrow r_{1} (s_{1}) = r_{2}(r_{1}(s_{0}))$ + - ... + - $s_{r} \leftarrow r_{r} (s_{r-1}) = r_{r}(r_{r-1}(\dots r_{1}(s_{0}))$ + +## Reprezentace úlohy stromovým grafem + +**Pojmy** +- **uzly grafu** - stavy úlohy +- **hrany grafu** - přechody mezi stavy +- **bezprostřední následovník** - uzly, které mají stejného rodiče +- **expanze uzlu** - nalezení všech bezprostředních následovníků uzlu +- **hloubka uzlu** - počet hran do něj vedoucích z uzlu $s_{0}$ + +**Strom řešení úlohy** +- jediný uzel bez bezprostředního předchůdce - **kořen** +- u každého uzlu určujeme rekurzivně jeho hloubku + - kořen - 0 + - následovník uzlu s hloubkou $d$ má hloubku $d+1$ +- uzly bez bezprostředního následovníka jsou + - cílovými stavy úlohy + - stavy bez aplikovatelných operátorů + - stavy, o kterých jsme rozhodli, že je nemá smysl rozvíjet +- orientovaná hrana - přechod ze starého do nového stavu (aplikace operátoru) + +**Nalezení řešení úlohy** +- nalezení cesty spojující kořen s listem, který reprezentuje cílový stav úlohy + +## Produkční systém + +**Složky** +- **databáze úlohy** - fakta +- **báze znalostí** - produkční pravidla + - podmínka -> akce +- **řídíci mechanizmus** + - provádí volbu, které pravidlo bude použito + - vybírá fakta z databáze, která budou dosazena do podmínky + - ukončuje výpočet, pokud je splněna cílová podmínka +- **množina cílů**, které mají být splněny + +# Dekompozice úlohy + +**Hanoiské věže** +- máme tři tyče: **A, B, C** +- na tyči **A** je (podle velikosti) $n$ kotoučů +- úkol: přeskládat z **A** pomocí **C** na tyč **B** (zaps. $n(A, B, C)$) bez porušení uspořádání ++ fáze + + přeskládat $n-1$ kotoučů z A pomocí B na C + + přeložit 1 kotouč z A na B + + překládat $n-1$ kotoučů z C pomocí A na B + +**AND/OR grafy** +- chceme najít cestu $a \to z$ +- pomocí AND/OR grafu rozdělíme problém na podproblémy + - cesta přes k, cesta přes l +- pokud máme OR vrchol, tak stačí projít jediného následníka +- pokud máme AND vrchol, musíme projít všechny následníky ++ **celkové řešení** = podgraf AND/OR grafu, který nevynechá žádného následníka AND uzlu diff --git a/KIV UIR/02. Řešení úloh.md b/KIV UIR/02. Řešení úloh.md new file mode 100644 index 0000000..765690b --- /dev/null +++ b/KIV UIR/02. Řešení úloh.md @@ -0,0 +1,91 @@ +# Řešení úloh + +**Úloha** +- dvě množina stavů + - $X = \{x_{1}, x_{2}, \dots, x_{k}\}$ ... množina výchozích stavů + - $Y = \{y_{1}, y_{2}, \dots, y_{m}\}$ ... množina cílových stavů +- zobrazení $X \to Y$ + +**Řešením úlohy** +- postup (posloupnost operací), kterým převedeme úlohu z některého výchozího stavu $x_{i}$ do definovaného cílového stavu $y_{j}$ + +**Posloupnost stavů** +- $x_{i} = s_{0}, s_{1}, \dots, s_{t} = y_{j}$ +- pro přechod mezi jednotlivými $s_{i}$ slouží operátory $r_{i}$ popisující elementární operace + +**Operátory** +- $\text{R} = \{r_{1}, r_{2}, \dots, r_{l}\}$ +- úlohu vyjádříme jako $x_{i} \to^{R_{Kij}} y_{j}$ + +**Definice úlohy** +- trojice $(X, Y, R)$ +- vždy známe dvě složky a třetí určujeme + - $(X, ?, R)$ ... deduktivní + - $(?, Y, R)$ ... abduktivní + - $(X, Y, ?)$ ... induktivní + +## Hledání řešení úlohy + +Hledáme takové sestavení operátorů $R$, které vyhovuje zadaným množinám stavů $X$ a $Y$ a je v nějakém (obvykle daném) smyslu optimální. + +**Postup** +- metodou pokusů a omylů vytváříme strom řešení úlohy +- současným prohledáváním hledáme takový kompoziční operátor $R_{Kij}$ (sestavení operátorů), který vyhovuje množinám stavů $X$ a $Y$ ++ procházení stromu řešení + - deterministické + - náhodné + - heuristické + +**Předpoklady** +1. existuje konečná **množina stavů** $S = \{s_{i}\}$, ve kterých se může úloha nacházet +2. existuje alespoň jeden **výchozí** (**počáteční**) **stav** úlohy $s_{0} \in S$ +3. existuje konečná množina **cílových** (**požadovaných**) **stavů** úlohy $G = \{g_{j}\}$, přičemž $G \subseteq S$ +4. existuje konečná množina **elementárních operátorů** $R = \{r_{l}\}$, které převádějí úlohu ze tavu $s_{p}$ do stavu $s_{q}$ + +**Stavový prostor** - definován dvojice $(S, R)$ + +**Konkrétní řešení úlohy** +- definováno trojicí $(s_{0}, s_{j}, R_{K_{0}j})$ na $S$ +- $R_{K_{0}j}$ - kompoziční operátor pro převod úlohy z $s_{0}$ do $s_{j} = g_{_{k}}$ + +**Řešení úlohy ve stavovém prostoru** +- kompoziční operátor $R_{K_{0}j} = r_{1}r_{2}r_{3}\dots r_{r-1}r_{r}$ takový, že + - $s_{1} \leftarrow r_{1} (s_{0})$ + - $s_{2} \leftarrow r_{1} (s_{1}) = r_{2}(r_{1}(s_{0}))$ + - ... + - $s_{r} \leftarrow r_{r} (s_{r-1}) = r_{r}(r_{r-1}(\dots r_{1}(s_{0}))$ + +## Reprezentace úlohy stromovým grafem + +**Pojmy** +- **uzly grafu** - stavy úlohy +- **hrany grafu** - přechody mezi stavy +- **bezprostřední následovník** - uzly, které mají stejného rodiče +- **expanze uzlu** - nalezení všech bezprostředních následovníků uzlu +- **hloubka uzlu** - počet hran do něj vedoucích z uzlu $s_{0}$ + +**Strom řešení úlohy** +- jediný uzel bez bezprostředního předchůdce - **kořen** +- u každého uzlu určujeme rekurzivně jeho hloubku + - kořen - 0 + - následovník uzlu s hloubkou $d$ má hloubku $d+1$ +- uzly bez bezprostředního následovníka jsou + - cílovými stavy úlohy + - stavy bez aplikovatelných operátorů + - stavy, o kterých jsme rozhodli, že je nemá smysl rozvíjet +- orientovaná hrana - přechod ze starého do nového stavu (aplikace operátoru) + +**Nalezení řešení úlohy** +- nalezení cesty spojující kořen s listem, který reprezentuje cílový stav úlohy + +## Produkční systém + +**Složky** +- **databáze úlohy** - fakta +- **báze znalostí** - produkční pravidla + - podmínka -> akce +- **řídíci mechanizmus** + - provádí volbu, které pravidlo bude použito + - vybírá fakta z databáze, která budou dosazena do podmínky + - ukončuje výpočet, pokud je splněna cílová podmínka +- **množina cílů**, které mají být splněny diff --git a/KIV UIR/03. Neinformované a informované metody.md b/KIV UIR/03. Neinformované a informované metody.md new file mode 100644 index 0000000..c521412 --- /dev/null +++ b/KIV UIR/03. Neinformované a informované metody.md @@ -0,0 +1,75 @@ +# Neinformované metody + +- $b$ - faktor větvení +- $d$ - hloubka cíle +- $m$ - maximální hloubka větve + +**Prohledávání do hloubky** (DFS) +- prohledá vždy nejlevější a nejhlubší neexpandovaný uzel +- **vlastnosti** + - neúplný (nekonečná větev, cykly) + - není optimální + - časová složitost $O(b^m)$ + - prostorová složitost $O(bm)$, lineární +- možné přidat limit + - po dané hloubce nepokračuje dále + - řeší problém nekonečné větve + +**Prohledávání do šířky** (BFS) +- prohledá vždy nejlevější neexpandovaný uzel s nejmenší hloubkou +- **vlastnosti** + - úplný (pro konečné b) + - optimální podle délky cesty, neoptimální podle obecné ceny + - časová složitost $O(b^{d+1})$ + - prostorová složitost $O(b^{d+1})$ (každý uzel v paměti) + +**Prohledávání s postupným prohlubováním** (Iterating deepening DFS) +- prohledávání do hloubky s postupně se zvyšující limitem +- procházíme jako DFS, ale jen do hloubky dané limitem +- **vlastnosti** + - úplný (pro konečné b) + - optimální (pro $g(n)$ rovnoměrně neklesající funkce hloubky) + - časová složitost: $O(b^d)$ + - paměťová složitost: $O(bd)$ +- kombinace výhod **DFS** a **BFS** + - nízké paměťové nároky + - optimálnost, úplnost + +# Informované metody + +**Heuristické hledání nejlepší cesty** (Best-first Search) +- použití **ohodnocovací funkce** $f(n)$ pro každý uzel + - výpočet jeho přínosu +- seznam uzlů udržujeme uspořádaný (vzestupně) vzhledem k $f(n)$ +- použití **heuristické funkce** $h(n)$ pro každý uzeů + - odhad vzdálenosti daného uzlu od cíle +- čím menší $h(n)$, tím blíže k cíli, $h(\text{Goal}) = 0$ + +**Hladové heuristické hledání** (Greedy Best-first Search) +- $f(n) = h(n)$ +- např. vzdálenost vzdušnou čarou +- v každém kroku expanduji prvně uzel, který se zdá být nejblíže k cíli +- **vlastnosti** + - obecně neúplný (nekonečný prostor, cykly) + - není optimální + - časová složitost: $O(b^m)$, záleží na funkci $h$ + - paměťová složitost: $O(b^m)$, každý uzel je v paměti + +**Algoritmus A\*** +- ohodnocovací funkce - kombinace $g(n)$ a $h(n)$ + - $f(n) = g(n) + h(n)$ + - $g(n)$ - cena cesty do $n$ + - $h(n)$ - odhad cesty z $n$ do cíle + - $f(n)$ - odhad ceny nejlevnější cesty, která vede přes $n$ +- A\* algoritmus vyžaduje tzv. přípustnou heuristiku + - $0 \leq h(n) \leq h^*(n)$, kde $h^*(n)$ je skutečná cena cesty z $n$ do cíle + - odhad (např. přímá vzdálenost) musí být vždy menší nebo roven ceně libovolné možné cesty do cíle +- expanduje uzly podle $f(n) = g(n) + h(n)$ + - expanduje všechny uzly s $f(n) < C^*$ + - expanduje některé uzly s $f(n) = C^*$ + - neexpanduje žádné uzly s $f(n) > C^*$ +- **vlastnosti** + - úplný (pokud není nekonečno uzlů s $f < C^*$) + - optimální + - časová složitost: $O((b^*)^d)$, exponenciálné v délce řešení $d$ + - paměťová složitost: $O((b^*)^d)$, každý uzel v paměti diff --git a/KIV UIR/04. Evoluční a genetické algoritmy.md b/KIV UIR/04. Evoluční a genetické algoritmy.md new file mode 100644 index 0000000..08d4fb6 --- /dev/null +++ b/KIV UIR/04. Evoluční a genetické algoritmy.md @@ -0,0 +1,90 @@ +# Evoluční algoritmy + +Cílem je modelování evolučních procesů pro účely, které nemají nic společného s biologií. + +**Společné rysy evol. algoritmů** +- pracují zároveň **s celou skupinou** možných řešení zadaného problému místo práce s jednotlivými řešeními +- řešení **postupně vylepšují** zařazováním nových řešení , získaných kombinací původních +- kombinace řešení jsou následovány **náhodnými změnami** a **vyřazováním** nevýhodných řešení + +**Druhy evol. algoritmů** +- algoritmy napodobující přirozené evoluční procesy - **genetické algoritmy** +- algoritmy napodobující činnost mozku - **umělé neuronové sítě** + +# Genetické algoritmy + +Základní myšlenkou genetických algoritmů je **snaha napodobit vývoj a učení** nějakého živočišného druhu a takto vzniklý algoritmus použít při řešení úloh, které se vyskytují ve složitém, případně i měnícím se prostředí, v němž člověk není schopen dopředu nadefinovat všechny vzniklé případy a správné reakce na ně. + +Založeny na třech různých operacích +- **reprodukce** - každý jedinec je jiný; pokud mu odlišnost umožní lépe přežít, zanechá po sobě více potomků +- **křížení** - geny se mohou křížit, část od otce, část od matky +- **mutace** - ovlivnění jedinců jejich prostředím - malé náhodné změny + +**Chromozóm** +- základní prvek generace +- možnost reprezentace + - binárně + - permutací přirozených čísel + +**Populace** +- množina chromozómů tvoří populace +- každý chromozóm uchovává jedno řešení daného problému +- první populace je náhodně vygenerována +- základní parametr: velikost populace (počet chromozomů v ní) + +**Křížení** +- ze dvou chromozómů (otec a matka) se spojením vytvoří 1 nebo více nových potomků +- chromozómy (otec a matka) se rozdělí na stejném náhodném místě +- vznikne potomek/potomci + - použije se jedna část chromozómu od matky a druhá část od otce + - u dalšího potomka to může být naopak + +**Mutace** +- používá se, aby se neuvázlo v lokálním optimu +- náhodná genetická změna některých genů právě vytvořeného potomka +- příklad: 11011 -> 11001 (na 3. indexu) + +**Fitness funkce** +- udává sílu daného chromozomu +- má vliv na to, které chromozómy zůstanou v populaci + +**Selekce** +- **Darwinova teorie:** nejlepší přežijí a stvoří potomky +- různé metody výběru nejlepšího + - ruletové kolo (rulet wheel selection) + 1. získáme sumu fitness funkcí $= S$ + 2. generujeme náhodné číslo z $\langle 0, S\rangle = r$ + 3. procházíme populaci a sčítáme fitness (sčítáme do $x$) + - pokud $r > x$ zastav a vrať daný chromozóm + - roztřídění nejlepších (rank selection) + - steady-state selection + - elitism + +**Pravděpodobnost křížení** +- udává četnost křížení +- 0% -> nová populace kopií původní +- 100% -> každý potomek stvořen křížením + +**Pravděpodobnost mutace** +- udává četnost mutace nových potomků +- 0% -> ani jeden chromozóm nebyl změněn +- 100% -> každý chromozóm je pozměněn + +**Algoritmus** +1. náhodná populace o $n$ chromozómech +2. ohodnoť každý chromozóm fitnenss funkcí +3. vytvoř novou populaci + - vyber rodiče z populace + - vytvoř z rodičů potomky + - zmutuj potomky + - přidej potomky do populace +4. starou populaci nahraď novou +5. pokud není dosaženo konce, vrať se na 2. + +**Využití** - optimalizační úlohy +- rozvrhy +- chování robotů +- automatické navrhování mechanických systémů +- optimalizace rozmístění komunikací, telekomunikací +- teorie her +- problém batohu diff --git a/KIV UIR/05. Klasifikace, rozpoznávání, shlukování a regrese.md b/KIV UIR/05. Klasifikace, rozpoznávání, shlukování a regrese.md new file mode 100644 index 0000000..5b6d9f2 --- /dev/null +++ b/KIV UIR/05. Klasifikace, rozpoznávání, shlukování a regrese.md @@ -0,0 +1,61 @@ +# Klasifikace + +- zařazujeme do předem známéno a pevného počtu tříd + - např. rozpoznávání znaků +- rozlišujeme měřitelné a strukturní vlastnosti objektů +- mluvíme potom o příznacích a strukturních metodách rozpoznávání + +**Algoritmy** +- klasifikátor na principu kritéria minimální vzdálenosti +- klasifikátor s diskriminační funkcí +- kritérium minimální chyby (Bayesův klasifikátor) + +**Metody výběru příznaků** +- náhodný výběr + - shora dolů nebo zdola nahoru + - postupné ubírání/přidávání znaků + - ověření pomocí klasifikátoru +- dokumentová frekvence +- TF-IFD (Term Frequency-Inverse Document Frequency) +- vzájemná informace (Mutual Information, MU) + +**Další klasifikační metody** +- k-nejbližších sousedů +- klasifikační a regresní stromy +- maximální entropie + +**Bayesův klasifikátor** +- pro úlohy s neoddělitelnými (prolínajícími se) třídami obrazu +- předpoklad + - jednotlivá pozorování $E_{1}, \dots, E_{k}$ jsou podmíněně nezávislá při platnosti hypotézy $H$ + +**Support Vector Machine** (SVM) +- řeší problém binární nebo více-třídní klasifikace tím, že hledá hyperroviny, které nejlépe rozdělují data různých tříd v prostoru funkcí + +**Určení klasifikátoru s učitelem a bez** +- s učitelem + - pro vstupní data je určen správný výstup +- bez učitele + - ke vstupním datům není známý výstup + +# Rozpoznávání + +- počet tříd není předem znám a třídy identifikujeme až během vlastního rozpoznávání (např. rozpoznávání plynulé řeči) + +# Shlukování + +- objekty zařazujeme do tříd na základě jejich podobnosti +- třídy nejsou dopředu známé + +**Shluk** +- skupina objektů, které jsou si co nejvíce podobné uvnitř shluku a co nejméně podobné mezi shluky + +**K-Means, K-Medoids** +- ideální při výběru malého počtu shluků z velkého počtu objektů +- málo odolná vůči nekonzistentním vzorkům dat a šumu +- nutnost volit počáteční počet shluků $k$ + +Metriky pro měření vzdálenosti +- Eukleidovská vzdálenost +- Manhattan vzdálenost +- Cosinová vzdálenost diff --git a/KIV UIR/06. Neuronové sítě.md b/KIV UIR/06. Neuronové sítě.md new file mode 100644 index 0000000..dfd32fc --- /dev/null +++ b/KIV UIR/06. Neuronové sítě.md @@ -0,0 +1,70 @@ +# Neuronové sítě + +**Neuron** +- mozková buňka, která má za úkol **sběr**, **zpracovávání** a **šíření signálů** +- mozek + - $10^{11}$ neuronů, více než 20 typů, $10^{14}$ synapsí + - 1ms - 10ms cyklus nosiče informace + - signály = výkyvy elektrických potenciálů (se šumem) + +**Počítačový model** +- matematický model neuronu (McCulloch & Pitts, 1943) +- při **spojení** do **neuronové sítě** mají schopnost **tolerovat šum** ve vstupu a **učit se** +- jednotky v neuronové síti (units) + - propojeny vazbami (links) + - vazba z jednotky $j$ do $i$ propaguje aktivaci $a_j$ jednotky $j$ + - každá vazba má číselnou váhu $W_{j,i}$ (síla + znaménko) +- účel aktivační funkce + - jednotka má být aktivní ($\approx +1$) pro pozitivní příklady, jinak neaktivní $\approx 0$ + - aktivace musí být nelineární, jinak by celá síť byla lineární +- kombinacemi těchto jednotek do sítě můžeme implementovat libovolnou Booleovskou funkci + +## Struktury neuronových sítí + +**Sítě s předním vstupem** +- necyklické +- implementují funkce +- nemají vnitřní paměť +- **příklad** + - síť 5-ti jednotek - 2 vstupní, 1 skrytá vrstva (2 jednotky), 1 výstupní jednotka +- = parametrizovaná nelineární funkce vstupu + +**Rekurentní sítě** +- cyklické +- vlastní výstup si berou opět na vstup +- složitější a schopnější +- výstup má (zpožděný) vliv na aktivaci (= paměť) +- **Hopfieldovy sítě** + - symetrické obousměrné vazby; fungují jako asociativní paměť +- **Boltzmannovy stroje** + - pravděpodobnostní aktivační funkce + +**Perceptron** +- nejjednodušší model neuronové sítě s učením s učitelem + - pouze jedna vstupní jednotka + - nízká vyjadřovací síla + - pro složitější klasifikaci - více výstupních jednotek + - dokáže reprezentovat hodně Bool. funkcí - AND, OR, NOT, ... +- výhody + - existuje jednoduchý učící algoritmus pro libovolnou lineárně separabilní funkci +- učení perceptronu + - upravování vah, aby se snížila chyba na trénovací sadě + - učící pravidlo pro perceptron konverguje ke správné funkci pro libovolnou lineárně separabilní množinu dat +- limity jednoduchého perceptronu + - algoritmus je konečný právě tehdy, když je množina (učící) lineárně separovatelná a pokud existuje řešení + +**Vícevrstvé neuronové sítě** +- vrstvy jsou obvykle úplně propojené +- počet skrytých jednotek je obvykle volen experimentálně +- dostatečná vyjadřovací síla + - s **jednou** skrytou vrstvou - všechny spojité funkce + - se **dvěma** skrytými vrstvami - všechny funkce + - těžko se ovšem pro konkrétní síť zjišťuje její prostor reprezentovatelných funkcí +- učení + - pravidla pro úpravu vah + - výstupní vrstva - stejné jako u perceptronu + - skryté vrstvy - **zpětné šíření** (back-propagation) chyby z výstupní vrstvy + - problémy učení + - dosažení lokálního minima chyby + - příliš pomalá konvergencce + - přílišné upnutí na příklady -> neschopnost generalizovat diff --git a/KIV UIR/07. Strukturní a příznakové metody rozpoznávání.md b/KIV UIR/07. Strukturní a příznakové metody rozpoznávání.md new file mode 100644 index 0000000..897dc39 --- /dev/null +++ b/KIV UIR/07. Strukturní a příznakové metody rozpoznávání.md @@ -0,0 +1,67 @@ +# Strukturní metody rozpoznávání + +Strukturní popisy rozpoznávaných objektů +- primitiva +- vlastnosti primitiv +- relace mezi primitivy + - prostorové + - časové + - funkční + +Vytvořený symbolický popis - obraz vystihuje (popisuje) strukturní vlastnosti objektu. + +Strukturní popisy (obrazy) +- řetězec symbolů označující primitiva +- relační struktura +- graf (obecný, speciální, ...) + +Strukturní popisy objektů (= slova) příslušejících do téže třídy tvoří jazyk třídy. + +Rozpoznávání strukturně popsaných objektů = **rozhodnutí**, zda vytvořený strukturní popis objektu (slovo) **je slovem** (frází) **jazyka příslušné třídy**. + +Výhody strukturních metod rozpoznávání: +- invariantní na pozici a natočení obrazu +- méně složité popisy u složitých objektů + +**Tvorba strukturních popisů** +1. nalézt všechna primitiva a přiřadit jim prvky nosiče struktury +2. každému prvku struktury přiřadit vlastnost (unární relaci) označenou jménem (symbolem) odpovídajícího primitiva +3. určit vztahy mezi primitivy (binární relace), čímž vytvoříme relační strukturu +4. doplnit případnou informaci číselné povahy (vytvoříme sémantickou informaci, popř. sémantický vektor) + +**Extrakce primitiv, vytváření strukturních obrazů** +1. počet typů (druhů) primitiv i relací (vztahů) mezi nimi by měl být co nejmenší +2. primitiva by měla odpovídat základním (přirozeným) strukturním elementům objektu, jimiž lze objekt vyčerpávajícím způsobem popsat; přitom primitiva musejí být snadno extrahovatelná a klasifikovatelná (nejčastěji některou příznakovou metodou) +3. nalezení (určení) primitiv a relací mezi nimi (způsob nalezení, algoritmus, …) by mělo být algoritmicky co nejjednodušší + +**Příklady** +- extrakce primitiv Freemanovým kódem (směrová růžice) +- rozpoznávání geometrických objektů + +# Příznakové metody rozpoznávání + +Obrazy objektů jsou reprezentovány vektory příznaků $x$, **zařazování obrazů do tříd** se nazývá **klasifikace** deterministickým nebo stochastickým rozhodovacím pravidlem ve tvaru $\omega = d(x)$, resp. $\omega = d(x, q)$, kde +- $x$ je klasifikovaný obraz objektu, +- $q$ je vektor nastavení klasifikátoru. + +**Dělení** +- klasické statistické metody rozpoznávání založené na použití tzv. diskriminačních funkcí (Fisher) nebo pravděpodobnostech příslušnosti ke klasifikačním třídám (Bayes) ++ metody založené na strojovém učení (učení z příkladů) + + učení s učitelem (supervised learning) + + učení bez učitele (unsupervized learning) ++ metody založené na použití umělých neuronových sítí, tzv. neuronové klasifikátory + +**Klasifikátor s diskriminační funkcí** +- pro každou třídu určíme diskriminační funkci +- pro všechny obrazy patřící do $r$-té třídy musí platit + - $g_{r}(x) > g_{s}(x), r\neq s$ +- rozhodovací pravidlo + - $\omega_{r} = \max(g_{s}(x))$ + +**Klasifikátor na principu kritéria minimální vzdálenosti** +- porovnávání klasifikovaných obrazů se vzorovými obrazy - tzv. etalony +- neznámé obrazy klasifikujeme stejně jako nejbližší klasifikované + +**Kritérium minimální chyby** (Bayesův klasifikátor) +- pro úlohy s neoddělitelnými (prolínajícími se) třídami obrazů +- příslušnost k dané třídě lze určit jen s určitou pravděpodobností