Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
statnice:bakalar:b4b33rpz [2025/06/04 13:38] – [1. Formulace úlohy] jpelcstatnice: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), k předpokládaným vlastnostem dat, 2. k vlastnostem algoritmu učení (vztah mezi kritériem použitím při učení a jeho vztahem ke kritériu, typicky chybě na testovacích datech), k době učení, konvergenci algoritmu (do lokálního nebo globálního minima) a 3. k vlastnostem z pohledu nasazení (při rozhodování) - paměťová a výpočetní náročnost.+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), k předpokládaným vlastnostem dat, 2. k vlastnostem algoritmu učení (vztah mezi kritériem použitím při učení a jeho vztahem ke kritériu, typicky chybě na testovacích datech), k době učení, konvergenci algoritmu (do lokálního nebo globálního minima) a 3. k vlastnostem z pohledu nasazení (při rozhodování) - paměťová a výpočetní náročnost.
  
 ===== 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í), 1 (při jakékoli chybě). Rozhodování s možností “nevím”.** **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í), 1 (při jakékoli chybě). Rozhodování s možností “nevím”.**
-===== Bayesianské rozhodování =====+==== Bayesianské rozhodování ====
  
 Nechť: Nechť:
Line 178: Line 178:
  
 ===== 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**, kde se rozhodujeme mezi dvěma třídami (např. spam/ne-spam). Cílem je nalézt lineární kombinaci vstupních proměnných $x$, která maximalizuje pravděpodobnost správného přiřazení třídy. Výstup predikce je pravděpodobnost patření do třídy $1$, získaná pomocí **logistické sigmoidy**:
 +
 +$$
 +\sigma(z) = \frac{1}{1 + e^{-z}}
 +$$
 +
 +=== Formulace úlohy: ===
 +
 +  * **Lineární kombinace**: $z = w^T x + b$, kde $w$ jsou váhy, $b$ bias.
 +  * **Posterior pravděpodobnost**: $P(y=1 | x) = \sigma(z)$.
 +  * **Cíl**: Maximální věrohodnost (maximum likelihood) parametrů $w, b$.
 +
 +=== Algoritmus učení: ===
 +
 +  - **Log-likelihood**: Často se používá logaritmus věrohodnosti pro optimalizaci: $$
 +\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**: Funkce $E(w)$ je konvexní, což zaručuje globální minimum.
 +
 +=== Vlastnosti: ===
 +
 +**Výhody**: - Jednoduchý a rychlý algoritmus. - Interpretace koeficientů $w$ jako vliv vstupních proměnných. - Dobře funguje pro lineárně separovatelná data.
 +
 +**Nevýhody**: - Předpokládá lineární separaci tříd. - Není robustní vůči outlierům. - Nespracuje chybějící hodnoty v datech.
 +
 +=== 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, že výstupy tvoří distribuci pravděpodobností (všechny hodnoty mezi 0 a 1, součet 1).
 +
 +=== Příklad: ===
 +
 +**Diagnóza choroby** na základě biomarkerů $x$: - Vstup: $x = [\text{teplota, bílkoviny}]$. - Model určí $P(\text{choroba} = 1 | x)$.
 +
 +=== Vizuální příklady: ===
 +
 +**Sigmoida**:
 +
 +<tikzjax>
 +\usepackage{amsmath}
 +\usepackage{pgfplots}
 +\usetikzlibrary{automata, positioning, arrows, calc, cd, intersections,arrows.meta}
 +\begin{document}
 +
 +\begin{tikzpicture}
 +\begin{axis}[
 +    domain=-5:5, samples=100, axis lines=middle,
 +    xlabel={$z$}, ylabel={$\sigma(z)$}
 +]
 +\addplot [blue] {1/(1+exp(-x))};
 +\end{axis}
 +\end{tikzpicture}
 +
 +\end{document}
 +</tikzjax>
 +**Softmax pro 3 třídy**:
 +
 +<tikzjax>
 +\usepackage{amsmath}
 +\usetikzlibrary{automata, positioning, arrows, calc, cd, intersections,arrows.meta}
 +\usepackage{pgfplots}
 +\begin{document}
 +
 +\begin{tikzpicture}
 +\begin{axis}[
 +    domain=-2:2, samples=50, axis lines=center,
 +    xlabel={$z_k$}, ylabel={$P(y=k|x)$}
 +]
 +\addplot [red, thick] {exp(x)/(exp(0)+exp(1)+exp(x))}; % příkladní vstupy
 +\addplot [green] {exp(1)/(exp(0)+exp(1)+exp(x))};
 +\addplot [blue] {exp(0)/(exp(0)+exp(1)+exp(x))};
 +\end{axis}
 +\end{tikzpicture}
 +
 +\end{document}
 +</tikzjax>
 +=== Závěr: ===
 +
 +Logistická regrese je základním nástrojem pro klasifikaci, který lze rozšířit pomocí **softmaxu** na více tříd. Funkce sigmoidy a softmaxu zajistí interpretaci výstupů jako pravděpodobnosti, což je klíčové pro mnoho aplikací v ML.
  
 ===== Support Vector Machine ===== ===== Support Vector Machine =====
