Data Science továbbtanulási irányként

Ajánlanád ezt a területet?



Kérdés: Mit mondjon az ember egy 13 éves rokonának vagy éppen egy 19 évesnek, ha megkérdezi merre is kéne továbbtanulni? Ajánlanád ezt a területet? Csak mert ez nagyon mély statisztika plusz még IT tudás is. A következő 30 évben mondjuk felülkerekedik vajon ez a megszokott “adatokat mozgatunk ide-oda” mindennapos tevékenységen? Vagy esetleg 20 év múlva már senki nem fog C, C#, JAVA kódot írni, így érdemes inkább data scientistnek tanulni?

Alteryx XKCD

Kérdéseidre nem tudok röviden, pláne megfelelően válaszolni.

A statisztika – értelmezésemben - egy egyszerű, már-már unalmas tárgy, ami jellemző módon erős kérdésekre gyenge válaszokat ad; ráadásul a big data korában kezelhetetlenül sok (brute force) és értelmetlen számolási igénnyel. Ha van egy 15.000 oszlopos táblád, szerinted mennyi ideig tart csak azt kideríteni, hogy mely oszlopok hogyan korrelálnak másokkal? ;) És akkor még semmit nem csináltál, csak felmérted a terep egy részét. Ettől még a statisztika egyes használható eredményei persze még beépülnek az adatbányászatba.

A machine learning már nehezebb kérdés. Az bizony nagyon kell, nagyon nehéz terület valamint robbanásszerűen fejlődik. Ráadásul érdemes alapoktól és mélyen ismerkedni vele. Még a felhasználóknak is (az én nézetem szerint legalábbis hiszen - van aki ezt vitatja a szakmában).

Az adatbányászat nagyon érdekes tudomány,

  • nagyon gyorsan fejlődik,
  • „versenyképes”, vagyis egzaktan megmondható komoly méretű területére (domain free adatbányászat), ki jobb a másiknál
  • embertelen mennyiségű pénz van benne (múltbeli és várható jövőbeli finanszírozások révén)
  • még mostantól nézve is jó pár évig

feltéve, hogy háború, élelmiszer-/vízhiány, katasztrófa nem teperi le az emberiséget, veti vissza a kőkorszakba. Viszont van egy nagy baja: nem egzakt (nem úgy mint a statisztika vagy a helyességbizonyítás. Nem csak az eredményekhez vezető út nem egzakt, sokszor még az sem tudható, hogy egy kapott eredmény mennyire jó, mennyire kéne örülni neki.

Perszonális kedvencem, a már sokszor említett legegyszerűbb, legtisztább Ensemble Learning. Nem nagyon lehet elrontani, felhasználói szinten is csodásan működik, sikerélmény-hegyeket generál; én minden kezdőt erre buzdítanék először: [egzaktság * siker] szorzat relatíve könnyen megszerezhető optimuma miatt). Persze figyelni kell még ezen a szűk szakterületen is ki, mit, hogyan javít, gyorsít, miben van/nincs potenciál, mi specifikus, mi általános, mi hogyan fogadja be a plusz domainfüggő üzleti tudást, stb. Egy irdatlan nagy és gyorsulóan növekvő cikkáradatban, teszem hozzá azonnal.

Egy szokványos logisztikus regresszió, ami ezer éve létezik, hosszú évek óta arról szól, hogy hogyan alakítsd a bemenő állományodat olyan formára, hogyan paraméterezd magát a regressziót, hogy jó és megbízható választ kapj a kérdéseidre, egyedileg is és általános esetre is. Emberek azon agyalnak, hogy rájöjjenek mi nem működik jól benne, hogyan kéne megjavítani, jobb eredményt kipréselni belőle, ami vagy lokális optimumhoz vezet (rosszabb esetben), vagy globális optimumhoz. És ez a legegyszerűbb eset. Hogyan kéne gyorsítani, felskálázni.

A bonyolultabb SVM (Support Vector Machine) már tengernyi paramétert tartalmaz, amit ha csavargatsz, mint a kazettás magnódon a potmétereket, nagyrészt fogalmad sincs előre milyen hatást, hogyan váltasz ki, csak szembesülhetsz a végeredménnyel, amiből le kéne vonni valamilyen következtetést, hogy tovább tudj lépni.

