NOVE TEHNOLOGIJE<>
112016<><>

Mašinsko učenje

I računari mogu da uče

Da li je mašinu moguće naučiti da razmišlja koristeći makar i rudimentarne koncepte načina na koji razmišlja čovek, pitanje je kojim se čovečanstvo bavi već vekovima

U današnje doba, računarsko vreme je jeftinije od svakog Kineza, Pakistanca ili stanovnika Bangladeša koji bi svoju veštinu u jedinici vremena trampio za novac. Opet, skupove sposobnih računarskih pružalaca usluga možete zaposliti prema potrebama i dinamički menjati njihove karakteristike. Računari su konzistentniji i za svoju jedinu svrhu imaju krckanje kompleksnih matematičkih formula koje im bacite. Postoji samo jedan problem: računar je računar, a ne čovek.

Problem sa računarskom inteligencijom je što se ona odlično snalazi u rešavanju računarskih problema. Znate, taj bi problem čovek takođe mogao da reši, ali bi mu bilo potrebno puno vremena. Računar takva računanja završava za samo delić vremena (Zato se i zove računar – prim. ur.). Ipak, kada se radi o upotrebi prave inteligencije, koja podrazumeva primenu naučenih pravila na nove, nikada ranije viđene podatke/zadatke, računari su praktično neupotrebljivi. Dugo se na akademskim institucijama razvijala škola učenja računarskih sistema da sliče inteligenciji čoveka. Šira oblast koja zaokružuje srodne discipline ovakvog pristupa naziva se veštačka inteligencija. Jedan njen veoma interesantan deo poslednjih godina dobija na značaju.

Učiti, samo učiti

Da li je mašinu moguće naučiti da razmišlja koristeći makar i rudimentarne koncepte načina na koji čovek razmišlja? To je pitanje kojim se bavimo kao čovečanstvo već vekovima. Ipak, tek je u prošlom veku došlo do većih pomaka u prodoru inteligencije u mašine. Nakon vrhunskih napora sprovedenih u vreme posle Drugog svetskog rata, računarstvo je sve brže napredovalo ka cilju postizanja inteligentne mašine, koja bi mogla da učestvuje u životu čoveka na jedan kreativni, a ne samo reaktivni način. Od „Čarobnjaka iz Oza” do filma „Ona” („Her”), filmska industrija je prepoznavala inteligentne oblike veštačkog života kao veoma interesantne i trudila se da servira svoju viziju ove priče. Stvarnost je, prirodno, ipak drugačija.

Mašinsko učenje je metoda analize podataka koja omogućava automatizaciju procesa izrade analitičkih modela. Ova komplikovana rečenica zapravo znači da mašinsko učenje, korišćenjem posebno pripremljenih algoritama i iterativno obrađujući podatke na ulazu, omogućava uređaju na kom je primenjeno da pronađe skrivena znanja u podacima i to bez eksplicitnog programiranja postupka pronalaska. Zvuči li sada jednostavnije? Verovatno ne. Najjednostavnije govoreći, mašinsko učenje je model unošenja sposobnosti mašine da pronađe nove informacije u odnosu na one koje su poznate u trenutku učenja. Ovakav postupak svakako sliči načinu na koji učimo decu ili dresiramo kućne ljubimce.

Mašinsko učenje u osnovi koristi dva načina rešavanja. Nadgledano rešavanje podrazumeva da je prvi korak u postupku dovođenje trening skupa podataka na ulaz učenja. Na osnovu tog skupa, model „uči” veze i kasnije primenjuje naučenu logiku na nov skup, nikada do tada viđen. Nenadgledano rešavanje ne podrazumeva trening skup, već se oslanja na sopstvene tehnike pronalaska skrivenog znanja. Mašinsko učenje tipično rešava tri osnovne klase (statističkih) problema koje imaju svoje razne modifikacije i implementacije. Regresija (nadgledano učenje) omogućava, na primer, predviđanje cena nekretnina na osnovu prethodnog iskustva. Klasifikacija (nadgledano učenje), na primer, obezbeđuje efikasan način za prepoznavanje rukopisa dok klasterovanje (nenadgledano učenje) predstavlja dobar metod za, na primer, tagovanje dokumenata. Mašinsko učenje se nalazi negde između statistike, koja pruža metode i modele rada i pretrage podataka (eng. data mining) koja postavlja zadatke pronalaska karakterističnih zavisnosti među podacima. Suštinski, mašinsko učenje koristi generalizaciju postojećih podataka kao osnov za predviđanje novih.

