Bevezetés a gépi tanulás feladataiba és fajtáiba

Gépi tanulás lényege

A feladat konkrét megoldási algoritmusának ismerete nélkül tanuljuk meg megoldani a feladatot.

  • Mintapéldák segítségével adjuk meg, hogy mi a feladat helyes megoldása
  • Egy paraméteres modellhez keresünk olyan paramétereket melyekkel a modell helyesen oldja meg a feladatot.

Milyen feladatokra alkalmazható?

  • Ha közelítően optimális megoldás is megfelelő.
  • Ha nem ismert konkrét algoritmus, ami megoldja a feladatot.
  • Ha nem gazdaságos egyedi algoritmust fejleszteni a problémára.
  • Ha a feladatot csak mintapéldák segítségével tudjuk formálisan definiálni.

Példa: Különböző objektumok pozíciójának detektálása fényképen.

Milyen feladatokra nem ideális?

  • Ha a probléma hatékony megoldása ismert és könnyen algoritmizálható.
  • Ha a közelítő eredmény nem elégséges.

Példák:

  • Veszteségmentes tömörítés
  • Rendezés
  • A legtöbb pontosan definiált szabályrendszer szerint működő szoftver.

Gépi tanulási módszerek

Módszerek három főbb csoportja:

  • Felügyelt tanulás
  • Felügyeletlen tanulás
  • Megerősítéses tanulás

Felügyelt tanulás

Adott: A tanítóminta (training set), input-címke párok halmaza

(a zárójeles felső index nem hatvány, hanem az elemeinek indexe)

Feladat: A címke (az elvárt output) minél jobb becslése az inputból.

Azaz, keresünk olyan függvényt (hipotézisfüggvény), melyre:

(a hipotézisfüggveny x inputból becsli az y címkét.)

Példa 1

Becsüljük meg az autók számát egy adott városban, ha ismerjük a város lakosságának számát.

: egy adott város lakosságának száma
: egy adott városban megtalálható autók száma

Milyen hipotézisfüggvényt keressünk? Az autók száma közel arányos a város lakosságának számával

lineáris hipotézisfüggvény:

a hipotézisfüggvény paramétere, ebben az esetben az egyenes meredeksége lesz...

Példa 2

A mintaelemek nem feltétlenül egy input és egy címkéből állnak... Becsüljük meg a képen látható emberek életkorát.

: egy kép (színes, rögzített felbontás) : a fényképen található személy életkora.

Milyen hipotézisfüggvényt keressünk?

A lineáris hipotézisfüggvény nem biztos, hogy a legjobb választás...

Helyette, használjunk egy igazán bonyolult függvényt, egy konvolúciós mély neuronhálót!

A felügyelt tanulás két fő feladata

Regresszió: Folytonos értékű címke (a címkehaémaz végtelen) \ver Y \vert = \infty Példa: Autók számának, vagy életkor becslése

Klasszifikáció: Diszkrét értékű címke (véges címkehaémaz) Példa: Mintaelemek kategorizálása, mi a foglalkozása a képen szereplő személynek?

Hogyan állapítjuk meg mennyire jó a becslés?

költségfüggvény segítségével.

A költségfüggvény megadja, hogy mennyire tér el a valódi címke és a becslésük adott paraméter értékek esetén.

Például:

Keressük azokat a paramétereket, melyekkel a hipotézisfüggvényünk jól közelíti meg a velódi címkét, azaz a költségünk minimális.

Megkeressük (tanuljuk) az optimális paramétereket a tanítóhalmazon, majd új, címkézetlen adathoz is tudunk becsülni címkét a betanított modellel.

A felügyelt tanulás alkalmazásai

  • Objektumdetektálás, képszegmentálás
    • : egy fénykép
    • : A képen található objektumok köré írt téglalap koordinátái, az objektum kategóriái, vagy pixel szintű kategóriatérkép.
  • 2D / 3D humán pózbecslés képről
    • : egy fénykép
    • : A képen található személyek ízületeinek 2D vagy 3D koordinátái
  • Optical Flow becslés - két képkocka pixeleinek megfeleltetése egymással
    • : Egy videó két egymást követő képkockája
    • : Az első képkocka minden pixeléreegy-egy elmozdulásvektor, amely a második képkocka valamelyik pixelére mutat.

A felügyelt tanulás problémája:

  • Az állatok / emberek általában nem szorulnak ra konkrét input-output párok jelenlétére, ahhoz, hogy tanuljanak.
  • A címkézett adat előállítása nagy mértékű humán munkát igényelhet, címkézetlen adat viszont rengeteg van.

