Data Science fizetések és karrier 2020-ban

Data Science fizetések és karrier 2020-ban

Détaszájensz – szexi vagy túl-hype-olt?

A Data Science ma már az egyik legizgalmasabb és legnagyobb kihívások elé állító szakma. A gyors, folyamatos fejlődés, valamint az igény az adat alapú döntéshozatalra a vállalatok részéről, hatalmas igénybevételt jelent a szakemberek szempontjából is. Ezáltal a Data Science fizetések is dinamikusan változtak az informatikai szektorban. A mesterséges intelligenciával kapcsolatos, széles körben elfogadott képzések száma manapság még limitált, így az adattudománnyal foglalkozó szakemberek bére, az informatikai szektoron belül a legmagasabb szinten áll. 

Ebben az összefoglalóban szeretnék információkkal szolgálni, a nyitott pozíciók helyzetéről, illetve megmutatni nagyságrendileg mekkora fizetések érhetőek el, megfelelő képzettség és tapasztalat birtokában. Nem titkolt célom a korábban megjelent írásra reagálni, az ott leírt helyzetet aktualizálni.

Saját tapasztalatból mondhatom, hogy a Kelet-Európai, így a Magyarországi informatikai kultúra is nyitni kezdett az adattudományok irányában. A Google Trend adatai alapján világviszonylatban is komoly út áll az elmúlt 5 évben a mesterséges intelligencia mögött. Folyamatos fejlődés jellemezte az elmúlt időszakban, valamint az emberek számára is széles körben ismertté és elérhetővé váltak a technológia eszközei. A magyar piac némileg lemaradva, de a trendet követve kezdi alkalmazni az előnyeit. Mindemellett a Python is az egyik legnépszerűbb programozási nyelv lett az elmúlt pár évben, népszerűségével még a mesterséges intelligenciát is lekörözte.

Data Science fizetések Magyarországon

Magyarországon elsősorban a multinacionális vállalatok engedhetik meg maguknak, hogy az üzleti elemző (Business Analyst) pozíció mellett, gépi tanulással foglalkozó mérnököt (Machine Learning Engineer) vagy adattudóst alkalmazzanak (Data Scientist). Ennek az oka, a cikk elején említett szakemberhiány és a relatív magas elvárt bérezés. A magas bevétellel rendelkező vállalatok a korai adaptálói a technológiáknak, mivel a befeketetés megtérülési idejét is képesek kivárni, finanszírozni. 

Emellett, a korszerű, jól automatizált folyamatokat alkalmazó vállalatok rendelkeznek megfelelő mennyiségű és minőségi adattal, melyet könnyen extra profitra tudnak konvertálni az adattudományt szolgáló szakemberek. Hogy pár példát is említsek, a bankszektor, az autóipar és telekommunikációs cégek engedhetik meg magunknak egyelőre az adattudománnyal foglalkozó kollégák teljes állásban történő alkalmazását. Hogy jól lehessen érteni, egyes pozíciókban milyen feladatokat kell ellátni, készítettem egy gyors összefoglalót.

Milyen Data Science pozíciók léteznek?

Data Analyst (Business) aki főként programozási eszközök segítségével, az adat megjelenítésének és összefüggések ábrázolásának nagymestere. Machine Learning Engineer jó programozó, érti a matekot és a statisztikát, és elkészíti a gépi tanulás modelleket. Data Engineer az adatok specialistája, megfelelően ismeri a szoftverfejlesztés eszközeit és képes a kesze-kusza adatokból strukturált halmazt képezni, a gépi tanulás modellek bemeneteként. Data Scientist, az adattudós, aki mindenhez is ért. Képes komplex nézőpontból az üzleti problémát és a gépi tanulás eredményeit értelmezni, a projektet vezetni. A Data Science fizetések szempontjából általában az első esetben lehet a legszerényebb, míg utóbbi esetben a legmagasabb javadalmazásra számítani.

Egy nagyon fontos közös tulajdonság van a fent említett 4 szerepkörben, szinte kizárólagosan a Python programozási nyelvet használják. A fejlesztők között egyre népszerűbb nyelv a Python (ahogy a Google Trend is mutatta) és néhány konkurens (R nyelv, Scala nyelv) mellett, egyeduralkodóként áll a Data Science világában. 

Hol találunk Data Science fizetéseket, állásokat?

Véleményem szerint Magyarországon 3 fő forrásból lehet informatikai és adattudománnyal kapcsolatos állásokat találni. Ezeket most relevanciájuk szerint növekvő sorrendben fogom bemutatni, kiemelve azt is, ahol a Data Science fizetésekről is kapunk információt.

Profession

A profession.hu egy régi motoros az online hirdetés és fejvadászat szakmában. Mivel nem specializálódott IT vagy Data Science toborzásra, így a megfelelő kulcsszavakkal történő keresés is viszonylag kevés találatot hoz, a nyitott pozícióval rendelkező vállalatok sem használják elsődleges hirdetési felületként. A Professiont-t főként a telekommunikációs cégek és a termelő vállalatok részesítik előnyben, Data Engineer vagy Data Analyst állások hirdetésére.

Profession keresési felülete, data science kulcsszó használatával.
Profession keresési felülete, Data Science kulcsszó használatával.

Nofluffjobs

A nofluffjobs.hu egy relatív új szereplő az online hirdetések világában. Kivétel nélkül IT pozíciók gondozására szakosodtak. Ami az egyik legszimpatikusabb tulajdonsága az oldalnak, hogy csak bérsáv megadása mellett lehet állásokat feltölteni, így jó képet kaphatunk, hogyan is alakulnak a Data Science fizetések hazánkban. Nyugat-Európában és az USA-ban teljesen normális dolog, hogy bérsávot adnak meg egy hirdetés mellé a HR-es kollégák, személyes véleményem szerint is nyitni kell, hogy ez általános dolog legyen.

Nofluffjobs keresési felülete, data science kulcsszó használatával.
Nofluffjobs keresési felülete, Data Science kulcsszó használatával.

A készített pillanatfotón látható, hogy mind Python, mind Data Science-hez kapcsolódó állások is találhatóak az oldalon. A távmunkában foglalkoztatott szenior Python fejlesztő 950.000 Ft bruttó fizetésre számíthat, amennyiben megfelelő programozói tapasztalattal rendelkezik, és ismeri az Amazon felhő alapú alkalmazásait.

Egy másik, Üzleti Elemző (Data Analyst) pozícióban, online rendszerek felhasználóit kell különböző analitikai módszerekkel elemezni, azért hogy személyre szabott ajánlatokat kaphassanak a szolgáltatóktól. Mindezt 500-800 ezer forint bruttó bérsávban, alkalmazotti jogviszony mellett. Az elérhető csúcs pedig a bruttó 1-1.4 millió forint sávban mozgó Big Data Engineer, akinek a feladata nagy-adat feldolgozó rendszerek készítése Apache Spark-ban. 

Big Data Engineer pozíció leírása és a szükséges elvárások a nofluffjobs oldalon.
Big Data Engineer pozíció leírása és a szükséges elvárások a nofluffjobs oldalon.

Ahhoz, hogy valaki komoly eséllyel indulhasson interjúkon, erős elméleti háttérrel és megfelelő tapasztalattal kell hogy rendelkezzen. Sajnos az oktatási rendszerek ma még nem készültek fel a mesterséges intelligenciához kapcsolódó ismeretek átadására, így legtöbb esetben a jelöltnek maga kell összeszednie a tudást. A jó hír viszont, hogy különböző online források segítségével, legalább junior szinten meg lehet tanulni programozni, és az ingyenes, nyílt forráskódú alkalmazások, könyvtárak elsajátításával, közepes szinten megismerni a gépi tanulás modellek, adatbázisok alkalmazását. Innentől kezdve pedig egyenes az út egy Junior Machine Learning, vagy Data Engineer pozícióba. Szerencsére, a relatív magas Data Science fizetések nagyon motiválóan hatnak az oktatási rendszerek fejlődésére is.

Linkedin

A végére hagytam az IT-sek kedvenc álláskereső platformját . A Linkedin-en a cikk írásakor a “machine learning” kulcsszóra 145 találatot ad a kereső, magyarországi helyszínt beállítva. Ez a szám magáért beszél. Magyar cégek, illetve külföldi, távmunkát ajánló cégek is előszeretettel használják a legnépszerűbb szakmai és üzleti közösségi oldalát. Többek között a Nokia, Morgan Stanley és az IBM hirdet állásokat mesterséges intelligencia témakörökben.

LinkedIn keresési felület a machine learning kulcsszó alkalmazásával.
LinkedIn keresési felület a machine learning kulcsszó alkalmazásával.

Kedvenc hirdetésem a böngészés során, a Machine Learning Fejlesztő néven magyarosított állás lett. Feladatok között szerepel: üzleti adatok feldolgozása, elemzése, előrejelzése / osztályozása machine learning algoritmusok segítségével, eredmények vizualizációja. Elvárások pedig: szoftverfejlesztési tapasztalat Python alkalmazásban, gépi tanuló algoritmusok ismerete, adatbázis-ismeretek (SQL), statisztikai alapismeretek, angol nyelv középszintű ismerete (írásban és szóban is).

Ahogy említettem, rengeteg ingyenes vagy nagyon olcsó forrás áll rendelkezésre, ha programozásról, mesterséges intelligenciáról szeretnénk tanulni, de ezek jellemzően angol nyelvűek. Emelett pedig a Data Science-el kapcsolatos pozíciókban is alapelvárás az angol ismerete, így érdemes ezt a tudást is minél magasabb szintre fejleszteni.

