Kako frontend developeri mogu iskoristiti AI i strojno učenje?

Kako AI i strojno učenje u web pregledniku mogu doprinijeti korisničkom iskustvu?

Umjetna inteligencija i strojno učenje zasigurno su teme o kojima se u zadnje vrijeme najviše raspravlja, a kako njihova primjena u web pregledniku može doprinijeti svijetu objasnio je na svom predavanju u sklopu Shift konferencije - Keyfer Mathewson, frontend developer iz Shopifya.

Shift konferencija 7. godinu za redom okupila je developere iz svih dijelova svijeta. Na poznatoj lokaciji u Hrvatskom narodnom kazalištu, u gradu Splitu – srcu Dalmacije, našlo se preko 1300 sudionika. Od predavača iz svjetski poznatih tvrtki kao što su GitHub, Twitch, Shopify, GitLab, Heroku, Google, Facebook i mnoge druge, u dva dana se moglo saznati sve o najvećim trendovima u developmentu i novim tehnologijama.

Jedno od tih predavanja ticalo se neizbježne i sveprisutne teme umjetne inteligencije i strojnog učenja te njihove primjene u web pregledniku u što nas je izvrsno uveo Keyfer Mathewson iz Shopifya.

Što su umjetna inteligencija i strojno učenje?

Na početku predavanja Keyfer je dao nezaobilaznu teorijsku pozadinu glavnih pojmova, a budući da je dobro ponavljati – prisjetimo se.

Umjetna inteligencija znanost je koja omogućuje kompjuterima izvršavanje ljudskih djelatnosti dok pod strojnim učenjem podrazumijevamo pristup koji omogućuje umjetnoj inteligenciji učenje iz iskustva kako bi pronašla uzorke u podacima. U tom kontekstu – kako sama umjetna inteligencija uči kroz primjenu strojnog učenja, dolazimo i do koncepta koji se tiče nadziranog strojnog učenja.

Nadzirano strojno učenje, kojem se Keyfer najviše posvetio u svom predavanju još zovemo i duboko učenje odnosno deep learning. Duboko učenje je grana strojnog učenja koja je posebno prikladna za rješavanje problema iz područja umjetne inteligencije, a opisuje se kao nadzirano zato jer ispitivač bira odnosno označava što će AI učiti od tog podatka. Primjerice, ako bočicu vode označimo kao napunjenu vodom i prozirnu te je označimo kao varijablu 0,7 – umjetna inteligencija će za sve ostale podatke koje odgovaraju tom skupu obilježja pripisati istu oznaku. Prema tome, duboko učenje je tehnika implementiranja strojnog učenja kroz strukture koje se nazivaju neuronske mreže.

Shift Facebook

Glavni cilj strojnog učenja je predviđanje odnosno zaključivanje – modelu se daju podaci, a on predviđa neke buduće vrijednosti. Dvije vrste modela u strojnom učenju su regresija i klasifikacija. Regresija predstavlja pronalaženje najboljeg odgovarajućeg pravca, a udaljenost točaka od pravca označava količinu pogreške, tj. koliko smo u krivu. Cilj u ovakvom modelu je da stroj nauči smanjiti grešku. Klasifikacija pak predstavlja svrstavanje – koje daje odgovore “da” ili “ne” te “ovo” ili “ono”. Naprimjer:

  • Je li ovo mačka?” Na što će odgovor biti “da” ili “ne”.
  • Je li ovo mačka ili pas? Na što će odgovor biti “mačka” ili “pas”.

Kako su povezani JavaScript i strojno učenje?

Razlika između tradicionalnog i strojnog učenja je da tradicionalno ne može predvidjeti vrijednost, već samo može provjeriti neku apsolutnu vrijednost. Ideja kod strojnog učenja je predvidjeti vrijednost, mijenjati ju kako bi se smanjile greške i to ponavljati dok greške nisu najmanje moguće.

Koncepti strojnog učenja se mogu primijeniti u svim jezicima, no upravo brojnost JS developera u ovom području može značiti promjenu. Na LinkedInu 4 milijuna developera navodi poznavanje JavaScripta, dok Python kao vještinu navodi 10 puta manje developera, njih tek oko 400 tisuća. Također, JS je najpopularniji jezik na GitHubu prema podacima iz 2017.

