A gépi tanulással kapcsolatos feladat nem feltétlenül lineáris, de számos jól ismert lépésből áll:
- Probléma meghatározása.
- Adatok előkészítése.
- A mögöttes modell megtanulása.
- A mögöttes modell javítása mennyiségi és minőségi értékelésekkel.
- A modell bemutatása.
Az új probléma feldolgozásának egyik jó módja, ha a probléma azonosításán és meghatározásán keresztül a lehető legjobban dolgozunk, és megtanulunk egy olyan modellt, amely értelmes információkat ragad meg az adatokból. Bár a mintafelismerés és a gépi tanulás problémái különböző típusúak lehetnek, nagyjából három kategóriába sorolhatók:
- Supervised Learning:
A rendszernek bemeneti példákat és azok kívánt kimeneteit adják meg egy “tanár”, és a cél egy általános szabály megtanulása, amely a bemeneteket a kimenetekhez rendeli. - Unsupervised Learning:
Nem adnak címkéket a tanuló algoritmusnak, így az magára hagyja, hogy struktúrát találjon a bemenetben. A felügyelet nélküli tanulás lehet öncélú (rejtett minták felfedezése az adatokban) vagy eszköz egy cél felé (jellemzőtanulás). - Kényszerített tanulás:
A rendszer kölcsönhatásba lép egy dinamikus környezettel, amelyben egy bizonyos célt kell teljesítenie (például járművet vezet vagy játékot játszik egy ellenféllel szemben). A rendszer visszajelzést kap jutalmak és büntetések formájában, miközben navigál a problématérben.
A felügyelt és a felügyelet nélküli tanulás között helyezkedik el a félig felügyelt tanulás, ahol a tanár hiányos képzési jelet ad: olyan képzési halmazt, amelyből hiányzik néhány (gyakran sok) célkimenet. Ebben a blogbejegyzésben a felügyelet nélküli tanulásra és az adatok klaszterezésére fogunk összpontosítani.
Felügyelet nélküli tanulás
Némely mintafelismerési problémában a képzési adatok x bemeneti vektorok halmazából állnak, a megfelelő célértékek nélkül. Az ilyen felügyelet nélküli tanulási problémákban a cél lehet az adatokon belül a hasonló példák csoportjainak felfedezése, amit klaszterezésnek nevezünk, vagy annak meghatározása, hogy az adatok hogyan oszlanak el a térben, amit sűrűségbecslésnek nevezünk. Egyszerűbben fogalmazva, egy n mintavételű x1-től xn-ig terjedő térben a valódi osztálycímkék nem állnak rendelkezésre minden egyes mintához, ezért tanító nélküli tanulásnak nevezzük.
A felügyelet nélküli tanulással kapcsolatos problémák:
- A felügyelet nélküli tanulás nehezebb a felügyelt tanulási feladatokhoz képest.
- Honnan tudjuk, hogy az eredmények értelmesek-e, mivel nem állnak rendelkezésre válaszcímkék?
- Hagyjuk, hogy a szakértő megnézze az eredményeket (külső értékelés)
- Meghatározunk egy objektív függvényt a klaszterezésre (belső értékelés)
Miért van szükség a felügyelet nélküli tanulásra a fenti problémák ellenére?
- A nagy adathalmazok jegyzetelése nagyon költséges, ezért csak néhány példát tudunk manuálisan címkézni. Példa: Beszédfelismerés
- Létezhetnek olyan esetek, amikor nem tudjuk, hogy hány/milyen osztályra oszlanak az adatok. Példa: Adatbányászat
- Elképzelhető, hogy klaszterezéssel szeretnénk betekintést nyerni az adatok szerkezetébe, mielőtt osztályozót terveznénk.
A felügyelet nélküli tanulás két további kategóriába sorolható:
- Parametrikus felügyelet nélküli tanulás
Ez esetben az adatok parametrikus eloszlását feltételezzük. Feltételezi, hogy a mintaadatok egy olyan populációból származnak, amely egy rögzített paraméterkészleten alapuló valószínűségi eloszlást követ. Elméletileg egy normális eloszláscsaládban minden tag azonos alakú, és az átlag és a szórás által paraméterezett. Ez azt jelenti, hogy ha ismerjük az átlagot és a szórást, és tudjuk, hogy az eloszlás normális, akkor ismerjük bármely jövőbeli megfigyelés valószínűségét. A parametrikus felügyelet nélküli tanulás Gauss-keverék modellek konstruálását és az Expectation-Maximization algoritmus használatát jelenti a kérdéses minta osztályának előrejelzésére. Ez az eset sokkal nehezebb, mint a hagyományos felügyelt tanulás, mivel nem állnak rendelkezésre válaszcímkék, és így nem áll rendelkezésre megfelelő pontossági mérőszám az eredmény ellenőrzésére. - Nem paraméteres felügyelet nélküli tanulás
A felügyelet nélküli tanulás nem paraméteres változatában az adatokat klaszterekbe csoportosítjuk, ahol minden klaszter (remélhetőleg) mond valamit az adatokban jelen lévő kategóriákról és osztályokról. Ezt a módszert általában kis mintanagyságú adatok modellezésére és elemzésére használják. A parametrikus modellekkel ellentétben a nemparametrikus modellek nem igénylik, hogy a modellező bármilyen feltételezést tegyen a populáció eloszlásáról, ezért néha eloszlásmentes módszernek is nevezik.
Mi a klaszterezés?
A klaszterezés a legfontosabb nem felügyelt tanulási problémának tekinthető; tehát, mint minden más ilyen jellegű probléma, ez is egy struktúra megtalálásával foglalkozik a címkézetlen adatok gyűjteményében. A klaszterezés laza definíciója lehetne “az objektumok csoportokba szervezésének folyamata, amelyek tagjai valamilyen módon hasonlóak”. Egy klaszter tehát olyan objektumok gyűjteménye, amelyek “hasonlóak” egymáshoz, és “nem hasonlóak” a más klaszterekhez tartozó objektumokhoz.
Távolság alapú klaszterezés.
Adott ponthalmaz, a pontok közötti távolság fogalmával, a pontok csoportosítása bizonyos számú klaszterbe, úgy, hogy
- a belső (klaszteren belüli) távolságok legyenek kis i.azaz a klaszterek tagjai közel állnak/hasonlóak egymáshoz.
- a külső (klaszteren belüli) távolságoknak nagynak kell lenniük, azaz a különböző klaszterek tagjai nem hasonlóak.
A klaszterezés céljai
A klaszterezés célja egy címkézetlen adathalmazban a belső csoportosítás meghatározása. De hogyan döntsük el, hogy mi a jó klaszterezés? Kimutatható, hogy nincs olyan abszolút “legjobb” kritérium, amely független lenne a klaszterezés végső céljától. Következésképpen a felhasználónak kell megadnia ezt a kritériumot, mégpedig úgy, hogy a klaszterezés eredménye megfeleljen az igényeinek.
A fenti képen honnan tudjuk, hogy mi a legjobb klaszterezési megoldás?
Az adott klaszterezési megoldás megtalálásához , meg kell határoznunk a klaszterek hasonlósági mértékeit.
Proximity Measures
A klaszterezéshez két adatponthoz meg kell határoznunk egy közelségi mértéket. A közelség itt azt jelenti, hogy a minták mennyire hasonlítanak/nem hasonlítanak egymáshoz.
- Hasonlósági mérték S(xi,xk): nagy, ha xi,xk hasonlóak
- Dissimilaritási (vagy távolsági) mérték D(xi,xk): kicsi, ha xi,xk hasonlóak
Az ábrára nézve két klasztert azonosíthatunk a két adatkoncentráció közelében. Ezekre az “A” és a “B” jelzővel fogunk hivatkozni. A bemutatott első megközelítésben – a k-means algoritmusban – minden egyes adatpontot egy adott centroidhoz társítottunk, ezért ez a tagsági függvény így nézett ki:
A Fuzzy k-means megközelítésben ehelyett ugyanaz az adott adatpont nem tartozik kizárólagosan egy jól meghatározott klaszterhez, hanem középen helyezkedhet el. Ebben az esetben a tagsági függvény egy simább vonalat követ, ami azt jelzi, hogy minden adatpont több klaszterhez is tartozhat különböző mértékű tagsággal.
A fenti ábrán a pirosan jelölt pontként megjelenő adatpont inkább a B, mint az A klaszterhez tartozik. Az “m” 0,2 értéke az ilyen adatpont A-hoz való tartozás mértékét jelzi.
Hierarchikus klaszterezési algoritmusok
Megadva egy N darab klaszterezendő elemkészletet és egy N*N távolság (vagy hasonlóság) mátrixot, a hierarchikus klaszterezés alapvető folyamata a következő:
- Kezdésként minden elemet egy klaszterhez rendelünk, így ha N elemünk van, akkor N klaszterünk van, amelyek mindegyike csak egy elemet tartalmaz. A klaszterek közötti távolságok (hasonlóságok) legyenek azonosak a bennük lévő elemek közötti távolságokkal (hasonlóságokkal).
- Keresd meg a legközelebbi (leghasonlóbb) klaszterpárt, és egyesítsd őket egyetlen klaszterbe, így most egy klaszterrel kevesebb lesz.
- Kalkuláld ki az új klaszter és az egyes régi klaszterek közötti távolságokat (hasonlóságokat).
- Ismételd meg a 2. és 3. lépést, amíg minden elem egyetlen N méretű klaszterbe nem kerül.
Clustering as a Mixture of Gaussians
A klaszterezési problémák kezelésének van egy másik módja is: a modellalapú megközelítés, amely abból áll, hogy bizonyos modelleket használunk a klaszterekre, és megpróbáljuk optimalizálni az adatok és a modell közötti illeszkedést.
A gyakorlatban minden klaszter matematikailag reprezentálható egy parametrikus eloszlással, például egy Gauss-eloszlással. A teljes adathalmazt tehát ezen eloszlások keveréke modellezi.
A nagy valószínűségű keverékmodell általában a következő tulajdonságokkal rendelkezik:
- a komponenseloszlásoknak magas “csúcsai” vannak (az adatok egy klaszterben szorosak);
- a keverékmodell jól “lefedi” az adatokat (az adatok domináns mintáit a komponenseloszlások megragadják).
A modellalapú klaszterezés fő előnyei:
- jól tanulmányozott statisztikai következtetési technikák állnak rendelkezésre;
- rugalmasság a komponenseloszlás kiválasztásában;
- sűrűségbecslést kapunk minden klaszterre;
- “puha” osztályozás áll rendelkezésre.
Gaussok keveréke
A legelterjedtebb ilyen jellegű klaszterezési módszer Gaussok keverékének tanulásán alapul:
A keverékmodell k komponenseloszlás keveréke, amelyek együttesen f(x) keverékeloszlást alkotnak:
Az αk a k-adik komponens hozzájárulását jelenti az f(x) megalkotásában. A gyakorlatban gyakran használnak parametrikus eloszlásokat (pl. gaussok), mivel sok munkát végeztek a viselkedésük megértése érdekében. Ha minden egyes fk(x)-et gaussal helyettesítünk, akkor úgynevezett gauss keverékmodelleket (GMM) kapunk.
Az EM-algoritmus
A várakozásmaximalizálás feltételezi, hogy az adataink többszörös többváltozós normális eloszlásokból állnak (megjegyezzük, hogy ez egy nagyon erős feltételezés, különösen, ha a klaszterek számát rögzítjük!). Másképpen fogalmazva, az EM egy algoritmus a valószínűségi függvény maximalizálására, amikor a modellünkben szereplő változók egy része megfigyeletlen (azaz amikor látens változókkal rendelkezünk).
Joggal kérdezhetnénk, hogy ha csak egy függvényt akarunk maximalizálni, miért nem használjuk egyszerűen a függvény maximalizálására meglévő gépezetet. Nos, ha ezt úgy próbáljuk maximalizálni, hogy deriváltakat veszünk és nullára állítjuk, akkor azt találjuk, hogy sok esetben az elsőrendű feltételeknek nincs megoldása. Van egy tyúk-tojás probléma, hogy a modellparaméterek megoldásához ismerni kell a megfigyeletlen adatok eloszlását; de a megfigyeletlen adatok eloszlása a modellparaméterek függvénye.
A várakozás-maximalizálás ezt úgy próbálja megkerülni, hogy iteratív módon kitalál egy eloszlást a megfigyeletlen adatokra, majd a modellparamétereket úgy becsüli meg, hogy maximalizál valamit, ami a tényleges valószínűségi függvény alsó korlátja, és ezt ismétli a konvergenciáig:
A várakozás-maximalizáló algoritmus
- A modellparaméterek értékeinek kitalálásával kezdjük
- E-lépés: Minden olyan adatpont esetében, amelyhez hiányzó értékek tartoznak, a modellegyenleted segítségével oldd meg a hiányzó adatok eloszlását a modellparaméterekre vonatkozó aktuális becslésed és a megfigyelt adatok ismeretében (vedd figyelembe, hogy minden egyes hiányzó érték eloszlását oldod meg, nem a várható értékét). Most, hogy megvan az eloszlás minden egyes hiányzó értékre, kiszámíthatjuk a valószínűségi függvény várakozását a megfigyeletlen változók tekintetében. Ha a modellparaméterre vonatkozó tippünk helyes volt, akkor ez a várható valószínűség lesz a megfigyelt adataink tényleges valószínűsége; ha a paraméterek nem voltak helyesek, akkor ez csak egy alsó korlát lesz.
- M-lépés:
- Ismételjük meg a konvergenciáig.
A klaszterezéssel kapcsolatos problémák
A klaszterezéssel kapcsolatban számos probléma merül fel. Ezek közül:
- a nagyszámú dimenzió és nagyszámú adatelem kezelése az időbonyolultság miatt problémás lehet;
- a módszer hatékonysága a “távolság” definíciójától függ (távolság alapú klaszterezés esetén). Ha nem létezik egyértelmű távolságmérték, akkor azt “definiálnunk” kell, ami nem mindig egyszerű, különösen többdimenziós terekben;
- a klaszterező algoritmus eredménye (ami sok esetben maga is tetszőleges lehet) többféleképpen értelmezhető.
Megvalósítható alkalmazások
A klaszterező algoritmusok számos területen alkalmazhatók, például:
- marketing: hasonló viselkedésű vásárlók csoportjainak megtalálása a vásárlók tulajdonságait és korábbi vásárlási adatait tartalmazó nagy adatbázis alapján;
- biológia: növények és állatok osztályozása a tulajdonságaik alapján;
- biztosítás:
- Földrengéskutatás: a megfigyelt földrengés epicentrumok klaszterezése a veszélyes zónák azonosítására;
- World Wide Web: dokumentumosztályozás; weblog adatok klaszterezése a hasonló hozzáférési minták csoportjainak felfedezésére.