Annak érdekében, hogy kutatásra és tudományos módszerekre alapozva pontosan meg lehessen mutatni a Python programozás, mesterséges intelligencia, Data Science fizetéseket, a korábbi cikkben is használt forrást fogom újra használni. 

Salary Guide 2020

A Hays Magyarország, a toborzási projektekre alapozva, minden évben kiadja, az előző évre vonatkozó piaci trendeket és bérsávokat tartalmazó összefoglalóját, illetve felsorolja a legfontosabb jogi és gazdasági változásokat amelyek hatással lehetnek a jövőre. A 2020-as kiadvány kiemelten említi, hogy a magyar IT piac továbbra sem rendelkezik elegendő tapasztalt és jól képzett szakemberrel, így a jelöltekért folyamatos a verseny, ami a bérek fokozatos emelkedését is jelenti.

A várható COVID-19 vírus okozta gazdasági stagnálás vagy visszaesés sem fogja ezt a helyzetet számottevően megváltoztatni, így aki IT szakterülete képzi magát, továbbra is sok nyitott ajánlattra és átlag feletti bérezésre számíthat.

Hays Salary Guide 2020 - programozó állások bérezési szintjei.
Hays Salary Guide 2020 – programozó állások bérezési szintjei.

A felmérés szerint a legkeresettebb jelöltek a szoftverfejlesztők (például Python nyelvben), de Magyarországon jelentősen megnőtt a kereslet a Data Science tudással rendelkező jelöltek iránt is. A folyamatos, főként az iparban jellemző innovációnak köszönhetően, a pozíciók és a velük járó felelősségi körök is egyre összetettebbé válnak. Nagyon fontos a cégek számára az automatizáció és a mesterséges intelligencia, egyre több vállalat invesztál a kutatás-fejlesztés (K+F) területbe, hogy megtalálják azokat a megoldásokat, amelyek piacvezetővé teszik őket. A kutatás említi, hogy a tehetséges fejlesztőkért folytatott harc az elkövetkező időszakban még jobban fokozódni fog.

Az összefoglaló szerint egy kezdő Python fejlesztő bruttó 600.000 Ft fizetésre számíthat, míg egy tapasztalt programozó akár a 950.000 Ft-os bérezési szintet is elérheti.

Hays Salary Guide 2020 - Egyéb IT állások bérezési szintjei.
Hays Salary Guide 2020 – Egyéb IT állások bérezési szintjei.

Data Science fizetésre és pozícióra rátérve, a tipikus belépő bér, 1-3 év tapasztalat esetén bruttó 750.000 Ft, mely 3 év felett könnyen 7 számjegyű havi bérezést is jelenthet, azaz a havi fizetés meghaladhatja az 1.000.000 Ft-ot. A felmérést pozíció szerint még nem differenciálja a Data Science-hez kapcsolódó szakmákat, de ez valószínűleg pár éven belül meg fog változni. Ehhez arra van szükség, hogy minél több ilyen munkakör jöjjön létre Magyarországon is.

Összefoglalás

A mesterséges intelligencia és a Data Science manapság az egyik legfelkapottabb területek a világon. Egyelőre, a Magyarországon elérhető pozíciók száma még korlátozott, de cikk alapján jól látható, hogy javadalmazásban felveszi a szakterület a versenyt a többi IT specifikus pozícióval.

A tendenciák alapján az látszik, hogy nemcsak önálló szakmaként fog működni, hanem a különböző pozícióban dolgozó emberek kiegészítő eszközként fog fejlődést generálni a termelő és szolgáltató szektorban. Amennyiben az oktatási rendszerek is megfelelően támogatják a mesterséges intelligencia elsajátítását, akár egy nem IT pozícióban dolgozó ember számára is elérhető cél lesz a tudás elsajátítása.

Jupyter Notebook használata Python programozáshoz

Jupyter Notebook használata Python programozáshoz

Bevezetés

A Python programok elkészítéséhez használható eszközök közül többet bemutattam egy korábbi cikkben. Azonban egy fontos alternatíváról elfelejtkeztem, nevezetesen az egyik legegyszerűbb, legnépszerűbb Python IDE, a Jupyter Notebook részletes bemutatása kimaradt. 

Hé, mi az az IDE? Integrated Development Environment – én csak úgy hívom hogy PROGRAM amiben PROGRAMOZNI lehet. Amennyiben pontosan szeretném magyarra fordítani, akkor integrált fejlesztői környezetnek nevezzük, ahol a megadott programnyelveken programokat lehet készíteni és futtatni.

A Jupyter Notebook egy nyílt-forráskódú, interaktív IDE különböző programozási nyelvek számára.
A Jupyter Notebook egy nyílt-forráskódú, interaktív IDE különböző programozási nyelvek számára.

A Python programozás és a programok elkészítésének egyik kiváló eszköze a Jupyter Notebook. Nagyon hatékony a mesterséges intelligencia projektek fejlesztéséhez és bemutatásához is. Aki kezdőként találkozik a programozás kihívásaival, mindenkinek a Jupyter-t javaslom az alapok elsajátításához. Na de pontosan miért is?

Több oka van, az első és talán legfontosabb, hogy nem kell érte fizetni, azaz ingyenesen használható. Ahhoz hogy megértsük, hogyan működik, felfedjük az előnyeit, pár szóban beszélnék az unalmasnak tűnő (de annál fontosabb) működési mechanizmusról és egyéb alkalmazási lehetőségeiről is.

Egy kis háttérinformáció

A jelenleg elérhető Jupyter Notebook, a 2010-ben bemutatott IPython Notebook koncepciójára és rendszerére épül. Az IPython Notebook-ban a REPL modell segítségével oldották meg, hogy a Python kód a terminálon keresztül fusson le, kvázi mint egy felhasználói felületként működik a Python parancssor előtt.

A REPL modell az elnevezés az angol “read-eval-print-loop” szavak kezdőbetűiből származik.

Általánosságban egyszerű, interaktív programozási környezetet jelent, amely a felhasználói bemenetet kiértékeli (végrehajtja), majd az eredményt visszaadja a felhasználónak. A modell alkalmazásának köszönhető, hogy a Jupyter Notebook rendelkezik a legtöbb kényelmi funkciójával.

Amikor egy programkód fut le a Jupyter felületén, valójában az IPython Kernel hajtja végre a feladatokat és kommunikál a Jupyter Notebook felhasználói felületével.

Mivel a program nincs direktbe kötve a Python végrehajtó egységéhez, így lehetséges az hogy a rendszer adott esetben képes más nyelven írott kód kezelésére is. Természetesen ahhoz egy másik nyelv fordító vagy végrehajtó programját kell futtatni a Jupyter rendszerén keresztül. 

Jegyzetek és programkód kapcsolata a Jupyter Notebook felületén.
Jegyzetek és programkód kapcsolata a Jupyter Notebook felületén.

A Jupyter Notebook képes ezen felül tárolni a beírt kódot, valamint a kimenetet, illetve lehetőséget ad jegyzetek készítésére is. Ezt egy nagyon fontos kényelmi funkciónak tartom, mert így képesek vagyunk a programkód és az általa eredményezett kimenetel mellett megjegyzéseket, szöveges-képes magyarázatokat is a programunkba illeszteni.

Ez az egyik funkció, ami a REPL modell alkalmazásának köszönhető. Kvázi, elmesélő történetként tudjuk bemutatni a programunk működését és az eredményeket.

Jupyter Notebook telepítése

Mivel a programot Python kódok futtatására akarjuk alkalmazni, mindenképpen szükség van rá, hogy a gépünkön telepítve legyen a nyelv 2.7 vagy 3.+-os verziója. 

Pip segítségével

A Python beépített programcsomag telepítőjét használva (amennyiben ezzel sem rendelkezünk az alábbi linken letölthetjük), egyszerűen a Python parancssorba a

pip install jupyter

parancsot kell beírni és a telepítés automatikusan megtörténik.

Anaconda segítségével

Abban az esetben, ha kezdőként állunk neki a Python programozás elsajátításának és a Jupyter Notebook felfedezésének, a legjobban a korábbi cikkben is bemutatott Anaconda rendszerrel járunk. A weboldalon kiválasztott telepítő fájl letöltése és telepítése után a Python 3 rendszer és a Jupyter Notebook rögtön használható lesz a számítógépünkön.

Jupyter Notebook indítása

Csak annyi a dolgunk hogy Windows rendszerben a START menü, JUPYTER kulcsszavakat használva, vagy a Python parancssorban a JUPYTER parancsot kiadva, elindítjuk a programunkat. Nem szabad meglepődni, az alapértelmezett böngészőnk fog megnyílni, ott egy böngésző lapon jelenik meg a Jupyter Notebook felhasználói felülete.

A Jupyter Notebook indítása böngészőablakban történik meg.
A Jupyter Notebook indítása böngészőablakban történik meg.

Hamar rá lehet jönni, hogy egy webes applikációt használunk, amely saját, lokális szervert vesz igénybe a programok futtatásához. A

http://localhost:8888/tree

elérési útvonalon minden esetben vissza lehet térni a kezdőoldalra.

Új Python Jupyter Notebook indítása.
Új Python Jupyter Notebook indítása.

A felhasználói felület jobb felső sarkában a New / Új parancs alatt, Python 3 opciót választva, egy új böngésző lapon indul el a programozási jegyzetfüzet. Minden jegyzetfüzet (avagy Notebook) külön böngésző lapon fut, így képesek vagyunk többet is futtatni párhuzamosan.

A kezdő oldalra visszalépve láthatjuk az imént elindított “Untitled.ipynb” névvel rendelkező fájlt. A Jupyter Notebook zöld ikonnal jelöli azokat a jegyzetfüzeteket, melyek aktuálisan meg vannak nyitva.

