Razvoj strojnega učenja - brezplačen tečaj Šole za analizo podatkov, usposabljanje 4 semestre, Datum: 2. december 2023.
Miscellanea / / December 06, 2023
Ta smer je primerna za tiste, ki radi programirajo in ustvarjajo storitve in aplikacije, ki jih lahko uporablja na tisoče in milijone ljudi.
Napišite učinkovito kodo, zgradite in optimizirajte industrijsko učinkovite podatkovno vodene sisteme.
Pri razvoju visokotehnoloških izdelkov, ki temeljijo na strojnem učenju.
Vsak študent mora uspešno opraviti vsaj tri predmete v semestru. Na primer, če sta v glavnem programu dva, potem morate izbrati enega od posebnih tečajev.
Znanje se preverja predvsem z domačimi nalogami – izpiti in preizkusi znanja se izvajajo le pri nekaterih predmetih.
Prvi semester
Obvezno
Algoritmi in podatkovne strukture, 1. del
01 Kompleksnost in računalniški modeli. Analiza računovodskih vrednosti (začetek)
02Analiza knjigovodskih vrednosti (konec)
03Algoritmi spajanja in hitrega razvrščanja
04Ordinalna statistika. Heaps (začetek)
05Heaps (konec)
06 Zgoščevanje
07Iskalna drevesa (začetek)
08Iskalna drevesa (nadaljevanje)
09Iskalna drevesa (konec). Sistem disjunktnih množic
10 Težave RMQ in LCA
11Podatkovne strukture za geometrijsko iskanje
12Problem dinamične povezljivosti v neusmerjenem grafu
Usposabljanje jezika C++, 1. del
C++ je močan jezik z bogato dediščino. Tisti, ki so šele stopili na pot osvajanja tega jezika, se zelo zlahka izgubijo v obilici tehnik in tehnik, ustvarjenih v zadnjih 30 letih. Predmet poučuje "Modern C++" - sodobno podmnožico jezika (standardi 11, 14 in 17). Veliko pozornosti je namenjeno orodjem in knjižnicam – stvarem, ki niso del jezika, a brez njih ne bo mogoče zgraditi velikega in kompleksnega projekta.
01 Uvod v C++.
02Konstante. Kazalci in povezave. Posredovanje argumentov funkciji.
03Razredi.
04Dinamično upravljanje pomnilnika.
05Spremenljivke, kazalci in reference.
06 Upravljanje pomnilnika, pametni kazalci, RAII.
07 Standardna knjižnica predlog.
08Dedovanje in virtualne funkcije.
09 Obravnava napak.
10 Oblikovalski vzorci.
11Imenski prostori Semantika premika Popolno posredovanje.
12 Predstavitev struktur in razredov v spominu. Usklajevanje podatkov. Kazalci na člane/metode razreda. Različne predloge.
Strojno učenje, 1. del
01Osnovni pojmi in primeri aplikativnih problemov
02 Metode metrične klasifikacije
03 Metode logičnega razvrščanja in odločitvena drevesa
04 Metode gradientne linearne klasifikacije
05 Podporni vektorski stroj
06Multivariatna linearna regresija
07Nelinearna in neparametrična regresija, nestandardne izgube
08 Napovedovanje časovnih vrst
09Bayesove metode razvrščanja
10 Logistična regresija
11 Iskanje asociacijskih pravil
Drugi mandat
Obvezno
Strojno učenje, 2. del
01 Metode nevronske mreže klasifikacije in regresije
02Kompozicijske metode klasifikacije in regresije
03 Kriteriji za izbiro modelov in metode za izbiro lastnosti
04Uvrstitev
05 Učenje s krepitvijo
06 Učenje brez učitelja
07Težave z delnim treningom
08 Sodelovalno filtriranje
09Tematsko modeliranje
Na izbiro
Algoritmi in podatkovne strukture, 2. del
01 Obhod po širini. Prvo prečenje globine (začetek)
02 Globinsko plazenje (nadaljevanje)
03 Globinsko plazenje (konec). 2-kosi
04 Iskanje najkrajših poti (začetek)
05 Iskanje najkrajših poti (nadaljevanje)
06 Najmanjše število vpetih dreves
07Minimalni rezi. Iskanje podnizov (začetek)
08 Iskanje podnizov (nadaljevanje)
09 Iskanje podnizov (konec)
10 Priponska drevesa (začetek)
11Priponska drevesa (končnica). Nizi pripon (začetek)
12 Nizi pripon (konec)
13 Najdaljši skupni podnizi. Približno iskanje podniza.
oz
Jezik Python
01Jezikovne osnove (1. del)
02Jezikovne osnove (2. del)
03 Objektno orientirano programiranje
04 Obravnava napak
05 Oblikovanje in testiranje kode
06 Delo z nizi
07 Model pomnilnika
08Funkcijsko programiranje
09 Pregled knjižnice (1. del)
10 Pregled knjižnice (2. del)
11Vzporedno računalništvo v Pythonu
12Napredno delo s predmeti
oz
Usposabljanje jezika C++, 2. del
Drugi del tečaja C++, ki pokriva napredne teme in jezikovne zmožnosti.
01 Večnitno programiranje. Sinhronizacija niti z uporabo muteksov in pogojnih spremenljivk.
02Atomske spremenljivke. Pomnilniški model C++. Primeri podatkovnih struktur brez zaklepanja.
03 Napredne tehnike metaprogramiranja v C++. Metafunkcije, SFINAE, koncepti.
04Konkurenčno programiranje, interakcija z omrežjem.
05llvm arhitektura. Delo z drevesom razčlenjevanja C++. Razvoj orodij za analizo kode C++.
Tretji semester
Na izbiro
Obdelava naravnega jezika
»NLP (Obdelava naravnega jezika) je podmnožica širšega področja umetne inteligence, ki poskuša naučiti računalnik razumeti in obdelovati neobdelane podatke v naravnem jeziku. Večina informacij, ki so danes na voljo, ni strukturirano besedilo. Kot ljudem jih seveda ni težko razumeti (če so v našem maternem jeziku), vendar nismo sposobni obdelati toliko podatkov, kot bi jih lahko obdelal stroj. Toda kako lahko naredite, da stroj razume te podatke in poleg tega iz njih izvleče nekaj informacij? Pred nekaj leti, ob otvoritvi ACL (ene osrednjih, če ne celo najpomembnejše NLP konference) v svoji Predsedniški govor Marti Hearst je priznala, da študentom ne more več dati svojega najljubšega telovadba. Na primeru HAL 9000 (enega od primerov umetne inteligence v znanstveni fantastiki) je študente vprašala, kaj stroj zmore kot HAL in česa še ne zmore. Dandanes to ni več tako dobra vaja, saj lahko skoraj vse to naredi računalnik. Neverjetno je, kako hitro področje raste in koliko smo dosegli. Na tečaju bomo poskušali razumeti in čutiti, kaj se dogaja v svetu. Katere težave se rešujejo, kako se to zgodi; kako nekateri statistični pristopi (ki so jim bili pred nekaj leti skoraj v celoti posvečeni tečaji NLP) v nevronskih mrežah dobijo novo življenje in novo interpretacijo ter kateri postopoma izumirajo. Pokazali bomo, da NLP ni skupek parov (problem, rešitev), temveč splošne ideje, ki prodirajo v različne probleme in odražajo nek skupen koncept. Izvedeli boste tudi, kaj se dogaja v praksi in kdaj kateri pristopi so bolj uporabni. To je tisto, kar počnemo, kar imamo radi in to smo pripravljeni deliti z vami :)"
01 https://lena-voita.github.io/nlp_course.html
02 https://github.com/yandexdataschool/nlp_course
oz
Računalniški vid
»Predmet je posvečen metodam in algoritmom računalniškega vida, torej pridobivanju informacij iz slik in videa. Poglejmo si osnove obdelave slik, klasifikacijo slik, iskanje slik po vsebini, prepoznavanje obrazov, segmentacijo slik. Nato bomo govorili o algoritmih za obdelavo in analizo videa. Zadnji del tečaja je namenjen 3D rekonstrukciji. Za večino problemov bomo razpravljali o obstoječih modelih nevronske mreže. Pri predmetu poskušamo biti pozorni le na najsodobnejše metode, ki se trenutno uporabljajo pri reševanju praktičnih in raziskovalnih problemov. Tečaj je bolj praktičen kot teoretičen. Zato so vsa predavanja opremljena z laboratorijskimi in domačimi nalogami, ki vam omogočajo, da večino obravnavanih metod preizkusite v praksi. Delo poteka v Pythonu z uporabo različnih knjižnic."
01Digitalno slikanje in korekcija tona
02Osnove obdelave slik
03 Šivanje slik
04Razvrstitev slik in iskanje podobnih
05 Konvolucijske nevronske mreže za razvrščanje in iskanje podobnih slik
06 Zaznavanje predmetov
07Semantična segmentacija
08 Prenos sloga in sinteza slike
09 Video prepoznavanje
10Sparse 3D rekonstrukcija
11Gosta 3D rekonstrukcija
12Rekonstrukcija iz enega okvirja in oblakov točk, parametrični modeli
oz
Bayesove metode v strojnem učenju
01 Bayesov pristop k teoriji verjetnosti
02Analitično Bayesovo sklepanje
03Izbira Bayesovega modela
04Samodejno določanje ustreznosti
05 Metoda vektorja relevantnosti za problem klasifikacije
06Verjetnostni modeli z latentnimi spremenljivkami
07Variacijsko Bayesovo sklepanje
08Bayesov model ločevanja zmesi Gaussovih
09 Metode Monte Carlo z Markovskimi verigami
10 Latentna Dirichletova dodelitev
11Gaussovi procesi za regresijo in klasifikacijo
12Neparametrične Bayesove metode
Četrti semester
Obvezno
Inženirska praksa ML
Predmet je projektno delo pri razvoju ML projektov v timih.
Raziskovalna praksa ML
Predmet predstavlja delo na timskih raziskovalnih projektih na področju strojnega učenja.
Priporočeni posebni tečaji
Globoko učenje
01 Gradivo za tečaj
Učenje s krepitvijo
01 Gradivo za tečaj
Samovozeči avtomobili
Tečaj zajema ključne komponente tehnologije samovozeče: lokalizacija, zaznavanje, napovedovanje, vedenjska raven in načrtovanje gibanja. Za vsako komponento bodo opisani glavni pristopi. Poleg tega se bodo študenti seznanili s trenutnimi razmerami na trgu in tehnološkimi izzivi.
01Pregled glavnih komponent in senzorjev brezpilotnega vozila. Stopnje avtonomije. Drive by Wire. Samovozeči avtomobili kot poslovni produkt. Načini ocenjevanja napredka pri ustvarjanju dronov. Osnove lokalizacije: gnss, kolesna odometrija, Bayesovi filtri.
02 Metode lokalizacije lidarja: ICP, NDT, LOAM. Uvod v vizualni SLAM na primeru ORB-SLAM. Izjava problema GraphSLAM. Zmanjšanje problema GraphSLAM na nelinearno metodo najmanjših kvadratov. Izbira pravilne nastavitve parametrov. Sistemi s posebno strukturo v GraphSLAM. Arhitekturni pristop: frontend in backend.
03 Naloga za prepoznavanje v samovozečem avtomobilu. Statične in dinamične ovire. Senzorji za sistem za prepoznavanje. Predstavitev statičnih ovir. Detekcija statičnih ovir z lidarjem (VSCAN, metode nevronske mreže). Uporaba lidarja v povezavi s slikami za zaznavanje statike (semantična segmentacija slike, globinsko dokončanje). Stereo kamera in pridobivanje globine slike. Svet Stixel.
04 Predstavitev dinamičnih ovir v samovozečem avtomobilu. Metode nevronske mreže za zaznavanje objektov v 2D. Zaznavanje na podlagi ptičje perspektive lidarske predstavitve oblakov. Uporaba lidarja s posnetki za zaznavanje dinamičnih ovir. Zaznavanje avtomobilov v 3D na podlagi slik (3D opremljanje škatel, CAD modeli). Radarsko dinamično zaznavanje ovir. Sledenje predmetom.
05Vzorci vožnje avtomobila: zadnje kolo, sprednje kolo. Načrtovanje poti. Koncept konfiguracijskega prostora. Metode grafov za konstruiranje trajektorij. Trajektorije, ki zmanjšajo sunek. Optimizacijske metode za konstruiranje trajektorij.
06 Načrtovanje hitrosti v dinamičnem okolju. ST načrtovanje. Predvidevanje vedenja drugih udeležencev v prometu
Nevro-Bayesove metode
Predmet se osredotoča na uporabo Bayesovih metod pri globokem učenju. Na predavanjih bo govora o uporabi verjetnostnega modeliranja za izgradnjo generativnih podatkovnih modelov, uporabi konkurenčnih omrežja za približno sklepanje, modeliranje negotovosti v parametrih nevronske mreže in nekateri odprti problemi v globini usposabljanje.
01Stohastično variacijsko sklepanje
02Dvojno stohastično variacijsko sklepanje
03Variacijski samodejni kodirnik, normaliziranje tokov za variacijsko sklepanje
04Metode za zmanjšanje variance v modelih latentnih spremenljivk
05Ocena razmerja porazdelitvenih gostot, uporaba na primeru \alpha-GAN
06 Bayesove nevronske mreže
07 Bayesova kompresija nevronskih mrež
08 Pol-implicitno variacijsko sklepanje