Přírodou inspirované algoritmy

Struktura těchto poznámek odpovídá seznamu požadavků ke zkoušce z webu docenta Martina Piláta z akademického roku 25/26. Konkrétní požadavky jsou následující:

  1. Základy strojového učení
    • vysvětlit rozdíly mezi jednotlivými typy strojového učení (učení s učitelem, bez učitele, zpětnovazební učení)
    • vysvětlit rozdíly mezi jednotlivými úlohami strojového učení s učitelem (regrese, klasifikace)
    • popsat typy příznaků (kategorické, ordinální, číselné) a jejich předzpracování (kódování kategorických a ordinálních příznaků, škálování číselných příznaků)
  2. Zpětnovazební učení
    • popsat problém zpětnovazebního učení intuitivně (agent, prostředí, hledání strategie)
    • popsat prostředí jako Markovský rozhodovací proces
    • definovat zpětnovazební učení jako problém hledání strategie maximalizující celkovou odměnu agenta
    • definovat pojmy hodnota stavu a hodnota akce
    • popsat základní myšlenku Monte-Carlo metod (v rozsahu podle textu na webu)
    • vysvětlit Q-učení (včetně vzorce pro aktualizaci matice Q)
    • popsat algoritmus SARSA
    • vysvětlit, jak použít Q-učení v prostorech se spojitými stavy a akcemi
  3. Jednoduchý genetický algoritmus
    • popsat základní verzi evolučního algoritmu s binárním kódováním
    • popsat základní genetické operátory (jednobodové, n-bodové křížení, mutace)
    • popsat ruletovou a turnajovou selekci
    • vysvětlit výhody a nevýhody turnajové a ruletové selekce
    • vysvětlit, co je fitness funkce
    • popsat elitismus
    • popsat metody pro environmentální selekci (přenos jedinců do další populace), (μ,λ) a (μ+λ)
    • popsat rozšíření jednoduchého GA na problémy s celočíselným kódováním
  4. Evoluční algoritmy pro spojitou optimalizaci
    • definovat problém spojité optimalizace
    • popsat genetické operátory používané ve spojité optimalizaci - aritmetické křížení, zatížené a nezatížené mutace
    • vysvětlit rozdíl mezi separabilními a neseparabilními funkcemi
    • popsat algoritmus diferenciální evoluce a jeho výhody
  5. Evoluční algoritmy pro kombinatorickou optimalizaci
    • popsat mutace pro permutační kódování
    • popsat křížení používaná při permutačním kódování (OX, PMX, ER)
    • vysvětlit použití evolučních algoritmů pro problém obchodního cestujícího
  6. Lineární a kartézské GP, gramatická evoluce
    • popsat lineární genetické programování (kódování jedince, operátory)
    • popsat kartézské genetické programování (kódování jedince, operátory)
    • popsat gramatickou evoluci (kódování jedince, operátory)
    • vysvětlit, jak řešit problém s příliš krátkým nebo dlouhým jedincem v gramatické evoluci
  7. Stromové genetické programování
    • popsat stromové genetické programování a jeho genetické operátory
    • popsat práci s konstantami ve stromovém genetickém programování
    • popsat typované genetické programování
    • popsat automaticky definované funkce
    • vysvětlit, jak u automaticky definovaných funkcí zabránit zacyklení/nekonečné rekurzi
    • porovnat jednotlivé typy genetického programování a jejich výhody/nevýhody
  8. Perceptronové neuronové sítě
    • popsat, jakým způsobem počítá jeden perceptron
    • popsat algoritmus pro trénování perceptronu a vysvětlit, kdy konverguje
    • popsat strukturu vícevrstvých perceptronových sítí
    • popsat aktivační funkce používané ve vícevrstvých perceptronech (sigmoida, tanh, ReLU)
    • popsat metodu pro trénování neuronových sítí (backpropagation)
    • odvodit pravidla pro adaptaci vah v metodě zpětného šíření (alespoň pro výstupní vrstvu + ideu pro skryté vrstvy)
  9. RBF sítě
    • popsat RBF jednotku a architekturu RBF sítě
    • vysvětlit princip trénování RBF sítí
    • popsat algoritmus k-means
    • porovnat geometrické vlastnosti RBF sítí a vícevrstvých perceptronů
  10. Konvoluční sítě
    • popsat funkci konvolučního filtru
    • popsat funkci pooling vrstev v konvoluční síti
    • popsat architekturu konvoluční neuronové sítě
    • vysvětlit, co jsou matoucí vzory a jak ovlivňují praktické nasazení neuronových sítí
    • popsat algoritmus FGSM pro vytváření matoucích vzorů
    • vysvětlit myšlenku přenosu uměleckého stylu
    • vysvětlit základní fungovaní generative adversarial networks (podle rozsahu v textu na webu)
  11. Rekurentní neuronové sítě
    • definovat, co jsou rekurentní neuronové sítě
    • vysvětlit, kde se rekurentní sítě používají
    • vysvětlit trénování rekurentních sítí pomoci algoritmu zpětného šíření v čase
    • vysvětlit problém s explodujícími a mizejícími gradienty
    • popsat princip Echo State sítí
    • popsat trénování Echo State sítí
    • popsat LSTM buňku a architekturu LSTM sítě
    • vysvětlit výhody Echo State sítí a LSMT sítí v porovnání se základními rekurentními sítěmi
  12. Neuroevoluce
    • popsat použití evolučních algoritmů pro trénování vah v neuronové síti
    • popsat algoritmus NEAT - reprezentace jedince, operátory
    • vysvětlit význam inovačních čísel v algoritmu NEAT
    • popsat myšlenku algoritmu HyperNEAT
    • popsat rozšíření algoritmu NEAT pro hledání architektur neuronových sítí (algoritmus coDeepNEAT)
    • vysvětlit myšlenku algoritmu novelty search
    • porovnat novelty search a evoluční algoritmy a diskutovat jejich výhody/nevýhody
  13. Hluboké zpětnovazební učení
    • vysvětlit algoritmus hlubokého Q-učení
    • porovnat Q-učení a hluboké Q-učení
    • popsat triky s experience replay a target network
    • vysvětlit vliv experience replay a target network na hluboké Q-učení
    • popsat algoritmus DDPG
    • popsat actor-critic přístupy
    • popsat advantage a zdůvodnit, proč se používá
    • popsat metodu A3C
  14. Particle Swarm Optimization
    • popsat aktualizaci poloh a rychlostí v PSO
    • popsat topologie používané v PSO (globální, geometrické, sociální)
    • vysvětlit vliv topologií na algoritmus PSO
    • vysvětlit použití PSO pro řešení problémů ve spojité optimalizaci
  15. Ant Colony Optimization
    • vysvětlit základní pojmy ACO - feromon, atraktivita
    • popsat generování řešení pomocí ACO
    • popsat aktualizaci feromonu na základě kvality nalezeného řešení
    • popsat použití ACO pro řešení problému obchodního cestujícího a vehicle routing problému
  16. Artificial Life
    • vysvětlit rozdíly mezi jednotlivými typy umělého života (soft, hard, wet)
    • vysvětlit rozdíly mezi silným a slabým umělým životem
    • popsat 1D a 2D celulární automaty
    • popsat pravidla Game of Life
    • popsat pravidla Langtonova mravence
    • vysvětlit pojem dálnice u Langtonova mravence
    • popsat systém Tierra
    • popsat jedince v systému Tierra
    • vysvětlit způsob adresování (definování cílů skoku) v systému Tierra
    • popsat příklady vytvořených jedinců v sytému Tierra (paraziti)