Keyfer navodi, u slučajevima gdje su developeri direktno povezani s korisnicima (frontend development, JS development ili općenito development vezan za korisnike) interaktivno strojno učenje može se primijeniti na podacima koji se obrađuju u stvarnom vremenu.

Prije osam godina postojao je jedan JS framework vezan za strojno učenje i to je bio brain.js. Danas ih postoji više od osam, a razvijeni su uglavnom od strane Google-a i Tensorflow-a.

Frameworkovi za strojno učenje

Prvi predstavljeni framework je brain.js. To je open source library s dva tipa neuronskih mreža:

  • feedforward neuronske mreže koje uvijek idu isključivo prema sljedećem sloju i
  • recurrent neruonske mreže, tj. povratne, gdje su veze zatvorene i koje mogu zapamtiti neke prethodne radnje.

Treniranje modela i zaključivanje koristeći ovaj framework je iznimno jednostavno. Koristi se tako da se podaci organiziraju u objekt koji sadrži ulazne i izlazne vrijednosti. Ulazne moraju biti niz ili objekt s vrijednostima između 0 i 1 što znači da se podaci prije svega moraju prevesti u odgovarajući oblik.

Još jedan framework za strojno učenje je TensorFlow.js koji se prije zvao deeplearn.js, a razvio ga je Google Brain team. Baziran je na TensorFlow Python frameworku. Vrlo je moćan library budući da može raditi i NLP (obradu prirodnog govora), regresiju, klasifikaciju… Podaci ovdje moraju biti u obliku tenzora, tj. strukturiranih podataka predstavljenih n-dimenzionalnim nizom.

Umjetna inteligencija i strojno učenje u pregledniku

Keyfer je dao nekoliko primjera kako se umjetna inteligencija i strojno učenje mogu primijeniti u pregledniku.

Fast neural style transfer with Deeplearn.JS omogućava stiliziranje fotografija prema tipu neke poznate slike. Odabere se željena fotografija te označi stil s poznate slike koji želimo primijeniti. Ovdje se modeli preuzimaju i treniraju koristeći JS, pokreću se u pregledniku i predviđaju kako će izlazni piksel izgledati ako se u obzir uzme ulazni piksel i stil koji se treba primijeniti na taj piksel.

Cyborg writer je eksperimentalni text editor s ugrađenim neuronskim sintetizatorom teksta.

Rock paper scissors u pregledniku je klasična papir-škare-kamen igra protiv kompjutera temeljena na TensorFire libraryju. Dovoljno je brza da u stvarnom vremenu izvršava klasifikaciju webcam videa na klijentskoj strani.

Emoji scavenger hunt je web aplikacija u kojoj korisnik hoda te snima svoje okruženje u potrazi za danim emojiem. Ovdje se koriste klasifikacija slika, klasifikacija objekata, generalizacija piksela te previđanje objekta.

Webcam pacman je još jedan zanimljiv primjer umjetne inteligencije i strojnog učenja u pregledniku. Temeljen je na TensorFlow.js i sadrži četiri klase: lijevo, desno, gore dolje. Model trenira sam korisnik svojim podacima i trenira se tako da prepoznaje komande kao one s joysticka za lijevo, desno, gore i dolje.

Keyfer je predstavio i vlastiti projekt, Britbot, koji kreira u partnerstvu s Libby Heany i Koryjem Mathewsonom. Britbot je online chatbot izrađen u potpunosti u JS-u te treniran na višegodišnjim sadržajima iz novina i knjiga. Omogućuje komunikaciju u stvarnom vremenom i različitu interakciju koja uključuje i glas i video, a cilj je i omogućiti interakciju izrazima lica. Projekt je u izradi pola godine, a kroz mjesec dana bi trebao biti live.

Samo zabava ili i nešto više?

I za sam kraj, iako se možda činilo da je to sve za zabavu, postoji i nešto više iza toga. Keyfer zaključuje da kao developeri strojnim učenjem možemo dosta toga promijeniti. Možemo igrati igrice na druge i nove načine, možemo stvarati robote i nove programe, ali ono što je najbitnije jest da možemo pomoći drugim ljudima, ljudima koji ne mogu koristiti računala na način na koji su predviđeni da se koriste.

