Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
statnice:bakalar:b4b33rpz [2025/06/03 10:48] – [1. Formulace úlohy] mistrjirka | statnice:bakalar:b4b33rpz [2025/06/07 11:45] (current) – [Příklad s TikZ] mistrjirka | ||
---|---|---|---|
Line 7: | Line 7: | ||
- Klasifikace metodou nejbližšího souseda. Výhody a nevýhody. Řadu nevýhod triviální implementace lze odstranit, jak? | - Klasifikace metodou nejbližšího souseda. Výhody a nevýhody. Řadu nevýhod triviální implementace lze odstranit, jak? | ||
- Shlukování metodou k-means, formulace úlohy a popis algoritmu. Vlastnosti algoritmu. Zobecnění - použití pro jiné ztrátové funkce než L2. | - Shlukování metodou k-means, formulace úlohy a popis algoritmu. Vlastnosti algoritmu. Zobecnění - použití pro jiné ztrátové funkce než L2. | ||
- | - Pozn. k dotazu na vlastnosti klasifikátorů a s nimi spojených metod učení. Vyjádřete se: 1. k typu úlohy, pro který je metoda vhodná (např. 2 třídy, menší počet tříd, velmi vysoký počet tříd), množství dat, které je typicky potřeba (schopnost generalizace), | + | Pozn. k dotazu na vlastnosti klasifikátorů a s nimi spojených metod učení. Vyjádřete se: 1. k typu úlohy, pro který je metoda vhodná (např. 2 třídy, menší počet tříd, velmi vysoký počet tříd), množství dat, které je typicky potřeba (schopnost generalizace), |
===== Bayesovská formulace ===== | ===== Bayesovská formulace ===== | ||
**Bayesovská formulace statistického rozhodování (rozpoznávání). Popis řešení úlohy při znalosti statistického modelu pro ztrátovou funkci 0 (za správné rozhodnutí), | **Bayesovská formulace statistického rozhodování (rozpoznávání). Popis řešení úlohy při znalosti statistického modelu pro ztrátovou funkci 0 (za správné rozhodnutí), | ||
- | ===== Bayesianské rozhodování | + | ==== Bayesianské rozhodování ==== |
Nechť: | Nechť: | ||
Line 62: | Line 62: | ||
Risk se dá převést na Partial risk: | Risk se dá převést na Partial risk: | ||
$$ | $$ | ||
- | R(x,d) = \sum{k \in K}p_{Kx}(k|x)W(k, | + | R(x,d) = \sum_{k \in K}p_{Kx}(k|x)W(k, |
$$ | $$ | ||
Díky partial risku se se dá optimální strategie najít | Díky partial risku se se dá optimální strategie najít | ||
$$ | $$ | ||
- | q^*(x) = \underset{d \in D}{\arg\min} \sum{k \in K}p_{Kx}(k|x)W(k, | + | q^*(x) = \underset{d \in D}{\arg\min} \sum_{k \in K}p_{Kx}(k|x)W(k, |
$$ | $$ | ||
- | ==== Speciální případ: | + | ==== Pro 0-1 ztrátovou funkci |
+ | |||
+ | Rozhodnutí $D$ = skryté stavy $K$: | ||
+ | |||
+ | $$ | ||
+ | W(k, q(x)) = | ||
+ | \begin{cases} | ||
+ | 0, & \text{pokud } q(x) = k,\\ | ||
+ | 1, & \text{pokud } q(x) \neq k. | ||
+ | \end{cases} | ||
$$ | $$ | ||
+ | **Částečné riziko** je poté dáno jako: | ||
+ | $$ | ||
+ | R(x, d) \;=\; \sum_{k \in K} p_{KX}(k \mid x)\;W(k, d) | ||
+ | \;=\; \sum_{k \neq d} p_{KX}(k \mid x) | ||
+ | \;=\; 1 - p_{KX}(d \mid x). | ||
+ | $$ | ||
+ | |||
+ | **Optimální strategie** je následně: | ||
+ | |||
+ | $$ | ||
+ | q^*(x) \;=\; \underset{d \in D}{\arg\min}\; | ||
+ | \;=\; \underset{d \in D}{\arg\max}\; | ||
+ | $$ | ||
+ | |||
+ | |||
+ | ==== 3. Při přidání možnosti „nevím“ ==== | ||
+ | |||
+ | $$ | ||
+ | W(k,d)= | ||
+ | \begin{cases} | ||
+ | 0, & \text{jestliže } d=k,\\[4pt] | ||
+ | 1, & \text{jestliže } d\neq k \text{ a } d\neq \text{not known}, | ||
+ | \varepsilon, | ||
+ | \end{cases} | ||
+ | $$ | ||
+ | |||
+ | Potom se optimální strategie minimalizuje jako | ||
+ | |||
+ | $$ | ||
+ | q^{*}(x)= \begin{cases} | ||
+ | \displaystyle \arg\min_{d\in K} R(x,d), & | ||
+ | \text{pokud } \displaystyle\min_{d\in K} R(x,d) < R\bigl(x, | ||
+ | \text{not known}, & | ||
+ | \text{jinak}. | ||
+ | \end{cases} | ||
+ | $$ | ||
+ | |||
+ | $$ | ||
+ | |||
+ | \begin{aligned} | ||
+ | \min_{d\in K} R(x, | ||
+ | &= \min_{d\in K} \sum_{k\in K} p_{K|X}(k\, | ||
+ | &= \min_{d\in K} \sum_{k\in K\setminus\{d\}} p_{K|X}(k\, | ||
+ | &= \min_{d\in K} \Bigl(1 - p_{K|X}(d\, | ||
+ | &= 1-\max_{d\in K} p_{K|X}(d\, | ||
+ | \end{aligned} | ||
+ | |||
+ | $$ | ||
+ | |||
+ | $$ | ||
+ | |||
+ | \begin{aligned} | ||
+ | R\bigl(x, | ||
+ | &= \sum_{k\in K} p_{K|X}(k\, | ||
+ | &= \sum_{k\in K} p_{K|X}(k\, | ||
+ | \end{aligned} | ||
+ | |||
+ | $$ | ||
+ | |||
+ | Proto platí | ||
+ | |||
+ | $$ | ||
+ | |||
+ | q^{*}(x)= | ||
+ | \begin{cases} | ||
+ | \displaystyle \arg\max_{k\in K} p_{K|X}(k\, | ||
+ | \text{jestliže } 1-\max_{k\in K} p_{K|X}(k\, | ||
+ | \text{not known}, & | ||
+ | \text{jestliže } 1-\max_{k\in K} p_{K|X}(k\, | ||
+ | \end{cases} | ||
+ | |||
+ | $$ | ||
+ | |||
+ | === Co je ? === | ||
+ | |||
+ | $\varepsilon$ (epsilon) je **penalizace** za odpověď // | ||
+ | * $\varepsilon\in(0, | ||
+ | * Když je $\varepsilon$ blízké 0, systém raději řekne „nevím“ než riskovat chybu.\\ | ||
+ | * Když je $\varepsilon$ blízké 1, „nevím“ se téměř nevyplatí a pravidlo se blíží běžné volbě nejpravděpodobnější třídy. | ||
+ | |||
+ | === Intuice pravidla === | ||
+ | |||
+ | * **Ztrátová funkce** $W(k,d)$ říká:\\ | ||
+ | – 0 za správně, 1 za špatně, $\varepsilon$ za // | ||
+ | |||
+ | * **Riziko** $R(x,d)$ je očekávaná ztráta při rozhodnutí $d$.\\ | ||
+ | |||
+ | * Optimalizace ukazuje, že rozhodujeme podle **// | ||
+ | |||
+ | * Prakticky to znamená: **vyber třídu jen tehdy, když její posterior převýší práh**\\ | ||
+ | $$ | ||
+ | |||
+ | \max_{k} p_{K|X}(k\, | ||
+ | |||
+ | $$ jinak bezpečně odpověz // | ||
===== Logistická regrese ===== | ===== Logistická regrese ===== | ||
+ | |||
**Logistická regrese. Formulace úlohy. Algoritmus učení. Vlastnosti (výhody a nevýhody).** | **Logistická regrese. Formulace úlohy. Algoritmus učení. Vlastnosti (výhody a nevýhody).** | ||
+ | |||
+ | === Popis a účel: === | ||
+ | |||
+ | Logistická regrese slouží ke **binární klasifikaci**, | ||
+ | |||
+ | $$ | ||
+ | \sigma(z) = \frac{1}{1 + e^{-z}} | ||
+ | $$ | ||
+ | |||
+ | === Formulace úlohy: === | ||
+ | |||
+ | * **Lineární kombinace**: | ||
+ | * **Posterior pravděpodobnost**: | ||
+ | * **Cíl**: Maximální věrohodnost (maximum likelihood) parametrů $w, b$. | ||
+ | |||
+ | === Algoritmus učení: === | ||
+ | |||
+ | - **Log-likelihood**: | ||
+ | \ell(w) = \sum_{i=1}^n \left[ y_i \ln \sigma(z_i) + (1 - y_i) \ln(1 - \sigma(z_i)) \right] | ||
+ | $$ | ||
+ | - **Gradientní sestup**: Hledá se minimum funkce $E(w) = -\ell(w)$. Gradient je: $$ | ||
+ | \frac{\partial E}{\partial w_j} = -\sum_{i=1}^n (y_i - \sigma(z_i)) x_{i,j} | ||
+ | $$ | ||
+ | - **Konvexita**: | ||
+ | |||
+ | === Vlastnosti: === | ||
+ | |||
+ | **Výhody**: | ||
+ | |||
+ | **Nevýhody**: | ||
+ | |||
+ | === Souvislost s softmax: === | ||
+ | |||
+ | Softmax je zobecněním logistické regrese na **vícetřídnou klasifikaci**. Výstupní pravděpodobnosti pro $K$ tříd jsou získány jako: $$ | ||
+ | P(y = k | x) = \frac{e^{w_k^T x + b_k}}{\sum_{j=1}^K e^{w_j^T x + b_j}} | ||
+ | $$ Toto zajišťuje, | ||
+ | |||
+ | === Příklad: === | ||
+ | |||
+ | **Diagnóza choroby** na základě biomarkerů $x$: - Vstup: $x = [\text{teplota, | ||
+ | |||
+ | === Vizuální příklady: === | ||
+ | |||
+ | **Sigmoida**: | ||
+ | |||
+ | < | ||
+ | \usepackage{amsmath} | ||
+ | \usepackage{pgfplots} | ||
+ | \usetikzlibrary{automata, | ||
+ | \begin{document} | ||
+ | |||
+ | \begin{tikzpicture} | ||
+ | \begin{axis}[ | ||
+ | domain=-5: | ||
+ | xlabel={$z$}, | ||
+ | ] | ||
+ | \addplot [blue] {1/ | ||
+ | \end{axis} | ||
+ | \end{tikzpicture} | ||
+ | |||
+ | \end{document} | ||
+ | </ | ||
+ | **Softmax pro 3 třídy**: | ||
+ | |||
+ | < | ||
+ | \usepackage{amsmath} | ||
+ | \usetikzlibrary{automata, | ||
+ | \usepackage{pgfplots} | ||
+ | \begin{document} | ||
+ | |||
+ | \begin{tikzpicture} | ||
+ | \begin{axis}[ | ||
+ | domain=-2: | ||
+ | xlabel={$z_k$}, | ||
+ | ] | ||
+ | \addplot [red, thick] {exp(x)/ | ||
+ | \addplot [green] {exp(1)/ | ||
+ | \addplot [blue] {exp(0)/ | ||
+ | \end{axis} | ||
+ | \end{tikzpicture} | ||
+ | |||
+ | \end{document} | ||
+ | </ | ||
+ | === Závěr: === | ||
+ | |||
+ | Logistická regrese je základním nástrojem pro klasifikaci, | ||
===== Support Vector Machine ===== | ===== Support Vector Machine ===== | ||
- | **Klasifikátor | + | |
+ | **Klasifikátor | ||
+ | |||
+ | === Příklad a účel === | ||
+ | |||
+ | * **Příklad: | ||
+ | |||
+ | * **Účel:** Najít hyperrovinu $\mathbf{w}^T\mathbf{x} + b = 0$ s maximální vzdáleností od nejbližších bodů (support vectors), což zvyšuje generalizaci. | ||
+ | |||
+ | === Hard Margin vs. Soft Margin === | ||
+ | |||
+ | - < | ||
+ | **Hard Margin:** | ||
+ | * Předpokládá | ||
+ | |||
+ | * Primární úloha:\\ | ||
+ | $$ | ||
+ | \min_{\mathbf{w},b} \frac{1}{2} \|\mathbf{w}\|^2 \quad \text{za podmínek} \quad y_i(\mathbf{w}^T\mathbf{x}_i + b) \geq 1 \quad \forall i | ||
+ | $$ | ||
+ | * **Problém: | ||
+ | < | ||
+ | \usepackage{amsmath} | ||
+ | \usepackage{pgfplots} | ||
+ | \usetikzlibrary{automata, | ||
+ | \begin{document} | ||
+ | |||
+ | \begin{tikzpicture} | ||
+ | \begin{axis}[ | ||
+ | axis equal image, | ||
+ | axis lines=center, | ||
+ | | ||
+ | | ||
+ | | ||
+ | no markers | ||
+ | ] | ||
+ | % Bias and weight vectors | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | % Margin width arrow | ||
+ | | ||
+ | | ||
+ | | ||
+ | % Hyperplanes D₋, D, D₊ | ||
+ | | ||
+ | {(9 - x)/2} | ||
+ | | ||
+ | | ||
+ | {(11 - x)/2} | ||
+ | | ||
+ | | ||
+ | {(13 - x)/2} | ||
+ | | ||
+ | % Data points (class a vs. class b) + support vectors (v) | ||
+ | | ||
+ | | ||
+ | point meta=explicit symbolic, | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | } | ||
+ | ] table[meta=label] { | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | }; | ||
+ | \end{axis} | ||
+ | \end{tikzpicture} | ||
+ | |||
+ | \end{document} | ||
+ | </ | ||
+ | </ | ||
+ | - < | ||
+ | **Soft Margin:** | ||
+ | * Povoluje chyby klasifikace pomocí relaxačních proměnných $\xi_i$.\\ | ||
+ | |||
+ | * Primární úloha:\\ | ||
+ | $$ | ||
+ | \min_{\mathbf{w}, | ||
+ | $$ | ||
+ | * **Parametr $C$:** Řídí kompromis mezi šířkou okraje a chybami (nízké $C$ = větší margin, vyšší $C$ = méně chyb). | ||
+ | < | ||
+ | \usepackage{amsmath} | ||
+ | \usepackage{pgfplots} | ||
+ | \usetikzlibrary{automata, | ||
+ | \begin{document} | ||
+ | |||
+ | \begin{tikzpicture} | ||
+ | \begin{axis}[ | ||
+ | axis equal image, | ||
+ | axis lines=center, | ||
+ | | ||
+ | | ||
+ | | ||
+ | no markers | ||
+ | ] | ||
+ | % Hyperplanes: | ||
+ | | ||
+ | | ||
+ | | ||
+ | % Slack vectors xi_i, xi_j | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | % Data points (class a vs. class b) | ||
+ | | ||
+ | | ||
+ | point meta=explicit symbolic, | ||
+ | | ||
+ | | ||
+ | | ||
+ | } | ||
+ | ] table[meta=label] { | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | }; | ||
+ | \end{axis} | ||
+ | \end{tikzpicture} | ||
+ | |||
+ | \end{document} | ||
+ | </ | ||
+ | </ | ||
+ | === Kernel Trick === | ||
+ | |||
+ | |||
+ | |||
+ | * **Princip: | ||
+ | |||
+ | * **Příklad: | ||
+ | |||
+ | * **Výhoda: | ||
+ | |||
+ | * **Rovnice: | ||
+ | |||
+ | === Vlastnosti, | ||
+ | |||
+ | ^**Vlastnost** | ||
+ | |**Přesnost** | ||
+ | |**Efektivita** | ||
+ | |**Kernely** | ||
+ | |**Nelinearita** | ||
+ | |**Odolnost proti přetrénování**|Dobrá pro vysokodimenzionální data. | ||
===== Adaboost ===== | ===== Adaboost ===== | ||
**Adaboost, popis algoritmu, jeho interpretace jako minimalizace horního odhadu empirického rizika. Vlastnosti (výhody a nevýhody).** | **Adaboost, popis algoritmu, jeho interpretace jako minimalizace horního odhadu empirického rizika. Vlastnosti (výhody a nevýhody).** | ||
+ | |||
+ | |||
+ | **Adaboost (Adaptive Boosting) je algoritmus ensemble learningu, který kombinuje slabé klasifikátory do silného klasifikátoru. Minimalizuje horní odhad empirického rizika a iterativně upravuje váhy chybně klasifikovaných vzorků.** | ||
+ | |||
+ | ==== Popis algoritmu ==== | ||
+ | |||
+ | - **Inicializace vah**: Každému trénovacímu vzorku $(x_i, y_i)$ přiřadíme počáteční váhu $w_i^{(1)} = \frac{1}{m}$\\ | ||
+ | |||
+ | - **Iterace** pro $t = 1$ až $T$: | ||
+ | - Natrénuj slabý klasifikátor $h_t(x)$ s minimální váženou chybou $\epsilon_t = \sum_{i=1}^m w_i^{(t)} \mathbf{1}_{[h_t(x_i) \neq y_i]}$\\ | ||
+ | |||
+ | - Vypočti koeficient $\alpha_t = \frac{1}{2} \ln \left( \frac{1 - \epsilon_t}{\epsilon_t} \right)$\\ | ||
+ | |||
+ | - Aktualizuj váhy: $w_i^{(t+1)} = \frac{w_i^{(t)} \exp(-\alpha_t y_i h_t(x_i))}{Z_t}$ kde $Z_t$ je normalizační faktor\\ | ||
+ | |||
+ | - **Výsledný klasifikátor**: | ||
+ | |||
+ | ==== Minimalizace horního odhadu ==== | ||
+ | |||
+ | Empirické riziko je horní odhad chyby:\\ | ||
+ | $$ \mathcal{E}(H) \leq \prod_{t=1}^T Z_t \quad \text{kde} \quad Z_t = 2\sqrt{\epsilon_t(1-\epsilon_t)} $$\\ | ||
+ | Algoritmus v každé iteraci volí $h_t$ a $\alpha_t$ minimalizující $Z_t$, čímž exponenciálně snižuje chybu. [5] | ||
+ | |||
+ | ==== Vlastnosti ==== | ||
+ | |||
+ | **Výhody**: | ||
+ | - Jednoduchá implementace\\ | ||
+ | - Odolnost proti přetrénování\\ | ||
+ | - Univerzálnost (kombinuje libovolné klasifikátory) | ||
+ | |||
+ | **Nevýhody**: | ||
+ | - Citlivý na šum a odlehlé hodnoty\\ | ||
+ | - Vyžaduje pečlivé nastavení parametrů\\ | ||
+ | - Problémy s nevyváženými třídami | ||
+ | |||
+ | ==== Příklad ==== | ||
+ | |||
+ | **Binární klasifikace s rozhodovacími stromy**:\\ | ||
+ | - **Data**: $\{(x_1=1, y_1=1), (x_2=2, y_2=-1), (x_3=3, y_3=1)\}$\\ | ||
+ | - **Iterace 1**: $h_1(x)$ chybuje u $x_2$ → $\epsilon_1=0.33$, | ||
+ | - **Iterace 2**: $h_2(x)$ opravuje chybu u $x_2$ s vyšší vahou\\ | ||
+ | - **Výsledek**: | ||
+ | |||
+ | < | ||
+ | \usepackage{amsmath} | ||
+ | \usepackage{pgfplots} | ||
+ | \usetikzlibrary{automata, | ||
+ | \begin{document} | ||
+ | |||
+ | \begin{tikzpicture}[scale=0.8] | ||
+ | \draw[-> | ||
+ | \draw[-> | ||
+ | \draw[blue] (0.5,2.5) -- (1.5,0.5) node[midway, | ||
+ | \draw[red] (2.5,2.5) -- (3.5,0.5) node[midway, | ||
+ | \draw[thick] (0.5,2.7) .. controls (2,1.8) .. (3.5,0.3) node[right] {$H(x)$}; | ||
+ | \fill (1,2.5) circle (2pt) node[above] {+}; | ||
+ | \fill (2,0.5) circle (2pt) node[below] {-}; | ||
+ | \fill (3,2.5) circle (2pt) node[above] {+}; | ||
+ | \end{tikzpicture} | ||
+ | |||
+ | \end{document} | ||
+ | </ | ||
+ | ==== Aplikace ==== | ||
+ | |||
+ | * Rozpoznávání obličejů\\ | ||
+ | |||
+ | * Detekce spamu\\ | ||
+ | |||
+ | * Medicínská diagnostika\\ | ||
+ | //Princip zesilování slabých klasifikátorů z něj činí efektivní nástroj pro různé klasifikační úlohy.// | ||
===== Neuronové sítě ===== | ===== Neuronové sítě ===== | ||
**Neuronové sítě s dopředným šířením. Struktura. Učení pomocí metody zpětného šíření. Vlastnosti (výhody a nevýhody).** | **Neuronové sítě s dopředným šířením. Struktura. Učení pomocí metody zpětného šíření. Vlastnosti (výhody a nevýhody).** | ||
+ | |||
+ | **Neuronové sítě s dopředným šířením jsou vícevrstvé architektury inspirované biologickými neurony, které transformují vstupy na výstupy pomocí vážených spojení a nelineárních aktivačních funkcí. Učí se metodou zpětného šíření chyby.** | ||
+ | |||
+ | ==== Struktura ==== | ||
+ | |||
+ | * Skládá se z vrstev: **vstupní** (přijímá data), **skryté** (provádí výpočty) a **výstupní** (poskytuje výsledek). | ||
+ | * Každý neuron počítá vážený součet vstupů plus bias: $z = \sum w_i x_i + b$, následovaný aktivační funkcí: $a = g(z)$. | ||
+ | * Typické nelineární funkce: sigmoida, tanh, ReLU. | ||
+ | |||
+ | ==== Učení metodou zpětného šíření ==== | ||
+ | |||
+ | - **Dopředné šíření**: | ||
+ | - **Výpočet chyby**: Porovnání výstupu s cílem pomocí loss funkce (např. MSE). | ||
+ | - **Zpětné šíření**: | ||
+ | * Gradienty chyby se šíří od výstupu ke vstupu pomocí řetězového pravidla. | ||
+ | * Aktualizace vah: $w \leftarrow w - \alpha \frac{\partial L}{\partial w}$, kde $\alpha$ je learning rate. | ||
+ | |||
+ | ==== Vlastnosti ==== | ||
+ | |||
+ | * **Výhody**: | ||
+ | * **Nevýhody**: | ||
+ | |||
+ | ==== Konvoluce (příklad) ==== | ||
+ | |||
+ | Operace aplikuje filtr (jádro) na vstupní matici pro extrakci lokálních vzorů. Příklad pro vstup $X$ a jádro $K$: $$ | ||
+ | X = \begin{pmatrix} | ||
+ | 1 & 2 & 3 \\ | ||
+ | 4 & 5 & 6 \\ | ||
+ | 7 & 8 & 9 | ||
+ | \end{pmatrix}, | ||
+ | K = \begin{pmatrix} | ||
+ | 0 & -1 \\ | ||
+ | 1 & 0 | ||
+ | \end{pmatrix} | ||
+ | $$ Výstup pro pozici (1,1): $$ | ||
+ | (1 \cdot 0) + (2 \cdot -1) + (4 \cdot 1) + (5 \cdot 0) = -2 + 4 = 2 | ||
+ | $$ | ||
+ | |||
+ | ==== Pooling a MaxPooling (příklad ==== | ||
+ | |||
+ | Snižuje prostorové rozměry, zachovává dominantní rysy. **MaxPooling** vybírá maximální hodnotu v okně. Příklad pro okno 2×2: $$ | ||
+ | \text{Vstup: | ||
+ | 5 & 8 & 2 \\ | ||
+ | 3 & 1 & 4 \\ | ||
+ | 6 & 7 & 9 | ||
+ | \end{pmatrix} \quad | ||
+ | \text{Výstup: | ||
+ | \max(5, | ||
+ | \max(6,7) & \max(9) | ||
+ | \end{pmatrix} = \begin{pmatrix} | ||
+ | 8 & 4 \\ | ||
+ | 7 & 9 | ||
+ | \end{pmatrix} | ||
+ | $$ | ||
+ | |||
+ | ==== Použití Softmax ==== | ||
+ | |||
+ | Převede výstupní vektor na pravděpodobnostní distribuci: $$ | ||
+ | \text{softmax}(z_i) = \frac{e^{z_i}}{\sum_{j=1}^K e^{z_j}} | ||
+ | $$ Používá se ve **výstupní vrstvě** pro klasifikační úlohy (např. rozpoznání digitů v MNIST). | ||
+ | |||
+ | ==== Nevýhody lineární aktivační funkce ==== | ||
+ | |||
+ | Pokud by všechny vrstvy používaly **pouze lineární funkce** ($g(z) = z$): - Síť by se degradovala na jediný perceptron (lineární kombinátor). - Ztratila by schopnost modelovat nelineární vztahy, např. XOR problém. - Klesla by výrazně expresivita modelu. | ||
===== Klasifikace metodou nejbližšího souseda ===== | ===== Klasifikace metodou nejbližšího souseda ===== | ||
**Klasifikace metodou nejbližšího souseda. Výhody a nevýhody. Řadu nevýhod triviální implementace lze odstranit, jak?** | **Klasifikace metodou nejbližšího souseda. Výhody a nevýhody. Řadu nevýhod triviální implementace lze odstranit, jak?** | ||
+ | |||
+ | |||
+ | **Metoda k-NN (k-Nearest Neighbors) je algoritmus učení s učitelem, který klasifikuje neznámý vzorek na základě většinové třídy jeho //k// nejbližších sousedů v trénovacích datech. Nevýhody triviální implementace řeší např. k-D stromy.** | ||
+ | |||
+ | ==== Příklad ==== | ||
+ | |||
+ | Uvažujme 2D datovou sadu s třídami △ (modrá) a ● (červená): | ||
+ | |||
+ | < | ||
+ | \usepackage{amsmath} | ||
+ | \usepackage{pgfplots} | ||
+ | \usetikzlibrary{automata, | ||
+ | \begin{document} | ||
+ | |||
+ | \begin{tikzpicture}[scale=0.6] | ||
+ | \draw[gray!30] (0,0) grid (6,5); | ||
+ | \draw[-> | ||
+ | \draw[-> | ||
+ | \foreach \point/\col in {(1, | ||
+ | \fill[\col] \point circle (4pt); | ||
+ | \node[blue] at (1,1) {$\triangle$}; | ||
+ | \node[blue] at (1,3) {$\triangle$}; | ||
+ | \node[blue] at (2,2) {$\triangle$}; | ||
+ | \node[red] at (4,4) {$\bullet$}; | ||
+ | \node[red] at (5,3) {$\bullet$}; | ||
+ | \node[red] at (5,5) {$\bullet$}; | ||
+ | \fill[green] (3,3) circle (4pt); % Testovací bod | ||
+ | \node at (3,3.3) {?}; | ||
+ | \end{tikzpicture} | ||
+ | |||
+ | \end{document} | ||
+ | </ | ||
+ | Pro testovací bod (3,3) a //k//=3:\\ | ||
+ | 1. Vzdálenosti k △: √5≈2.24, | ||
+ | 2. Vzdálenosti k ●: √2≈1.41, | ||
+ | Nejbližší sousedé: △ (1.0), ● (1.41), △ (1.41) → většina △ → klasifikace jako △. | ||
+ | |||
+ | ==== Využití ==== | ||
+ | |||
+ | * Rozpoznávání obrazců (OCR, detekce objektů) | ||
+ | * Doporučovací systémy (“uživatelé s podobným profilem”) | ||
+ | * Lékařská diagnostika (klasifikace vzorků) | ||
+ | |||
+ | ==== Výhody ==== | ||
+ | |||
+ | - **Jednoduchá implementace** bez potřeby tréninkového modelu\\ | ||
+ | - **Adaptabilita** na nová data (stačí přidat vzorky)\\ | ||
+ | - **Vhodná pro vysoký počet tříd** (i stovky tříd) [1]\\ | ||
+ | - **Neparametrická** – nedělá předpoklady o distribuci dat | ||
+ | |||
+ | ==== Nevýhody ==== | ||
+ | |||
+ | - **Výpočetní náročnost** – O(//n//) pro každou klasifikaci (prohledávání všech vzorků)\\ | ||
+ | - **Citlivost na šum a irelevantní atributy**\\ | ||
+ | - **Problém vysoké dimenzionality** (curse of dimensionality)\\ | ||
+ | - **Nevhodná pro nevyvážená data** (dominance větších tříd) | ||
+ | |||
+ | ==== Řešení nevýhod ==== | ||
+ | |||
+ | * < | ||
+ | **k-D stromy** (k-dimensional trees):\\ | ||
+ | Binární stromy pro hierarchické rozdělení prostoru. Příklad pro 2D: | ||
+ | < | ||
+ | Root: (x=3.5) | ||
+ | ├─ Vlevo: body s x<3.5 (rozděl na y=2.5) | ||
+ | └─ Vpravo: body s x≥3.5 (rozděl na y=4) | ||
+ | </ | ||
+ | |||
+ | Složitost klesne na O(log //n//) při nízkých dimenzích [1].\\ | ||
+ | |||
+ | </ | ||
+ | * **Vážení atributů** (např. ReliefF algoritmus)\\ | ||
+ | * **Normalizace dat** (potlačení vlivu škálování)\\ | ||
+ | * **Výběr optimálního //k//** (křížová validací) | ||
+ | |||
+ | ==== Omezení k-D stromů ==== | ||
+ | |||
+ | * Efektivita klesá pro dimenze >20 (“curse of dimensionality”)\\ | ||
+ | * Konstrukce stromu O(//n// log //n//), ale jednorázová investice [1] | ||
===== Shlukování metodou k-means ===== | ===== Shlukování metodou k-means ===== | ||
- | **Shlukování metodou k-means, formulace úlohy a popis algoritmu. Vlastnosti algoritmu. Zobecnění - použití pro jiné ztrátové funkce než L2.** | ||
+ | **Shlukování metodou k-means, formulace úlohy a popis algoritmu. Vlastnosti algoritmu. Zobecnění – použití pro jiné ztrátové funkce než L2.** | ||
+ | |||
+ | ==== Formulace úlohy ==== | ||
+ | |||
+ | Cílem je rozdělit množinu $n$ datových bodů $\mathcal{D} = \{ \mathbf{x}_1, | ||
+ | $$ | ||
+ | J = \sum_{i=1}^k \sum_{\mathbf{x} \in C_i} \|\mathbf{x} - \boldsymbol{\mu}_i\|^2 | ||
+ | $$\\ | ||
+ | kde $C_i$ je $i$-tý shluk a $\boldsymbol{\mu}_i$ jeho centroid (průměr bodů ve shluku). | ||
+ | |||
+ | ==== Popis algoritmu ==== | ||
+ | |||
+ | - **Inicializace: | ||
+ | |||
+ | - **Přiřazení bodů:** Každý bod přiřazen k nejbližšímu centroidu (Eukleidovská vzdálenost): | ||
+ | $$ | ||
+ | C_i = \{ \mathbf{x} : \|\mathbf{x} - \boldsymbol{\mu}_i\|^2 \leq \|\mathbf{x} - \boldsymbol{\mu}_j\|^2 \, \forall j \} | ||
+ | $$\\ | ||
+ | |||
+ | - **Aktualizace centroidů: | ||
+ | $$ | ||
+ | \boldsymbol{\mu}_i = \frac{1}{|C_i|} \sum_{\mathbf{x} \in C_i} \mathbf{x} | ||
+ | $$\\ | ||
+ | |||
+ | - **Ukončení: | ||
+ | |||
+ | ==== Příklad ==== | ||
+ | |||
+ | < | ||
+ | \usepackage{amsmath} | ||
+ | \usepackage{pgfplots} | ||
+ | \usetikzlibrary{automata, | ||
+ | \begin{document} | ||
+ | |||
+ | \begin{tikzpicture} | ||
+ | % Data points | ||
+ | \filldraw[blue] (0.5,1.5) circle (2pt); | ||
+ | \filldraw[blue] (1,1) circle (2pt); | ||
+ | \filldraw[blue] (1.5,0.5) circle (2pt); | ||
+ | \filldraw[red] (3,2) circle (2pt); | ||
+ | \filldraw[red] (3.5,2.5) circle (2pt); | ||
+ | \filldraw[red] (4,3) circle (2pt); | ||
+ | \filldraw[green] (2,4) circle (2pt); | ||
+ | \filldraw[green] (2.5,4.5) circle (2pt); | ||
+ | \filldraw[green] (3,5) circle (2pt); | ||
+ | |||
+ | % Centroids (after convergence) | ||
+ | \filldraw[black] (1,1) circle (4pt) node[below] {$\mu_1$}; | ||
+ | \filldraw[black] (3.5,2.5) circle (4pt) node[below] {$\mu_2$}; | ||
+ | \filldraw[black] (2.5,4.5) circle (4pt) node[above] {$\mu_3$}; | ||
+ | \end{tikzpicture} | ||
+ | |||
+ | \end{document} | ||
+ | </ | ||
+ | //Výsledek po konvergenci: | ||
+ | |||
+ | ==== Vlastnosti algoritmu ==== | ||
+ | |||
+ | * **Rychlý a škálovatelný** pro velká data ($O(n \cdot k \cdot d)$ na iteraci).\\ | ||
+ | |||
+ | * **Citlivý na inicializaci** (špatná volba centroidů → suboptimální řešení).\\ | ||
+ | |||
+ | * **Předpokládá konvexní shluky** stejné velikosti (špatně zpracuje nestejnoměrná data).\\ | ||
+ | |||
+ | * **Lokální optimum:** Konverguje k nejbližšímu lokálnímu minimu $J$. | ||
+ | |||
+ | ==== Zobecnění pro jiné ztrátové funkce ==== | ||
+ | |||
+ | Místo Eukleidovské vzdálenosti ($\ell_2$) lze použít:\\ | ||
+ | - **Manhattanská vzdálenost ($\ell_1$): | ||
+ | $$ | ||
+ | J = \sum_{i=1}^k \sum_{\mathbf{x} \in C_i} \|\mathbf{x} - \boldsymbol{\mu}_i\|_1 | ||
+ | $$\\ | ||
+ | Centroid aktualizován jako **medián** shluku (odolnější vůči odlehlým hodnotám).\\ | ||
+ | - **Obecná Minkowského metrika ($\ell_p$): | ||
+ | $$ | ||
+ | \|\mathbf{x} - \boldsymbol{\mu}_i\|_p = \left( \sum_{j=1}^d |x_j - \mu_{ij}|^p \right)^{1/ | ||
+ | $$\\ | ||
+ | - **Kosinová podobnost: | ||
+ | |||
+ | ==== K-means++ ==== | ||
+ | |||
+ | Vylepšení inicializace centroidů: | ||
+ | 1. První centroid náhodně vybrán z dat.\\ | ||
+ | 2. Každý další centroid vybrán s pravděpodobností úměrnou $\|\mathbf{x} - \mu_{\text{nejblížší}}\|^2$.\\ | ||
+ | **Výhody: | ||
+ | |||
+ | ==== Aplikace ==== | ||
+ | |||
+ | * Segmentace zákazníků, | ||