Bitno je istaći da mašinsko učenje nije egzaktna nauka! Pokušaj da napravite „savršen” model pristupom mašinskog učenja će se gotovo sigurno završiti neuspehom. Dobra vest je da to nije loša vest! Naime, čovečanstvo je naviklo da ne postoje savršena rešenja kada su u pitanju algoritmi. Za neke konkretne probleme, poput onog o trgovačkom putniku (koji mora da obiđe veliki broj lokacija i traži takvu putanju koji bi mu garantovala minimalno pređeni put, a da obiđe sve lokacije), čovečanstvo još nema algoritam koji daje uvek najbolje rezultate. Tu na scenu stupa svima omiljeni predmet iz škole – matematika, koja svojim heurističkim modelima nudi dovoljno dobra rešenja u značajno velikom broju slučajeva. I još nešto. Kada su naučnici analizirali pčele u obilasku cvetova, ustanovili su da i one formiraju stabla u grafovima (puteve kroz polje cvetova od cveta do cveta, obuhvatajući sve cvetove) na način sličan heuristici. Dakle, ni priroda nije (uvek) savršena. U nečemu ipak jeste. Priroda je savršena inspiracija.

Korak bliže prirodnom

Kao posebna klasa algoritama mašinskog učenja, neuronske mreže inspiraciju za svoje postojanje duguju prirodi. Tačnije, prve zamisli neuronskih mreža modelovane su po uzoru na prirodne neuronske mreže kod čoveka. Slično mreži prirodnih neurona, veštačka neuronska mreža se sastoji iz dva jednostavna elementa – neurona i njihovih veza. Svaki neuron je povezan sa više drugih, a najčešće ima sposobnost grupisanja ulaza iz svojih povezanih neurona po nekom kriterijumu te funkcije limitiranja i filtriranja ulaza koji zadovoljavaju neki kriterijum. Ovi sistemi se ne programiraju direktno, već se uče mehanizmima i pravilima čijom primenom dolaze do rezultata. Stoga, tamo gde nije jednostavno formalizovati problem klasičnim programerskim jezikom, sistemi neuronskih mreža postižu dobre rezultate.

Jednostavnim jezikom, neuronske mreže nisu ništa drugo do softverske simulacije mreža neurona, izrađenih u više slojeva u kojima je svaki neuron iz konkretnog sloja, povezan sa slojem koji mu prethodi i slojem koji mu sledi. Osnovni modeli neuronskih mreža imaju tri sloja: ulazni, skriveni i izlazni sloj. Ulazni sloj neuronske mreže ima zadatak da iz spoljašnje sredine primi pobudu, odnosno skup ulaznih informacija. Izlazni sloj ima zadatak da na svojevrstan način prikaže rezultate rada neuronske mreže na pobudu primljenu u ulaznom sloju. Između ova dva sloja nalazi se jedan ili više skrivenih slojeva koji u masi čine većinu neurona jedne neuronske mreže.

Većina neurona unutar mreže je povezana sa velikim brojem neurona iz ulaznih odnosno izlaznih slojeva. Tako informacije putuju kroz visoko-spregnutu mrežu obradnih jedinica koji podižu sumarni kvalitet. Svaka obradna jedinica – neuron, sa drugim obradnim jedinicama obrazuje vezu kojoj se pridružuje težinski faktor. Težinski faktor daje intenzitet ovoj vezi, bliže određujući snagu kojom jedan neuron pobuđuje ili inhibira neuron s kojim je povezan. Pobuda se meri pozitivnim vrednostima težinskog faktora dok se inhibicija meri njegovim negativnim vrednostima. Logično, više vrednosti znače jači uticaj jednog neurona na drugi i obrnuto.

Neuronske mreže su našle svoju primenu u mnogim oblastima, jer su po svojoj prirodi veoma atraktivne i daju rezultate relativno brzo po uvođenju u konkretnu oblast. Ranije su često korišćene u zadacima prepoznavanja oblika, rukopisa ili govora, a danas se sve češće koriste i u finansijama, gde je nađeno plodno tlo za upotrebu neuronskih mreže u analizi i učenju finansijskih modela te predviđanja kretanja (cena) na tržištu.

