Najjednoduchšie vysvetlenie strojového učenia alebo ako funguje machine learning


  • Zdieľať na Google+

Ak si napíšete do Google otázku „what is machine learning“, okamžite na vás vyskočí hromada článkov z diskusných fór, akademických stránok a rôznych ďalších zdrojov určených buď pre programátorov, alebo pre vedcov. Strojové učenie však nie je len pre úzko špecializovanú skupinu ľudí. Naopak, v poslednej dobe sa strojové učenie postupne stáva užitočnou pomôckou pre pomerne veľkú časť ľudí, ktorí hľadajú možnosti, ako zlepšiť svoj biznis tým, že vedia efektívne a hlavne veľmi presne pracovať s veľkým objemom dát. Poďme spolu nahliadnuť do sveta strojového učenia.

História strojového učenia

Asi každý z nás pozná Turingov test. Pre tých, ktorým toto meno nič nehovorí, tak Alan Turing bol známy britský matematik, ktorý pomohol rozlúštiť nacistický kód pomocou stroju známeho ako The British Bombe. Turingov test slúžil na odhadnutie toho, či je nejaký stroj inteligentný. Test spočíval v tom, že stroj musel presvedčiť človeka, aby si myslel, že je reálna osoba. Alan Turing už vtedy predpovedal, že stroje postupne nahradia väčšinu ľudí vo svojich zamestnaniach. Jeho záver bol však nakoniec taký, že stroje nebudú nikdy schopné plne nahradiť človeka kvôli veľkosti úloh, ktoré musia byť vyriešené. V roku 1952 bol vytvorený program dáma. Vynálezca Arthur Samuel vtedy pracoval na tomto programe pomocou najmodernejších počítačov od IBM. Dáma sa dá považovať za jednu z prvých hier, v ktorej boli využité metódy strojového učenia. Počítač sa dokázal zlepšovať s narastajúcim počtom odohraných hier. Študoval a porovnával pohyby a víťazné stratégie, ktoré boli efektívne a zakomponoval ich do svojho programu.

IBM 701 bol v roku 1951 najlepším počítačom na svete. Jedným z tvorcov bol aj John Von Neumann.
Zdroj: ibm.com

Skutočný prelom v strojovom učení však prišiel v roku 1997, keď systém Deep Blue od IBM porazil svetového šampióna v šachu. V roku 2006 vymyslel Geoffrey Hinton termín deep learning. Označil tým algoritmus, ktorý dovoľuje počítačom vidieť a rozoznať objekty a text vo videách a obrázkoch. V roku 2014 bol prvýkrát prejdený Turingov test. Rok na to sa stretlo cez 3000 vývojárov v oblastiach umelej inteligencie a robotiky v doprovode Elona Muska, Steva Wozniaka, Stephena Hawkinga, aby podpísali otvorený list, ktorý je varovaním pred nebezpečenstvom autonómnych zbraní, ktoré si vyberajú a útočia na ciele bez ľudského zásahu. V roku 2016 porazila umelá inteligencia od Googlu profesionálneho hráča v čínskej hre Go, ktorá je považovaná za najkomplexnejšiu doskovú hru na svete. AlphaGo algoritmus vyhral všetkých 5 hier v súťaži Go.

V súvislosti s touto témou by vás mohol zaujímať náš podcast:

Kde sa v súčasnosti najčastejšie stretávame so strojovým učením?

Malware je jedným z najväčších problémov, s ktorým bojuje hlavne veľa technologických spoločností. Antivírusy v dnešnej dobe predstavujú pomerne slabé zabezpečenie a veľa sofistikovaných vírusov nimi dokáže prejsť. Priemerná hodnota ukradnutého dátového záznamu je 141 dolárov a s tým, ako stúpa sofistikovanosť útokov, samozrejme stúpajú aj nároky na kybernetickú bezpečnosť. Antivírus častokrát nestačí a tak vstupuje do hry machine learning. Každý nový kus malwaru má približne takú istú časť kódu ako pôvodný škodlivý softvér. Existuje však 2 až 10% variácia pri novom type kódu. Strojové učenie nemá problém s vysokou mierou presnosti odhadnúť, ktoré súbory sú malware. V ďalších situáciách sú algoritmy schopné vyhľadať vzorce v tom, ako je pristupované k dátam na cloude a ohlasujú anomálie, ktoré by potenciálne mohli predpovedať bezpečnostné narušenia.

Ako však strojové učenie funguje?

Najjednoduchšie vysvetlenie strojového učenia poskytol Google na svojej konferencii v roku 2015. Predstavil model žiakov a učiteľa, ktorý sa snaží zistiť optimálny čas na naučenie sa testu z matematiky.

Učiteľ najprv musí nastaviť model skóre závislého na množstve času učení. Dôležité je, aby stroj rozumel premenným, ktoré bude používať vo svojom učení a zároveň, aby mal prvotný vstup. Takže učiteľ musí použiť svoj profesionálny odhad a nastaviť model tak, aby čo najpresnejšie zodpovedal realite.

  • 0 hodín = 50% skóre
  • 1 hodina = 60% skóre
  • 2 hodiny = 70% skóre
  • 3 hodiny = 80% skóre
  • 4 hodiny = 90% skóre
  • 5 hodín = 100% skóre

Tieto údaje vyzerajú celkom rozumne a tak sa učiteľ rozhodne postúpiť na ďalšiu fázu a tou je poskytnutie prvotného vstupu. Prvotný vstup sú údaje, ktoré získa učiteľ od žiakov, ktorí sa mu zveria s vlastnými skúsenosťami s učením danej látky a tým pádom nebudú úplne presne zodpovedať prvotnému modelu. Stroj zaznamená odchýlky a postupne sa začína učiť. Proces skončí vtedy, keď si je učiteľ istý, že matematický model dostatočne odráža realitu. Napríklad:

  • 0 hodín = 45% skóre
  • 1 hodina = 55% skóre
  • 2 hodiny = 65% skóre
  • 3 hodiny = 75% skóre
  • 4 hodiny = 85% skóre
  • 5 hodín= 95% skóre
  • 6 hodín = 100% skóre

Najväčšiu presnosť dostane vtedy, ak sa opýta veľkého počtu študentov a tým pádom má dostatok údajov, na základe ktorých sa môže počítač ďalej učiť. Dôležité je, že parametre sa menia minimálne, aby sa model zlepšoval a preto je prvá fáza veľmi dôležitá. Na množstve dát, ktoré potrebujete, vplýva veľa premenných. Najviac však záleží na druhu algoritmov. Na odhadnutie veľkosti vzorky sa používa napríklad štatistická heuristika, ale odhady bývajú častokrát nepresné. A preto sa veľakrát stáva, že potrebujete omnoho viac dát, ako hovoria vaše štatistiky.

Zamyslite sa aj nad týmito otázkami

Malo by byť dovolené používať strojové učenie v autonómnych zbraniach? Do akej miery sa môže používať strojové učenie v médiách a novinách? Kde všade by mali mať drony dovolené ísť? Tieto a aj ďalšie otázky sú etickými problémami, ktoré strojové učenie nevyhnutne prináša. Bližšie sa etike strojového učenia povenujeme v ďalších článkoch.

Kde sa dá dozvedieť viac o strojovom učení?

Skvelý článok a dobrý zdroj informácií sa nachádza na medium.com a Data Science Central. Najlepšími platformami na ponorenie sa do strojového učenia sú Tensor Flow, Anaconda alebo Scikit learn.