Magamról

Saját fotó
Főiskolai, majd egyetemi diplomamunkáimtól kezdve világ életemben, adatok, adatbázisok, adattárházak (leginkább Oracle) környékén mozogtam. Mostanság adattárházasként, adatbányászként élem napjaimat.

2014. január 19., vasárnap

Coursera: Machine Learning course - DONE :)






Ha félév halasztása után is, de csak sikerült elvégeznem a tárgybeli  második (utolsó?) - időtartamát tekintve 10 hetes - Machine Learning-es Coursera-s kurzusumat, a tavaly nyári Data Science kurzus után. Elvben egyben akartam megcsinálni mindkettőt, de aztán a munka bedarált, esélyem sem volt rá végül. Most viszont végre sikerült: munka mellett, ráadásul észrevétlenül: még a kollégáim, főnökeim sem tudtak róla.

Hogy miért volt fontos számomra a kurzus? Van pár ok:

* Az egy dolog, hogy én szeretem az adatbányászatot, és az meg egy másik, hogy ezt elhiszi-e valaki nekem, egyáltalán azt, hogy ez nemcsak plátói - távolról érzett - (szakmai) szerelem ez. :) Nyilván ahogy házasságkötés nélkül is lehetséges igazi tartalmas párkapcsolat, nem a papír adja a garanciát hozzá, mégis valamilyen (tőlem) független kritérium-rendszer szerint teljesíteni szerettem volna valamit, a - mondjuk most így - l'art pour l'art érdeklődés felett.

* Ne felejtsük el, mivel lassan őskövületként 50 éves elmúltam, amikor én egyetemre jártam (ELTE programtervező matematika szakra), akkor nemhogy nem tanították (szisztematikusan) az adatbányászatot, de még a fogalom sem volt ismert itthon. Megboldogult nagyszerű Nemetz Tibor professzor úgy mesélt nekem tananyagon kívül a k-NN szépségeiről, hogy még véletlenül sem ejtett ki még csak hasonló fogalmat sem. Mindez maga után vonta, hogy (1) voltak hiányosságaim a témában, kvázi csak azok voltak (2) a lyukakat érdemes lenne valahogy szisztematikusan betömni.

Mindazonáltal nem javaslom senki hozzám hasonlatos "túlélőnek", hogy első lépéseit az adatbányászatban evvel a kurzussal tegye meg (nekem sem ezek voltak az első lépéseim). Maximum csak, ha valaki nagyon tehetséges, meg a matek iránt erősen affinis. Ugyanis mellbeverő a kurzus nehézsége, komplexitása (nekem legalábbis).

* Ha csak szimplán a felhasználói/üzleti vetületét nézem az adatbányászatnak, még ebben is csak 50%-osnak értékelem magam (maximum). Abban az értelemben mindenképpen, hogy projektszinten beérkező - akár szakmán kívülről jött - ötletek jelentős hányada egyszerűen nem jut eszembe (amikor kéne). És ezt maximum avval tudom kiegalizálni, hogy cserébe viszont mára már nekem is vannak olyan ötleteim, amik meg másoknak nem jutnak eszébe :) Mindez egyébként számomra - ensemble technikák analógiájára - erősen kidomborítja az adatbányászat csapatsport jellegét. A kurzus nagyban növelte a nagyon hiányzó 50% legalább valamelyest befogásának esélyét.

* Azt gondolom ez az a kurzus, ami nélkül a szó szoros értelmében nem halhat meg - ;) - adatbányász (feltéve, hogy nem tanulta korábban a tárgyat). Érdemes lehet idevágóan Kaggle-s fórumokat böngészni, (1) mennyi hálás tanítványa van Andrew Ng-nek. De ha ez nem lenne elég, (2) volt olyan verseny, amit az ő 2011-es cikke alapján nyert meg a győztes ("black box challange"). Mind szemléletében, mind konkrétumaiban, példamutató értékű a professzor tanár hozzáállása (számomra mindenképpen).

