Шта су алгоритми и зашто они чине људима непријатне?

Izraz „algoritam“ čujemo vrlo često. Ali, kada razgovaramo o algoritmima na YouTube-u ili Facebook-u, o čemu zapravo govorimo? Šta su algoritmi i zbog čega se ljudi toliko bune u vezi njih?

Algoritmi: Uputstva za rešavanje problema

Živimo u vremenu u kojem računare slabo razumemo, iako su oni sastavni deo svakog našeg trenutka. Međutim, postoji jedna oblast informatike u kojoj svako može razumeti osnove onoga što se događa. Ta oblast se naziva programiranje.

Programiranje možda nije glamurozan posao, ali je osnova za sav kompjuterski softver, od Microsoft Office-a do robotskih poziva. Čak i ako je vaše znanje o programiranju stečeno isključivo iz loših filmova 90-ih i čudnih vesti, verovatno vam ne treba objašnjavati šta programer radi. Programer piše kod za računar, a računar sledi uputstva tog koda da bi obavio zadatke ili rešio probleme.

Dakle, u svetu kompjuterskih nauka, algoritam je samo druga reč za kod. Svaki skup instrukcija koji govori računaru kako da reši probleme je algoritam, čak i ako je zadatak jednostavan. Kada uključite računar, on sledi niz uputstava „kako se uključiti“. To je algoritam na delu. Kada NASA koristi sirove podatke o radio talasima da bi prikazala fotografiju svemira, to je takođe algoritam na delu.

Termin „algoritam“ može se koristiti za opisivanje bilo kog seta uputstava, čak i izvan domena računarstva. Na primer, vaš način sortiranja pribora za jelo u fioci je algoritam, kao i vaš način pranja ruku nakon korišćenja toaleta.

Ali, stvar je u tome što se danas reč „algoritam“ uglavnom koristi za neke specifične tehničke diskusije. Ne čujete ljude da pričaju o algoritmima „osnovne matematike“ ili algoritmima „MS Paint alatke za crtanje“. Umesto toga, čujete kako se korisnici Instagrama žale na algoritme za predlaganje prijatelja, ili se kritukuju Facebook algoritmi za prikupljanje podataka.

Ako je „algoritam“ uobičajen izraz za računarske instrukcije, zašto ga onda koristimo skoro isključivo da bismo opisali zbunjujuće, magične i problematične aspekte digitalnog sveta?

„Algoritmi“ i „Mašinsko učenje“: Da li ih mešamo?

Ranije su programeri i pop kultura većinu kompjuterskih instrukcija nazivali „kodom“. To je uglavnom tačno i danas. Mašinsko učenje je velika, složena oblast u računarstvu gde obično koristimo reč „algoritam“ umesto „kod“. Ovo je, razumljivo, doprinelo konfuziji i nelagodnosti u vezi reči „algoritam“.

Mašinsko učenje postoji već neko vreme, ali je postalo bitan deo digitalnog sveta tek u poslednjih petnaestak godina. Iako mašinsko učenje zvuči kao komplikovana ideja, prilično je jednostavno razumeti. Programeri ne mogu pisati i testirati poseban kod za svaku situaciju, pa zato pišu kod koji može sam da se prilagodi.

Možemo to posmatrati kao praktičniju varijantu veštačke inteligencije. Ako dovoljno mejlova vašeg šefa obeležite kao neželjenu poštu, vaš klijent e-pošte će automatski početi da prebacuje sve njegove mejlove u folder za neželjenu poštu. Slično tome, Google koristi mašinsko učenje da bi osigurao da rezultati pretrage na YouTube-u budu relevantni, a Amazon koristi mašinsko učenje da predloži koje proizvode treba da kupite.

Naravno, mašinsko učenje nije bez problema. Sam naziv „mašinsko učenje“ zvuči dovoljno jezivo da neke ljude učini uznemirenim, a neke od popularnih primena mašinskog učenja su etički upitne. Algoritmi koje Facebook koristi za prikupljanje podataka od korisnika širom veba su neprijatan primer mašinskog učenja.

U medijima ćete čuti o „Google-ovom algoritmu“ za rangiranje rezultata pretrage, „YouTube-ovom algoritmu“ za preporučivanje video snimaka i „Facebook-ovom algoritmu“ za odlučivanje koje ćete postove videti na svojoj vremenskoj liniji. Sve su to teme sporenja i debate.

Zašto su algoritmi kontroverzni?

Dugo deljenje je poznati algoritam (među mnogim drugim) za deljenje brojeva. Samo što ga, umesto računara, primenjuju školarci. Vaš Intel CPU koristi potpuno drugačiji algoritam kada deli brojeve, ali rezultati su isti.

Govor u tekst generalno koristi mašinsko učenje, ali niko ne priča o „algoritmu“ za govor u tekst jer postoji objektivno tačan odgovor koji svako odmah može da prepozna. Nikoga ne zanima kako računar shvati šta ste rekli ili da li je to mašinsko učenje ili ne. Zanima nas samo da li je mašina dala ispravan odgovor.

Međutim, druge primene mašinskog učenja nemaju tu prednost „ispravnog“ odgovora. Zbog toga su algoritmi postali redovna tema u medijima.

Algoritam za sortiranje liste po abecednom redu je samo način da se izvrši određen zadatak. Ali, algoritam kao što je Google-ov za „rangiranje najboljih veb lokacija za pretragu“ ili YouTube-ov za „preporučivanje najboljeg videa“ je mnogo neodređeniji i ne izvršava jasno definisan zadatak. Ljudi mogu raspravljati o tome da li taj algoritam daje željene rezultate, i ljudi će imati različita mišljenja o tome. Ali, sa našim primerom sortiranja po abecednom redu, svi se mogu složiti da lista na kraju bude složena po abecednom redu kako treba. Nema spora.

Kako bismo trebali koristiti reč „algoritam“?

Algoritmi su osnova svakog softvera. Bez algoritama, ne biste imali telefon ili računar, i verovatno biste čitali ovaj tekst na papiru (u stvari, verovatno ga ne biste ni čitali).

Međutim, šira javnost ne koristi izraz „algoritam“ kao osnovni pojam za kompjuterski kod. Većina ljudi pretpostavlja da postoji razlika između kompjuterskog koda i algoritma, ali suštinski je nema. Zbog povezivanja reči „algoritam“ sa mašinskim učenjem, njegovo značenje je postalo nejasno, ali je njegova upotreba postala specifičnija.

Da li biste trebali početi da koristite reč „algoritam“ da opišete čak i najjednostavnije delove kompjuterskog koda? Verovatno ne, jer neće svi razumeti šta podrazumevate. Jezik se uvek menja i uvek se menja sa dobrim razlogom. Ljudima je potrebna reč da opišu zbunjujući, neprovidan i ponekad sumnjiv svet mašinskog učenja, a „algoritam“ postaje ta reč – za sada.

Imajući to na umu, dobro je zapamtiti da je algoritam (i mašinsko učenje) u suštini samo gomila koda koji je napisan da bi se rešavali zadaci. Ne postoji magični trik; to je samo kompleksnija verzija softvera koji već poznajemo.

Izvori: Škriljac, Vikipedija, GeeksforGeeks