Umelá inteligencia čoraz viac zasahuje do oblastí, ktoré boli doteraz prevažne doménou ľudí. Môžeme ju označiť za fenomén, ktorý v súčasnosti hýbe svetom a je len otázkou času, kedy zásadne ovplyvní našu budúcnosť. O umelej inteligencii, či ako sa stať programátorom a čo k tomu budeš potrebovať sme sa rozprávali s Martinom Spanom.

Sleduj Fontech aj na sociálnych sieťach!

FacebookInstagramYouTube

Martin Spano je slovenský informatik a spisovateľ, ktorý sa naplno venuje výskumu umelej inteligencie. Prednáša na technologických konferenciách a zapája sa do verejnej diskusie o umelej inteligencii na Slovensku.

Zobraziť celú galériu (0)
Martin Spano so svojou knihou, Archív Martin Spano

Napísal knihu, ktorá v preklade vyšla pod názvom Umelá inteligencia v orechovej škrupinke. Kniha sa ihneď po uvedení stala najpredávanejším titulom vo svojej kategórii na Amazone. Je naozaj ťažké stať sa programátorom umelej inteligencie? Má toto povolanie vôbec zmysel v našich končinách?

V článku sa tiež dozvieš:
  • Ako sa Martin dostal k strojovému učeniu
  • Či je ťažké stať sa programátorom umelej inteligencie
  • Čo budeš potrebovať na to, aby si sa stal programátorom
  • Či má vôbec zmysel venovať sa umelej inteligencii v našich končinách
Zaoberáš sa výskumom umelej inteligencie, pričom prednášaš aj na rôznych technologických konferenciách. Taktiež si spomínal, že umelú inteligenciu aj programuješ. Čo to vlastne znamená?

Aby som mohol zodpovedať túto otázku, musím najskôr definovať niekoľko pojmov. Umelá inteligencia (artificial intelligence) je podoblasť počítačovej vedy, ktorá sa zaoberá vytváraním inteligentných strojov, t.j. strojov, ktoré prejavujú inteligenciu podobnú tej ľudskej. Programuje sa pomocou strojového učenia (machine learning), konkrétne pomocou metódy zvanej hlboké učenie (deep learning) založenie na použití neurónových sietí (neural networks). Strojové učenie je spôsob, kedy naprogramujeme algoritmus, na základe ktorého sa počítač učí sám, oproti klasickému spôsobu programovanie rozhodovacou metódou (if-then-else).

Zobraziť celú galériu (0)
Možno sa čoskoro dočkáme aj takýchto robotov, pixabay

Najpoužívanejší spôsob strojového učenia je pomocou už spomínaných neurónových sietí, kedy na počítači vytvoríme reprezentáciu umelých neurónov a ich prepojení, ktoré sú v prípade hlbokého učenia rozdelené do niekoľkých vrstiev – vstupná vrstva, skryté vrstvy a výstupná vrstva. Pre lepšie pochopenie uvediem konkrétny príklad.

Predstavme si, že od programu chceme, aby rozoznal, či sa na obrázku nachádza mačka. V klasickom programovaní, ktoré ale v takýchto prípadoch nefunguje dobre, by sme definovali, čo to je mačka. V prípade hlbokého učenia vytvoríme neurónovú sieť, ktorú vytrénujeme na veľkom množstve obrázkov. Ona si sama následne vytvorí vnútornú reprezentáciu, na základe ktorej bude vedieť mačky na obrázkoch detekovať.

Možno niektorí ľudia ani nevedia, ako sa k niečomu takému dostať. Ako si sa k strojovému učeniu dostal ty?

Témou umelej inteligencie sa zaoberám od útlej mladosti, ale až v posledných rokoch nastali na jej rozvoj vhodné podmienky – dostatočný výkon počítačov, dostatok dát na strojové učenie a teoretické objavy vo forme hlbokého učenia.

Pred nejakým časom som kompletne prešiel z Javy na Python, to bol môj prvý krok, matematické základy som mal z matfyzu, akurát som si ich oprášil cez online kurzy a následne som začal programovať lebo prax je asi ako vo všetkom najdôležitejšia.

Určite je mnoho ľudí, ktorých umelá inteligencia zaujíma a chceli by sa jej venovať aj vo svojom profesijnom živote. Ako sa môžem stať programátorom umelej inteligencie?

Konkrétne sa táto pozícia volá inžinier strojového učenia (machine learning engineer). V podstate by som povedal, že sa jedná o klasického programátora, ktorý ale neprogramuje klasicky, ako som popísal vyššie, čiže pozícia vhodná pre tých, ktorý majú o programovanie záujem. Oproti klasickému programovaniu sa v strojovom učení využíva oveľa viac matematiky a to konkrétne lineárna algebra, štatistika, pravdepodobnosť a kalkulus.

Okrem toho je vhodné mať základy počítačovej vedy ako algoritmy a dátové štruktúry a vedieť s dátami pracovať, konkrétne predpripraviť ich algoritmus do vhodnej podoby na učenie. Prakticky všetky štúdiá informatiky na Slovensku už ponúkajú umelú inteligenciu ako študijnú špecializáciu. Ale inžinierom strojového učenia sa môžete stať aj poctivým systematickým samoštúdiom, nakoľko sú relevantné kurzy často zadarmo na internete.