Način na koje ove mreže rade je sledeći. U procesu učenja, na ulazu neuronske mreže dovodi se ulazni skup podataka, koji se procesom prosleđivanja unapred (eng. Feedforward) skup sa ulaza propagira kroz mrežu prenošenjem kroz veze, dok se u čvorovima izračunava da li ulazni podaci ispunjavaju kriterijume prelaska dalje u sistem. Ukoliko je odgovor potvrdan, oni se prosleđuju i tako ulazni podaci dolaze do izlaznog sloja, gde se saopštavaju. Tada se u procesu provere kvaliteta same mreže koristi koncept povratnih podataka, slično onom koji i čovek primenjuje u vaspitanju deteta ili dresuri pasa. Adekvatno propagirani ulaz se nagrađuje pozitivnim povratnim rezultatom, dok se neadekvatno propagirani ulazni skup nagrađuje negativnim povratnim rezultatom i na taj način dodatno podešava neuronska mreža. Procesom prenošenja povratne informacije „unazad” (eng. Backpropagation), koji podrazumeva poređenje dobijenog izlaza sa očekivanim i ažuriranje težinskih faktora veza koje postoje između neurona, neuronska mreža „uči” i fino podešava svoje karakteristike. Nakon dovoljnog broja iteracija, mreže će imati visoku stopu preciznosti i njoj će biti moguće dovesti na ulazni sloj nove, dotad neviđene i svakako neklasifikovane podatke, za koje će primenom naučenog modela davati predlog klasifikacije.

Interesantno je reći da je korišćenje neuronskih mreža veoma zanimljivo iskustvo. Naime, treniranje jedne veštačke neuronske mreže može dati fantastične ili ispodprosečne rezultate, koje dovode do komičnih situacija u klasifikaciji problema. Često je potrebno proći kroz stotine ako ne i hiljade ciklusa podešavanja mreže, dok se dođe do zadovoljavajućih rezultata. Stoga je disciplina dizajna i implementacije neuronskih mreža posao za strpljive i uporne pojedince i timove, koji iz ovakvih modela i mehanizama mogu da „iscede” fantastične rezultate koji daleko prevazilaze ili u potpunosti deklasiraju postojeće modele predviđanja.

Duboko učenje

Jedan od najsvežijih trendova u svetu mašinskog učenja obećava moćne rezultate i dovoljno generičke modele, namenjene još jednom koraku u evoluciji sveta veštačke inteligencije. Mehanizmi dubokog učenja su namenjeni modelovanju apstrakcija visokog nivoa u podacima pomoću matematičkih metoda obrade, sastavljenih iz linearnih i nelinearnih transformacija.

Motivacija iza dubokog učenja dolazi iz intuicije, rezultata empirijskih istraživanja te istraživanja iz akademskih struka neuronauka. Duboko učenje koristi modele neuronskih mreža koje su sastavljene iz velikog broja slojeva (često i preko stotinu), često složenih i u trodimenzionalne modele. Posebnu popularnost su ovi modeli stekli pre četiri godine kada su uspeli da u performansama pobede tradicionalne pristupe koji su u to vreme smatrani vrhuncem tehnologije, poput onih korišćenih za klasifikaciju slika ili prepoznavanje govora.

Popularnost ovih metoda posebno je pojačana radom kompanija kao što su Google i Facebook, čija su skladišta podataka rasla enormnom brzinom, pa je bilo potrebno iznedriti inovativne modele pomoću kojih bi ta količina i rezolucija podataka mogla pravilno da se iskoristi. Jednostavnim rečnikom, mehanizmi dubokog učenja su zasnovani na neuronskim mrežama koje odlikuje veći broj skrivenih slojeva, povezanih na inovativne načine. Posebni doprinos ovoj oblasti je napravljen od strane kompanije Google, koja je alat razvijen u svojim laboratorijama pustila u svet otvorenog kôda. Ovaj projekat po imenu Tensorflow svakog dana dobija nove korisnike i širi spektar upotrebe.

Iza Tensorflow projekta stoje izuzetna imena. Prvo ime koje vam upada u oči jeste Jeff Dean (poznat kao „otac” programskog modela MapReduce), zatim Ian Goodfellow (među vodećim ljudima projekta Theano/PyLearn2) i Yangqing Jia (vodeći čovek radnog okvira Caffe). Radi se, dakle, o vodećim imenima industrije kada je u pitanju segment mašinskog učenja. Kada na sve to dodate poslovično izvrsnu organizaciju i infrastrukturu koju Google pruža, jasno je da se radi o projektu koji je tu da ostane i postane prvi radni okvir za mašinsko učenje.