Miért használjuk az “.ipynb” kiterjesztést?

Aki találkozott már Python programmal, biztosan tudja hogy a fájlokat “.py” kiterjesztéssel tároljuk. Viszont a Jupyter Notebook egy speciális kiterjesztést használ, aminek a tárolási struktúrája eltér a normál fájloktól.

Minden “ipynb” kiterjesztéssel rendelkező file valójában szöveget tartalmaz, a  jegyzet tartalmát JSON formátumban tároljuk el. A tárolási rendszer a JavaScript nyelvből alakult ki, egyszerű adatstruktúrák és asszociációs tömbök mentésére szolgál.

A cikk elején bemutatott példa ipynb fálj részletei.
A cikk elején bemutatott példa ipynb fálj részletei.

A jegyzetfüzet minden egyes része, legyen az kód, szöveg, vagy kép, szöveg egységekbe konvertálnak, a szükséges metaadatokkal együtt. A jegyzetfüzetre jellemző metaadatokat mi is képesek vagyunk módosítani a Szerkesztés / Jegyzetfüzet, metaadatok szerkesztése menüpont alatt.

Jupyter Notebook kezelőfelületének használata

Két kiemelendő része van a jegyzetfüzetnek, a cellák (cells) és kernelek (kernels). A két elem funkciójának megismerése kulcsszerepet játszik a Jupyter Notebook működésének megértésében.

A kernel olyan program, ami értelmezi és végrehajtja a felhasználó által megadott programkódot. Amikor Python kódot írunk a Jupyter jegyzetfüzetbe, nincs extra feladatunk, mert a program beépített kernele ismeri a kígyós nyelvet. De lehetőség van egyéb kernelek segítségével, más nyelven írt programok futtatására is.

A cella maga a tárolóeszköz, amely a megadott szöveget jeleníti meg, vagy a beírt kódot futtatja a kernel segítségével.

Cellák

A cellák tehát azok az elemek, amelyek felépítik a jegyzetfüzetet. Funkció szempontjából 4 típusú cellát különböztetünk meg:

  • Kódot tartalmazó cella: ezekben adjuk meg a futtatandó kódot, a kernel segítségével értelmezi a program, és cella alatt megadja az esetleges kimeneteket.
  • Markdown cella: itt van lehetőség szöveges információ megjelenítésére, az elnevezés a Markdown jelölő nyelvre utal.
  • NBC konverter cella: ez a típus van segítségünkre, amikor konvertálni szeretnénk a jegyzetfüzetet (pl. PDF formátumra).
  • Címsor cella: Ahogy a webes alkalmazásoknál, itt is lehetőségünk van a Jupyter Notebook rendezetté tételére, címsorok, fejlécek használatával.
Jupyter Notebook cella típusok.
Jupyter Notebook cella típusok.

Amikor képet akarunk a füzetbe illeszteni, érdemes direkt linkeket használni. Lehetőség van a jegyzetbe történő rögzítésre is, azonban ez nagyban növeli a füzetünk méretét.

Kernelek

A Jupyter Notebook mögött esetünkben egy Python kernel fut. Amikor futtatunk egy kódot, az a kernel segítségével végrehajtódik és az eredmény, vagy kimenet visszakerül a cella struktúrába és megjelenik a felhasználó számára. Nagyon fontos hogy a kernelbe kerülő információk az egész jegyzetfüzetben az összes cella számára elérhetőek.

Például ha könyvtárakat importálunk az első cellában, és futtatjuk a programkódot, ezek után ha használni szeretnénk az importált elemeket, nincs szükség az újboli beolvasásra, mert a kernel eltárolta az adatokat. Hasonló a helyzet változók definiálása esetén is.

Az esetek nagy részében a jegyzetfüzetben lévő cellák értelmezés fentről lefelé történik. A kernel menüben van lehetőség a program futtatásába történő beavatkozásra.

A cellák bal margójánál van lehetőség az ott megadott programkódot futtatni (lejátszás ikon segítségével), és itt lehet látni ha egy program végtelen ciklusba kerül (folyamatos futás) vagy végrehajtódott.

Jupyter Notebook kernel parancsok.
Jupyter Notebook kernel parancsok.

A kernel menüben lehetőségünk van beavatkozni a programok futtatásába vagy jegyzetfüzet visszaállítására:

  • Restart parancs: újraindítja a kernelt és törli az összes változót,
  • Restart & Clear output parancs: a Restart parancson kívül, törli a kimeneti cellák tartalmát,
  • Restart & Run All parancs: kernel újraindítás, kimeneti cellák törlése és a cellák sorrendben történő futtatása.
  • Interrupt parancs: amennyiben olyan programot indítunk el, amely végtelen ciklusba kerül, vagy nem szeretnénk megvárni a futtatás végét, a megszakítás paranccsal tudjuk megállítani a folyamatot.

Jegyzetfüzet nevének megadása

Amint megnyitottunk egy Jupyter Notebook-ot, érdemes rögtön a “Untitled.ipynb” név helyett egy beszédesebbet választani. Ezt úgy tudjuk megtenni, ha a bal felső sarokban megjelenő fájlnévre kattintunk és rögzítjük a módosítást.

Egy másik módszer a megnyitott jegyzetfüzet Fájl / Átnevezés (File / Rename) funkció használata. Mindenképpen figyelni kell arra, hogy csak olyan jegyzetfüzetet lehet átnevezni, amely éppen nem futtat programkódot.

Másik megoldás a Notebook átnevezésére, a főoldalon található fájlban végrehajtott parancs segítségével történhet meg.

Jegyzetfüzet megosztása

Amikor a Jupyter Notebook megosztásáról beszélünk, általában kétféle célunk lehet. Vagy a csak beírt program részleteket szeretnénk megosztani, vagy kiegészítve azt a program futtatásának eredményeivel. A megosztott jegyzetfüzet pontosan úgy fog megjelenni az olvasó számára, ahogyan azt mi a Jupyter programban látjuk.

A megosztás előtt érdemes a korábban említett kernel parancsok vagy a kimeneti cellák törlésével (Cella / Minden kimenet / Törlés) és a Restart / Run All paranccsal újra futtatni az egész jegyzetfüzetünket.

Ezzel megvédjük magunkat attól, hogy az egyesével történő futtatások és a jegyzetfüzet felépítése során, a cellák nem tökéletesen definiált összefüggése miatt, nem fut le a teljes programkód. Ha ezzel végeztünk, a Fájl / Letöltés mint (File / Download as) paranccsal különféle formátumba lehet letölteni az elkészített munkát (PDF, HTML, ipynb, stb.).

Összefoglalás

Ebben a cikkben összefoglaltam a Jupyter Notebook alkalmazásának alapvető tudnivalóit, elsősorban azoknak üzenve, akik Python programok elkészítéséhez szeretnék alkalmazni ezt a remek és egyszerű rendszert. Ha túljutottunk a telepítésen és a felhasználói felület megismerésén, már könnyedén képesek vagyunk egyszerűbb programokat készíteni és azokat megosztani másokkal.

Egy következő cikkben bemutatom a Jupyter Notebook gyakorlati használatát, ahol programot fogunk készíteni egyszerű adatok beolvasásához és különböző (szöveges, grafikus) prezentáláshoz.

Python telepítés mesterséges intelligencia programozásához

Python telepítés mesterséges intelligencia programozásához

Bevezetés

Annak érdekében, hogy hatékonyan tudjuk dolgozni mesterséges intelligencia algoritmusokkal, mindenképpen szükségünk van olyan program használatára, melynek segítségével Python programot tudunk készíteni. Ahogy korábban bemutattam a Python telepítés nem kötelező elem, a Google rendszeréből online is tudunk programokat készíteni.

Azonban a Colab alkalmazása is jelenthet szűk keresztmetszetet, illetve komolyabb projektek esetén sokkal gyorsabb a saját gépen történő kódolás. A Python, mint programozási környezet többféle módon telepíthető, több, különböző program letöltésével képesek lehetünk elkészíteni a saját programunkat.

Ebben a cikkben szeretném bemutatni a Python telepítés legegyszerűbb és leghatékonyabb módját, abban az esetben, ha adatokkal szeretnénk dolgozni. A Python napjaink legjobb programozási nyelve, ha gyűjtött vagy már rendelkezésre álló információk alapján szeretnénk döntést hozni.

A Python telepítés és használat esetében többféle megoldandó feladattal is szembesülhetünk, ezért javaslom a lenti folyamatot alkalmazni kezdők és a Python “lelkét” kevésbé ismerők számára.

Alapvetően a Python telepíthető önmagában is, de ilyen esetben a kiegészítő könyvtárak, melyek a mesterséges intelligencia legfontosabb eszközeit tartalmazzák, sokkal körülményesebb módon használhatók. Erre a problémára ad egy közel tökéletes megoldást az Anaconda program.

Anaconda, te vagy a legjobb

A kezdők és haladók számára is az egyik legjobban ajánlott programcsomag az Anaconda Distribution. Ennek a nyílt forráskódú programcsomagnak köszönhető lehet kivitelezni a Python telepítését és használatát a legegyszerűbb módon.

Maga a program minden fontos platformon (Windows, Mac, Linux) elérhető és már több mint 11 millió felhasználója van már. Ki lehet jelenteni azt is, hogy iparági sztenderddé vált a fejlesztések, tesztelés és gépi tanulás alkalmazására. Közel 1500 darab különböző kiegészítő csomag elérhető hozzá, és a programcsomagok letöltése, telepítése és eltávolítása is egyszerűen végrehajtható a program segítségével.

