Mašinsko učenje naspram dubokog učenja uz primer naručivanja pice
Sećam se, bila je to subota uveče. I onaj specifičan osećaj “šta večeras jedemo?” se uvukao u vazduh. Nakon nedelju dana disciplinovane ishrane i napornih treninga, u mojoj glavi je počela borba između želje za grešnim zadovoljstvom i cilja da skinem par kilograma. A onda mi je sinula ideja! Pa ja sam, zaboga, stručnjak za podatke, zar ne? Zašto ne bih upotrebio matematiku da izračunam da li je moguće da pojedem celu porodičnu picu i da se i dalje uklapam u svoj plan mršavljenja? Zvuči razumno, zar ne?
Tako sam se bacio na posao. Sabrao sam procenjene kalorije pice (ogromna cifra), oduzeo procenjene kalorije koje sagorim bazalnim metabolizmom i treningom, pa čak i dodao faktor “sreće” (koji je naravno bio nula, jer matematika ne prašta). Rezultat mog sofisticiranog matematičkog modela bio je jasan: verovatnoća da smršam ako pojedem celu picu je, pa, nula. Velika, okrugla nula. Ali znate šta? Tog dana sam imao kupon za popust. I znate šta je prevladalo? Kupon. Pica je stigla za 20 minuta. I bila je preukusna. Moja disciplina je, na kratko, bila na odmoru.
Ova priča, osim što pokazuje moju čvrstu volju pred iskušenjem, zapravo savršeno ilustruje kako često, kao početnici u svetu podataka, imamo tendenciju da stvari pojednostavimo do te mere da ignorišemo dublje, složenije veze. Ili, da budem precizniji, kako često mešamo neke osnovne termine i koncepte iz sveta veštačke inteligencije (AI), mašinskog učenja (ML) i dubokog učenja (DL). Ako ste se ikada zapitali koja je razlika ml i dl, ili ste zbunjeni kad čujete “neuralne mreže”, na pravom ste mestu. Hajde da razjasnimo te stvari, jednom za svagda, uz pomoć našeg omiljenog primera – pice!
Hijerarhija AI tehnologija
Pre nego što zaronimo u specifičnosti, hajde da postavimo stvari u pravi kontekst. Veštačka inteligencija (AI) je krovni termin, široko polje koje obuhvata sve tehnologije koje omogućavaju mašinama da simuliraju ljudsku inteligenciju. Zamislite AI kao univerzum, ogromnu galaksiju u kojoj postoje različite zvezde i planete.
- Veštačka Inteligencija (AI): Cilj je stvoriti mašine koje mogu da razmišljaju, uče i rešavaju probleme na način sličan ljudima. Od jednostavnih algoritama do kompleksnih sistema, sve što omogućava mašinama da “misle” spada ovde. Kada vaša aplikacija za naručivanje pice preporučuje priloge na osnovu vaših prethodnih izbora, to je AI na delu.
- Mašinsko Učenje (ML): Ovo je podskup AI-ja. ML sistemi uče iz podataka bez eksplicitnog programiranja. Umesto da im programirate svaku moguću situaciju, vi im date podatke i dozvolite im da sami pronađu obrasce i nauče kako da donose odluke ili predviđanja. Kao kada vam pica-servis predviđa verovatnoću da ćete naručiti picu u petak uveče na osnovu istorijskih podataka.
- Duboko Učenje (DL): Ovo je, pak, podskup mašinskog učenja. DL koristi višeslojne neuralne mreže (otuda i “duboko” – zbog mnogo slojeva) za prepoznavanje kompleksnih obrazaca u ogromnim količinama podataka. Deep Learning je odgovoran za one “magične” stvari poput prepoznavanja lica, prevođenja jezika u realnom vremenu ili, u našem primeru, prepoznavanja da li je pica na slici margerita ili kaprićoza samo gledajući sastojke.
Dakle, važno je zapamtiti: Svo duboko učenje je mašinsko učenje, a svo mašinsko učenje je veštačka inteligencija. Ali obrnuto ne važi. Nisu sve AI tehnologije mašinsko učenje, niti je svo mašinsko učenje duboko učenje. Sada kada smo postavili scenu, hajde da se dublje posvetimo mašinskom učenju.
Mašinsko učenje i strukturirani podaci
Mašinsko učenje je oblast koja je zaista transformisala način na koji pristupamo podacima i rešavamo probleme. Srž ML-a leži u algoritmima koji su dizajnirani da uče iz podataka i donose odluke ili predviđanja bez eksplicitnog programiranja za svaki pojedinačni slučaj. Zamislite da želite da vaš algoritam predvidi kada ćete biti gladni za picom. Umesto da mu kažete “Ako je petak i 19h, onda si gladan za picom”, vi mu date gomilu podataka o vašim prethodnim narudžbinama i dozvolite mu da sam “nauči” kada je najveća verovatnoća da ćete ponovo naručiti.
Kada govorimo o mašinskom učenju, često se oslanjamo na strukturirane podatke. Šta su strukturirani podaci? To su podaci koji su uredno organizovani u tabele, sa redovima i kolonama, baš kao baza podataka ili Excel tabela. Svaka kolona predstavlja određenu osobinu (feature), a svaki red je pojedinačni zapis. Na primer, za našu picu, strukturirani podaci bi mogli da izgledaju ovako:
- Datum narudžbine: 2023-10-26
- Vreme narudžbine: 20:15
- Vrsta pice: Kaprićoza
- Veličina pice: Porodična
- Cena: 1500 RSD
- Da li je bila akcija: Da
- Korisnik: Marko Petrović
- Ocena dostave: 5
Sa ovakvim podacima, ML algoritam može da nauči obrasce. Može da primeti da Marko Petrović obično naručuje porodičnu Kaprićozu petkom uveče, naročito kada je na snazi neka akcija. Na osnovu ovih obrazaca, algoritam može da predvidi da je Marko verovatno spreman da naruči picu sledećeg petka. Različiti algoritmi mašinskog učenja su tipični za ovakve zadatke.
Suština je da mi kao ljudi (ili analitičari podataka) obično pomažemo ML algoritmu tako što mu “pripremamo” ove karakteristike (features). Mi odlučujemo koje su kolone relevantne, kako ih transformisati, i kako ih predstaviti modelu. Ovaj proces se naziva feature engineering i često je ključan za uspeh ML modela. Iako moćno, mašinsko učenje ima svoje granice, posebno kada se suočava sa nestrukturiranim podacima kao što su slike, zvuk ili tekst, gde je “pripremanje” karakteristika mnogo teže.
Kako neuralne mreže čine DL dubokim
E, ovde stvari postaju zaista zanimljive i pomalo “magične”. Duboko učenje (DL) rešava mnoge izazove sa kojima se tradicionalno mašinsko učenje suočava, posebno kada je reč o nestrukturiranim podacima. Centralni stub dubokog učenja su neuralne mreže, inspirisane strukturom ljudskog mozga. Ime “duboko” dolazi od činjenice da ove mreže imaju mnogo slojeva (obično tri ili više) između ulaznog i izlaznog sloja, što im omogućava da uče veoma kompleksne i apstraktne reprezentacije podataka.
Zamislite neuralnu mrežu kao seriju filtera, gde svaki sloj uči da prepozna različite aspekte ulaznih podataka. Prvi slojevi mogu prepoznati jednostavne karakteristike, kao što su ivice ili boje na slici pice. Sledeći slojevi kombinuju ove jednostavne karakteristike u složenije oblike, poput oblika pečurke ili masline. Konačno, poslednji slojevi kombinuju sve ove naučene karakteristike da bi prepoznali celu picu i klasifikovali je kao “Kaprićoza” ili “Margerita”.
Evo kako to radi u praksi sa našim primerom pice:
- Ulazni sloj: Predstavlja sirove podatke – na primer, piksele slike pice. Svaki piksel je “neuron” u ulaznom sloju.
- Skriveni slojevi: Ovo je “duboki” deo. U ovim slojevima se odvija prava magija. Svaki neuron u jednom sloju je povezan sa neuronima u sledećem sloju, a veze imaju “težine” koje se prilagođavaju tokom procesa učenja. Ovi slojevi automatski uče da izvlače relevantne karakteristike iz podataka. Umesto da mi kažemo algoritmu “traži okrugle oblike” ili “traži crvene delove”, neuralna mreža sama otkriva koje su karakteristike bitne za prepoznavanje različitih vrsta pica.
- Izlazni sloj: Predstavlja konačni rezultat, na primer, verovatnoću da je pica na slici Kaprićoza, Margerita ili neka treća vrsta.
Kroz proces treninga sa milionima slika pica, neuralna mreža postaje neverovatno precizna u prepoznavanju i klasifikaciji. Ne mora niko da joj govori kako izgleda pečurka; ona to nauči sama gledajući bezbroj slika na kojima su pečurke prisutne i označene. Ovo je ključna snaga dubokog učenja – njegova sposobnost da automatski uči hijerarhijske reprezentacije karakteristika iz sirovih, nestrukturiranih podataka.
Razlika u ljudskoj intervenciji (Supervised vs Unsupervised)
Jedna od najvećih razlika između tradicionalnog mašinskog učenja i dubokog učenja leži u količini i vrsti ljudske intervencije, naročito u obeležavanju podataka i inženjeringu karakteristika.
Mašinsko Učenje (Često Nadzirano)
Većina tradicionalnih ML algoritama koristi nadzirano učenje (Supervised Learning), zahtevajući označen skup podataka za trening. Ako želimo da predvidimo ocenu dostave pice, moramo imati mnogo primera gde su tačno navedeni relevantni podaci i *ispravna ocena*. Ljudska intervencija je ovde značajna:
- Obeležavanje podataka: Čovek mora ručno obeležiti svaki primer (“ova dostava je dobila ocenu 5”).
- Inženjering karakteristika: Ekspert mora da kreira relevantne karakteristike, transformišući sirove podatke u korisne inpute (npr. “doba dana” iz “vremena narudžbine”).
Primer sa picom: ML algoritam bi koristio pripremljene karakteristike kao što su prosečno vreme čekanja, vrsta pice, kuponi, broj prethodnih narudžbina, sve uz oznaku da li je kupac ponovo naručio.
Duboko Učenje (Manje feature engineeringa)
DL, sa sposobnošću da samostalno uči hijerarhijske reprezentacije, smanjuje potrebu za opsežnim inženjeringom karakteristika. Iako mnogi DL modeli i dalje koriste nadzirano učenje (npr. u prepoznavanju slika sa ručno označenim objektima), oni automatski izvlače relevantne karakteristike direktno iz sirovih podataka.
Kod DL-a, kada radite sa slikama pica, mreža sama uči da prepozna obrasce sastojaka, bez da joj mi eksplicitno kažemo šta da traži. Ljudska intervencija se svodi na obezbeđivanje velikog broja podataka i dizajn arhitekture neuralne mreže.
DL takođe obuhvata nenadzirano učenje (Unsupervised Learning), gde modeli uče strukture u podacima bez ikakvih oznaka. Na primer, DL algoritam može da analizira recenzije pica i sam identifikuje teme ili sentimente (“brza dostava”, “preskupo”), ili da grupiše kupce po ponašanju, bez prethodnih definicija tih grupa.
Ukratko, dok ML često zahteva ručno definisanje i ekstrakciju karakteristika, DL ima sposobnost da automatski uči te karakteristike, što ga čini moćnim za rad sa kompleksnim, nestrukturiranim podacima i smanjuje teret ljudske intervencije u inženjeringu karakteristika.
Forward i Back-propagation procesi
Da bismo zaista razumeli kako duboko učenje uči, moramo da zavirimo u srce neuralnih mreža i objasnimo dva ključna procesa: Forward Propagation i Backpropagation. Bez ovih procesa, neuralne mreže bi bile samo prazne ljušture, nesposobne za učenje.
Forward Propagation (Napredna propagacija)
Zamislite da neuralnoj mreži date sliku pice i želite da ona prepozna koju vrstu pice vidite. To je proces forward propagation-a. Podaci (pikseli slike) ulaze u ulazni sloj mreže. Zatim se, neuron po neuron, sloj po sloj, računaju aktivacije. Svaki neuron prima ulaze od prethodnog sloja, primenjuje na njih težine (numeričke vrednosti koje određuju jačinu veze između neurona), dodaje pristrasnost (bias), i zatim primenjuje aktivacionu funkciju (koja odlučuje da li će neuron biti “aktiviran” i proslediti signal dalje). Ovaj signal se zatim prosleđuje u sledeći sloj, i tako sve do izlaznog sloja.
Na kraju forward propagation procesa, izlazni sloj generiše predviđanje. Na primer, može reći: “Ovo je 80% Kaprićoza, 15% Margerita i 5% Peperoni.” U ovoj fazi, mreža je jednostavno napravila pretpostavku na osnovu trenutnih vrednosti svojih težina i pristrasnosti. U početku, kada su težine nasumične, predviđanja će biti uglavnom pogrešna, kao što bi i moj model za mršavljenje dao pogrešne rezultate da nisam uzeo u obzir kalorije.
IBM Technology ima odličan video koji vizuelno objašnjava kako funkcionišu feed-forward mreže, koje su osnova ovog procesa. Preporučujem da pogledate:
Video, kao što je objašnjeno na zvaničnom kanalu IBM Technology, pruža fantastičan uvid u osnove deep learninga i feed-forward procesa.
Backpropagation (Unazadna propagacija)
E, ovde se dešava stvarno učenje. Nakon što mreža napravi predviđanje putem forward propagation-a, ona mora da zna koliko je pogrešila. Tu na scenu stupa funkcija greške (Loss Function). Ona meri razliku između predviđanja mreže i stvarne, tačne oznake (npr. ako je slika zapravo Kaprićoza, a mreža je rekla 80% Kaprićoza, greška je mala. Ako je rekla 5% Kaprićoza, greška je velika).
Cilj obuke je minimizirati ovu grešku. Kako to radimo? Koristeći backpropagation. To je algoritam koji “širi” grešku unazad kroz mrežu, od izlaznog sloja, preko svih skrivenih slojeva, sve do ulaznog sloja. Tokom ovog procesa, algoritam izračunava gradijente – to jest, kako bi promena svake pojedinačne težine i pristrasnosti uticala na ukupnu grešku. Zatim, koristeći tehniku zvanu gradijentni spust (Gradient Descent), te težine i pristrasnosti se blago prilagođavaju u smeru koji će smanjiti grešku za sledeći put.
Zamislite to ovako: Mreža je skuvala picu i misli da je savršena. Probamo je i kažemo: “Malo previše soli, a fali bosiljka.” Backpropagation je proces u kome mreža (kuvar) analizira povratnu informaciju, shvata koji su sastojci (težine) prouzrokovali grešku, i sledeći put prilagođava količinu soli i bosiljka. Ovaj iterativni proces, gde se milioni slika pica provlače kroz mrežu, predviđaju, mere greške i koriguju težine, čini da neuralna mreža postane izuzetno precizna u svom zadatku.
Ova dva procesa – forward i back-propagation – rade zajedno u ciklusu. Mreža pravi predviđanje (forward), uči iz grešaka (backpropagation), i ponavlja se milionima puta, postepeno postajući sve bolja i bolja. To su osnove deep learninga i fundamentalni mehanizmi koji pokreću moderne AI sisteme.
Zaključak
Nadam se da smo sada razjasnili razlika ml i dl. Dok je mašinsko učenje širok pojam za algoritme koji uče iz podataka, duboko učenje je specifičan podskup ML-a koji koristi višeslojne neuralne mreže da automatski uči kompleksne karakteristike, naročito iz nestrukturiranih podataka. Mašinsko učenje pica primer, od mojeg neuspešnog modela za mršavljenje do prepoznavanja sastojaka na slici, služi kao zabavan, ali i vrlo praktičan način da razumemo ove moćne koncepte.
Bilo da ste početnik ili iskusan stručnjak, razumevanje ovih fundamentalnih koncepata je ključno za navigaciju u svetu veštačke inteligencije. Zapamtite, AI je univerzitet, ML je jedan od fakulteta, a DL je katedra na tom fakultetu. Svaki nivo ima svoje prednosti i primene, ali svi dele zajednički cilj: osnaživanje mašina da uče i rade pametnije.
Sada, ako me izvinite, mislim da je vreme za još jednu pizzu. Možda ovog puta bez pokušaja da matematički opravdam celu porodičnu. Neki obrasci su ipak jači od algoritama, pogotovo kad je kupon u pitanju!