Tensorflow dosta svojih osnovnih elemenata duguje Theano projektu. Neke probleme ovog projekta nije nasledio, ali dolazi sa svojim nedoslednostima i nesavršenostima. Često se nalazi u vrhu testova modela za mašinsko učenje, a oni koji imaju više iskustva preporučuju da se obavezno, pored pomenutih Tensorflow i Theano radnih okvira, pogleda i projekat Torch koji ima veću fleksibilnost od dva pomenuta, jer se radi o imperativnom, a ne deklarativnom modelu. Kod drugopomenutih je neophodno definisati (deklarisati) graf izračunavanja, što određene operacije otežava. Ipak, korišćenje Torcha će zahtevati da naučite i Lua programski jezik, koji još uvek nema ni popularnost ni podršku koja bi vas na svoju stranu brzo prebacila.

Interesantno je reći da Tensorflow ima dosta dobro rešen interfejs u vidu podrške za Python ali i C++, što nije čest slučaj u zajednici. Ovo dosta olakšava upotrebu, jer pomoću interfejsa za C++ Tensorflow može da se koristi u veoma zanimljivim primenama na visokom nivou. Zahvaljujući ovom interfejsu, Tensorflow projekti se mogu kompajlirati za ARM uređaje, što proširuje porodicu uređaja koje je moguće koristiti. Još kada bi svemu ovome dodali interfejs za TypeScript... gde bi im kraj bio. To, i činjenica da projekti još uvek ne mogu da se koriste na Windows operativnom sistemu. Ima li to veze sa odnosom kompanije Google sa tvorcem Windowsa ili pak nečim drugim, ostavljamo vam da sami zaključite

• • •

Mašinsko učenje je velika i veoma važna oblast. Nikako je ne možemo nazvati mladom, mada su ozbiljniji i javnosti opipljiviji rezultati mašinskog učenja postali značajni tek u poslednjih nekoliko godina, kada su koncepti velike količine podataka (eng. Big Data) dobili na značaju. Način na koji danas Google funkcioniše, kako u oblasti serviranja rezultata pretraga koje korisnici sprovode tako i u konktestu noviteta koje isporučuje, poput samovozećeg automobila, zasnovan je na obilatoj upotrebi mašinskog učenja. Amazon i Netflix? Njihova sposobnost da vam ispravno serviraju predloge za novu kupovinu ili gledanje novih filmova ili serija zasnovano je upravo na modelima mašinskog učenja. Od skora, mašinsko učenje je pronašlo svoje mesto i u bankarskim softverima velikih finansijskih institucija, koje su verovatno najtradicionalnije u svetu tehnologija.

U ovom tekstu smo samo zagrebali površinu mašinskog učenja i srodnih disciplina. Internet obiluje razradama osnovnih koncepata koje smo prikazali. Želja je autora ovog teksta da ukaže na važnost ove discipline i na njenu vrednost, posebno u godinama koje dolaze. Treba zapamtiti – podaci su zlato.

Momir ĐEKIĆ

 
 NOVE TEHNOLOGIJE
Mašinsko učenje
Šta mislite o ovom tekstu?
Baterije budućnosti

 NA LICU MESTA
Sinergija 16
SAP forum 2016

 KOMPJUTERI I FILM
Doctor Strange
Vajana
Fantastične zveri
Trolls
Filmovi, ukratko

 DOMAĆA SCENA
Predstavljamo: Devana Technologies

 SITNA CREVCA
Kako postati programer (2): Izbor jezika

 VREMENSKA MAŠINA
BBS Politika i Kai Power Goo

 PRST NA ČELO
Aj Ti
Home / Novi brojArhiva • Opšte temeInternetTest driveTest runPD kutakCeDetekaWWW vodič • Svet igara
Svet kompjutera Copyright © 1984-2018. Politika a.d. • RedakcijaKontaktSaradnjaOglasiPretplata • Help • English
SKWeb 3.22
Opšte teme
Internet
Test Drive
Test Run
PD kutak
CeDeteka
WWW vodič
Svet igara



Naslovna stranaPrethodni brojeviOpšte informacijeKontaktOglašavanjePomoćInfo in English

Svet kompjutera