View source

Základy strojového učení

Strojové učení a optimalizace

Rozdělení dle typu učení

  1. Učení s učitelem – zadané objekty a k nim příslušné výstupy
    • cílem je najít model, který zadaným objektům přiřazuje správný výstup
      1. klasifikace – třídění objektů do kategorií
      2. regrese – přiřazování vstupním datům číselné hodnoty
  2. Učení bez učitele – zadány objekty bez příslušných výstupů
    • rozdělování dat do skupin (shlukování)
    • naučit se, jak objekty vypadají, a následně generovat nové objekty (generativní modely)
  3. Zpětnovazební učení – naučit se chování v daném prostředí, aby co nejlépe řešil zadaný problém na základě zpětné vazby prostředí
    • učíme se hrát hru tím, že zkoušíme různé akce a díváme se, jak ovlivňují skóre

Typy příznaků

  1. Kategorické – skupiny bez uspořádání (kvalitativní)

    • barva, pohlaví, …
    • předzpracování: binární vektor
      • každý prvek má vektor {0,1}n\in \{0,1\}^n určující do kterých kategorií spadá
  2. Ordinální – skupiny s uspořádáním

    • velikost oblečení, věkové skupiny, nejvyšší dosažené vzdělání, …
    • předzpracování: číselná hodnota
      • mám uspořádání, takže mohu použít N\N jako labely
  3. Číselné – kvantitativní

    • diskrétní – počet okvětních lístků, …

    • spojité – výška, teplota, váha, …

    • předzpracování – škálování

      • kdyby jedny data byly v rozmezí 0-1 a jiný v rozmezí 0-100000, model by z toho mohl být dost zmatenej

      • normalizace – naškáluju vše do fixního intervalu (typicky [0,1][0,1])

        xnew=xxminxmaxxmin x_{\text{new}} = \frac{x - x_{\min}}{x_{\max} - x_{\min}}
      • standardizace – naškáluju všechny data aby měly střední hodnotu 0 a směrodatnou odchylku 1 (tj. snažím se je přiblížit standardnímu normálnímu rozdělení)

        xnew=xμσ x_{\text{new}} = \frac{x - \mu}{\sigma}