Gépi és mély tanulás alkalmazásához használható a például scikit-learn, Tensorflow vagy Theano csomag, adatanalízishez pedig például a NumPy vagy a pandas könyvtár. Alapvetően, a végrehajtás szempontjából az Anaconda Python hatékonyabban dolgozik, mint más Python kernelek (pl. Vanilia) és grafikus telepítési opcióval gyorsan el lehet kezdeni a programozást. Ha Windows környezetben dolgozunk és szeretnénk saját magunk megválasztani, milyen könyvtárakat használunk (egyszerű telepítés, frissítés vagy törlés), szinte az egyetlen használható opció most a piacon.

Nagyon fontos szempont, hogy ingyenesen letölthető és használható, annak ellenére, hogy egy komoly vállalat (Anaconda Inc.) folyamatosan fejleszti és ezáltal a legkomplexebb Python programozási opciónak alakítja az Anacondát.

Kiemelendő az a tény is, hogy a csomagmenedzser alkalmazás még nem tökéletes. Sok esetben manuálisan szükséges a programcsomagok frissítése, amely folyamat viszonylag sok időt vesz igényben. Emellett az Anaconda nem minden esetben használja a legfrissebb csomag verziókat (például Tensorflow esetében) és sajnos a Google nem támogatja hivatalosan az Anaconda Python-t.

A hátrányok mellett, beszélni kell arról, hogy az Anaconda esetében nincs szükség extra energiát fordítani arra, hogy ellenőrizzük melyik verziójú könyvtár, melyik verziójú könyvtárral kompatibilis, ezt a program telepítések közben automatikusan megteszi és a frissítések során minden esetben a legjobb kombinációt telepíti a számítógépünkre.

Python telepítés – kígyózzunk!

Ha használni szeretnénk, nincs más dolgunk, hogy az anaconda.com oldalra látogassunk el. Itt a Download (Letöltések) menüpont alatt tudjuk kiválasztani, milyen operációs rendszerre (Windows esetében fontos, hogy 32 vagy 64 bit-es rendszerünk van) szeretnénk telepíteni.

Anaconda.com letöltési felülete.
Anaconda.com letöltési felülete.

A Windows verziójának ellenőrzését a Sajátgép – jobb egérgomb – tulajdonságok ablakban tudjuk megtenni.

Windows bit verzió megállapítása a Sajátgép - Tulajdonságok menüpont alatt.
Windows bit verzió megállapítása a Sajátgép – Tulajdonságok menüpont alatt. “Rendszer típus” vagy “System type” soron.

Windows-os felhasználók esetében, érdemes a grafikus telepítési opciót választani. Mivel a Python 3.7-es verziója újabb, mint a 2.7-es, értelemszerűen azt érdemes használni. Előfordul néhány alkalmazás vagy könyvtár, amely a 2-es verziót preferálja, de ezek folyamatosan kopnak el.

A legtöbb alkalmazás tökéletesen kompatibilis a 3-as verzióval és sajnos van egy-két apró szintaktikai különbség a két verzió között. Az időben előre tekintve, mindenképpen a 3.7-es verzió megismerése javasolt a jelen pillanatban.

Nagyon fontos, hogy a letöltésnél ki kell választani az operációs rendszert (Windows / Mac / Linux) és a megfelelő 32 vagy 64-bit-es grafikus installációs opciót, a Windows-ra történő telepítés előtt.

Az Anaconda lehetséges telepítési opciói a Python verziókat figyelembe véve.
Az Anaconda lehetséges telepítési opciói a Python verziókat figyelembe véve.

A telepítés nagyon egyszerűen, Windows-os grafikus alkalmazás segítségével végezhető el. Kissé hosszú ideig tart maga a folyamat, mert viszonylag összetett, több előre telepített kiegészítő könyvtár is másolásra kerül a számítógépre. A telepítés után az Anaconda Navigator felületet lehet elindítani, itt láthatjuk, milyen előre előkészített alkalmazásokat használhatunk.

Anaconda Navigator kezdő felülte.
Anaconda Navigator kezdő felülte.

Itt található a népszerű Jupyter notebook, valamint a Spyder programozó környezet. A programok futtatását a Anaconda Navigator-on belül, vagy a Start menüben, önállóan is el lehet végezni.

Anaconda Prompt – hogy is van ez?

Az Anaconda Prompt a környezet rendszerparancssora. Itt oldható meg a legegyszerűbben a telepített könyvtárak frissítése és újak telepítése. Ki kell emelni, hogy sok esetben, az egyes Python könyvtárak verziói nem működnek együtt. Például a Numpy (mátrix műveletekhez használt könyvtár) 1.1-es verziója csak az Opencv (gépi látás könyvtár) 1.2-es verziójával tud együtt dolgozni, míg az Opencv legfrissebb verziója a 1.3 (A verziószámok most csak kitalált példák).

Az Anaconda Prompt felülete.
Az Anaconda Prompt felülete.

Ilyen esetben az Anaconda figyeli az kapcsolatokat a könyvtárak között és ha már telepítve van a Numpy egység, az Opencv telepítés parancsának kiadása esetén nem a legújabb verziót, hanem a számítógépen lévő könyvtárakkal tökéletesen együttműködő variánst tölti le számunkra.

Talán kicsit bonyolultan hangzik, de annyit érdemes megjegyezni, hogy Anaconda környezetben bármely könyvárat telepíthetjük, nem kell figyelnünk a kompatibilitásra.

Az Anaconda Prompt-ot a start menübe begépelve tudjuk indítani, gyakorlatilag pontosan úgy néz ki, mint a Windows beépített parancssora (base kezdetű programsorok). Értelemszerűen a beépített parancsok segítségével tudunk műveleteket elvégezni. Például a telepített könyvtárak listáját a conda list begépelése után válik láthatóvá.

Anaconda Prompt - Python telepített könyvtárak listája.
Anaconda Prompt – Python telepített könyvtárak listája.

Ahogy egy korábbi cikkben említettem, az Anaconda programcsomag részét képezi a Spyder alkalmazás, melyet a továbbiakban Python kódolásra fogunk használni.

Összefoglalás

A cikkben bemutattam az Anaconda szoftverkörnyezet főbb tulajdonságait és az offline Python program telepítésének a programozásának előnyeit.

Az Anaconda segítségével könnyedén tudunk mesterséges intelligencia alkalmazását megoldani: rendelkezésre állnak a legújabb kiegészítő könyvtárak és a Spyder programozási felület. A továbbiakban bemutatom, hogy lehetséges újabb Python könyvtárakat telepíteni és konkrét, összetett feladatok megoldása is következik majd.

Neurális hálózatok elrendezési és funkciónális típusai

Neurális hálózatok elrendezési és funkciónális típusai

A neurális hálózatok a mesterséges intelligencia és a gépi tanulás alkalmazásának egyik legnépszerűbb eszközei manapság. Az elmúlt 10 évben több olyan speciális struktúra szerinti csoportosítást fedeztek fel, mely csoportok egy típusú probléma megoldásában a leghatékonyabbak.

Az előző cikkben bemutattam a mesterséges neurális hálózatok mögött rejlő intuíciót és biológiai rendszerből vont párhuzamokat. Már tudjuk milyen elemekből épül fel és milyen kapcsolatok találhatóak az elemek között, illetve melyek a legfőbb hasznosítási területek.

Ebben a részben szeretném bemutatni, az 5 legtöbbet használt hálózati elrendezést, illetve hogy milyen probléma megoldása során vethetők be a mindennapi életben.

Perceptron

Nem szabad elfelejteni, hogy a neurális hálózatok számítási alapköve a perceptron, a neuron matematikai modellje. A bementi értékek súlyozásra kerülnek, majd összeadjuk őket és legvégül egy aktivációs függvény segítségével határozzunk meg, hogyan alakul a kimenetünk.

A neuron matematikai modellje.
A neuron matematikai modellje.

Ezt a rendszert előrecsatolt neurális hálózatnak is nevezik (feed forward neural network), mivel az információ balról jobbra halad a neuronokon keresztül. Ismert bementekre, adott kimenetek alapján képesek vagyunk a bementi értékek súlyozásának változtatásával a rendszer hibáját minimalizálni (back-propagation). Függetlenül attól, hány réteg neuron található a rendszerünkben, a neurális hálózatok mindig a ki és bemenetek közötti kapcsolatot szimulálják.

Egyszerű és mély tanuló neurális hálózatok topológiai összehasonlítása.

Egyszerű és mély tanuló neurális hálózatok topológiai összehasonlítása. Forrás: Medium.

Az előrecsatolt neurális hálózatok gyakorlati használata kevés esetre szűkül, főleg csoportosítási és regressziós előrejelzés feladatok megoldására használhatjuk. Amikor az előrejelzéstől eltérő feladatokat szeretnénk megoldani, más felépítésű hálózatok alkalmazása válik szükségessé.

Konvolúciós neurális hálózatok

Ezek a hálózatok nagymértékben különböznek a többitől, mivel elsősorban képfeldolgozási funkciókkal rendelkeznek. Emellett képesek más jellegű bementet (videó, hang stb.) is értelmezni. A tipikus felhasználás során egy kép adatait (pixel szinten) küldjük keresztül a hálózaton és kép által tárolt információ alapján történő osztályozás a végső célunk.

A konvolúciós neurális hálózat (convolutional neural network – CNN) a bemenetként megadott adatot nem egészében értelmezni, hanem részleteit szkenneli le. Abban az esetben, ha egy 1 000 x 1 000 pixel felbontású képet adunk meg bementként, nem a leghatékonyabb egy 1 000 000 (1 000 x 1 000) neuronból álló réteget használni a pixel szintű értelmezés során. Helyette inkább egy 100 x 100 képpont méretű szűrőt használunk, amelyen keresztül részleteiben áramlik az adat a hálózaton.