Ktorým programovacím jazykom by som mal začať?

Pokiaľ nemáte úplne žiadny skúsenosti s programovaním, začnite s Pythonom. Patrí v súčasnosti medzi najpopulárnejšie, podľa môjho názoru do dvoch rokov predbehne v používaní aj Javu a C++ a stane sa neohrozeným kráľom medzi programovacími jazykmi. Zároveň je to čo sa týka osvojenia jeden z najľahších jazykov. A dá sa využiť veľmi univerzálne.

Viete ho využiť aj v iných oblastiach ako informatika, napríklad vo finančníctve alebo pri bežnej automatizácii práce na počítači. Takže ak by ste sa aj neskôr rozhodli, že strojové učenie nie je pre vás, nevadí, pretože Python využijete prakticky všade – od naprogramovania jednoduchej aplikácie vo Windowse až po autonómne auto.

Spomínal si hlavne programovací jazyk Python. Môžeme povedať, že v strojovom učení sa využíva hlavne tento jazyk?

Je najobľúbenejší, ale strojové učenie sa dá robiť aj v “tradičných” programovacích jazykoch ako Java. Výhodou Pythonu je, okrem už vyššie spomínaných, jeho lepšie integrácia s nástrojmi ako TensorFlow. TensorFlow je framework pre hlboké učenie, ktorý uľahčuje prácu s ním.

TensorFlow je z nich najznámejší, pretože bol jeden z prvých a pochádza od firmy Google. Všetky produkty od Google stavajúce na strojovom učení, čo sú v súčasnosti už prakticky všetky, používajú TensorFlow. Nie je to však jediný framework. Nebudem však zatiaľ kvôli jednoduchosti ostatné spomínať.

Väčšina mladých ľudí, ktorí začínajú premýšľať o svojej budúcnosti, plánujú svoju kariéru práve v oblasti IT. Oplatí sa aj v našich končinách venovať čas štúdiu strojového učenia?

V súčasnosti sa vývoj umelej inteligencie sústreďuje hlavne v USA a Číne, v prípade USA nakoľko je to tradične vedecky najvyspelejšia krajina, v Číne nakoľko si krajina vytvorila národnú stratégiu rozvoja umelej inteligencie s cieľom stať sa svetovou jednotkou v oblasti do roku 2030. Platy sa v USA na naše pomery pohybujú v astronomických čiastkach, 10.000 dolárov mesačne nie je v oblasti nič výnimočné.

Zobraziť celú galériu (0)
Programátori si vedia prísť na veľmi slušné peniaze, Pixabay

Môj predpoklad je, že programátorský rozmach v oblasti umelej inteligencie nastane na Slovensku za 1-2 roky a hlad po pracovníkoch v oblasti bude ešte väčší ako v súčasnosti po programátoroch. Produkty na báze umelej inteligencie majú totižto enormný potenciál zvýšenia produktivity pretože dokážu minimalizovať náklady, maximalizovať zisky a optimalizovať procesy vo firmách. Jeden rok je aj približná doba, na základe ktorej si môže záujemca o strojové učenie pri poctivej práci túto oblasť osvojiť, takže ak začnete teraz, za rok sa o vás budú trhať.

Povedzme, že sa rozhodnem venovať svoj čas vzdelávaniu v oblasti strojového učenia. Potrebujem mať na vývoj nejaký špeciálny hardvér?

Postačí priemerný počítač. Pokiaľ by však kvôli objemu dát alebo zložitosti operácii naše hardwarové vybavenie nestačilo, dá sa za veľmi rozumnú cenu prenajať výpočtový výkon v Cloude, v prípade použitia TensorFlow-u napríklad priamo Cloud TPU (Tensor Processing Unit) od Google.

Zobraziť celú galériu (0)
Umelá inteligencia v podaní Nvidia, Ming-Yu Liu/YouTube

Zaujímavosťou je, že výpočtový výkon v prípade strojového učenia zabezpečujú grafické karty lepšie ako procesory, keďže sú na to potrebné rôzne maticové operácie, s ktorými si lepšie vedia poradiť. To je aj jeden z dôvodov, prečo sa takej nenápadnej firme ako NVidia dnes tak dobre darí.

V dnešnej dobe sa na nás informácie valia z každej strany. Môžeš prezradiť, ako najlepšie zostať up-to-date v množstve informácii o strojovom učení?

Informácii je naozaj obrovské množstvo, ja sám sa chcem na svojich sociálnych sieťach venovať tento oblasti, nakoľko ma o to moji followeri žiadajú, tak ma môžete sledovať, keďže už v najbližšej dobe chcem produkovať relevantný obsah.

Dobrým miestom pre získanie cutting edge informácii je Twitter, kedže je táto sociálna sieť medzi výskumníkmi hlbokého učenia veľmi populárna. Pre všeobecné informácie je dobré odoberať Topic “Artificial Intelligence” a “Machine Learning” na Google News.

Čo by si ešte odkázal všetkým, ktorý sa chcú stať programátormi strojového učenia?

Ako odpoveď ma napadá vtipné meme, ktoré trefne popisuje spôsob, ako sa strojovo-učia Google produkty – “Ak na prvýkrát neuspeješ, skús ešte miliardu-krát” (smiech)