* Paradox módon ugyan, de a téma (avagy mitől és hogyan döglik a(z adatbányászatos) légy; az algoritmusok kontextusában) legnehezebb része tanítható a legkönnyebben, leguniverzálisabban. Ehhez nem kell más "csak" le kell menni a pokol tornácára (a matekhoz, vagyis az adatbányászat "assembly" nyelvéhez). Ez adja aztán a szükséges alapot ahhoz, hogy az adatbányász pontosabban tudja érzékelni, milyen feladatban mennyi potenciál van, mi az, amit már nem érdemes eröltetni és/vagy módszertant váltani hozzá. Amikor az adatbányász nemcsak bele a világba "klikkelget", hanem megalapozott értelemmel munkálkodik.

* Octave/Matlab hihetetlenül erős nyelv, nem is gondolná az ember, megadja a problémára fókuszálás maximális élményét (90%-10%), tömörséggel, élvezettel, nagy hatékonysággal

* Említésre méltók a számonkéréses feladatok. Egyrészt voltak tesztkérdések (kb.: 90-100 darab), másrészt voltak programozási feladatok (kb.: 40-50 darab). A neurális hálóknál volt 90 pontos brutális nehézségű feladat is, illetve voltak bónusz feladatok is (hogy lehessen plusz pontok szerzése révén határidő-csúszásokat kiegalizálni). És voltak törtpontok (legkisebb megszerezhető a 0.2 volt). Bónusz-feladatok nélkül a maximális elérhető pontszám 890 volt a két feladattípusban (ennyi kellett a 100%-hoz), bónuszokkal együtt 940 pont. Én ez utóbbit értem el 106% erejéig. Azért volt annak feelingje (számomra), hogy 0.2 pontot sem hagytam veszendőbe :)

* Angol nyelvi aspektusok. Mivel nem a nyelvzsonglőrök osztályát erősítem, így érthető módon öröm, meg sikerélményt adó volt érdemben és értelmesen gyakorolni az angol nyelvet. Külön élvezet volt a teszteknél a nyelvi finomságokra is figyelni. De nem hallgathatom el a hátrányát is. Egyfelöl sok-sok fogalomnak, definiciónak nem is tudom a magyar megfelelőjét, teljességgel angolul rögzül bennem. Másfelöl mivel angolul tanultam, így ugyanakkora erőbefektetés mellett az angol nyelven való tanulás sokkal kevésbé tud mély lenni (számomra), mintha ugyanezt magyarul tenném meg (saját tapasztalatom alapján).

* Végére hagytam a gépi tanulás "beskatulyázásának" aspektusát. Azt gondolom az adatbányászati szaktudásnak két nagy vetülete van (háromféle megközelítésben).
- Algoritmikus és nem-algoritmikus (értsd: adott esetben vajákolásosan misztikus)
- Domain-free és domain-specific, ahol az utóbbi mindig jobb eredményeket fog adni egy rablló-pandúr játék keretében (jelenlegi infók alapján illetve szerintem).
- Kutatói és üzleti adatbányászat.

Hallom az általános felhördülést "lelki füleimmel", hogy a visual streames szoftverhasználatot miért hagyom ki. Hát ennek a nem hangsúlyozásnak több oka is van:
- Egy Clementine-t még egy Microsoft Office-nál is könnyebb használni, annyira kézreáll.
- Csak "hangulatkeltéshez" elég, érdemi módon megalapozott adatbányászathoz nem.
- Ha lenne valós részesedése, akkor az 1-2%-nál többet nálam nem tudna elérni a másik kettőhöz képest, ami lássuk be mikroszkópikusan kicsi.
- Ha szigorúan vesszük, akkor az adatbányászat/machine-learning nem más mint egy pár új transzformációs oszlop egy meglévő dataset-hez, execute gomb megnyomás után. Jó egy kis paraméter pótméterezéssel. ;) Lássuk be az érdemi hozzáadott érték az alap dataset előállásában, a paraméterezésben, és az eredmények interpretálásában van, nem pedig abban, hogy hogyan kell az execute gombot megnyomni.

Azaz ezek mindegyike külön (nagy) tudomány:
- Adatbányász célú adatpiac építés
- Machine learning algoritmuselmélete
- Vizualizálás
- Prezentálás (sok infóból, a kellőt, célbaérően megmutatni)

És persze jó lenne a szakmába belemenve a konkrét részletekről is írni, de akkor sose fejezem be ezt a blogposztot ;)