Treniranje modela da pogled očima interpretiraju kao pomicanje cursora ili da treptanje interpretiraju kao potvrdu odabira u web pregledniku, omogućilo bi ljudima s poteškoćama i invalidima lakše korištenje računala te doživljavanje potpunog korisničkog iskustva.

ponuda

Odgovori

Tvoja e-mail adresa neće biti objavljena.

Popularno

Startupi i poslovanje

MVT Solutions iz Pisarovine osigurao 100.000 od 300.000 eura vrijedne runde investicije za brži i jeftiniji razvoj IoT-ja

Ovaj domaći startup u tri je godine, bez ikakve vanjske investicije, razvio IoTaaP, alat koji može uvelike olakšati razvoj IoT proizvoda različitim klijentima. Osim hardvera, njihov poslovni model se skalira kroz softver i cloud, a koliko uspješno su se rješenjem i radom potvrdili do sada, najbolje govori i vijest o prvoj investicijskoj rundi predvođenoj domaćim investitorom.

Video

Što se dogodi kada ekstremnom trolu oduzmete megafon, odnosno društvene mreže?

Počne skapavati od gladi, sudeći prema uvijek dramatičnom istaknutom pripadniku 'alt right' pokreta, Milu Yiannopoulosu iliti Neru iliti Milu Andreasu Wagneru iliti Milu Hanrahanu, što je zapravo njegovo pravo ime.

Internet marketing

Hrvatski brendovi boje se zauzeti stav u marketingu (i upravo time gube!)

U najnovijoj epizodi Netokracija podcasta bavimo se brendovima koji se ne boje zauzeti stav. Takvih je u hrvatskoj vrlo malo, rijetki se odluče na taj rizik, a ne shvaćaju da je zapravo upravo to najriskantniji potez.

Što ste propustili

Startupi i poslovanje

Dragi svi, budite podrška koju želite i sebi; drage žene, nemojte prihvatiti ništa manje

Ladies of New Business Tech edition okupio je domaće i strane IT rukovoditelje, stručnjake i organizatore IT konferencija kako bi raspravili što kao kolege, šefovi i organizatori možemo učiniti kako bi pomogli IT-jevkama da napreduju u industriji te da se osjećaju kao njezin važan dio.

Kultura 2.0

Gen Ashley i Christina Richter na 8. #LadiesZG: bez uzora i edukacije nema jednakosti u tehnološkoj industriji

Kako bismo privukli više žena u tehnologiju trebamo podržati i trenutne žene u industriji koje će svojim primjerom pokazati da ovaj sektor nije "muški svijet".

Startupi i poslovanje

Hrvatski SysKit: Za 90% funkcionalnosti inspirirali su ih njihovi korisnici, među kojima je i američka vlada

Hrvatska softverska tvrtka SysKit već 10 godina pomaže sistemašima i administratorima u više od 3000 tvrtki diljem svijeta. Njezin suosnivač Frane Borozan otkrio mi je strategiju koja im je omogućila kompetitivnost na svjetskoj razini i približila ih ostvarenju želje da postanu jedan od najvećih proizvođača softvera u Hrvatskoj.

Startupi i poslovanje

Indienogo – kako će izuzimanje Hrvatske s ove platforme utjecati na domaće projekte?

Indiegogo više nije službeno podržan u Hrvatskoj, što znači da ne možete više na njega postavljati kampanje ako ste tvrtka registrirana u Lijepoj našoj. Istražili smo kako je do toga došlo, a i kako će to utjecati na domaće projekte koji platformu aktivno koriste.

Najava

Ulazite li u digitalnu industriju, krenite s razvojem digitalnih proizvoda

Nekada smo u digitalnoj industriji radili isključivo na tuđim projektima, jer nismo mogli birati. Danas možete razvijati vlastite digitalne proizvode i raditi na svim njihovim aspektima. Počnite s besplatnom radionicom Netokracije i Raiffeisen banke o tome kako krenuti u 'product'!

Startupi i poslovanje

Realno stanje startupa iliti kako mi je u dva tjedna američka tech scena skinula ružičaste naočale osnivača

Što vas može naučiti samo nekoliko dana u Seattleu, jednom od najpoznatijih startup i tech gradova na svijetu? Možda kako ste na svoje poslovanje do sada gledali malo previše "romantično".