Bevezetés a gépi tanulás feladataiba és fajtáiba
- 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.