Felügyeletlen tanulás

Címke hiányában a feladat nem egyértelmű...

Többféle konkrét feladat lehetséges:

  • Klaszterezés: Valamilyen hasonlósági reláció alapján a mintaelemek csoportosítása.
  • Tömörítés: Az adat jellegének ismeretében sokkal jobb tömörítési ráták érhetőek el, mint a hagyományos algoritmusokkal.
  • Példagenerálás: Új, az adatbázishoz hasonló mintaelemek generálása (a minta eloszlásának tanulása)

Klaszterezés

  • Marketing, célzott reklám, ajánlórendszerek: hasonló ügyfelek csoportosítása célozott ajánlatokhoz.
  • Klasszikus computer vision, pl. képszegmentálás
  • Anomális (outlier) detektálás

Tömörtés / dimenziócsökkentés

  • Bizonyos fajta adat jellegéhez illeszkedő tömörítés
  • Kevesebb tárhely, sávszélesség használat.
  • Tömörebb reprezentációval sokszor könnyebb dolgozni és könnyebb lehet megtalálni a hasonló elemeket.
  • 2-3 dimenziós reprezentációban a mintaelemek elhelyezése még vizualizálható is.

A tömörítés / dimenzió redukció feladata jól definiált, azonban a hatékony tömörítés kihasználja, hogy a tömörített adatok hasonló jellegűek. Sok különböző fajta adat tömörítéséhez nehéz lenne egyedi algoritmusokat írni.

Feladat formális megadása

: Az input ? A tömörítést végző hipotézisfüggvény, pl. egy autoenkoder neuronháló.

költség: közelítse meg minél jobban -et (jó rekonstrukció)

Felügyeletlen tanulás alkalmazásai

  • Zajcsökkentés
  • Intelligens felskálázás
  • Példagenerálás
  • DeepFake
  • Kódgenerálás
  • Szöveggenerálás

Megerősítéses tanulás

Markov Döntési Folyamat (MDP)

  • input-címke párok helyett állapot-akció párok.
  • Az akciónk nagyban befolyásolja a következő állapotunkat.
  • költség helyett jutalom (nem feltétlen azonnal)
  • Cél: hosszútávon maximalizáljuk a jutalmak összegét

Példa: Automata autó
  • - állapot: Az autó sebessége, az autó környezete
  • - akció: Gázpedás, fékpedál, kormény forgása
  • - jutalom:
    • Eljutottunk a célhoz nagy jutalom
    • Elütöttünk valakit nagy büntetés
    • Nem tartottuk be a sebességhatárt kisebb büntetés

A mesterséges intelligencia főbb kérdései

  • Általánosító képesség: A betanult modellünk memorizálja a tanító példákat egyenként, vagy valóban “hasznos” dolgokat tanul?

  • Magyarázhatóság: A kritikus alkalmazásokban használt szoftvereket behatóan tesztelik, formálisan verifikálják sokszor.
    A deep learning módszerei csak tapasztalati úton tesztelhetők, nem tudjuk róluk megmondani, hogy “logikus módon” hozták-e a döntéseiket
  • Boztonság - adversarial attack: Akár a neuronháló architektúrája és paramétereinek ismerete nélkül kereshető kismértékű speciális zaj, mellyel módosítva az inputot, a becslés drasztikusan változik.

Szoftver

Python

  • Magas szintű
  • Automatikus memóriakezelés
  • Futásidejű típushozzárendelés és ellenőrzés
  • Interpretált nyelv
  • Egyszerű szintaxis
  • Hordozható
  • Rengeteg eszköz, könyvtár

Szóval kényelmes és gyors fejlesztést tesz lehetővé, de lassú végrehajtás és futásidőben kiderülő hibák.

A számításigényes műveleteinket hatékony, más nyelven írt könyvtárak segítségével valósítjuk meg. A Python-t csak a szkriptelésükre használjuk!

NumPy

  • Vektorizált programozás, vektorműveletek.
    • A grafikus kártyák a vektorizált műveletekre optimalizáltak.
    • A gépi tanulásban használt műveletek szinte mindig vektorizálhatóak.
    • A vektorizált programozással írt kód általában sokkal tömörebb.
  • Egy tömb elemének hivatkozása
  • dimenziós tömbök
  • Broadcasting

Keras

  • Tensorflowra épülő magas szintű könyvtár neuronhálókhoz.

Google Colab

Colab

Források