Zpětnovazební učení

Základní pojmy a intuice

Proces hledání strategie

  1. Exploatace – agent vždy vybírá nejlepší známou akci pro daný stav
    • může uvíznout v lokálním optimu
  2. Explorace – agent zkouší náhodné akce, aby prozkoumal stavový prostor
    • nejspíš nebude dostávat moc dobré odměny
  3. ε\varepsilon-greedy – s pravděpodobností (1ε)(1-\varepsilon) zvolí nejlepší akci, s pravděpodobností ε\varepsilon zvolí náhodnou
    • kombinace explorace a exploatace
    • velmi záleží na parametru ε\varepsilon

Markovské rozhodovací procesy (MDP)

Definice (Prostředí MDP): Čtveřice (S,A,P,R)(S,A,P,R):

Hodnotové funkce

Metody učení

  1. Monte-Carlo

    • agent hraje celé epizody až do konce
    • hodnoty Q(s,a)Q(s,a) se aktualizují až při skončení epizody na základě skutečného výsledku
    • Výhody:
      • nevyžaduje Markovské prostředí
      • zero-knowledge – nemusíme vůbec znát to jak prostředí vypadá
      • dobré pro epizodické úkony s vysokou variancí – jeden tah v pokru nám nedá žádnou odměnu až do úplného konce hry
    • Nevýhody:
      • pomalá konvergence při velkém rozptylu odměn
      • výpočetně náročná \to neefektivní pro velké stavové prostory
  2. Temporal-Difference (TD)

    • aktualizace Q(s,a)Q(s,a) probíhá po každém kroku

    • vychází z Bellmanových rovnic:

      Vπ(s)=E[r+γVπ(s)] V^{\pi}(s) = \mathbb E [r + \gamma V^{\pi}(s')]
      • počítám nejen odměnu za aktuální stav, ale i co očekávám že dostanu v dalším stavu (vynásobeno diskontním faktorem)
    • Výhody:

      • informace o odměně se propaguje zpětně z cílových stavů do předcházejících
    • Nevýhody:

      • pokud je náš iniciální odhad V(s)V(s') špatný, pak updaty do V(s)V(s) budou také špatné
      • propagation delay – informace o V(s)V(s) se propaguje v každém kroku jen o jeden krok nazpět
      • v některých nedobrých podmínkách mohou hodnoty QQ a VV divergovat do nekonečna
        • konkrétně pokud se zkombinuje bootstrapping (TD), off-policy učení (Q-učení) a aproximace QQ funkce (neuronky)
MetodaMonte Carlo (MC)Temporal Difference (TD)
BiasŽádný (používá reálné hodnoty)Vysoký (používá jen odhady)
RozptylVysoký (náhoda velmi ovlivňuje výsledky)Nízký (aktualizace jsou malé)
Rychlost učeníPomalé (pro jednu aktualizaci musíme odehrát celou epizodu)Rychlé (aktualizuje se po každém kroku)
StabilitaTypicky stabilníV nedobrém setupu může divergovat

Q-učení

SARSA

Q(st,at)  (1α)Q(st,at)+α[rt+γQ(st+1,at+1)]=  Q(st,at)+α[rt+γQ(st+1,at+1)Q(st,at)] \begin{aligned} Q(s_t, a_t) \leftarrow\;& (1-\alpha) Q(s_t, a_t) + \alpha \big[ r_t + \gamma Q(s_{t+1}, a_{t+1}) \big] \\[8pt] =\;& Q(s_t, a_t) + \alpha \big[ r_t + \gamma Q(s_{t+1}, a_{t+1}) - Q(s_t, a_t) \big] \end{aligned}

Problémy a spojité prostory

Multiagentní učení

Jednoduchý genetický algoritmus

Základní pojmy

Typické problémy řešené jednoduchým genetickým algoritmem

Algoritmus

  1. Náhodně vytvoř iniciální populaci P0P_0, nastav t:=0t := 0

Selekční mechanismy

  1. Ruletová selekce – pravděpodobnost výběru jedince je přímo úměrná jeho fitness

    pi=fij=1Nfj p_i = \frac{f_i}{\sum_{j=1}^N f_j}
    • Výhody:
      • intuitivní a přesná
    • Nevýhody:
      • přímo záleží na hodnotách fitness
      • nefunguje pro zápornou fitness
        • to bychom mohli vyřešit přičtením dostatečně velké konstanty ke všem fif_i, v ten moment se ale velké rozdíly mezi některými jedinci smažou a selekce se stane náhodnou (toho můžeme ale i využít pro zesílení/zeslabení vlivu selekce)
  2. Turnajová selekce – náhodně vybereme kk jedinců (typicky 2) a z nich vybereme s velkou pravděpodobností toho nejlepšího

    • typicky provádíme několik turnajů, do kterých vybíráme s nahrazením (with replacement)

    • Výhody:

      • záleží pouze na pořadí jedinců dle jejich fitness

      • funguje i pro záporné hodnoty

      • snadno se implementuje a paralelizuje

    • Nevýhody:

      • opět se trochu mažou rozdíly mezi některými jedinci, ale furt je to docela dobrý

      • není snadné ukázat že funguje dobře

Genetické operátory

  1. Křížení

    • cílem je zkombinovat dobré vlastnosti dvou rodičů
    1. jednobodové – vybere se náhodný bod, ve kterém se „rozřízne” vektor rodičů; potomek má první část od prvního rodiče a druhou od druhého
    2. nn-bodové – vybere se nn bodů; části rodičů se v potomkovi střídají
    3. uniformní – pro každý bit se náhodně rozhodně, od kterého rodiče bude pocházet
    • čim více bodů křížení, tím větší diverzita je křížením vytvořena
  2. Mutace

    • zvyšuje diverzitu řešení – efektivní strategie proti padání do lokálních optim
    • některé náhodné bity jsou flipnuty
    • jakou mutaci použiju velmi záleží na problému, který řeším
      • např. v problému batohu dává smysl náhodně zvolit jeden bit s hodnotou 1 a jeden s hodnotou 0 a flipnout je (tim prakticky vyhodím jeden předmět z batohu a nahradím jej jiným)

Enviromentální selekce (tvorba nové generace)

Rozšíření do celočíselného kódování

Evoluční algoritmy pro spojitou optimalizaci

Spojitá optimalizace

Genetické operátory

  1. Mutace

    • u reálných čísel nestačí překlopit bit
    1. Nezatížená (unbiased) – vygeneruje novou náhodnou hodnotu xix_i v povoleném rozsahu, bez ohledu na původní hodnotu

    2. Zatížená (biased) – upravuje stávající hodnotu

      • nejčastěji gaussovská mutace – přičteme malé náhodné číslo z N(μ,σ)N(\mu, \sigma):

        xnew=xold+N(μ,σ) x_{\text{new}} = x_{\text{old}} + N(\mu,\sigma)
      • nejčastěji μ=0\mu = 0

  2. Křížení

    • jde použít klasické nn-bodové křížení

    • Aritmetické křížení – lineární kombinace rodičů

      xchild=αxparent1+(1α)xparent2 x_{\text{child}} = \alpha \cdot x_{\text{parent}_1} + (1 - \alpha) \cdot x_{\text{parent}_2}
      • pro α[0,1]\alpha \in [0,1]
      • technicky vzato by mohl mít jeden jedinec více rodičů, ale to se asi spíš nepoužívá

Separabilita a podmíněnost funkcí

  1. Separabilní funkce – funkci lze optimalizovat po jednotlivých složkách nezávisle

    • diferenciální rovnice celé funkce jde nějak rozdělit na sadu diferenciálních rovnic menší dimenze

    • vrstevnice těchto funkcí jsou elipsy orientované rovnoběžně s osami souřadnic

  2. Neseparabilní funkce – mezi proměnnými existuje závislost

    • vrstevnice jsou elipsy co nejsou rovnoběžné s osami

Diferenciální evoluce (DE)

  1. Diferenciální mutace:

    • pro každého jedince xix_i z populace vytvoříme mutanta viv_i:

      1. vybereme tři náhodné jiné jedince xr1,xr2,xr3x_{r1}, x_{r2}, x_{r3}

      2. vypočítáme rozdíl mez dvěma z nich a přičteme ho ke třetímu:

        vi=xr1+F(xr2xr3) v_i = x_{r1} + F \cdot (x_{r2} - x_{r3})
        • FF je scaling faktor (obvykle [0,2]\in [0,2])
  2. Křížení

    • uniformní křížení mezi původním jedincem xix_i a mutancem viv_i
    • vzniká zkušební jedinec (trial vector) uiu_i
  3. Selekce

    • turnaj 1v1 – pokud je trial uiu_i lepší než původní xix_i, nahradí jej v příští generaci

Evoluční algoritmy pro kombinatorickou optimalizaci

Celočíselné kódování

Permutační kódování

Mutace

  1. Swpa – náhodně se vezmou dvě pozice a jejich hodnoty se prohodí
  2. Insertion – náhodný prvek se vyjme a vloží na jinou náhodnou pozici
    • oproti swapu se tím jeden úsek posune o 1 doleva a jinej o 1 doprava
  3. Inversion – vybere se náhodný úsek a ten se otočí pozpátku
    • velmi efektivní mutace pro TSP
  4. Scramble – vybere se úsek a jeho prvky se náhodně zpermutují

Křížení

  1. Order Crossover (OX) – chceme zachovat relativní pořadí rodičů

    • rodič 1: 1 2 | 3 4 5 | 6 7 8
    • rodič 2: 3 4 | 1 8 6 | 5 2 7
    1. prohodíme prostřední části rodičů

      • _ _ | 1 8 6 | _ _ _
      • _ _ | 3 4 5 | _ _ _
    2. zbývající pozice se doplní z původního rodiče tak, že se začne za druhým bodem křížení a následně se pokračuje od začátku

      • bereme pouze prvky, které v potomkovi ještě nejsou

      • 4 5 | 1 8 6 | 7 2 3

      • 8 6 | 3 4 5 | 2 7 1

  2. Partially Mapped Crossover (PMX) – výměna segmentů a následné opravení

    • rodič 1: 4 1 | 6 3 7 | 2 5
    • rodič 2: 7 1 | 5 4 3 | 6 2
    1. prohodíme prostřední části rodičů

      • 4 1 | 5 4 3 | 2 5
      • 7 1 | 6 3 7 | 6 2
    2. prohozené dvojice v prostřední části udávají mapování, podle kterého opravíme duplicitní prvky

      • mapování: 565 \leftrightarrow 6 4374 \leftrightarrow 3 \leftrightarrow 7

      • 7 1 | 5 4 3 | 2 6

      • 4 1 | 6 3 7 | 5 2

  3. Edge Recombination (ER) – když nám nezáleží na absolutní pozici, ale na sousedství

    • speciálně navržený pro TSP a podobné
    1. pro každý prvek vypíšeme sousedy v permutaci z obou rodičů
      • bereme i „wrap around” sousedství
    2. začne se náhodným prvkem (nejčastěji tím s nejméně sousedy)
    3. jako další prvek se vybere soused aktuálně vybraného prvku, který má sám nejméně ještě nepoužitých sousedů
    4. pokud někdy v procesu dojdou sousedé, vybere se náhodný prvek

Problém obchodního cestujícího (TSP)

Použití EA

Lineární a kartézské GP, gramatická evoluce

Genetické programování

Lineární genetické programování (LGP)

Kartézské genetické programování (CGP)

Gramatická evoluce (GE)

Problémky jedinců (a jejich řešení)

  1. příliš krátký jedinec – dojdou čísla v jedinci, ale v programu stále zbývají neterminály
    • wrapping: pokud dorazíme na konec, začneme jedince znovu číst od začátku
      • pokud gramatika obsahuje rekurzi a wrapping se opakuje mockrát, proces nemusí terminovat
    • penalizace: jedinec s neúplným programem dostane velmi špatnou fitness
  2. příliš dlouhý jedinec – program skončil (máme pouze terminály), ale jedinec má stále nevyužitá čísla
    • obvykle tolik nevadí, prostě jsme nevyužili všechen genetický materiál, který nám ale může posloužit jako zdroj biodiverzity v dalším křížení

Evoluce pravidel

Stromové genetické programování

Práce s konstantami

  1. Základní sada – do terminálů dáme jen pár čísel, program si musí ostatní hodnoty vypočítat sám
  2. Efemérní náhodné konstanty (ERC) – speciální terminál, který se při inicializaci změní na pevné náhodné číslo

Typované genetické programování (Strongly Typed GP)

Automaticky definované funkce

Perceptronové neuronové sítě

Perceptron

  1. Lineární aktivace (ξ\xi) – vážený součet vstupů + bias bb

    ξ=b+i=1nwixi \xi = b + \sum_{i=1}^n w_i x_i
    • bias ovlivňuje nakolik musí být vážený součet vetší než 0, aby se perceptron aktivoval
    • často se bias zakóduje mezi váhy – přidáme vstup s konstantní hodnotou 1 a bb je jeho váha
  2. Nelineární výstup – pokud ξ>0\xi > 0, výstup je 1, jinak 0 (nebo -1, záleží na nás)

Trénování perceptronu

Vícevrstvé perceptrony (MLP)

  1. Vstupní vrstva – pouze předává data (příznaky xix_i)
  2. Skryté vrstvy – nelineární transformace dat
    • umíme tím řešit i lineárně neseparabilní problémy
    • vždy (lineární) aktivace + nelineární transformace
  3. Výstupní vrstva – produkuje výslednou odpověď
    • různé funkce podle záměru: sigmoida, tanh\tanh, ReLU, …

Aktivační funkce

  1. logistická sigmoida: σ(x)=[1+eλx]1\sigma(x) = [1 + e^{-\lambda x}]^{-1}
    • obor hodnot =(0,1)= (0,1)
    • dříve standard, dnes méně častá kvůli mizejícímu gradientu
      • pro xx s velkou absolutní hodnotou je gradient skoro 0
  2. hyperbolický tangens
    • obor hodnot =(1,1)= (-1, 1)
    • podobný sigmoidě, stejný problém s mizejícím gradientem
  3. ReLU (rectified linear unit): ReLU(x)=max(0,x)\text{ReLU}(x) = \max(0,x)
    • dnes nejpoužívanější
    • výpočetně velmi jednoduchá, pomáhá v trénování hlubokých sítí

Gradienty a zpětná propagace

  1. Dopředný chod – data projdou sítí, spočítá se výstup a celková chyba podle chybové funkce L(x,yw)L(x,y \mid w) (nejčastěji MSE)

  2. Zpětný chod – chyba se šíří od výstupu zpět

    • pomocí chain rule pro parciální derivace zjišťujeme, jak moc která váha přispěla k celkové chybě

    • aktualizujeme jednotlivé váhy takto:

      wi=wiαL(x,yw)wi w_i = w_i - \alpha \cdot \frac{\part L(x,y \mid w)}{\part w_i}

Příklad

Setup

Věta (řetízkové pravidlo pro parciální derivace): Nechť z=f(x1,,xn)z = f(x_1, \dots, x_n) a každá xix_i je funkce kk nezávislých proměnných t1,,tkt_1, \dots, t_{k}. Parciální derivace zz vzhledem k tjt_j je rovna:

ztj=i=1nzxixitj \frac{\part z}{\part t_j} = \sum_{i=1}^n \frac{\part z}{\part x_i} \cdot \frac{\part x_i}{\part t_j}

ukázka zpětné propagace

Výpočet pro výstupní vrstvu
Výpočet pro předchozí vrstvy

Více vzorů

RBF sítě

Trénování

  1. Hledání středů (cic_i): najdeme ve vstupních datech shluky, středy těchto shluků se stanou středy RBF jednotek

    • hledání shluků se dělá nejčastěji pomocí **k-means **algoritmu
  2. Nastavení rozptylu (β\beta): určí se, jak „široká” má být Gaussova funkce

    • počítá se z průměrné vzdálenosti bodů ve shluku od jeho středu (σ\sigma): β=12σ2 \beta = \frac 1 {2\sigma^2}
  3. Trénování výstupních vah (wiw_i): lineární regrese

    • výstupní vrstva je lineární, takže LR stačí
    • daleko rychlejší než gradientní metoda

k-means

RBF sítě vs MLP

VlastnostVícevrstvý perceptron (MLP)RBF síť
Základní jednotkaGlobální (nadrovina dělí prostor)Lokální (aktivuje se jen v okolí středu)
AktivaceSkalární součin + sigmoida/ReLUVzdálenost od středu + Gaussova fce
TrénováníBackpropagation (pomalé, hrozí lokální minima)Hybridní (k-means + regrese – velmi rychlé)
Geometrie“Rozřezává” prostor přímkami“Pokrývá” prostor “bublinami”
VyužitíKomplexní hierarchické rysyAproximace funkcí, lokální vzory

Kdy použít RBF

Kdy použít MLP

Konvoluční sítě

Architektura CNN

  1. Konvoluce

    • Konvoluční jádro – malá matice vah (např. 3×33 \times 3 nebo 5×55 \times 5), kterou projedeme obrázek

      • v každé pozici se provede skalární součin filtru a pod-výřezu obrázku, výsledek se zapíše do mapy příznaků (feature map)

        Konvoluční jádro
        • zelená – původní obrázek; červená – filtr; modrá – feature map
        • stride – délka kroku okénka
    • Jeden filtr používá stejné váhy pro celý obrázek (sdílení vah)

      • drastické snížení počtu parametrů
  2. Pooling (sub-sampling)

    • například max-pooling – z oblasti feature mapy vybere nejvyšší hodnotu

    • opět snižujeme velikost obrázku

    • zajišťuje že je síť odolná vůči malým posunům objektu

  3. Plně propojené (dense) vrstvy

    • zbylá data se „zploští” a proženou klasickou plně-propojenou sítí, která rozhodně o výsledné třídě

Matoucí vzory (Adversarial patterns)

Pokročilé techniky

Style transfer

Generative Adversarial Networks (GAN)

Rekurentní neuronové sítě

Trénování a problém gradientu

Exho State Networks (ESN)

LSTM (Long Short-Term Memory)

Architektura buňky

Srovnání

Typ sítěTrénováníHlavní výhodaHlavní nevýhoda
Základní RNNBPTT (všechny váhy)JednoduchostMizející gradient (krátká paměť)
ESNJen výstup (Regrese)Extrémní rychlost, stabilitaPotřeba velkého náhodného rezervoáru
LSTMBPTT (všechny váhy)Dlouhodobá paměť, state-of-the-artVýpočetně náročnější (mnoho vah)

Neuroevoluce

Evoluce vah

NEAT

Význam inovačních čísel

HyperNEAT a coDeepNEAT

Hluboké zpětnovazební učení

Value-based

Q-učení vs Hluboké Q-učení

Trénování sítě pro hluboké Q-učení

Stabilizační triky

Experience Replay

Target Network

Policy-based

Policy Gradient metody

Actor-Critic

Advantage

Pokročilé architektury

DDPG (Deep Deterministic Policy Gradient)

A3C (Asynchronous Advantage Actor-Critic)

PPO (Proximal Policy Optimization)

Shrnutí

AlgoritmusTypProstor akcíKlíčový rozdíl
DQNValue-basedDiskrétníReplay Buffer + Target Network
REINFORCEPolicyObojíMonte Carlo (vysoká variance)
A3C/A2CActor-CriticObojíAdvantage + Parallelismus
DDPGActor-CriticSpojitýDeterministic Policy pro spojité prostory
PPOPolicy-basedObojíUžezává updaty pro zachování stability

Particle Swarm Optimization

Aktualizace rychlosti a polohy

Topologie v PSO

  1. Globální topologie – úplný graf

    • všichni jedinci se ihned dozvídají info o gbestg_\text{best}
    • vysoký exploitation – velmi rychlá konvergence k řešení za cenu rizika uvíznutí v lokálním optimu
  2. Lokální topologie

    • částice komunikují jen s omezenou skupinou sousedů
    • více explorace – pomalejší konvergence, ale je odolnější vůči padání do lokálních optim
    1. Geometrická – sousedé jsou určeni fyzickou vzdáleností v prostoru
      • pokud jsou k sobě částice dostatečně blízko, nasdílejí si info
    2. Sociální – sousedství je fixně definováno předem (např. grafem)
      • často kruhová topologie – každá částice sleduje jen dva dané sousedy bez ohledu na to, jak daleko se pak od sebe v praxi nacházejí

Použití ve spojité optimalizaci

Ant Colony Optimization

Základní pojmy

Generování řešení

Aktualizace feromonu

  1. Vypařování – množství feromonu na všech hranách se sníží o určitý koeficient
    • dovoluje kolonii zapomenout stará, horší řešení
    • obrana proti uvíznutí v lokálním optimu
  2. Pokládání – na hrany, které byly součástí nalezených cest, se přidá nový feromon
    • množství feromonu závisí na kvalitě řešení (LkL_k):

Použítí ACO na konkrétní problémy

Travelling Salesman Problem (TSP)

Vehicle Routing Problem (VRP)

Artificial Life

Typy umělého života

  1. Soft – život existující pouze v počítačových simulacích
    • programy, digitální algoritmy
    • modelování interakcí a evoluce
  2. Hard – fyzické stroje a roboti
    • vytváření umělých entit, které se pohybují a reagují v reálném světě
  3. Wet – laboratorní výzkum biochemických procesů
    • tvoření umělé DNA nebo syntetické buňky „ve zkumavce”

Silný vs. Slabý život

  1. Silný – život je proces nezávislý na médiu
    • pokud počítačový program vykazuje všechny známky života (rozmnožování, metabolismus, evoluci, …), pak je to život
  2. Slabý – simulace života není život
    • počítačové modely jsou jen nástrojem pro studium skutečné biologie

Celulární automaty (CA)

Conwayova Game of Life

  1. Osamění/Přemnožení – živá buňky s < 2 nebo > 3 živými sousedy umírá
  2. Přežití – živá buňka s 2 nebo 3 sousedy žije dál
  3. Zrození – mrtvá buňka s právě 3 sousedy ožívá

Langtonův mravenec

Systém Tierra

Evoluce v Tierře (paraziti)

Creatures

Simulace složitých systémů