Duboko učenje

Opis predmeta

Duboko učenje je grana strojnog učenja temeljena na predstavljanju podataka složenim reprezentacijama na visokom stupnju apstrakcije do kojih se dolazi slijedom naučenih nelinearnih transformacija. Metode dubokog učenja svoju primjenu pronalaze u važnim područjima umjetne inteligencije poput računalnog vida, obrade prirodnog jezika, razumijevanja govora i zvučnih signala, kao i u bioinformatici. Ovaj predmet uvodi najvažnije diskriminativne i generativne duboke modele s posebnim naglaskom na praktične implementacije. Prva cjelina uvodi ključne elemente klasičnih neuronskih mreža i daje pregled građevnih elemenata, tehnika regularizacije i metoda učenja koji su specifični za duboke modele. Druga cjelina razmatra duboke konvolucijske modele i ilustrira njihovu primjenu u klasifikaciji slika i obradi prirodnog jezika. Treća cjelina je posvećena generativnim dubokim modelima i njihovim primjenama u računalnom vidu i obradi prirodnog jezika. Konačno, četvrta cjelina razmatra modeliranje slijedova dubokim povratnim neuronskim mrežama i ilustrira primjene u području obrade prirodnog jezika. Svi koncepti popraćeni su primjerima i zadatcima u modernim dinamičkim jezicima (Python, Lua ili Julia). Većina primjera biti će vezana uz suvremene aplikacijske okvire za duboko učenje (npr. Theano, Tensorflow, Torch).

Ishodi učenja

  1. Objasniti prednosti dubokog učenja u odnosu na alternativne pristupe strojnog učenja.
  2. Razlikovati tehnike koje omogućavaju uspješno učenje dubokih modela.
  3. Objasniti područja primjene diskriminativnih i generativnih dubokih modela.
  4. Razlikovati duboke modele prikladne za nadzirano, polu-nadzirano i nenadzirano učenje.
  5. Primijeniti tehnike dubokog učenja u razumijevanju slika i teksta.
  6. Analizirati i vrednovati performansu dubokih modela.
  7. Dizajnirati (oblikovati) duboke modele u programskom jeziku visoke razine.

Oblici nastave

Predavanja

13 predavanja po tri sata.

Provjere znanja

2 kratke provjere znanja.

Laboratorijske vježbe

Po dvije vježbe u svakoj polovini semestra.

Konzultacije

Po prethodnom dogovoru e-mailom.

Seminari

Studenti mogu dobiti dodatne bodove za predstavljanje tehničkog seminara.

Način ocjenjivanja

Kontinuirana nastava Ispitni rok
Vrsta provjere Prag Udio u ocjeni Prag Udio u ocjeni
Laboratorijske vježbe 0 % 20 % 40 % 0 %
Međuispit: Pismeni 0 % 40 % 0 %
Završni ispit: Pismeni 0 % 40 %
Ispit: Pismeni 50 % 80 %
Ispit: Usmeni 20 %

Tjedni plan nastave

  1. Motivacija za duboko učenje. Parcijalno deriviranje kompozicija vektorskih funkcija. Logistička regresija. Širenje pogreške unatrag. Višerazredna logistička regresija. Osnove Pythona, numpyja i matplotliba. Rješavanje problemskih zadataka.
  2. Osnovni pojmovi strojnog učenja: model, gubitak, optimizacija, klasifikacija, regresija, kapacitet, Occamova oštrica, regularizacija, pristranost i varijanca, hiper-parametri, stohastički gradijentni spust, prokletstvo dimenzionalnosti, kompozitni modeli, podatkovne reprezentacije.
  3. Diskriminativni potpuno povezani unaprijedni modeli. Gubitak. Nelinearna aktivacija. Univerzalna aproksimacija. Gradijenti gubitka. Učenje širenjem pogreške unatrag. Prikazivanje dubokog modela računskom grafom. Učenje računskog grafa autodiferenciranjem. Rješavanje problemskih zadataka.
  4. Konvolucijski modeli. Slojevi sažimanja. Gradijent gubitka. Učenje širenjem pogreške unatrag. Potpuno konvolucijske mreže. Načela fleksibilne implementacija. Rješavanje problemskih zadataka.
  5. Poteškoće pri učenju dubokih modela: sedla, višestruki minimumi, neprikladna inicijalizacija, iščezavajući i eksplodirajući gradijenti, odabir hiperparametara, slaba generalizacija.
  6. Tehnike učenja dubokih modela. Učenje s momentom. Akcelerirani gradijent. Prilagodljivi moment (ADAM). Normaliziranje podataka. Ugađanje. Rješavanje problemskih zadataka.
  7. Regularizacija. Kažnjavanje norme težina. Generiranje podataka i unošenje šuma. Rano zaustavljanje. Vezanje i dijeljenje parametara. Kombiniranje modela glasanjem. Isključivanje čvorova (dropout). Rješavanje problemskih zadataka, priprema za međuispit.
  8. Međuispit.
  9. Međuispit.
  10. Konvolucijske arhitekture za razumijevanje slike i videa te obradu prirodnog jezika. Učenje dubokih metrika. Ishodi učenja konvolucijskih modela.
  11. Modeliranje slijedova. Povratni i dvosmjerni povratni modeli. Duboki povratni modeli. Primjene u razumijevanju prirodnog jezika.
  12. Učenje povratnih modela (BPTT). Duboki povratni modeli. Ćelija s dugoročnom memorijom. Prevođenje slijedova. Pažnja.
  13. Boltzmannovi strojevi. Ograničeni Boltzmannovi strojevi. Markovljeva slučajna polja. Kontrastna divergencija. Kaskadirani Boltzmannovi strojevi. Duboke mreže vjerovanja.
  14. Duboki generativni modeli. Konvolucijski autoenkoderi. Varijacijski autoenkoderi. Suparnički modeli.
  15. Rješavanje problemskih zadataka, priprema za završni ispit.

Studijski programi

Sveučilišni diplomski
Računarska znanost (profil)
Predmeti specijalizacije profila (1. semestar) (2. semestar) (3. semestar)

Literatura

Michael Nielsen (2015.), Neural Networks and Deep Learning, Determination press
Nikhil Buduma (2016.), Fundamentals of Deep Learning, O'Reilly Media
Ian Goodfellow, Yoshua Bengio, and Aaron Courville (2017.), Deep learning, MIT Press

Laboratorijske vježbe

Izvedba

ID 155250
  Zimski semestar
4 ECTS
R1 Engleski jezik
R1 E-učenje
39 Predavanja
0 Auditorne vježbe
8 Laboratorijske vježbe

Ocjenjivanje

89 izvrstan
76 vrlo dobar
63 dobar
50 dovoljan