A konvolúciós neurális hálózatok által használt szűrő egység működése.
A konvolúciós neurális hálózatok által használt szűrő egység működése. Forrás.

A CNN hálózatokat két fő részre lehet osztani: jellemzők felderítése és osztályozás. A jellemzők felderítése során a kép egységein átlagolásokat (konvolúció) és összevonást, tömörítést végzünk, mely lépések segítenek speciális jellemzők felderítésében.

Például, ha egy macskát ábrázoló képet adunk meg a rendszer bemenetének, a jellemzők felderítése során a képpontok tömörítése megadja a képet jellemző formákat (fül, száj, lábak).

A kiderített jellemzők alapján a megfelelően paraméterezett és tanított osztályozó rész képes a jellemzők összességét vizsgálni és ezáltal a képen szereplő teljes képet értelmezni és osztályozni.

A konvolúciós neurális hálózatok tanításához előre feliratozott adatfáljok szükségesek. A rendszert jellemző hiperparaméterek (azon paraméterek, amelyek a struktúrát adják meg) kiválasztása jelenti a legnehezebb feladatot: neurális hálózat felépítése, azaz hány réteget használunk, illetve melyik rétegbe hány neuron kerüljön, egyes rétegekben használt aktivációs függvény, illetve a használt szűrő mérete és felépítése.

A konvolúciós neurális hálózat működésének bemutatása.
A konvolúciós neurális hálózat működésének bemutatása.

Egyik legelső gyakorlati alkalmazásuk a MNIST adatbázisban található, kézzel írt számjegyeket tartalmazó rendszer értelmezése, valamint a képek alapján a számjegyek felismerése volt. Az alábbi linken bárki ki tudja próbálni, hogyan ismeri fel a kézzel írt számjegyeket egy konvolúciós neurális hálózat, valamint hogyan működik a képpont szintű felderítés és az osztályozás.

Visszacsatolt neurális hálózatok

Az előrecsatolt neurális hálózatok nem rendelkeznek memóriával, azaz nem képesek a múltban történt eseményekre emlékezni. Ettől természetesen kivételt képez a tanítási folyamat, melynek során a neuronok súlyértékének beállítása történik.

A visszacsatolt neurális hálózatok (recurrent neural network – RNN) esetében az információ egy hurkon keresztül halad át, így amikor a neuron egy kimenetet ad meg, képes a korábbi bemenetekre adott választ figyelembe venni.

Képzeljük el, hogy egy előrecsatolt hálózat bemeneteként a “neuron” szót adjuk meg és rendszer karakterről-karakterre dolgozza fel az információt. Amikor az “r” bemenetre adott kimenetet számolja ki, már nem képes a korábban feldolgozott betűket figyelembe venni. Így, ha egy összetett objektum jelentését kívánjuk meghatározni, mindenképpen szükségünk van a részegységek és a köztük lévő kapcsolat figyelembevételére.

Visszacsatolt neurális hálózat értelmezése. x(t) bementi, h(t) kimeneti érték.
Visszacsatolt neurális hálózat értelmezése. x(t) bementi, h(t) kimeneti érték. Forrás.

A visszacsatolt neurális hálózat neuronja két bemenettel rendelkeznek: adott “t” időpillanatban a rendszeren keresztül haladó és a “t-1″, “t-2″ stb. korábbi értékek.

Gradiens probléma

Neurális hálózatok esetén a gradiens (bemenet szerinti parciális derivált) mutatja meg, hogy a bemenet minimális megváltozása esetén, milyen mértékben változik meg a kimenet. A gradiensre, mint a bemenet és kimenet közötti kapcsolatot jellemző függvény meredekségre is lehet gondolni.

Ha egy rendszer (hálózat felépítés és adatok) “nagy” gradienssel rendelkezik, a modell gyorsan tud a megadott adatok alapján tanulni, mivel kis eltérésű bemenetek hatására is megismeri a kimenetek változását. Ha a gradiens értéke kicsi vagy nullára csökken, a tanulási folyamat megáll.

A RNN hálózatok alkalmazása során két féle probléma merülhet fel: a túlfutó (exploding gradient) és az eltűnő gradiens (vanishing gradient) esete. Előbbi során az algoritmus túlzottan nagy jelentőséget tulajdonít a neurális hálózatban található súlyoknak, így nem képes megfelelő átmetet képezni a bemenet változtatásával. Ezáltal lehetetlenné teszi a hálózatnak megadott feladat megoldását. Eltűnő gradiens esetében, a gradiens értékünk viszont túlzottan alacsony, így a tanítási folyamat rendkívül sok időt és erőforrást vesz igénybe.

LSTM hálózatok

Az eltűnő gradiens probléma megoldására találták ki a hosszú-rövidtávú memóriával rendelkező hálózatokat (Long Short-Term Memory – LSTM). Az LSTM rendszer része a memóriafunkció, ami hasonlóan a számítógépek memóriájához, képes olvasni és írni a saját memóriájában. Ez lehetővé teszi, hogy a visszacsatolt neurális hálózat hosszú időn keresztül emlékezzen a korábban megadott bemenetekre.

A rendszer memóriája tulajdonképpen egy kapus cellaként jelenik meg, a kapu dönti el, hogy tárolja vagy törölje a cellában található adatokat, az információhoz rendelt fontosság alapján. Egy LSMT egységben jellemzően 3 kapu található. A bemeneti kapu határozza meg, hogy éppen érkező információt belépteti e a folyamatba, a törlő kapu törli, ha nem tartja a hálózat releváns adatnak, illetve a kimeneti kapu a kimenetre hatással lévő matematikai műveletet hajt végre.

Visszacsatolt neurális hálózat alkalmazási lehetősége: képek automata feliratozása. Forrás.

A visszacsatolt neurális hálózatokat többféle probléma megoldására lehet használni: audiovizuális anyagok szöveg szerinti értelmezése, képek automatikus feliratozása, gépi fordítás (magyar szavak sorozatából angol szavak szorzata), dokumentum osztályozás.

Autoencoder (AE)

Az autoencoder-ek a neurális hálózatok egy speciális fajtái. A bemeneti adatot az enkódolást végző terület egy tömörített reprezentációban tárolja el. Ezután a dekódoló rész a reprezentáció alapján generálja a kimetet. Ha az autoencoder-ek egyetlen célja a bemenet lemásolása lenne a kimeneti oldalra, kérdezhetnénk, hogy mi hasznuk van valójában?

Autoencoder egyszerűsített működési mechanizmusa, a bemenet és a kimenetek ábrázolása mellett.
Autoencoder egyszerűsített működési mechanizmusa, a bemenet és a kimenetek ábrázolása mellett. Forrás.

A valóságban viszont az autoencoder bemenet kimenetté történő másolása során végzett tanítás alatt a reprezentáció számunkra hasznos tulajdonságokat vesz fel. Azáltal, hogy a tömörített reprezentáció kisebb méretre korlátozzuk a megadott bemenethez képest, arra kényszerítjük az enkódolást végző területet, hogy a bemeneti adat legfontosabb jellemzőit tanulja meg.

A megtanult, fontos jellemzők alapján képes ezután a dekódoló rész a bementhez hasonló kimenetet generálni. Napjainkban az autoencoder-eket legtöbb esetben az adatokban található zaj és a dimenziók csökkentésére használják. Megfelelő strukturális korlátok megadásával megtanulnak olyan jellemzőket is, melyeket más módszerrel (pl. PCA – principal component analysis, főkomponens analízis) nem tudunk kideríteni.

Az autoencoder-ek maguktól tanulnak az adatokból, azaz nincs szükség új vagy speciális feldolgozási struktúra megalkotásához, hogy egy típusú bementi adatból, hatékony leképzéseket hajtsanak végre.

Autoencoder gyakorlati hasznosítása: szürkeárnyalatos képek színessé tétele. Forrás

A gyakorlatban használni lehet őket kép hiányzó részleteinek megfejtéséhez, szürkeárnyalatos képek színessé változtatásához vagy életlen képek élessé tételében.

GAN hálózatok

A GAN hálózatok talán az egyik legérdekesebb neurális hálózatok közé sorolt rendszer. Gyakorlatban megcáfolta azt a kijelentést, mi szerint egy számítógép vagy mesterséges intelligencia nem lehet kreatív.

A GAN-ok (Generative Adversarial Network) általában két különböző részegységből állnak: egy előrecsatolt és egy konvolúciós neurális hálózat alkotja őket. Az előrecsatolt hálózat feladata a tartalom generálása (generatív hálózat), míg a konvolúciós felelős a tartalom felismeréséért (diszkriminatív hálózat). A felismerő terület felelős azért, hogy megállapítsa, egy tartalom mesterségesen lett létrehozva vagy valódi e.

GAN hálózatok működésének egyszerűsített ábrája.
GAN hálózatok működésének egyszerűsített ábrája. Forrás

A generátor feladata – egy véletlen zaj mellett – a valósághoz minél jobban hasonlító adat generálása, melyet a diszkriminátor vizsgál meg és dönti el, hogy valódi vagy sem. A generatív hálózat gyakorlatilag a hamisítók egy csoportja, akik hamis pénzt nyomtatnak, a diszkriminatív hálózat pedig a rendőrség, akik próbálják felismerni a hamis pénzeket.

Mivel a két hálózatot váltott optimalizációval tanítják be, így a folyamat végén a generatív rendszer által generált adatok nem különböznek a valóságtól.

A gyakorlati alkalmazás lehetőségi végtelenek. A GAN hálózatok képesek mindent lemásolni, vagy egy változási modellt egyedi esetekre alkalmazni. Tegyük fel, hogy van egy adatbázisunk, ahol ugyanazokról az emberekről vannak fényképeink, melyek az életük különbőz időpontjaiban készültek (10 évesen, 20 évesen stb.).

