Martin Spano: jedine umelá inteligencia dokáže mamutie objemy dát zmysluplne analyzovať a využívať

98
Martin Spano je autorom bestselleru na amazon.com The Artificial Intelligence in a Nutshell a programátorom, ktorý má vášeň pre umelú inteligienciu. 
S Martinom si už nejaký čas píšem, žeby sme pre robime.it pripravili rozhovor. Napadlo náš, že by sme sa mohli viac venovať programovaniu AI a témam ako machine learning a deep learning. Martin je ochotný odpovedať na vaše otázky, napíšte ich do komentára. 
 
Aký je rozdiel medzi machine learning, deep learning, neural networks? Čo si môžeme pod tým predstaviť?
 
Umelá inteligencia je oblasť štúdia v informatike, zaoeberajúca sa, zjednodušene povedané, reprodukciou ľudskej inteligencie. Spôsob, ako umelú inteligenciu vytvárame, sa volá machine learning a najrozšírenejším algoritmov machine learning je deep learning, ktorý funguje pomocou neural network.
 
Počul som, že v princípe netušíme ako neural networks fungujú, je to pravda? 
 
Princíp fungovania neurónových sietí sme odpozorovali z predpokladaného fungovania mozgu. Tvoria ju umelé neuróny prepojené spojeniami. V prípade deep learning má niekoľko vrstiev – vstupnú a výstupnú vrstvu, medzi ktorými sa nachádzajú skryté vrstvy. Vstup prichádza vstupnou vrstvou, výstup každej skrytej vrstvy smeruje do vstupu priľahlej skrytej vrstvy až po výstupnú vrstvu, ktorá povie výsledok. Ako príklad môžeme použiť neuronovú sieť na detekciu psa na obrázku. Vstupná vrstva dostane obrázok, počiatočné vrstvy pracujú s jednotlivými pixelmi, neskoršie s tvarmi, a tak sa zvyšuje úroveň abstrakcie až napokon výstupná vrstva povie či sa na obrázky nachádza pes. To, čo častokrát nevieme je, prečo sa neurónová vrstva rozhodla tak ako sa rozhodla, keďže si sama vytvára vnútornú štruktúru, na základe ktorej sa rozhoduje.
 
Vedel by si viac objasniť, čo je to tá vnútorná štruktúra? Je to niečo ako jej skúsenosť, ktorú si pamätá?
 
Pravdupovediac nie, pretože skutočné vnútorné fungovanie neurálnej siete nie je ľahké objasniť. Existujú však prístupy, ktoré sa v prípade chybného fungovania snažia odhaliť dôvod chyby. Známy je príklad neurálnej siete na rozoznanie psa od vlka, kedy však v jednom prípade s nevysvetliteľných príčin sieť detekovala vlka. Spätným hľadaním chyby sa zistilo, že to bolo nie kvôli črtám zvieraťa, ale prostrediu, v ktorom sa nachádzalo – za psom sa nachádzal sneh, pri čom sa sneh v trénovacích dátach vyskytoval vždy iba pri vlkoch.
 
Čo to je TensorFlow? Sú aj ine platformy na vývoj AI?
 
Tensorflow je najobľúbenejší framework pre deep learning. Google ho vytvoril pre potreby strojového učenia vo svojich produktoch ako prekladač či vyhľadávač, v roku 2015 ho open-sourcoval. Beží na osobnom počítači alebo na Google Cloude. Na jeho používanie sa preferovane používa Python, ale má podporu aj pre ostatné jazyky. Významné technologické firmy nasledovali Google a vydali vlastné deep learning frameworky, Facebook vydal Cafe2, Microsoft ML.NET. K tomu sa pridávajú rôzne nezávislé frameworky ako Keras, Scikit-Learn, PyTorch, Deeplearning4j. Každé má svoje za a proti, ale keby som mal vybrať jedno, s ktorým začať tak by to bol práve TensorFlow kvôli jeho rozšírenosti a developerskej podpore.
Chcem programovať AI, ako a kde začať?
 
