Přidání poznámek z UIR

This commit is contained in:
Filip Znachor 2024-05-14 16:01:48 +02:00
parent 53641d14eb
commit adf0e32b33
8 changed files with 589 additions and 0 deletions

View file

@ -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í

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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í