Ha ezt az adathalmazt felhasználva megtanítunk egy GAN hálózatot, és elegendően sok adattal rendelkezünk, képesek leszünk bámely személy, bármely életszakaszában készített fényképe alapján megmondani, hogyan nézett ki 10 évvel ezelőtt és hogyan fog kinézni 20 év múlva.

Az öregedés modellezése GAN hálózatok segítségével (age-cGAN).
Az öregedés modellezése GAN hálózatok segítségével (age-cGAN). Forrás, Publikáció

Például divatszakma is rengeteget profitálhat a GAN hálózatokból: nem lesz szükséges többé egy modellnek a ruhakollekció összes darabját felpróbálni és fényképet készíteni, hanem a modell, a póz és a ruhadarabok információi alapján, egy tanított GAN hálózat képes az össze kombináció automatikus generálására.

Megadott póz alapján történő kép generálás. Forrás

Összefoglalás

Azt gondolom, a neurális hálózat a valaha feltalált egyik legszebb programozási technika, szemléletmód. A hagyományos programozási megközelítéssel ellentétben, nem az ember határozza meg a feladat megoldásához szükséges apró, pontos lépéseket, hanem a rendszer, a biztosított megfigyelési adatokból tanul és keres megoldást a problémára.

Napjainkban a mély neurális hálózatok kiemelkedő teljesítményt nyújtanak a gépi látás, beszédfelismerés és nyelvfeldolgozás témakörökben, de mint a cikkből is látszik, számos olyan további terület van, ahol adatok alapján lehet az üzleti döntéshozatalt vagy a problémamegoldást támogatni.

Felhasznált források

https://medium.com/cracking-the-data-science-interview/a-gentle-introduction-to-neural-networks-for-machine-learning-d5f3f8987786
https://medium.freecodecamp.org/an-intuitive-guide-to-convolutional-neural-networks-260c2de0a050
https://towardsdatascience.com/applied-deep-learning-part-4-convolutional-neural-networks-584bc134c1e2
https://ertedmar.hu/cikkek/konvolucio
https://towardsdatascience.com/recurrent-neural-networks-and-lstm-4b601dd822a5
http://colah.github.io/posts/2015-08-Understanding-LSTMs/

Python programozás legjobb offline és online eszközei

Python programozás legjobb offline és online eszközei

A Python programozás népszerűsége továbbra is töretlen. Bemutatom milyen alkalmazásokat érdemes használni a mesterséges intelligencia programozása során.

Python programozás helyzete

A Python mára a legnagyobb felhasználói bázissal rendelkező és legismertebb kódolási nyelv lett a világon. Ennek nem csak a mesterséges intelligencia és a gépi tanulás elterjedése az oka, hanem hogy számos előnnyel rendelkezik, beszéljünk web programozásról, vagy alkalmazás készítésről. Sok helyen a kódolás Svájci bicskájának is nevezik.

A Stackoverflow (egy platform ahol amatőrök és profik tesznek fel és válaszolnak meg programozással kapcsolatos kérdéseket) nemrég tette közzé, a programozási nyelvekkel kapcsolatos felmérését. Nagyon egyszerűen, a regisztrált felhasználókat kérdezték meg, mit gondolnak az egyes nyelvekről. Közel 180 országból, majdnem 90 000 fejlesztő töltötte ki a felmérést.

A Stackoverflow minden évben elkészíti a felmérést, amelyből kiderülnek az egyes programozási nyelvek népszerűségi és használhatósági eredményei.
A Stackoverflow minden évben elkészíti a felmérést, amelyből kiderülnek az egyes programozási nyelvek népszerűségi és használhatósági eredményei.

Ha általánosságban nézzük, a legtöbb kérdést az oldalon a Python-nal kapcsolatban teszik fel, megelőzve a JavaScrip-et. A kérdőív alapján a felhasználók majdnem 75%-a szereti a Python nyelvet (2. helyezett összesítve) és véleményük szerint ez a legkeresettebb kódolási nyelv is.

A mesterséges intelligencia és adattudomány körében a korábbi időszakban a R nyelv sokkal nagyobb népszerűségnek örvendett. Azonban inkább statisztikai és ábrázolástechnikai szempontból van előnye a Python-hoz képest. A Python sok könyvtárral rendelkezik az adatok manipulálásához, sokkal nyitottabb és rugalmasabb nyelv. Könnyen megtanulható és használható mindenki számára.

Következzen a három legismertebb program, amelynek segítségével programozni tudunk a kígyós (Python, mint piton) nyelven.

Google Colab – online mindenes

A Google Colab az egyik legnépszerűbb alkalmazás, a Jupyter notebook tervezési és működési rendszerén nyugszik. A nagy előnye, hogy nem szükséges alkalmazást letölteni vagy telepíteni a számítógépre, hanem online elérhető. A használata ingyenes, csak egy Google fiók szükséges hozzá. A Google Drive tárhelyen tudjuk létrehozni, tárolni és le- vagy feltölteni a .ipynb fájlokat, amelyeket a Colab használ.

A Jupyter és a Colab logója. A Colab a korábban fejlesztett Jupyter Notebook működési rendszerét használja. Forrás.
A Jupyter és a Colab logója. A Colab a korábban fejlesztett Jupyter Notebook működési rendszerét használja. Forrás.

A programok futtatása és a számítási folyamatok felhőben, a Google szerverein történnek. Így nagyobb feladatok esetén sincs szükségünk hatalmas számítási teljesítménnyel rendelkező számítógépre, megoldja helyettünk a Google a feladatot. Képfeldolgozás, gépi látás vagy mély tanulás (deep learning) alkalmazása esetén lehetőségünk van GPU (Tesla K80 GPU) vagy TPU (tensor process unit) ingyenes használatára is. Ez a segítség meggyorsítja a nagy számítási igényt jelentő programok futtatási sebességét.

A Google Colab-ban lehetőségünk van TPU (tensor process unit - tenzor feldolgozó egység) használatára, amely a mesterséges intelligencia tenzor struktúrájú problémáit a leggyorsabban oldja meg Python programozás során.
A Google Colab-ban lehetőségünk van TPU (tensor process unit – tenzor feldolgozó egység) használatára, amely a mesterséges intelligencia tenzor struktúrájú problémáit a leggyorsabban oldja meg Python programozás során.

Rengeteg mesterséges intelligencia és gépi tanulás könyvtár elérhető benne, és lehetőségünk van extrák telepítésére is. Gyakorlatban egy ideiglenes tárhelyre lehet feltelepíteni további könyvtárakat és kilépésig használni azokat. Egy korábbi cikkben bemutattam én is a Colab használatát és plusz könyvtárak telepítését.

Gyakran használom az alkalmazást, mert megoszthatom a projekteket, kommentet lehet tenni más munkájához, emellett prezentációkat is lehet építeni. Probléma nélkül lehet a kódsorba beilleszteni képeket és szövegeket, ezért például oktatási célokra is kiválóan használható. A Mesterin Start tanfolyam programozási feladatát is Google Colab programban mutatom be.

Anaconda / Spyder – aki nem piton…

Az Anaconda egy nagyon könnyen használható Python környezet, mely ma már a mesterséges intelligencia alkalmazás igényeire lett szabva. Lehet kódolni (Spyder) vagy Jupyter notebookon dolgozni a program segítségével. Könnyen kezelhetők a Python könyvtárak, telepíthetők és eltávolíthatók grafikus vagy parancssor jellegű felületen is.

Anaconda, a világ legnépszerűbb Python / R adattudományi, mesterséges intelligencia platform. Legalábbis a felhívás ezt mondja.
Anaconda, a világ legnépszerűbb Python / R adattudományi, mesterséges intelligencia platform. Legalábbis a felhívás ezt mondja.

Az Anaconda használható Python 2 és Python 3 környezetben is, könnyen telepíthető és több platformon elérhető (OSX, Linux, Windows). Nehézséget jelenthet, hogy meg kell szokni a használatát, egyes könyvtárak nem minden esetben működnek az első telepítéskor. Illetve, mivel mindent a saját tárhelyen tárolunk és futtatunk, szükség van egy komolyabb számítógépre és jó pár GB szabad tárhelyre.

Az Anaconda platformon alapesetben elérhető Python programozási könyvtárak. Ezeket természetesen törölni is lehet, az újak telepítése is könnyen megoldható.
Az Anaconda platformon alapesetben elérhető Python programozási könyvtárak. Ezeket természetesen törölni is lehet, az újak telepítése is könnyen megoldható.

Kezdőknek mindenképpen ajánlható az Anaconda, mert csak egy programot kell telepíteni és szinte az összes gépi tanulás könyvtár (pl. Pandas, Sklearn, Tensorflow) használható. Lehet jegyzetelni Jupyter-ben és kódolni mellette Spyder-ben.

A Spyder egy nyílt forráskódú környezet, mely integrálja az adattudomány alapvető könyvtárait (NumPy, SciPy, Matplotlib). Az grafikus felület nagyon hasonlít a RStudio-hoz.

Anaconda Spyder Python programozási környezet (itt tanultam meg a mesterséges intelligencia alapjait, de nekem nem a kedvencem).
Anaconda Spyder Python programozási környezet (itt tanultam meg a mesterséges intelligencia alapjait, de nekem nem a kedvencem).

A program az alábbi linken ingyenesen letölthető.

Sublime text – a személyes kedvenc

Nagyon hosszú ideig használtam a Spyder a programok elkészítéséhez. De nem szerettem, hogy nincsenek jó színkiemelések valamint túl bonyolult az elrendezés és túl sok információt tesz a felhasználó elé.

