Gépi tanulás

  • A statisztikai módszerek közé tartozik.
  • A tanítás paraméterhangolást jelent.
  • A modell paraméterterében keressük azt a pontot, ahol a hibafüggvény minimális.

Párhuzamosításra több ok miatt is szükség lehet.

  • Nagy mennyiségű mintánk van, amire hangolni kell.
  • Nagy az állapottér, amit be szeretnénk járni. (Például magas dimenziószám és/vagy közel folytonos tartományok.)
  • A kiértékelés/tanítás fázisai számításigényesek.
  • A hangolás jellemzően sztochasztikus módszerekkel történik, amelynél a pontosság számítási idő ellenében javítható.
  • Meta/hyper paramétereink vannak, amire plusz hangolást szeretnénk végezni.

Forrás:

Típusai

Felügyelt tanulás

  • A tanításhoz minden bemeneti minta esetében megadjuk, hogy milyen kimenetre számítunk.
  • Az elvárt és a kapott értékek alapján hangoljuk a modellt.

Jellemző problémák

  • Osztályozás
  • Regresszió
  • Előrejelzés

Megerősítéses tanulás

  • Adott egy (virtuális) környezet (environment) amit az ágens (agent) maga próbál bejárni.
  • Az ágens akciókat tud végrehajtani.
  • A környezetből érkező megerősítések alapján dönti el, hogy a megelőző műveletsor hogyan értékelendő, hogyan használandó a hangoláshoz.

Jellemző problémák

  • Vezérlés (irányítás)

Felügyelet nélküli tanulás

  • Megadunk bizonyos elvárásokat az eredményre vonatkozóan.

Jellemző problémának

  • Klaszterezés
  • Dimenzió redukció

Mesterséges Neurális Hálózatok

  • ANN: Artificial Neural Network
  • MLP: Multi-Layer Perceptron
  • Aktivációs függvény
  • Hibafüggvény (Loss Function, Error Function)

A számítási modell

Vizsgáljuk meg, hogy hogyan működik pontosan az ANN, azon belül is az előrecsatolt eset!

Back Propagation

  • A kimenet irányából terjesztjük vissza a hibát.
  • Rengeteg alternatíva van arra, hogy a súlyok megváltoztatásával az adott bemenetre az elvárt kimenetet kapjuk.
  • Megvizsgáljuk, hogy a súlyok változtatása hogyan járul hozzá a hibához. \(\Rightarrow\) Gradienst számolunk.
  • Meghatározzuk, hogy mennyit lenne érdemes módosítani a súlyokon az adott bemenetre adott eredmény javítása érdekében. (\(\Delta\) mátrix, \(\delta^{(l)}_{i, j}\).)
  • Egy \(\alpha\) tanítási tényezővel (learning rate) súlyozva módosítjuk a háló súlyait.

Számítási példa:

Párhuzamosítás

Milyen lehetőségek adódnak a párhuzamosításra?

Kérdések

  • Milyen viszonyban áll egymással a gépi tanulás és a mesterséges intelligencia témaköre?
  • Miért használnak a tanító adathalmaz mellett validációs adathalmazt is?
  • Miért tekinthető a gépi tanulás optimalizálási problémának?
  • Az ANN esetében milyen aktivációs függvényeket szoktak használni?
  • Mire szolgál az ANN esetében a bias?

Feladatok

1. Neurális hálózat párhuzamosított tanítása

  • Implementáljunk egy előrecsatolt neurális hálózatot!
  • Gyűjtsünk/állítsunk össze tanító mintákat!
  • Adjunk meg egy hibafüggvényt (például a MSE-t)!
  • A háló tanításához implementáljunk egy egyszerű, sztochasztikus gradiens alapú módszert!
  • Implementáljuk a Back Propagation algoritmust!
  • OpenCL segítségével futtassuk a betanítást külön számítási egységeken!
  • Mérjük le a futási időket, és határozzuk meg a gyorsítás mértékét!