- View
Značaj velikih količina podataka u mašinskom učenju
U domenu mašinskog učenja (ML), podaci se često nazivaju "gorivom" koje pokreće algoritme i modele. Efikasnost i tačnost sistema mašinskog učenja u velikoj meri zavise od dostupnosti velikih količina visokokvalitetnih podataka. Ovaj odeljak naglašava značaj podataka u ML, uvodi koncept programiranja zasnovanog na podacima i objašnjava osnovne koncepte kao što su skupovi podataka, instance, atributi, ulazne varijable i modeli.
Uloga podataka u mašinskom učenju
Podaci služe kao osnova na kojoj se grade modeli mašinskog učenja. Bez dovoljno podataka, algoritmi mašinskog učenja ne mogu da nauče obrasce ili efikasno predviđaju. Značaj velikih skupova podataka može se sažeti u sledećim tačkama:
- Učenje iz primera: Mašinsko učenje je u osnovi učenje iz primera. Veliki skupovi podataka pružaju raznovrstan spektar slučajeva koji pomažu algoritmima da identifikuju obrasce i odnose unutar podataka.
- Poboljšana tačnost: Modeli obučeni na većim skupovima podataka imaju tendenciju da generalizuju bolje na neviđene podatke, što dovodi do poboljšane tačnosti u predviđanjima. Ovo je posebno važno u aplikacijama kao što su zdravstvena dijagnostika ili finansijsko predviđanje, gde je preciznost od vitalnog značaja.
- Robusnost: Dobro zaokružen skup podataka koji obuhvata različite scenarije omogućava modelima da efikasnije rukuju rubnim slučajevima i anomalijama. Ova robusnost je od suštinskog značaja za aplikacije u stvarnom svetu gde podaci mogu biti bučni ili nepotpuni.
- Predstavljanje karakteristika: Veliki skupovi podataka omogućavaju ekstrakciju značajnih karakteristika koje mogu značajno poboljšati performanse modela. Sa više podataka, algoritmi mogu naučiti složene reprezentacije koje hvataju osnovne trendove.
- Ublažavanje preopterećenja: Imajući značajnu količinu podataka o obuci pomaže u sprečavanju preteranog uklapanja, gde model uči buku umesto osnovne distribucije. Veći skup podataka pruža bolju aproksimaciju prave distribucije podataka.
Programiranje na osnovu podataka
Programiranje zasnovano na podacima je pristup koji naglašava upotrebu podataka kao primarnog pokretača za donošenje odluka i razvoj algoritama. U ovoj paradigmi, programeri se fokusiraju na prikupljanje, analizu i korišćenje podataka kako bi informisali svoje prakse kodiranja, a ne da se oslanjaju isključivo na unapred definisana pravila ili logiku.
Zašto nam je potrebno programiranje zasnovano na podacima
- Prilagodljivost: Programiranje zasnovano na podacima omogućava sistemima da se prilagode promenljivim uslovima kontinuiranim učenjem iz novih ulaznih podataka.
- Poboljšano donošenje odluka: Koristeći velike skupove podataka, programeri mogu kreirati informisane algoritme koji dovode do boljih ishoda.
- Automatizacija: Pristupi zasnovani na podacima olakšavaju automatizaciju omogućavajući mašinama da uče iz istorijskih podataka i predviđaju bez ljudske intervencije.
- Skalabilnost: Kako više podataka postaje dostupno, sistemi mogu skalirati svoje mogućnosti bez potrebe za značajnim promjenama u njihovoj osnovnoj arhitekturi.
Osnovni koncepti mašinskog učenja
1. Skup podataka
Skup podataka je strukturirana zbirka podataka koji se koriste za obuku modela mašinskog učenja. Sastoji se od više instanci (tačaka podataka) organizovanih u redove i kolone, gde svaka kolona predstavlja atribut ili funkciju.
2. Instanca
Instanca se odnosi na jedan zapis ili posmatranje unutar skupa podataka. Svaka instanca sadrži vrednosti za različite atribute koji opisuju njegove karakteristike.
3. Atribut
Atributi su pojedinačne varijable ili karakteristike koje opisuju instancu u skupu podataka. Oni mogu biti numerički (npr. starost, plata) ili kategorički (npr. pol, boja). Atributi su ključni za definisanje ulaznog prostora za algoritme mašinskog učenja.
4. Ulazne varijable
Ulazne varijable su specifični atributi koji se koriste kao prediktori u modelu mašinskog učenja. Ove varijable pružaju neophodne informacije za model da nauče obrasce i da predviđanja o izlaznim varijablama (ciljevima).
5. Izlazne varijable
Izlazne varijable su ciljne vrednosti koje model ima za cilj da predvidi na osnovu ulaznih varijabli. Na primer, u modelu predviđanja cena stanova, ulazne varijable mogu uključivati kvadraturu i lokaciju, dok bi izlazna varijabla bila procenjena cena.
Koncept modela
U mašinskom učenju, model je definisan kao matematička reprezentacija koja mapira date ulazne varijable na izlazne varijable na osnovu naučenih obrazaca iz podataka o obuci. Proces uključuje:
- Obuka: Tokom obuke, model uči iz označenih instanci u skupu podataka podešavanjem svojih parametara kako bi se smanjile greške predviđanja.
- Mapiranje: Kada je obučen, model može uzeti nove ulazne varijable i generisati odgovarajuća izlazna predviđanja na osnovu svojih naučenih mapiranja.
- Evaluacija: Performanse modela se procenjuju korišćenjem metrika kao što su tačnost, preciznost, opoziv i F1 rezultat na validaciji ili testnim skupovima podataka.
Značaj velikih količina odgovarajućih podataka u mašinskom učenju ne može se preceniti; Od suštinskog je značaja za obuku efikasnih modela sposobnih da naprave tačne prognoze u stvarnim aplikacijama. Programiranje zasnovano na podacima pojavljuje se kao vitalna metodologija koja koristi ovo obilje podataka za informisanje o razvoju algoritama i procesima donošenja odluka. Razumevanje osnovnih koncepata kao što su skupovi podataka, instance, atributi, ulazne varijable, izlazne varijable i modeli postavlja temelje za dalje istraživanje tehnika mašinskog učenja i njihove primene u različitim domenima. Kako nastavljamo da koristimo moć podataka u mašinskom učenju, imperativ je dati prioritet kvalitetnom prikupljanju podataka i praksama upravljanja kako bi se osigurali robusni i pouzdani rezultati u AI sistemima.
Ovu priču ćemo započeti mozgalicom. Pokušajte da zaključite iz brojeva koje imate u levoj koloni (mi ćemo ih nazvati ulazima) kako se oni odnose na brojeve u desnoj koloni (mi ćemo ih zvati izlazi ).
|
Entrance |
Way |
|---|---|
|
1 , 9, 5, 4 |
19 |
|
3 , 8, 11 |
22 |
|
6 , 7, 9, 2, 2 |
26 |
|
2 , 3, 6 |
11 |
Pretpostavljamo da vam ovaj zadatak nije mnogo smetao i da ste već u drugom ili trećem redu tabele došli na ideju da brojevi u drugoj koloni, tj. izlazu, predstavljaju zbir brojeva koji se nalaze u levoj koloni, tj. na ulazu. Za ovaj zadatak, takođe znate kako da napišete algoritam (i škiljenjem!) koji vas vodi do rešenja. Na primer, U programskom jeziku Pithon možemo izračunati zbir elemenata niza [1, 9, 5, 4] tako što ćemo u početku proglasiti sumu nula, a zatim dodati jedan element u isto vreme dok ne dođemo do kraja niza:
numbers = [1, 9, 5, 4]
sum = 0
for element in numbers:
sum = sum + element
(Ugrađena funkcija sume izračunava ovo brzo za nas i mi ga zapravo češće koristimo.)
Sada se okušajte u sledećem mozgalici u kojoj morate da shvatite kako su ulazi i izlazi povezani. Ulazi su sada fotografije životinja, a izlazi su brojevi 0 ili 1.
|
Input |
Output |
|
|
1 |
|
|
0 |
|
|
0 |
|
|
1 |
|
|
0 |
Siguran sam da imate mnogo ideja ovde. I vrlo je moguće da su svi validni! Međutim, pošto su one pored fotografija mačaka, a nule su pored ostalih fotografija životinja, želeli smo da zaključite da je to zadatak u kojem morate prepoznati da li na fotografiji postoji mačka ili ne. Ako postoji fotografija mačke na ulazu, postoji 1 na izlazu, i obrnuto, ako nema fotografije mačke na ulazu, postoji 0 na izlazu. Malo kasnije ćete videti da se ovaj zadatak naziva zadatak binarne klasifikacije i veoma je čest u oblasti mašinskog učenja.
Da li je moguće kreirati algoritam za rešavanje ovog problema? Složit ćete se da nam je važno da budemo u stanju da razlikujemo šta je na fotografijama, jer na taj način možemo olakšati njihovo pretraživanje i analizu. Možete pokušati da napravite listu od desetina pravila kako biste utvrdili da li postoji mačka na slici ili ne. Ne zaboravite uzeti u obzir pozadinu, osvetljenje, ugao gledanja i činjenicu da postoji preko 50 različitih vrsta mačaka.
Zapravo postoji mnogo ovakvih problema, u kojima čak i ako se potrudimo (imenujemo 1000 pravila!) nismo u stanju da napišemo algoritme koji ih precizno rešavaju. Neki drugi primeri su prevođenje sa jednog jezika na drugi i označavanje lica na fotografijama. Složit ćete se da su nam ovi zadaci važni i zato što nam omogućavaju da razumemo sadržaj napisan na jeziku koji ne govorimo ili da poboljšamo bezbednost. Zato opisujemo takve probleme sa skupovima podataka , parovima ulaza i očekivanim izlazima, a rešavaju se tehnikama programiranja zasnovanim na podacima. U slučaju zadatka prepoznavanja mačaka (i bilo kojih drugih objekata), odgovarajući skup podataka može se organizovati slično kao i naš, sa slikama na ulazima i vrednostima 0 ili 1 na izlazu. U slučaju zadatka prevođenja, to mogu biti parovi rečenica na oba jezika, dok u slučaju zadatka obeležavanja lica, to mogu biti parovi slika, jedan bez označenih lica kao ulaz i jedan sa označenim licima kao izlaz. Evo primera.
|
Input |
Output |
|---|---|
|
|
|
Skupovi podataka koje možemo koristiti za opisivanje problema mogu se kreirati kroz svakodnevne aktivnosti. Na primer, nakon pregleda pacijenta u elektronskom zdravstvenom kartonu, lekar beleži informacije o pacijentu kao što su starost, pol, simptomi, alergije na lekove (sve ove vrednosti su ulazi) i kod koji odgovara njegovoj dijagnozi (izlaz). Slično tome, na aerodromima, za svaki let, poznate su informacije kao što su vreme polaska, aviokompanija, tip aviona itd. (sve ove vrednosti su ulazi) i informacije o tome da li je taj let kasnio ili ne (izlaz).
Skupovi podataka se takođe mogu kreirati posebno za rešavanje određenog zadatka. Na primer, skup podataka koji smo koristili za identifikaciju mačaka mogao je kreirati tim volontera koji su pogledali slike koje smo imali i pratili naše smernice, na primer, ako postoji mačka na slici, napišite 1, u suprotnom napišite 0, unesite 1 ili 0 u izlaznu kolonu. Za skupove podataka domena, na primer, prepoznajući promene u rendgenskim zracima, trebalo bi angažovati medicinske stručnjake koji imaju odgovarajuće veštine i znanja za donošenje odluka. Malo kasnije, saznaćete više o tome kako se kreiraju skupovi podataka.
Verovatno se pitate: ali kako da naučimo vezu između ulaza i izlaza u skupu podataka? Baš kao što postoji oblast koja se bavi razvojem klasičnih algoritama programiranja i analizom njihovih svojstava, postoji i oblast koja se bavi razvojem algoritama zasnovanih na podacima i ispitivanjem njihovih svojstava. To se zove mašinsko učenje. Mašinsko učenje je u srži svih modernih oblasti veštačke inteligencije jer je usko povezano sa podacima i načinima izvođenja znanja iz podataka. U sledećoj lekciji, mašinsko učenje će odgovoriti na pitanje koje vas zanima.
Važno je naglasiti da postoje i druge oblasti koje se bave podacima. Među njima, najstarija je svakako statistika, grana matematike koja se bavi prikupljanjem podataka, opisivanjem i analizom, kao i izvlačenjem zaključaka iz podataka. Statističke tehnike su u srcu mnogih algoritama mašinskog učenja. Data Science je disciplina koja je nastala kao rezultat nemogućnosti pojedinih disciplina da odgovore na mnoga zanimljiva pitanja. Na primer, svaka kompanija se suočava sa pitanjem kako da poboljša svoje usluge. Da bi to uradila, kompanija može analizirati komentare korisnika na društvenim medijima ili prodajnim sajtovima. Da bi se obradili komentari, potrebno ih je prikupiti na jednom mjestu i pohraniti u bazu podataka, zatim ih organizovati, na primjer, odvojiti pozitivne i negativne komentare, a zatim analizirati svaki od ovih skupova na finiji način kako bi se utvrdilo šta korisnici ocjenjuju kao negativne ili pozitivne, na primjer, određeni model proizvoda ili neku funkcionalnost. Ove informacije treba podeliti sa menadžmentom kompanije kako bi mogli da odluče šta dalje. Odgovor na početno pitanje, primećujete, je dugačak i zahteva znanje i rad sa alatima za preuzimanje sadržaja sa veba (tzv. strugači), rad sa bazama podataka, obradu prirodnog jezika, kao i tehnike prikaza podataka koje bi bile najinformativnije za stručnjake domena. U ovom i drugim primerima primene nauke o podacima, mašinsko učenje je neophodan deo puta znanja.
Pre nego što krenemo dalje, hajde da rezimiramo kako izgleda rešavanje problema sa klasičnim programiranjem i programiranjem zasnovanim na podacima.
Kada rešimo problem koristeći klasične tehnike programiranja, na primer, pronalaženje najvećeg elementa u nizu brojeva, prvo razmišljamo o problemu i prostornim i vremenskim ograničenjima koja imamo, zatim dizajniramo algoritam za njegovo rešavanje (na primer, sortiranje spajanja), a zatim ga programiramo u programskom jeziku i sačuvamo kod. Proveravamo tačnost implementacije na nekoliko slučajnih unosa dok se ne uverimo da sve funkcioniše tačno onako kako očekujemo. Kada treba da sortiramo novi niz, možemo koristiti program koji smo napisali, pokrenuti ga i dobiti odgovarajuće rešenje.
Kada se oslanjamo na programiranje zasnovano na podacima, u početku imamo samo podatke, na primer, hiljade parova ulaza i izlaza. Opet, mudro je prvo razmisliti o problemu. To sada radimo upoznavanjem sa skupom podataka. To se postiže tehnikama istraživačke analize o kojima ćemo kasnije raspravljati, što nam može dati ideju o tome koji oblik treba tražiti rješenje. Zatim, Umesto osmišljavanja algoritma za rešavanje problema, dizajniramo algoritam da naučimo kako da rešimo problem. To bi značilo da ako treba da naučimo vezu između ulaza i izlaza i promenimo skup podataka, ovaj algoritam može ponovo da pronađe najbolju vezu između njih. Veza koja postoji između ulaza i izlaza zavisi od podataka (nije statična!) i zato moramo da je naučimo, a mi to ne kažemo direktno. Kada dizajniramo i programiramo ovakav algoritam, moramo da koristimo podatke da vidimo koliko dobro funkcioniše. Ako nismo zadovoljni rezultatima, moramo da napravimo korak unazad i popravimo algoritam ili se vratimo na sam početak i proverimo da li u podacima postoji još nešto što može biti važno za rešavanje problema. Za razliku od klasičnog programiranja, ova iterativnost je veoma prisutna u programiranju zasnovanom na podacima.
{Q{AIML/AIMLEQ/1/AI01|103f2f1b77bfeb14000a489b0e9153891f16458411b36dcb0d51c57097be956a}Q}