Véletlenül, egy videóban láttam meg a Sublime Text programot és tesztelése után soha többet nem indítottam el a Spyder-t. A program egy kis erőforrásigényű program szerkesztő, mely extra szolgáltatásokkal is rendelkezik.

A Sublime Text felhasználói felülete. Ismeri a Python parancsokat, így gyorsan és könnyen átláthatóvá válik a kód.
A Sublime Text felhasználói felülete. Ismeri a Python parancsokat, így gyorsan és könnyen átláthatóvá válik a kód.

Ismeri a Python parancsokat és teljes mértékben a saját programozási igényre lehet szabni a beállításokkal. Csak egy kódolás és egy visszacsatolási felülettel rendelkezik, így könnyen átlátható és gyorsan megtanulható a használata.

Nagyon fontos, hogy ingyenesen letölthető és minden platformon (Windows, OSX, Linux) használható. Mivel csak egy programszerkesztő, a mesterséges intelligencia könyvtárakat külön kell beszerezni mellé.

A legegyszerűbb módszer, ha az Anaconda letöltött és telepített könyvtárait betallózva használjuk például a gépi tanulás, vagy adattudományi eszközöket. A két program összekötéséhez többféle leírást is lehet találni az interneten.

A Sublime Text 3 az alábbi linken ingyenesen letölthető.

Összefoglalás

Aki manapság az adattudomány vagy a mesterséges intelligencia világába szeretne érvényesülni, nem tudja elkerülni a Python nyelvet. Említettem már milyen könnyen elsajátítható a használata és milyen további előnyökkel rendelkezik, azonban egy nyelv tanulása során a legfontosabb milyen grafikus felületet látunk, az alkalmazás mennyire segíti a munkánkat.

Bemutattam pár lehetőséget, felsorolva az általam vélt előnyöket és hátrányokat, remélem tudtam iránymutatást adni. Ezután mindenki saját ízlése szerint válasszon a lehetséges alternatívák közül.

Karrier és fizetések a mesterséges intelligencia világában

Karrier és fizetések a mesterséges intelligencia világában

Intro

A mesterséges intelligencia alkalmazásához kapcsolódó szakmák és álláslehetőségek száma a legnagyobb mértékben növekszik napjainkban. Rendkívül fontos szerepe van annak, hogy számottevően mérséklődött az adatgyűjtő szenzorok, és az adatokat gyűjtő tárhelyek ára. Így az összes iparágban, legyen szó termelésről vagy szolgáltatásról az adat alapon történő döntéshozatal, optimalizálás és fejlesztések jelenthetik a hatékonyság következő lépcsőjét.

Ebben a cikkben szeretnék kitérni, hogy a mesterséges intelligenciához és adattudományhoz kapcsolódóan milyen szakmák alakulnak ki. A jelen idő használata az előző mondatban szándékos, ugyanis a technológia és rendelkezésre álló eszközök folyamatos fejlődése új utakat nyithat további szakmák kialakulásához. Ez követően, nem reprezentatív minta alapján, bemutatok pár konkrét álláslehetőséget és a hozzájuk kapcsolódó elvárásokat.

Bármilyen helyzetről beszélünk, minden esetben nagyon fontos mi jelenik meg a mérleg másik nyelvén, azaz milyen kompenzációs csomagra számíthatnak, akik elindulnak a mesterséges intelligencia szakmákhoz vezető rögös úton. Érdemes végigolvasni a cikket, ugyanis a fizetések szempontjából meglepő dolgok derülnek majd ki a végén.

Mesterséges intelligencia, mint alapkompetencia


Mielőtt még rátérek a mondanivalóra, szeretném kiemelni egy nagyon fontos tényt. Egy korábbi cikkben részleteztem milyen elemei vannak a mesterséges intelligenciának (gépi tanulás, nyelvfeldolgozás, mesterséges látás stb.). Tudni kell, hogy ezek a részegységek a jelenleg létező szakmákban is fontos tényezők lesznek.

Ahogy 40 éve a jogosítvány, 20 éve a nyelvtudás jelentett komoly helyzetelőnyt a munkaerőpiacon, hasonló tendencia látszik kialakulni az informatika képességekkel is. Mivel a szolgáltató és termelő ágazatokban komoly informatikus hiány van, jelenleg és jövőben is még inkább elvárás lesz az előbb említett tudás elsajátítása.

Ez az jelenti, hogy például a termelés ágazatban dolgozó mérnököknek számára nagy versenyelőnyt jelent a munkaerőpiacion a szakmájuk mellett elsajátított adatgyűjtési, adatmodellezési ismeretek. A mesterséges intelligencia alkalmazásával tudnak extra üzleti előnyt biztosítani a munkaadó számára.

Mesterséges intelligencia technológiák fejlettségi állapota és üzleti érték képviselete. A gépi tanulás nagyon előkelő helyen szerepel.
Mesterséges intelligencia technológiák fejlettségi állapota és üzleti érték képviselete. A gépi tanulás nagyon előkelő helyen szerepel. Forrás.

Hasonló példa lehet a pénzügy, a logisztika, a humánerőforrás, a marketing vagy szinte bármely szakma, ahol adatok állnak rendelkezésre, és amely adatokból modellezni, előrejelzéseket lehet készíteni. Ettől függetlenül, természetesen fontos szerepet töltenek be a dedikált, mesterséges intelligencia gyakorlati alkalmazásával megbízott szakemberek is.

A jelenleg megnyíló állások száma szempontjából a legnagyobb növekedést produkálja a szakma az informatikai szektoron belül, de szinte az egész munkaerőpiacon az adatokkal foglalkozó specialisták tapasztalják majd a legerősebb nyomást, ugyanis a munkáltatók versenyezni fognak a kegyeikért.

De milyen szakmák alakultak ki?

Az előző részben leírtakból nem egyből következik az, hogy mostantól mindenki mesterséges intelligencia szakembere legyen.

Viszont a jövőre való tekintettel nem csak specializálódó személyeknek érdemes a tudás megszerzése, hanem bármely olyan szakmában dolgozó munkavállalónak előnyt jelenthet, akik a folyamataik hatékonyságát szeretnének növelni.

A mesterséges intelligencia részegységeitől függetlenül, 3 fő irány létezik a piacon, azon informatikai beállítottságú szakmák között, melyek az adat alapú döntés hozatal támogatását szolgálják. Azt emeljük ki, hogy az angol szavak magyarra fordított verzióját még szokni kell fülnek.

Data Scientist – Adattudós

Más néven Adat Menedzser vagy Statisztikus. Az adattudós képes az adat alapú projektek vezetésre, kezdeti fázistól a lezárásig. Segíteni tudnak nagy mennyiségű adat tárolásában, mesterséges intelligencia modellek készítésében és a feltárt problémák prezentálásában. Jellemző készségek: matematika, programozás, statisztika.

Data Engineer – Adatmérnök

Más néven Adatbázis adminisztrátorok, vagy Adattervezők. Ők azok a probléma megoldásához kapcsolódó szakmai tapasztalatokkal is rendelkeznek és képesek a mesterséges intelligencia eszközrendszerének használatával az összegyűjtött adatok feldolgozására az adattudós utasításai alapján. Szükséges készségek: programozás, matematika, nagy adat.

Data Analyst – Adatelemző

Hívhatjuk úgy is, hogy Üzleti Elemző. Ez a szakma már napjainkban is fontos szerepet tölt be, fő feladatuk az adatok és belőlük nyert információk megfelelő ábrázolása. Ezt úgy kell kivitelezni, hogy azt a vállalat dolgozói, döntéshozói megértsék az információt. Eszközeik az Excel, Tableau, SQL. Alkalmazott készségek: statisztika, kommunikáció, üzleti tudás.

És milyen konkrét szakmák?

Ha tovább lépünk a konkrét a konkrét munkakörre, 2019-ben a piacot két lehetőség határozza meg: Machine Learning Engineer (Gépi Tanulás Mérnök) és a Data Scientist (Adattudós). Utóbbi gyakorlatilag azon szakemberek, akik mesterséges intelligencia és gépi tanulás projektvezetői, szakértői az iparban.

Adattudós

Adattudós esetében az elsődleges elvárás a nagy adat (big data) platformok ismerete, mint például: Hive, Hadoop, MapReduce, Pig, Spark. Programozási nyelv tapasztalat szempontjából a Python, R, Scala és SQL a lehetséges opciók.

Gépi tanulás mérnök

Számukra kulcsfontosságú feladat, hogy képesek legyenek mesterséges intelligencia modellek gyakorlati alkalmazására és nyelvfeldolgozásra, amikor nagy mennyiségű adattal foglalkoznak. A pozíció betöltéséhez a vállalatok olyan személyeket részesítenek előnybe, akik gyakorlati tapasztalattal rendelkeznek a főbb szoftver fejlesztői eszközökkel (például Eclipse, IntelliJ).

Az álláshirdetésekben főként a felsőfokú végzettségű (matematika, számítástechnika, mérnöki tudományok) jelöltek pályázatait várják elsősorban. A programozási nyelvek szempontjából az elsődleges szinte minden esetben a Python, amelynek néhány előnyéről egy előző cikkben is beszámoltam.

Összességében erős matematikai tudással rendelkező technológiai szakemberekre várnak a cégek, akiknek ismerniük kell a gépi tanulás, mély tanulás és neurális hálózatok témaköreit. Emellett programozási és analitikai készségekkelis rendelkezniük kell. Szorosan kapcsolódik ide, hogy a felhő technológia ismerete egyre komolyabb elvárás a munkáltatók részéről.

Milyen nyitott pozíciók vannak Magyarországon?