-**Klasifikátor typu Support Vector MachineFormulace úlohy učení, i pro neseparabilní dataUčení SVMjak lineární, tak s jádrovou funkcí (kernel SVM). Vlastnosti (výhody a nevýhody).**+ 
 +**Klasifikátor hledající optimální hranici mezi třídami s maximální mezíPoužívá se pro binární klasifikaci, regresi a detekci odlehlých hodnot. Efektivní i ve vysokodimenzionálních prostorech.** 
 + 
 +=== Příklad a účel === 
 + 
 +  * **Příklad:** Rozhodnutízda e-mail je spam (třída +1) čnikoliv (třída -1) na základě slovních příznaků.\\ 
 + 
 +  * **Úč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 === 
 + 
 +  - <WRAP> 
 +**Hard Margin:** 
 +    * Předpokládá lineární separabilitu dat.\\ 
 + 
 +    * 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:** Citlivý na odlehlé hodnoty a šum. 
 +<tikzjax> 
 +\usepackage{amsmath} 
 +\usepackage{pgfplots} 
 +\usetikzlibrary{automata, positioning, arrows, calc, cd, intersections,arrows.meta} 
 +\begin{document} 
 + 
 +\begin{tikzpicture} 
 +  \begin{axis}[ 
 + axis equal image, 
 + axis lines=center, 
 + xmin=-0.5, xmax=9, 
 + ymin=-0.5, ymax=7, 
 + xtick=\empty, ytick=\empty, 
 + no markers 
 +  ] 
 + % Bias and weight vectors 
 + \addplot[dashed,->
 +   coordinates {(0,0) (11/5,22/5)} 
 +   node[midway,left=5pt]{$b$}; 
 + \addplot[thick,->
 +   coordinates {(0,0) (0.4472,0.8944)} 
 +   node[below right]{$\hat{\mathbf{w}}$}; 
 + % Margin width arrow 
 + \addplot[dashed,<->
 +   coordinates {(6.6,1.2) (7.4,2.8)} 
 +   node[right=10pt,above]{$\tfrac{2}{\|\mathbf{w}\|}$}; 
 + % Hyperplanes D₋, D, D₊ 
 + \addplot[black,thin,domain=1:7] 
 +   {(9 - x)/2} 
 +   node[pos=0.05,sloped,above]{\tiny $D_{-}$}; 
 + \addplot[black,thick,domain=(7/5):(37/5)] 
 +   {(11 - x)/2} 
 +   node[pos=0.025,sloped,above]{\tiny $D$}; 
 + \addplot[black,thin,domain=(9/5):(39/5)] 
 +   {(13 - x)/2} 
 +   node[pos=0.05,sloped,above]{\tiny $D_{+}$}; 
 + % Data points (class a vs. class b) + support vectors (v) 
 + \addplot[ 
 +   scatter,only marks, 
 +   point meta=explicit symbolic, 
 +   scatter/classes={ 
 +     a={mark=*}, 
 +     b={mark=*,draw=black,fill=white}, 
 +     v={mark=o,draw=darkgray,thick,scale=2.25} 
 +   } 
 + ] table[meta=label] { 
 +      y   label 
 +      6   a 
 +      4   a 
 +   5.5  5   a 
 +   6.5  5   a 
 +      3.5 a 
 +      5.5 a 
 +      3   b 
 +   1.5  0.5 b 
 +      2.5 b 
 +      3   b 
 +      1   b 
 +      2   b 
 +      3   v 
 +      2   v 
 +      4   v 
 + }; 
 +  \end{axis} 
 +\end{tikzpicture} 
 + 
 +\end{document} 
 +</tikzjax> 
 +</WRAP> 
 +  - <WRAP> 
 +**Soft Margin:** 
 +    * Povoluje chyby klasifikace pomocí relaxačních proměnných $\xi_i$.\\ 
 + 
 +    * Primární úloha:\\ 
 +$$ 
 +\min_{\mathbf{w},b,\xi} \frac{1}{2} \|\mathbf{w}\|^2 + C \sum_{i=1}^n \xi_i \quad \text{za podmínek} \quad y_i(\mathbf{w}^T\mathbf{x}_i + b) \geq 1 - \xi_i, \quad \xi_i \geq 0 
 +$$ 
 +    * **Parametr $C$:** Řídí kompromis mezi šířkou okraje a chybami (nízké $C$ = větší margin, vyšší $C$ = méně chyb). 
 +<tikzjax> 
 +\usepackage{amsmath} 
 +\usepackage{pgfplots} 
 +\usetikzlibrary{automata, positioning, arrows, calc, cd, intersections,arrows.meta} 
 +\begin{document} 
 + 
 +\begin{tikzpicture} 
 +  \begin{axis}[ 
 + axis equal image, 
 + axis lines=center, 
 + xmin=-0.5, xmax=8, 
 + ymin=-0.5, ymax=6, 
 + xtick=\empty, ytick=\empty, 
 + no markers 
 +  ] 
 + % Hyperplanes: thin, decision (thick), thin 
 + \addplot[black,thin,domain=1:7]   {(9 - x)/2}; 
 + \addplot[black,thick,domain=(7/5):(37/5)] {(11 - x)/2}; 
 + \addplot[black,thin,domain=(9/5):(39/5)] {(13 - x)/2}; 
 + % Slack vectors xi_i, xi_j 
 + \addplot[dashed,->
 +   coordinates {(3.8,3.6) (4.45,4.9)} 
 +   node[above left]{$\xi_{i}$}; 
 + \addplot[dashed,->
 +   coordinates {(4.4,3.3) (3.55,1.6)} 
 +   node[above left]{$\xi_{j}$}; 
 + % Data points (class a vs. class b) 
 + \addplot[ 
 +   scatter,only marks, 
 +   point meta=explicit symbolic, 
 +   scatter/classes={ 
 +     a={mark=*}, 
 +     b={mark=*,draw=black,fill=white} 
 +   } 
 + ] table[meta=label] { 
 +      y   label 
 +      6   a 
 +      4   a 
 +   5.5  5   a 
 +   6.5  5   a 
 +      3.5 a 
 +      5.5 a 
 +      3   b 
 +   1.5  0.5 b 
 +      2.5 b 
 +      3   b 
 +      1   b 
 +      2   b 
 +      3   b 
 +      2   b 
 +      4   a 
 +   4.5  5   b 
 +   3.5  1.5 a 
 + }; 
 +  \end{axis} 
 +\end{tikzpicture} 
 + 
 +\end{document} 
 +</tikzjax> 
 +</WRAP> 
 +=== Kernel Trick === 
 + 
 + 
 + 
 +  * **Princip:** Mapuje data do vyšší dimenze pomocí jádrové funkce $K(\mathbf{x}_i, \mathbf{x}_j)$, aby se nelineárně separabilní data stala lineárně separabilními.\\ 
 + 
 +  * **Příklad:** Gaussovo jádro (RBF) $K(\mathbf{x}_i, \mathbf{x}_j) = \exp(-\gamma \|\mathbf{x}_i - \mathbf{x}_j\|^2)$.\\ 
 + 
 +  * **Výhoda:** Vyhýbá se explicitnímu výpočtu transformace (úspora výpočetního času).\\ 
 + 
 +  * **Rovnice:** Rozhodovací funkce se stává $f(\mathbf{x}) = \sum_{i} \alpha_i y_i K(\mathbf{x}_i, \mathbf{x}) + b$. 
 + 
 +=== Vlastnosti, výhody a nevýhody === 
 + 
 +^**Vlastnost**                  ^**Výhody**                                  ^**Nevýhody**                                      ^ 
 +|**Přesnost**                   |Vysoká díky maximalizaci okraje.            |Citlivost na volbu hyperparametrů ($C$, $\gamma$).
 +|**Efektivita**                 |Rychlé předpovědi (pouze support vectors).  |Pomalé učení pro velké datasety.                  | 
 +|**Kernely**                    |Univerzálnost (lineární, polynomiální, RBF).|Nutnost křížové validace pro výběr jádra.         | 
 +|**Nelinearita**                |Zpracuje složité nelineární hranice.        |Interpretovatelnost modelu klesá.                 | 
 +|**Odolnost proti přetrénování**|Dobrá pro vysokodimenzionální data.         |Vyžaduje normalizaci vstupů.                      |
  
 ===== 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**: $H(x) = \text{sign} \left( \sum_{t=1}^T \alpha_t h_t(x) \right)$ [5]
 +
 +==== 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$, $\alpha_1=0.55$\\
 +- **Iterace 2**: $h_2(x)$ opravuje chybu u $x_2$ s vyšší vahou\\
 +- **Výsledek**: $H(x) = 0.55h_1(x) + 0.8h_2(x)$
 +
 +<tikzjax>
 +\usepackage{amsmath}
 +\usepackage{pgfplots}
 +\usetikzlibrary{automata, positioning, arrows, calc, cd, intersections,arrows.meta}
 +\begin{document}
 +
 +\begin{tikzpicture}[scale=0.8]
 +\draw[->] (0,0) -- (4,0) node[right] {$x$};
 +\draw[->] (0,0) -- (0,3) node[above] {$y$};
 +\draw[blue] (0.5,2.5) -- (1.5,0.5) node[midway,left] {$h_1$};
 +\draw[red] (2.5,2.5) -- (3.5,0.5) node[midway,right] {$h_2$};
 +\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}
 +</tikzjax>
 +==== 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 výstupů vrstev postupně od vstupu.
 +  - **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**: Schopnost aproximovat libovolné spojité funkce (univerzální aproximátor), automatická extrakce příznaků.
 +  * **Nevýhody**: Pomalé trénování, riziko přetrénování, citlivost na inicializaci vah.
 +
 +==== 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}, \quad
 +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: } \begin{pmatrix}
 +5 & 8 & 2 \\
 +3 & 1 & 4 \\
 +6 & 7 & 9
 +\end{pmatrix} \quad
 +\text{Výstup: } \begin{pmatrix}
 +\max(5,8,3,1) & \max(2,4) \\
 +\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á):
 +
 +<tikzjax>
 +\usepackage{amsmath}
 +\usepackage{pgfplots}
 +\usetikzlibrary{automata, positioning, arrows, calc, cd, intersections,arrows.meta}
 +\begin{document}
 +
 +\begin{tikzpicture}[scale=0.6]
 +\draw[gray!30] (0,0) grid (6,5);
 +\draw[->] (0,0) -- (6.2,0);
 +\draw[->] (0,0) -- (0,5.2);
 +\foreach \point/\col in {(1,1)/blue, (1,3)/blue, (2,2)/blue, (4,4)/red, (5,3)/red, (5,5)/red} 
 +    \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}
 +</tikzjax>
 +Pro testovací bod (3,3) a //k//=3:\\
 +1. Vzdálenosti k △: √5≈2.24, √1=1, √2≈1.41\\
 +2. Vzdálenosti k ●: √2≈1.41, √4=2, √5≈2.24\\
 +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 ====
 +
 +  * <WRAP>
 +**k-D stromy** (k-dimensional trees):\\
 +Binární stromy pro hierarchické rozdělení prostoru. Příklad pro 2D:
 +<code>
 +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)  
 +</code>
 +
 +Složitost klesne na O(log //n//) při nízkých dimenzích [1].\\
 +
 +</WRAP>
 +  * **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, \ldots, \mathbf{x}_n \}$ v $d$-rozměrném prostoru do $k$ shluků ($k$ předem zadané). Optimalizuje se ztrátová funkce:\\
 +$$
 +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:** Náhodný výběr $k$ počátečních centroidů.\\
 +
 +  - **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í:** Opakování kroku 2–3, dokud se přiřazení bodů nemění nebo nedojde k maximálnímu počtu iterací.
 +
 +==== Příklad ====
 +
 +<tikzjax>
 +\usepackage{amsmath}
 +\usepackage{pgfplots}
 +\usetikzlibrary{automata, positioning, arrows, calc, cd, intersections,arrows.meta}
 +\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}
 +</tikzjax>
 +//Výsledek po konvergenci: 3 shluky s centroidy $\mu_1, \mu_2, \mu_3$.//
 +
 +==== 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/p}
 +  $$\\
 +- **Kosinová podobnost:** Pro textová/data s vysokou dimenzí.
 +
 +==== 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:** Snižuje riziko špatné konvergence, často dosáhne globálního optima s menším počtem iterací.
 +
 +==== Aplikace ====
 +
 +  * Segmentace zákazníků, analýza genomických dat, komprese obrazu (redukce barev), detekce anomálií.
  
Navigation

Playground

QR Code
QR Code statnice:bakalar:b4b33rpz (generated for current page)