Zbog čega je teže programirati robota da otvara frižidere, nego da rešava kompleksne matematičke probleme?
Tekst: Nikola Zdravković
Programeri sa MIT–a objavili su letos programski jezik Picture. On može da proizvodi trodimenzionalni model ljudskod lica na osnovu fotografija, i to u samo 50 linija koda. Umesto detaljnih programskih komandi, Picture koristi – statistiku. I možda nam može pojasniti način na koji funckioniše ljudska percepcija.
U klasičnom, tzv. serijskom programiranju, mašinu možete podesiti da izvrši bilo šta, pod uslovom da uvedete adekvatne komande za relevantne uslove. Kompleksne mašine i programi sposobni su da vrše poslove koje od njih zahtevamo jer poseduju ogromne sisteme operacija i podataka sačinjene od miliona linija kompjuterskog koda.
Ne postoji problem koji načelno nije moguće rešiti dovoljno kompleksnim kodom. Istraživači su u decenijama od nastanka informatike pokušavali da modeliraju ljudsku inteligenciju u okviru ove paradigme, sa pretpostavkom da je ljudski um jedan neverovatno kompleksan operativni sistem, sa „kodom“ koji je napisala evolucija.
Međutim, postaje sve jasnije da razlika između ljudskog uma i programa nije samo u kompleksnosti, već i u načinu rada. Programiranjem su se odavno prestigli ljudski kapaciteti pretraživanja baza podataka ili matematičkog računanja, ali je još teško programirati robota koji ume da otvori bilo koji frižider i, recimo, uzme pivo. To je jedan od razloga zašto je danas sve više alternativnih pristupa programiranju i kompjuterskom modelovanju, a mnogi programi nastaju tako da bolje oponašaju (pretpostavljene) načine rada ljudskog uma.
50 linija koda
Picture je proizvod jednog takvog pristupa. On koristi tzv. probabilističko (statističko) programiranje da bi stvarao „scene“, odnosno trodimenzionalne modele, na osnovu slika, npr. fotografija ljudskih lica. On obrađuje nekoliko vrlo bazičnih parametara, kao što su pozicija očiju, nosa i usta, zajedno sa ogromnom postojećom bazom podataka u vidu fotografija i adekvatnih trodimenzionalnih modela. Kada mu se unese „problem“, odnosno fotografija novog lica, on na osnovu samo te nekolicine parametara i postojeće baze modela proizvodi scenu (model) koja ima najveće šanse da bude adekvatna.
Ne postoje pojedinačni, unapred kodirani odgovori na širok dijapazon parametara – zato i ima samo 50 linija koda. Pošto je njegov proračun statistički, vernost scena koje proizvodi zavisi od veličine uzorka: što je veća baza podataka adekvatnih rešenja, njegovi modeli će biti bolji. Ovo takođe znači da ga svaki rešeni problem, svaki kreirani model, čini sposobnijim – programeri ovaj proces nazivaju „mašinsko učenje“ (mashine learning).
Kada su u julu ove godine javno predstavljeni rezultati njegovog rada, Picture se po rezultatima mogao porediti sa kompleksnim, „klasično“ pisanim sistemima koji poseduju hiljade i hiljade linija koda za iste potrebe. Na stranu inženjerske i dizajnerske mogućnosti koje donosi statističko programiranje: da li Picture predstavlja i proboj u modeliranju ljudske percepcije?
Učenje na greškama
Iako je još prerano za predviđanja, svakako ima razloga za optimizam. Ljudski mozak ne dolazi unapred spreman za razumevanje vizuelnih parametara kao što su dubina, udaljenost, perspektiva, ili razlikovanje pojedinačnih objekata. Vrlo rano u dečjem razvoju, mozak se nauči i navikne da koristi ove parametre u svakodnevnoj percepciji.
U klasičnom programiranju upotreba ovakvih, samo naizgled jednostavnih parametara postaje bezmalo nepremostiv problem: svaki vektor, svako merenje razdaljine, svaka operacija mora biti precizno definisana i izvršena, zbog čega i jeste teže programirati robota da otvara frižidere nego da rešava kompleksne matematičke probleme.
Sa druge strane, programi kao što je Picture samo se dobrim primerima „priuče“ da prave (informisana) nagađanja. Da li takav proces zaista liči na način na koji ljudi odmalena uče da razumeju vizuelne sadržaje? Jedna naizgled velika razlika je u načinu učenja: Picture se oslanja na unapred unetu veliku količinu adekvatnih modela na osnovu fotografija, dok deca nauče da te operacije vrše „sama od sebe“.
Međutim, pitanje je da li je ova razlika tako velika kao što se čini. Kada su u pitanju deca koja tek uče da sistematizuju percipirane informacije, tačno je da nemaju spoljnog činioca kao što je programer, koji će se postarati da je njihova baza podataka adekvatna, ali poseduju unutrašnje činioce kao što su druga čula, sposobnost kretanja u prostoru ili ravnoteže koja se vremenom usklađuju sa vidom kako bi stvorile relativno jedinstvenu scenu sveta u kom to dete može uspešno da funkcioniše.
Tako mozak možda isprva nagađa parametre scene sa malom stopom uspešnosti, ali vremenom, tokom prvih nekoliko godina života, on u tome postaje poprilično vešt. Ako se u mozgu bebe dešava ovakvo učenje na greškama, onda je unošenje pravilnih rešenja unapred samo ubrzavanje tog procesa – ali nije od njega principijelno različito. Picture i ljudska percepcija možda ipak imaju mnogo toga zajedničkog.