A neurális hálók egy következő nagy ugrás az adatbányászat „boszorkánykonyhájában”, ugyanis alapvetően blackbox az egész téma. A legjobb matematikus elmék próbálják megérteni a működésüket, hogy miért mikor és hogyan adnak jó eredményt, és tudtommal sehol sincsenek még ez ügyben. Extrapolációval: a “P=NP”-t előbb fogják bizonyítani, mint ezeket a válaszokat megkapni. ;)

A Deep Learning (aminek segítségével a minap érték el, hogy profi gó játékost vert el a gép) még ezen is túltesz. Blackboxokat kell sorba kötni, ki tudja pontosan hányat, hogyan, mennyire átlapolva, és miért így. Illetve az erős túltanulást pontosan milyen módszerrel hogyan kéne kordában tartani. Ember nincs a földön aki érti a témát, vagy erős kérdéseket meg merne válaszolni a működést illetően. Erre a SZTAKI-sok sem hajlandók értelemszerűen, pedig ők evvel kelnek és fekszenek, napközben meg versenyeznek. Próbálkozások vannak, meg az a biztos tudat, hogy ami jó output, az biztonsággal detektálható, hogy jó.

Én kezdő adatbányászként is 40+ megoldandó kihívást szedtem össze, képzelheted mennyi megoldandó probléma van/lehet még folyamatosan növekedően, akár matematika, akár számítástudomány, akár informatika-közgáz felhasználás, akár a tömegekhez való eljuttatás vonatkozásában. Mindezt úgy, hogy gigantikus, elképesztő fejlődés van minden fronton, ami a szemünk előtt játszódik le. Mit szóljon az ember, hogy pár hét különbséggel, „hozzáadott érték nélkül” értsd plusz Nvidia kártyás típusú felskálázás után 40%-os hibázást levisz egy 30%-ra? Mi lenne itt, ha még gondolkodnának is a felskálázáson túl? ;)

Hogy ajánlanám-e ezek után a data science-t továbbtanulási irányként?

A jó hír, hogy el nem tudok képzelni szakterületet, ami jobban venne fel embereket csak az USA-ban is

  • nagyobb tömegben
  • és egyúttal magasabb fizetéssel,

miközben permanens erőforrás hiány van. De tegyük fel egy csomó pl. indiai fejlesztőt fel tudnának mégis venni (reálishoz közeli módon, azaz nem értelmetlen felduzzasztással). Akkor még mindig ott van a kommunikáció, hogyan beszélgessenek ezek az emberek egymással és főnökeikkel, hogyan képződjenek data science típusú döntések folyamatszinten. Hiszen az nem elég, hogy valaki épít egy valamennyire jó modellt, annak a gyakorlatba be kell ültetődnie, akár további tőkebevonással. A modell prezentációs megjelenítésénél nem állhat meg az élet. Az én jelen intuícióm szerint erre legrosszabb esetben egy emberöltő is rámehet (30+ év) az ember korlátai miatt. Ugyanis ezen a szinten már nem működnek az adatbányász-versenyek.