A pozíciók feltérképezéséhez a LinkedIn Job felületét használtam, a Magyarország területére szűrve. Meg kell említeni, hogy a bemutatott állások a cikk írás pillanatában biztosan nyitottak voltak, az itt megjelenő adatok a későbbiekben tárgytalanok lehetnek.

A gépi tanulás mérnök és adattudós LinkedIn álláshirdetések számának változása 2017 és a 2018 között.
A gépi tanulás mérnök és adattudós LinkedIn álláshirdetések számának változása 2017 és a 2018 között. Forrás.

A cikk elején beszéltem róla, hogy szokni kell az angol szakmák magyar nyelvű fordítását. Ez a munkaerőpiacra is igaz, mivel míg a „gépi tanulás” kulcsszóra 3 db találat jelenik meg, addig a „machine learning” esetén ez a szám 155-re változik. Az angol nyelv ismerete is kulcsfontosságú dolog már a mesterséges intelligenciához kapcsolódó hirdetések böngészése során is.

Ha végig görgetünk a listán, észrevehető, hogy már nem csak a startup cégek keresnek mesterséges intelligencia szakembereket, hanem a nagyobb bankok, telekommunikációs cégek és IT vállalatok is megjelennek a lekérdezésben.

Így található meg a listán többek között a MOL, a VODAFONE, EGIS, CITI, MICROSOFT, NOKIA, Continental, Bosch és a humán erőforrással foglalkozó Randstad Hungary is.

Data Scientist állás példája

A magyar nyelv miatt az Egis, Data Scientist pozícióját nézzük meg részletesebben.

Egis gyógyszercég Data Scientist pozíciója.
Egis gyógyszercég Data Scientist pozíciója.


Feladatok

– Adatvezérelt üzleti folyamatok kialakításának támogatása,
– Adatbányászat és ehhez kapcsolódó riportolási folyamatok fejlesztése,
– Adatok vizualizációja, annak kommunikálása,
– Gépi tanulási módszerek (Machine learning) használata,
– Statisztikai programozási nyelv(ek) használata,
– Optimalizációs, prediktív modellek készítése,
– Az üzleti digitalizáció támogatása,
– Elemzési eszköztár fejlesztése Big Data környezetben,
– Data science adatfeldolgozási és elemzési eszköztár beillesztése kontrolling rendszerekbe.

Elvárt szakmai kompetenciák

– Többéves lehetőleg nagyvállalati környezetben, hasonló munkakörben szerzett tapasztalat,
– Adatvizualizációs eszközök ismerete,
– Adatbányászati, Big Data elemzési, BI tapasztalatok,
– SQL ismeret,
– Python, R programozási nyelvek ismerete,
– Közgazdász végzettség,
– Kommunikációs szintű angol nyelvtudás,
– Analitikus szemléletmód,
– Nagyfokú fejlődési igény, nyitottság a folyamatos tanulásra, új ismeretek elsajátítására,
– Proaktív személyiség.

Machine learning engineer példája

Az Ultinous egy mesterséges intelligenciára alapozott videoanalitika technológiát fejlesztő cég. Mély tanulás (Deep learning) alapú arcfelismerő algoritmusuk, elsősorban kereskedelmi, biztonsági és webes alkalmazásokat támogat. Saját kutató és fejlesztői bázissal rendelkezek.

Gépi tanulás mérnök állás példája.
Gépi tanulás mérnök állás példája.

Feladatok

-A legújabb machine learning/AI technológiák kutatása, tesztelése,
– Deep Learning alapú képelemző algoritmusok tervezése, fejlesztése és tesztelése,
– Az elkészített algoritmusok integrálása termékeinkbe,
– Junior munkatársak munkájának segítése,
– Szoros együttműködés a budapesti irodánkkal.

Elvárások

-Informatika MSc végzettség vagy 3+ év szakmai tapasztalat
– Tapasztalat C++ és/vagy python programozási nyelveken
– Tanuló algoritmusok terén szerzett tapasztalat
– Képfeldolgozási ismeretek
– Analitikus gondolkodás, jó problémamegoldó képesség
– Erős matematikai alapok
– Önálló munkavégzés
– Angol szövegértés

Tapasztalatok összefoglalása

Az adattudós esetében az elsődleges elvárás az üzleti folyamatok megértése és azok támogatása statisztikai eszközökkel. Ide tartoznak a nagy adat elemzések és a gépi tanulás algoritmusok implementálása is.

Ezen feladatok alapján alakulnak az elvárások: IT vagy közgazdász végzettség, nagyvállalati tapasztalata és adatbázis (SQL) ismeret szerepel a programozási nyelv elvárás mellett.

Gépi tanulás mérnök esetén, szinte mindig konkrét feladatkörről beszélünk, sokkal inkább fontos a programozás és a gyakorlati feladatok megoldása.

Elvárások tekintetében a matematikai háttér és a mérnöki gondolkodásmód a kiemelendő, az adott feladat elvégzéséhez szükséges kompetenciák mellett. A fent említett példában, egy gépi látás alkalmazás esetén a Python mellett szükségesek egyéb nyelvek ismerete is, valamint az algoritmusok és a képfeldolgozási megoldások elsajátítása.

Fizetések

Tudott tény, hogy az informatikai szektorban az átlaghoz mérten magas fizetéseket lehet elérni külföldön és Magyarországon is.

Mivel a mesterséges intelligenciával foglalkozó cégek által egyre nagyobb kereslet alakul ki, az elérhető fizetések is az egyik legmagasabb értéket veszik fel az IT területen belül.

A konkrét információk a HAYS fizetési körkép kiadványából használatam fel. Ez a dokumentum évente jelenik meg és az összes ágazat fontosabb pozíciójának fizetését tartalmazza. A konkrét összegek esetében mindig bruttó érték szerepel a továbbiakban.

A kiadvány említést tesz róla, hogy körülbelül 22 000 betöltetlen informatikai pozíció van a magyar piacon. Rengeteg kutatás és fejlesztési (K+F) központ nyílik és a legtöbb szektorban zajlik a digitális transzformáció. Ezáltal még több informatikai szakemberre van szükség. Ezen túl, a fizetések további emelkedése is várható a következő években.

A szektor egyik legnagyobb változását éli meg, rengetegen képzik át magukat erre a területre végzettség, nem és életkortól függetlenül. A most nyíló, új pozíciók nagy részében nem a programozási ismeret a legfontosabb a munkáltatók számára, hanem a menedzsment, kommunikáció és más iparágakban szerzett szakmai tapasztalat kerül a fókuszba.

A dokumentum kiemeli, hogy az idei év legvonzóbb területei a felhő alapú megoldások, gépi tanulás, mesterséges intelligencia, adat tudomány és IoT (Internet of Things, Dolgok internete).

Fejlesztés területe

Junior szinten az adattudományokkal foglalkozó szoftver mérnökök minimális fizetését bruttó 500 000 Ft-nak adják meg, míg a tipikus érték 650 000 Ft. Java vagy C/C++ fejlesztők esetén ezek az összegek 50 000 Ft-tal alacsonyabbak.

Egyel magasabb tapasztalati szinten már 900 000 Ft a tipikus fizetés adattudó és a gépi tanulás mérnök esetben, de a jelentés szerint akár 1 millió forintot is meghaladhatja a maximális érték.

Expert és vezető szinten a tipikus jövedelem 1.2 millió és 1.5 millió forint között alakul, szemben például mobil alkalmazás fejlesztéssel foglalkozók 1.1 és 1.5 millió forintos eredményével.

Elmondható, hogy a fejlesztés területen, egy-két kivételtől eltekintve az adattudomány és a mesterséges intelligenciához kapcsolódó szakterületek biztosítják a legmagasabb elérhető jövedelmet, amely érték, már pár év tapasztalat után hét számjegyű is lehet.

Infrastruktúra

Az infrastruktúrába tartozó állások esetén nagy részben az adattudósokról beszélünk. Az jövedelmek nem annyira kiemelkedők, mint a fejlesztési vonalon, de így sincs ok szégyenkezni a többi szakterület (hálózat, biztonság) mellett.

Üzleti intelligencia témakörben, egy tapasztalt mérnök esetében 750 00 és 900 000 Ft között alakul a bruttó jövedelem. Vezetői pozícióban ezen értékek rendre 800 000 és 1 000 000 Ft között változnak a HAYS felmérésben szereplő adatok alapján.

Menedzsment oldalon, már nem ennyire elhatárolható, mely pozíciók tartoznak a mesterséges intelligencia témaköréhez. Azonban kijelenthető, hogy 1-3 éves tapasztalattal ~ 800 000 Ft, 3-5 év esetén ~ 1 000 000 Ft és több mint 5 év tapasztalat esetén 1 300 000 Ft körül alakul az elérhető bruttó jövedelem.

Foglaljuk össze

Összegzésként két fontos dolgot emelnék ki. A mesterséges intelligenciához kapcsolódó szakmák most kezdik aranykorukat élni. A digitális transzformáció miatt egyre több adat áll a vállalatok rendelkezésére működésükkel kapcsolatban.

Egyrészről nagy szükség van már jelenleg is olyan szakemberekre, akik gyakorlati tapasztalat alapján képesek üzleti eredményt biztosítani az összegyűjtött adatok segítségével. Ez a nyomás a jövőben tovább növekszik, ellene csak a szakmai tapasztalattal rendelkezők átképzése jelenthet megoldást.

Másik oldalról kulcs tényező, hogy a legtöbb esetben érdemes a mesterséges intelligencia témakörével foglalkozni, mivel a munkaerőpiac egyik legfontosabb és a legjobban megbecsült szakembereivé válhatnak az ilyen jelleggű tudással rendelkező dolgozók.