Uvod v odkrivanje znanj iz podatkov
Section outline
-
Predavatelj: Blaž Zupan (blaz.zupan@fri.uni-lj.si)
Asistenti: Marko Toplak (marko.toplak@fri.uni-lj.si), Jaka Kokošar
Predavanja potekajo v živo. Jih ne snemamo. Zoom predavanj ne bo.
Vaje pri predmetu bodo kombinacija konzultacij in (po potrebi) kratkih tečajev o praktičnih temah, ki bodo povezane z izvedbo domačih nalog. Na konzultacijah na začetku v skupini razpravljamo o snovi oziroma nalogah, kasneje pa delamo individualno.
Ocenjevanje: Ocena predmeta je sestavljena iz ocen domačih nalog in pisnega izpita. Pozitivna ocena domačih nalog (študent je zbral več kot 60% možnih točk) je pogoj za pristop k izpitu. Ocena predmeta je pozitivna, če je pozitivna tako ocena domačih nalog kot pisnega izpita (zbranih več kot 60% možnih točk pri domačih nalogah in več kot 60% možnih točk pri izpitu). Bonusi iz domačih nalog se ne prenašajo na pisni izpit (in obratno). Združena ocena domačih nalog in izpita v odstotnih točkah, kjer je DN ocena domačih nalog in I ocena izpita v odstotnih točkah se izračuna po enačbi: ocena [odstotne točke] = max( min(DN+15, I), min(DN, I+15) ). Primer: 85% točk iz domačih nalog, 65% iz izpita, ocena je 80%. Še en primer: pisni izpit 90%, domače naloge 65%, ocena je 80%. Zaokrožene odstotne točke (celo število) se prevedejo v končno oceno pri predmetu. Do 60 točk: ocena 5, od 61 do 68: ocena 6, od 69 do 76: 7, od 77 do 84: 8, od 85 do 92: 9, od 93 točk: ocena 10. Vpis ocene bo potekal v izpitnem obdobju hkrati z ustnim izpitom, ki bo na voljo za vse, ki bi radi spremenili oceno.
Domače naloge
Domače naloge bodo projektne, predvidoma bodo to tri domače naloge, ocenjevanje je na ustnih zagovorih ter z deponiranjem vaše kode. Če odkrijemo prepisovanje, dobita tako avtor kot prepisovalec negativne točke, ki so po absolutni vrednosti enake maksimalnim možnim točkam za to nalogo. Za vsako odkrito prepisovanje krajše naloge se vaša ocena iz nalog s prve točke zmanjša za 20 odstotnih točk. Poleg treh projektov bodo domače naloge obsegale tudi reševanje kratkih problemov, za katere boste morali napisati ustrezno kodo. Uspešnost teh vrednotimo z programskimi testi (unit testi); nalogo štejemo kot pravilno rešeno, če opravi vse unit teste.
Za pristop k izpitu morate v roku opraviti vse kratke domače naloge razen ene in vse tri uspešno zagovorjene projektne domače naloge.. Tako domače naloge kot kratke naloge imajo svoje roke, ki jih bomo objavljali tu.
Literatura
na voljo bodo zapiski s predavanje, objava teh sledi
dodatna gradiva, objavljena na tej spletni strani
-
V tej učni enoti obravnavamo podatke v različnih oblikah, pri čemer se osredotočamo na njihovo numerično predstavitev in vložitve v vektorske prostore. Predstavimo tabelarične podatke z matrično notacijo, kodiranje kategoričnih spremenljivk in diskretizacijo numeričnih podatkov, nato pa razširimo obravnavo na natabelarične podatke, kot so besedilo, slike, omrežja in časovne vrste, ter metode za njihovo numerično pretvorbo. Raziskujemo različne metrike razdalje za primerjavo podatkovnih primerov, izzive visokih dimenzij ter tehnike iskanja osamelcev. Na koncu se dotaknemo uporabe domenskih podatkov, vključno z ontologijami, besedilnimi in slikovnimi opisi ter pravilnimi omejitvami za izboljšano interpretacijo modelov. Zapiski predavatelja - Podatki (zapiski predavatelja)
-
Gručenje je oblika nenadzorovanega učenja za iskanje skritih vzorcev v podatkih brez vnaprej določenih oznak. Tu predstavimo različne pristope gručenja, vključno s particijskimi metodami, hierarhičnim gručenjem, gostotnimi pristopi, modelno temelječimi metodami in gručenjem na grafih. Predstavimo tudi formalne kriterije za ocenjevanje kakovosti gručenja, kot so znotrajgručna kohezija in medgručna ločitev ter opišemo ključne metrike za ocenjevanje kvalitete gručenja, kot sta silhuetni koeficient in prilagojeni Randov indeks. Na koncu predstavimo metode za razlago dobljenih gruč, vključno z vizualizacijo, identifikacijo pomembnih značilk in pravil, ki nam lahko pomagaho pri interpretaciji rezultatov. Zapiski predavatelja - Gručenje (zapiski predavatelja)
-
Podatkovne karte so vizualno orodje za prikaz podatkov v dveh (redkeje treh) dimenzijah, namenjeno predvsem razlagi in iskanju vzorcev. Ključna razlika med projekcijami, kot je PCA, in vložitvami, kot so MDS, t-SNE in UMAP, je v tem, da so projekcije linearne in temeljijo na kombinacijah značilk, ki jih lahko razložimo, medtem ko so vložitve nelinearne in prilagojene ohranjanju razdalj ali sosedstev, pri čemer nove osi nimajo jasne razlage. Če PCA išče glavne smeri največje variance in ima analitično rešitev, vložitve skušajo ohraniti kompleksne odnose med podatki in za rešitev zahtevajo numerične metode, kot je gradientni spust. Podatkovne karte niso le vizualizacija, ampak predvsem sredstvo za razlago podatkov, saj omogočajo vpogled v skupine in odnose med primeri, pogosto v povezavi z gručami. Zapiski predavatelja - Podatkovne karte (zapiski predavatelja)
-
Avtomatsko odvajanje je metoda za izračun gradientov, ki omogoča učinkovito optimizacijo kriterijskih funkcij v strojnem učenju. V tipičnem problemu strojnega učenja imamo namreč podatke, strukturo modela s parametri in kriterijsko funkcijo, ki določa, kako dobro model ustreza podatkom. Optimizacija parametrov poteka s postopki, kot je gradientni sestop, kjer se model oziroma njegovi parametri prilagajajo tako, da minimizirajo kriterijsko funkcijo. Primeri takšnih funkcij vključujejo napake napovednih modelov ali optimizacijske cilje pri metodah zmanjšanja dimenzij. Tu, v uvodu v avtomatsko odvajanje, najprej predstavimo analitične in numerične pristope k izračunu gradientov, nato pa skušamo razviti program za avtomatsko odvajanje tako, da razvoj pričnemo za silno enostavno funkcijo. Seveda bomo te postopke v naslednjem predavanju nadgradili, jih praktično uporabili v učnem algoritmu, in pokazali, da so za vse to na voljo številne že zgrajene in odlične knjižnice. Razvoj naše kode za odvajanje je torej zgolj šolski, nam pa (upamo) dobro pomaga razumeti področje.
Zapiski predavatelja
Andrej Karpathy: micrograd- The spelled-out intro to neural networks and backpropagation: building micrograd
- Micrograd GitHub Repo