Pozrime sa na požiadavky pre prácu v DeepMinde, podľa môjho názor najpokročilejšej spoločnosti v oblasti umelej inteligencie na svete. Vyžadované je bakalárske vzdelanie v informatike alebo príbuzných vedách, teoretické znalosti informatiky a matematiky a pokročilá znalosť Pythonu. Ak ste teda informatici, matematici alebo fyzici, ste vo výhode. Ale machine learning software developerom sa môžete stať aj poctivým samoštúdium, nakoľko kurzy z každej relevatnej oblasti sú voľne dostupné. 
 
Odporučil by si nejaký konkrétný kurz, alebo zdroj?
 
Pripravujem 6-12 mesačné online curriculum, ktoré pripraví záujmemcov o strojové učenie na prácu v tejto oblasti. Ako zdroje budú použité voľne prístupné kurzy univerzít ako MIT prípadne inštruktážne YouTube videá. Curriculum bude pokrývať všetky potrebné časti a nebude iba pre technické publikum.
 
Aké sú požiadavky na AI programátora? 
 
Oproti klasikému programovaniu ide v princípe hlavne o zmenu paradigmatu, kedy namiesto klasického rozhodovacieho programovania (if-else) necháte neurálnu sieť rozhodnúť, čo je relevantné. Vyžadujú sa okrem programátorských zručností (preferovane Python) dobré znalosti relevatnej matematiky ako lineárna algebra, kalkulus, kombinatorika a štatistika.
 
Prečo je hlavným programovacím jazykom AI python? 
 
Python je univerzálny, viete ním naprogramovať jednoduchý skript, ktorý vám zautomazuje rutinnú činnosť na počítači, cez web, aplikáciu, až po autonómne auto. V porovnaní s ostatnými univerzálnymi programovacími jazykmi je pomerne jednoduchý na osvojenie, a to aj pre neprogramátorov. Jeho knižnice vytvárajú ekosystém schopný rýchlo implementovať akýkoľvek projekt. Medzi takéto knižnice patria aj tie uľahčujúce prácu so strojovým učením ako Pandas pre manipuláciu big data, Keras pre vývoj neurónových sietí, či Scikit-learn pre klacifikáciu a regresiu.
Python je teda akoby “vreckovým nožíkom” strojového učenia. Ja som odchovaný na Jave, ale kvôli tomu, že som z klasického programovania prešiel na strojové učenie programujem teraz už iba výhradne v Pythone a to aj klasické projekty.
 
Ktoré firmy sa najviac venujú vývoju AI a s akým cieľom?
 
Prvá päťka najväčších firiem na svete podľa trhovej hodnoty – Microsoft, Amazon, Apple, Alphabet a Facebook zhodne vyhlasujú, že vo svojich produktoch značne využívajú umelú inteligenciu. Všetky tieto firmy poskytujú službu generujúce veľké obiemy dát zvaných big data, ktoré by bola škoda nechať len tak ľadom. Avšak jedine umelá inteligencia dokáže tieto mamutie objemy dát zmysluplne analyzovať a využívať. Z toho dôvodu je všadeprítomne nasadzovaná.
 
 
Ďakujem za rozhovor.
 
Svoje otázky na Martina píšte do komentára. Odpovie na ne v ďalšom rozhovore. 

Dobrý článok? Chceš dostávať ďalšie?

Už viac ako 6 200 ITečkárov dostáva správy e-mailom. Nemusíš sa báť, nie každé ráno. Len občasne.

Súhlasím so spracovaním mojich osobných údajov. ( Viac informácií. )

Tvoj email neposkytneme 3tím stranám. Posielame naňho len informácie z robime.it. Kedykoľvek sa môžeš odhlásiť.

Martin Ďurina
Mám rád ľudí aj svet okolo seba. Prial by som si, aby sme si rozumeli a dokázali spoločne vytvárať zmysluplné veci. Prirodzene má to vždy tiahlo ku komunikácii, mám vášeň pre online svet, zbožnujem hudbu. Pracujem na robime.it a ak sa vám rozsvieti nápad, že by sme mohli spolupracovať, neváhajte a hneď mi napíšte.