Eddig volt a jó hír, van rossz hírem is, nem is egy.

  1. Rá kell kattanni, rá kell érezni a témára, nem megúszható. Még egy SQL-re is, nemhogy egy adatbányászatra. Hogy kiből mi váltja ki a megfelelően elég impulzust azt nem tudom, szerintem senki a világon. Nincs generálisan ajánlható videó, könyv, csak személyes ajánlatot adhatnak a beszippantott szakemberek. Erre mindenkinek személyre szabottan kell ráéreznie mennyit áldoz annak a kérdésnek az eldöntésére, hogy ez az én avagy ez nem az én világom. Személyes adalék: nálam egy pillanat műve volt rabul esni és erre a pillanatra tisztán emlékszem 1989 tavaszán volt, amikor az azóta sajnos (meglehetősen fiatalon) meghalt, számomra „isten” Nemetz Tibor valszám és statisztika tanárommal beszélgettünk kettesben lehetséges szakdolgozat-témákról. Kb 5%-át értettem annak amit mond, de a kb. 1 óra alatt mindig fel tudtam tenni annyi elegendően értelmes kérdést, hogy nem hajtott el a melegebb éghajlatra. Ő olyan szinten értette, művelte a témát (amit akkor még senki nem hívott adatbányászatnak itthon), hogy számítógép hiányában kézzel számolva is jó eredményeket ért el. Kevés magyar könyvet írt vagy működött közre benne, de azok minden betűje bizton állíthatom tömény élvezet. Ő volt az első és egyetlen ember, aki képes volt megértetni és megszerettetni a valszámot, amiből szégyenszemre mára oly keveset tudok már, pedig izmos ötös voltam belőle.

  2. Az is biztos az nem elég motivációként, hogy sok pénz lehet vele keresni. Hiszen teljesíteni is kell tudni, horribile dictu jól kell benne érezze magát az ember.

  • Csak én nem egy, nem két kollégáról tudok, aki hónapokon belül kiégve belefáradt a témába és ment vissza biztosabb talajra, informatikán belül (valahol egyébként én is, hiszen Talend-Python-Sqoop-Greenplum kombó minden csak nem adatbányászat jegyében zajlott nálam az utóbbi hónapokban: bár nálam azért más helyzet, nekem nem a szakmai adatbányászos inegzaktsággal, hanem a magyar BI-viszonyokkal voltak problémáim). Tehát kell egy „jóérzés”, mindenképpen, hiszen valamilyen értelemben a téma „őrültjévé” kéne válni (addiktív módon, sajnos sokszor az élet egyéb örömeinek a rovására is)

  • Kell képesség, intelligencia, hogy az információáradatból a megfelelő információt kellően gyorsan eés jól elő tudja szedni. Illetve hogy az adatbányász gondolatvilágot kellően gyorsan és jól tudja építgetni magában. Az információ-előszedés még egy Talend hibaüzenet megfejtésénél is sokszor nehéz, adatbányászatot illetően mennyiségben és komplexitásban ez még sokkal-sokkal nehezebb.

  • Jól kell tudni egyedül is és közösségben is dolgozni (kommunikáció), a kiégés elkerülésével a kudarcok jó feldolgozásával.

  • Azt gondolom a legnagyobb induló vízválasztó (adatbányászat: igen vagy nem), az az inegzaktsághoz való viszonyban ragadható meg (ezért veséztem ezt az aspektust a fentiekben oly részletesen). Aki szeret blackboxokkal játszani, aki szeret nem biztos talajon lépegetni, annak bizton ajánlható a (mélyebb) próba, aki jellemzően az egzaktságot preferálja, annak hosszabb út valószínűsíthető a rákattanásig.

Az én konklúzióm (nem kell velem egyetérteni): ha valakinek még nem jön be az adatbányászat a BI egyéb területe bejöhet, ki tud ott is teljesedni, csak a vizualizálás is mennyi kreativitásra adhat teret, vagy egy SQL is mennyire erőteljes tud lenni, lényegesen egzaktabb alapokon. Ha meg valaki végignéz csak a Starschema növekedésén, láthatja, hogy adatbányászaton kívül is rengeteg megoldandó feladat van.


Ps 1: Az adatbányászatról van egy vízióm, ezt próbáltam is valamennyire a fentiekben mondatokba önteni. Én azt sejtem/látom, hogy óriási potenciál van benne (a lehetőségeknek kb.10-20%-át aknázzuk csak ki), ugyanakkor jelenleg óriási pénzek mennek pocsékba gyenge eredményekért cserébe (csak a szűken vett adatbányászatnak sok szempontból jobb megtérülési mutatói vannak, az én értelmezésem szerint). Hogy ebből akárcsak rövid távon milyen – akár földcsuszamlás-jellegű - események generálódnak, ennek elemzéséhez én tuti kevés vagyok.

Ps 2: A programozási nyelveket illetően én úgy látom, hogy programozni mindig érdemes lehet majd, feladat/potenciál mindig lesz. Abban is megvan a szépség, kreativitás lehetősége. No meg persze nehézség-hegyek

  • sok nyelv esetén a részletek tárolása agyban
  • új nyelv felszippantásának gyorsasága annak filozófiájának kontextusában
  • reverse engineering dokumentálatlan kódon
  • kiválasztani a kellően jó és erőteljes programozási nyelvet a már most nyolcezres halmazból

De nemcsak felhasználói szinten, hanem tudományos téren is nagy kihívások vannak, jó sok vakvágánnyal, helytelenséggel, hogy ne mondjam ostobasággal. Csak annyit mondok (destruktívan): Pl/1, Cobol, Visual Basic, Javascript sőt C++ vagy az SQL-nyelvjárások divergálása. Néha nem árt gyomorsav-lekötőt is bevenni a hányinger elkerülése érdekében… ;)