Što se događa u glavi koja smišlja računalni program

U MIT-ovom Laboratoriju za računalne znanosti i umjetnu inteligenciju pozabavili su se načinom na koji mozak reagira prilikom pisanja koda i razumijevanja dijela već napisanog koda

Mladen Smrekar utorak, 3. siječnja 2023. u 06:00
📷 Freepik
Freepik

Funkcionalna magnetska rezonancija (fMRI), koja mjeri promjene u protoku krvi u mozgu, koristila se tijekom proteklih nekoliko desetljeća za razne primjene, uključujući "funkcionalnu anatomiju", odnosno način određivanja koja su područja mozga uključena kad neka osoba obavlja određeni zadatak. fMRI se koristi za promatranje mozgova ljudi dok rade razne stvari: rješavaju matematičke probleme, uče strane jezike, igraju šah, improviziraju na klaviru, rješavaju križaljke ili gledaju TV.

Dvije studije

U MIT-ovom Laboratoriju za računalne znanosti i umjetnu inteligenciju (CSAIL) odlučili su se pozabaviti načinom na koji mozak reagira prilikom računalnog programiranja, pisanja koda i razumijevanja dijela već napisanog koda. 

Stavite li dio koda u neuronsku mrežu, ona proizvodi popis brojeva koji vam na neki način govore o čemu se radi u programu 📷 Alex Shipps/Canva
Stavite li dio koda u neuronsku mrežu, ona proizvodi popis brojeva koji vam na neki način govore o čemu se radi u programu Alex Shipps/Canva

"Toliko se ljudi ovih dana bavi kodom - čitanjem, pisanjem, dizajnom, otklanjanjem pogrešaka - ali nitko ne zna što se pritom događa u njihovim glavama", kažu istraživači koji su svoja zapažanja predstavili na Neural Information Processing Systems Conference u New Orleansu. Novi rad temelji se na dvije godine staroj studiji istih autora koja je koristila fMRI za praćenje mozgova programera dok su "shvaćali" isječke koda.

Razumijevanje koda

Ta je studija pokazala da razumijevanje koda nije dosljedno aktiviralo regije mozga koje upravljaju obradom jezika. Umjesto toga, aktivan je bio sustav mozga povezan s općim, matematičkim i logičkim razmišljanjem. No, dok je prethodna studija promatrala 20 do 30 ljudi kako bi se utvrdilo na koje se moždane sustave oslanjaju da bi razumjeli kod, novo istraživanje promatra aktivnost mozga pojedinačnih programera dok obrađuju određene elemente računalnog programa. 

Na temelju obrazaca promatranih moždanih aktivnosti, moglo se reći procjenjuje li netko dio koda koji uključuje petlju ili grananje. Istraživači su također mogli reći odnosi li se kod na riječi ili matematičke simbole i je li netko čitao stvarni kod ili samo pisani opis tog koda
Na temelju obrazaca promatranih moždanih aktivnosti, moglo se reći procjenjuje li netko dio koda koji uključuje petlju ili grananje. Istraživači su također mogli reći odnosi li se kod na riječi ili matematičke simbole i je li netko čitao stvarni kod ili samo pisani opis tog koda

Istraživači su uočili primjetnu razliku kad su u pitanju svojstva koda povezana s dinamičkom analizom. Naime, istraživači su otkrili da su za dinamičku analizu informacije mnogo bolje kodirane u mreži višestrukih zahtjeva (multiple demand network) nego u centru za obradu jezika.

Niz eksperimenata

Temeljem tog otkrića oni su pokušali vidjeti kako je razumijevanje koda raspoređeno u mozgu; koji su dijelovi uključeni i koji preuzimaju veću ulogu u određenim aspektima zadatka. Izveli su niz eksperimenata koji su uključivali neuronske mreže obučene na računalnim programima. Pokazalo se kako moždani signali nalikuju obrascima aktivacije uočenim kad neuronske mreže analiziraju isti komad koda. 

MIT-ovi istraživači Una-May O’Reilly, Shashank Srikant i Benjamin Lipkin
MIT-ovi istraživači Una-May O’Reilly, Shashank Srikant i Benjamin Lipkin

"Stavite li dio koda u neuronsku mrežu, ona proizvodi popis brojeva koji vam na neki način govore o čemu se radi u programu", objašnjavaju istraživači. Popis brojeva na sličan način daju i skenovi mozga ljudi koji proučavaju računalne programe. "Kad programom dominira grananje, vidite jasan obrazac moždane aktivnosti i sličan obrazac kad model strojnog učenja pokušava razumjeti taj isti isječak."

Stvaranje kompozicije

Znanstvenici MIT-a još ne znaju što nam ti nedavno prikupljeni uvidi mogu reći o tome kako ljudi provode razrađenije planove u stvarnom svijetu. Dovršavanje zadataka ove vrste - poput odlaska u kino, što zahtijeva provjeru vremena prikazivanja, organiziranje prijevoza, kupnju karata i tako dalje - ne može se riješiti pomoću jedne jedinice koda i samo jednog algoritma. 

Moždani signali nalikuju obrascima aktivacije uočenim kad neuronske mreže analiziraju isti komad koda 📷 Freepik
Moždani signali nalikuju obrascima aktivacije uočenim kad neuronske mreže analiziraju isti komad koda Freepik

Uspješno izvršenje takvog plana zahtijeva "kompoziciju" — spajanje različitih isječaka i algoritama u razuman niz koji vodi do nečeg novog, baš kao sastavljanje pojedinačnih glazbenih taktova kako bi se napravila pjesma ili čak simfonija, kažu istraživači. A stvaranje modela sastava koda trenutačno je izvan našeg dosega.