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

Infobip ❤️ Netokracijašto akvizicija znači za vas - i nas?

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.

Sukladno članku 94. Zakona o elektroničkim medijima, komentiranje članaka na Netokraciji dopušteno je samo korisnicima koji ostave svoje ime i prezime te mail adresu i prihvate pravila ponašanja.

Pravila ponašanja

Na Netokraciji za vas stvaramo kvalitetan, autorski potpisan sadržaj i zaista se veselimo vašim kvalitetnim, kontruktivnim komentarima. Poštujmo stoga jedni druge prilikom komentiranja, kao i Zakon, držeći se sljedećih pravila ponašanja:

  • Ne budite 💩: Nema vrijeđanja, diskriminiranja, ni psovanja (osim ako nije osobni izričaj, ali onda neka psovka bude općenita, a ne usmjerena prema nekome). Također, upoznajte se sa stavkom 2. članka 94. Zakona o elektroničkim medijima prije no što ostavite komentar.
  • Samo kvalitetna rasprava, manje trolanja: Ne morate se ni sa kim slagati, ali budite konstruktivni i doprinesite raspravi! Svako trolanje, flameanje, koliko god "plesalo" na granici, leti van.
  • Imenom i prezimenom, nismo Anonymous 👤: Autor sadržaja stoji iza svog sadržaja, stoga stojite i vi iza svog komentara. Koristimo ime i prezime te pravu email adresu.

Kako koristimo podatke koje ostavljate? Bacite oko na našu izjavu o privatnosti.

Sve ostale komentare ćemo s guštom spaliti, jer ne zaslužuju svoje mjesto na internetu.

Odgovori

Tvoja e-mail adresa neće biti objavljena.

Popularno

Intervju

“Tata” Angulara o tome što bi danas napravio drugačije i kako instantno ubrzati web aplikacije

Nakon više od 15 godina u Googleu, gdje je inicijalizirao, osmislio i podigao temelje Angulara, jednog od najpoznatijih JavaScript frameworka, a potom usmjerio Googleovu kulturu prema test driven developmentu, Miško Hevery se otisnuo u samostalne vode...

Startupi i poslovanje

Počelo je dvojno iskazivanje cijena! Što to znači za internetske trgovine?

Od danas sve internetske trgovine moraju iskazivati dvojne cijene. Iako na prvu zvuči kao nešto lagano za provesti, taj proces može uključivati product managera, dizajnera, backend i front-end programera. Kako se u tome snalaze mikro i mali poduzetnici koji su često "one man band"?

Kriptovalute i Blockchain

The Ethereum Merge. Kripto svijetu slijedi promjena na koju se čekalo skoro 10 godina

Već dugi niz godina radi se na vjerojatno jednom od najkompleksnijih projekata koji se tiču blockchain tehnologije, a taj dugoiščekivani update za Ethereum blockchain trebao bi izaći sredinom ovog mjeseca.

Što ste propustili

Startupi i poslovanje

Predstavljeni startupi 7. generacije Startup Factoryja. Počinje borba za 800.000 kuna!

U Zagrebačkom inovacijskom centru - ZICER-u predstavljena je sedma generacija Startup Factoryja, prvog hrvatskog akceleracijskog programa za startupe.

Kriptovalute i Blockchain

Stiže zlatni Ilija 2.0 – kako je Kontri prošla prva kolekcija NFT-ova?

Tko će imati čast otići s Ilijom Brajkovićem na veganski ručak?

Web aplikacije

UX dizajn koji nije iritantan za korištenje niti zahtjevan za programiranje? Kent C. Dodds kaže – moguće je!

Koga UX dizajn nikada nije naživcirao, taj vjerojatno nije ni bio na internetu. Na Infobip Shiftu 2022 od frontend i backend developera saznali smo konkretne savjete kako stvoriti najbolje korisničko iskustvo na webu.

Intervju

Zašto postati Scrum master i kako se educirati?

Oglasi za posao Scrum mastera postali su svakodnevica, kaže profesionalna Scrum trenerica Ana Roje Ivančić te objašnjava zašto je formalna certifikacija za taj posao nužni minimum i što čini kvalitetnu edukaciju.

Startupi i poslovanje

Kako se u IN2 grupi, koja je ove godine napunila 30, kombiniraju iskustvo i mladost?

Tri desetljeća za jednu IT tvrtku ozbiljan je staž, ali ako gledamo u ljudskim godinama - IN2 grupa tek ulazi u najbolje razdoblje, a to pokazuje njihov pristup radu i ljudima.

Web aplikacije

Najpoznatija edukativna mobilna aplikacija ima – web tim? Upoznajte developere iza Photomathovog Math Expert Marketplacea!

Korisnici često nisu svjesni da je rješenje koje su dobili nakon skeniranja određenog matematičkog zadatka prošlo dalek put po raznim timovima u Photomathu, a još manje da je jedan od tih timova primarno zadužen za web...