[Addition] Neuronky

This commit is contained in:
Vojtěch Struhár 2025-06-09 19:36:30 +02:00
parent 2c735723bb
commit cf19330257

View File

@ -190,9 +190,9 @@ Neuronka je model, kde váhy neuronů jsou parametry. Při učení neuronek je n
```math ```math
\begin{aligned} \begin{aligned}
E(\vec{w}) = -\frac{1}{p} \sum_{k=1}^p \sum_{j \in Y} d_{kj} \ln(y_j) E(\vec{w}) = -\frac{1}{p} \sum_{k=1}^p \sum_{j \in Y} d_{kj} \ln(y_j)
\end{aligned} \end{aligned}
``` ```
@ -286,6 +286,7 @@ Neuronové sítě uzpůsobené ke zpracování obrazu. Místo násobení matic p
- **Konvoluční vrstva** - **Konvoluční vrstva**
- Každý neuron je napojen jen na malý _receptive field_ neuronů o vrstvu níže, který se posouvá o daný stride. - Každý neuron je napojen jen na malý _receptive field_ neuronů o vrstvu níže, který se posouvá o daný stride.
- Výstup z neuronu v konvoluční vrstvě je dán konvolucí jeho receptive field s váhami a přičtením biasu. - Výstup z neuronu v konvoluční vrstvě je dán konvolucí jeho receptive field s váhami a přičtením biasu.
$f(i,j) = \sum_{q}^{K} \sum_{b}^{L} f(i-q, j-b) \cdot k(a,b)$
- Všechny neurony v konvoluční vrstvě sdílí stejné váhy a biasy dané velikostí receptive field, což jim umožňuje naučit se nějaký vzor o velikosti receptive field -- říkáme, že taková vrstva je feature mapa. - Všechny neurony v konvoluční vrstvě sdílí stejné váhy a biasy dané velikostí receptive field, což jim umožňuje naučit se nějaký vzor o velikosti receptive field -- říkáme, že taková vrstva je feature mapa.
- Vzorů se chceme zpravidla naučit více, máme vícero vzájemně nezávislých feature map napojených na stejnou vstupní vrstvu. - Vzorů se chceme zpravidla naučit více, máme vícero vzájemně nezávislých feature map napojených na stejnou vstupní vrstvu.
- **Pooling vrstva**\ - **Pooling vrstva**\
@ -324,13 +325,14 @@ Neuronové sítě, jejichž architektura obsahuje cykly. Tedy výstup v jednom b
- **Výhody** - **Výhody**
- Umí zpracovat vstupy s variabilní, předem neznámou délkou. - Umí zpracovat vstupy s variabilní, předem neznámou délkou.
- Vhodné pro time-series data (třeba akciový trh)
- Velikost modelu (množiny vah) je fixní nezávisle na velikosti vstupu. - Velikost modelu (množiny vah) je fixní nezávisle na velikosti vstupu.
- Váhy se sdílí mezi vstupy (např. slova ve větě), což umožňuje naučit se nějaký kontext. - Váhy se sdílí mezi vstupy (např. slova ve větě), což umožňuje naučit se nějaký kontext.
- **Nevýhody** - **Nevýhody**
- Trénování je složitější, protože se vyskytuje zpětná vazba. - Trénování je složitější, protože se vyskytuje zpětná vazba.
- Výpočetně náročnější. - Výpočetně náročnější.
- Gradient může explodovat (exploding) nebo zaniknout (diminishing). - Gradient může explodovat (exploding) nebo zaniknout (diminishing). ReLU je náchylná k explozi hodnoty neuronu. Třeba sigmoid je v tomto lepší. [V RNN se typicky používá tanh.](#LTSM)
![width=100%](./img/szp06_rnn.png) ![width=100%](./img/szp06_rnn.png)
@ -381,11 +383,11 @@ Neuronové sítě, jejichž architektura obsahuje cykly. Tedy výstup v jednom b
```math ```math
\begin{aligned} \begin{aligned}
U_{kk'}^{(l+1)} &= U_{kk'}^{(l)} - \varepsilon(l) \cdot \frac{\partial E_{(x, d)}}{\partial U_{kk'}} \\ U_{kk'}^{(l+1)} &= U_{kk'}^{(l)} - \varepsilon(l) \cdot \frac{\partial E_{(x, d)}}{\partial U_{kk'}} \\
V_{kk'}^{(l+1)} &= V_{kk'}^{(l)} - \varepsilon(l) \cdot \frac{\partial E_{(x, d)}}{\partial V_{kk'}} \\ V_{kk'}^{(l+1)} &= V_{kk'}^{(l)} - \varepsilon(l) \cdot \frac{\partial E_{(x, d)}}{\partial V_{kk'}} \\
W_{kk'}^{(l+1)} &= W_{kk'}^{(l)} - \varepsilon(l) \cdot \frac{\partial E_{(x, d)}}{\partial W_{kk'}} \\ W_{kk'}^{(l+1)} &= W_{kk'}^{(l)} - \varepsilon(l) \cdot \frac{\partial E_{(x, d)}}{\partial W_{kk'}} \\
\frac{\partial E_{(x, d)}}{\partial U_{kk'}} &= \sum_{t=1}^T \frac{\partial E_{(x, d)}}{\partial U_{kk'}} &= \sum_{t=1}^T
\textcolor{brown}{\frac{\partial E_{(x, d)}}{\partial h_{tk}}} \textcolor{brown}{\frac{\partial E_{(x, d)}}{\partial h_{tk}}}
\cdot \sigma' \cdot \sigma'
@ -398,7 +400,7 @@ Neuronové sítě, jejichž architektura obsahuje cykly. Tedy výstup v jednom b
\textcolor{brown}{\frac{\partial E_{(x, d)}}{\partial h_{tk}}} \textcolor{brown}{\frac{\partial E_{(x, d)}}{\partial h_{tk}}}
\cdot \sigma' \cdot \sigma'
\cdot h_{(t-1)k'} \\ \cdot h_{(t-1)k'} \\
\end{aligned} \end{aligned}
``` ```
@ -408,7 +410,7 @@ Neuronové sítě, jejichž architektura obsahuje cykly. Tedy výstup v jednom b
\begin{aligned} \begin{aligned}
\textcolor{darkgreen}{\frac{\partial E_{(x, d)}}{\partial y_{tk}}} \textcolor{darkgreen}{\frac{\partial E_{(x, d)}}{\partial y_{tk}}}
&= y_{tk} - d_{tk} \\ &= y_{tk} - d_{tk} \\
\textcolor{brown}{\frac{\partial E_{(x, d)}}{\partial h_{tk}}} \textcolor{brown}{\frac{\partial E_{(x, d)}}{\partial h_{tk}}}
&= \sum_{k'=1}^N &= \sum_{k'=1}^N
\textcolor{darkgreen}{\frac{\partial E_{(x, d)}}{\partial y_{tk'}}} \textcolor{darkgreen}{\frac{\partial E_{(x, d)}}{\partial y_{tk'}}}
@ -426,7 +428,7 @@ Neuronové sítě, jejichž architektura obsahuje cykly. Tedy výstup v jednom b
> Pokud $\textcolor{red}{\sigma' \cdot W_{k'k}} \not\approx 1$, pak gradient buď vybouchne nebo se ztratí. > Pokud $\textcolor{red}{\sigma' \cdot W_{k'k}} \not\approx 1$, pak gradient buď vybouchne nebo se ztratí.
- **Long Short-Term Memory (LSTM)**\ - **Long Short-Term Memory (LSTM)**\
LSTM řeší problém s vanishing a exploding gradientem, kterým RNN. V RNN je $\sigma$ typicky $\tanh$. V LSTM obsahuje jeden hidden neuron vlastně čtyři "podvrstvy", které mimo jiné umožňují část paměti zapomenout: LSTM řeší problém s vanishing a exploding gradientem, kterým RNN. V RNN je $\sigma$ typicky $\tanh$. V LSTM obsahuje jeden hidden neuron vlastně čtyři "podvrstvy", které mimo jiné umožňují část paměti zapomenout: <a id="LTSM"></a>
![width=100%](./img/szp06_lstm.png) ![width=100%](./img/szp06_lstm.png)