Skip to content

13. Meta learning

Definice

Jak poznáme metaučení?

  • Stavění high-level systému, který je přenositelný na různé bottom-level AI problémy. Meta-level systém nějakým způsobem ovlivňuje to jak vypadá ten daný podproblém a bývá aplikovatelný na řadu úloh.
  • Automatizovaně se učíme učit modely.
  • Neuroevoluce je meta learning, kde meta-level je evoluční algoritmus modelující topologii sítě pro různé úlohy a bottom-level je samotná neuronová síť.
  • Hyper Networks (jako HyperNEAT kde evolvujeme velké sítě pomocí jedné malé, která modeluje váhy neuronů), kde meta-level je nějaká malá síť a bottom-level AI je velká NN.
  • Použití LSTM k zapamatování sekvence updatů vah v neuronové síti a tato rekurentní síť určuje nastavování vah té bottom-level sítě, která je optimalizována na daný problém („Learning to learn by gradient descent by gradient descent“).

Otázky

Jak se optimalizují hyperparametry?

  • Bottom-level AI je model a meta-level je algoritmus, který provádí optimalizaci jeho hyperparametrů.
  • Grid search – Systematicky prohledává parameter grid, tedy kombinaci všech povolených hodnot parametrů.
  • Random search – Náhodně prohledává parameter grid, funguje překvapivě dobře.
  • Bayesovská optimalizace hyperparametrů – Informované prohledávání, které bere v potaz minulé ohodnocení pro vyzkoušené kombinace hyperparametrů. Modeluje funkci, která ohodnotí výběr hyperparametrů podle toho jak přínosné budou pro skutečnou objective funkci.

Co je to HyperBand?

HyperBand

  • Bandit-based přístup k HPO.
  • Kombinuje resource allocation a early stopping k prohledávání parameter gridu. 
  • Začne tím, že zvolí větší množství n-tic hyperparametrů a každému přiřadí budget jen pár iterací. Pak n-tice ohodnotí (natrénuje na nich model a ten ohodnotí) a horší polovinu z nich zahodí. Pak opět rozdělí budget na iterace a po jejich doběhnutí zase zahodí polovinu a takhle postupně realokuje prostředky na trénování mezi zbylé jedince dokud nepřežije jen jeden nejlepší.

Co je metadatabáze a k čemu se používá?

Metadatabáze

  • DB pro uchování metadat týkajících se trénování různých problémů.
  • Ukládá informace o tom jaké AI metody se používají na jaké problémy a jakých dosahují výsledků, což vede k sestavení systému, který může doporučit vhodný algoritmus pro daný problém.
  • Na základě extrahovaných atributů o problému vypočteme problémy, kterým je podobný a podle toho zjistíme vhodný algoritmus.
  • Problémy s kompatibilitou algoritmů a problémů, atributy o problémech bývají často poměrně zašuměné a neinformativní. 
  • Je těžké zakomponovat např. možnost sestavení ensembelu několika modelů, možností je příliš mnoho.

Model Agnostic Meta Learning (MAML)

  • Meta learning přístup k nastavování parametrů nezávisle na modelu a nezávisle na problému.
  • Funguje tak, že vybere vzorek ze sady problémů, problémy ohodnotí a provede update parametrů modelu pomocí gradientního sestupu.

Neural architecture search (NAS)

  • Automatické učení a evoluce topologií neuronových sítí.
  • Prohledávání stavového prostoru, kde přechody mezi stavy mohou být různé operace jako konvoluční vrstvy, fully connected, pooling,... a jejich hyperparametry a propojování tak, aby tvořily validní neuronovou síť.
  • Stavový prostor bývá velmi velký a ohodnocení stavů (fitness) je výpočetně náročné.
  • Příkladem je neuroevoluce.

Few-shot learning

  • Učení na velmi malých datasetech. Trénovací data se používají jako support set, podle kterého se model musí naučit se učit.
  • Modely trénované na velkém množství dat většinou neumí zpracovat data, která předtím nikdy neviděl. Funguje podobněji jako lidský mozek, musí se na základě omezeného množství informací nějak rozhodnout a naučit.