Neslužbene stranice predmeta Duboko učenje 1
O predmetu:
  
  Duboko učenje je grana strojnog učenja
  koja je posebno prikladna
  za rješavanje problema
  iz područja umjetne inteligencije.
  Duboko učenje se temelji na predstavljanju podataka
  složenim reprezentacijama do kojih se dolazi
  slijedom naučenih nelinearnih transformacija.
  Metode dubokog učenja svoju primjenu pronalaze u
  izazovnim područjima gdje je dimenzionalnost
  podataka iznimno velika: računalnom vidu,
  obradi prirodnog jezika ili razumijevanju govora.
  Ovaj predmet uvodi najvažnije
  diskriminativne i generativne duboke modele
  s posebnim naglaskom na praktične implementacije.
  
  Prva cjelina daje pregled ključnih elemenata
  klasičnih neuronskih mreža te uvodi
  osnovne građevne elemente, tehnike regularizacije
  i metode 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 modelima 
  i ilustrira primjene u području obrade prirodnog jezika.
  
  Svi koncepti popraćeni su primjerima i zadatcima
  u programskom jeziku Python.
  Velik broj primjera biti će vezan uz
  suvremeni aplikacijski okvir PyTorch.
  
  Predmet se sastoji od tri sata predavanja tjedno,
  te laboratorijskih vježbi 
  koje se kolokviraju jednom u svakom od četiri ciklusa.
  Predmet za sada nema preduvjeta, ali pretpostavlja se
  solidno znanje iz domena strojnog učenja, optimizacije,
  vjerojatnosti i linearne algebre
  stečena na prethodnim kolegijima.
  
Predavanja
  
  - 
    0. Uvodno predavanje i pregled osnova dubokog učenja
    (pdf)
    
- 
      motivacija za duboko učenje (§1.1)
    
 - 
      informacije o predmetu
    
 - 
       elementi strojnog učenja
       (§5.1 - §5.5)
    
 - 
       prema dubokom učenju
       (§5.11)
    
 
   - 
    1. Unaprijedni potpuno povezani diskriminativni modeli  (§6)
      (pdf)
      
- 
        duboki unaprijedni modeli  (§6.1)
      
 - 
        funkcija gubitka  (§6.2)
      
 - 
        aktivacijske funkcije  (§6.2 - §6.3)
      
 - 
        univerzalni aproksimacijski teorem  (§6.4)
      
 - 
        učenje širenjem unatrag  (§6.5)
      
 
   - 
    2: Konvolucijski modeli za računalni vid  (§9)
       (naprijed,
        natrag,
        vježbe)
    
- 
      konvolucijski slojevi (§9.1 - §9.2, §9.5)
    
 - 
      slojevi sažimanja (§9.3)
    
 - 
      efikasna implementacija (§9.8)
    
 - 
      arhitekture za klasifikaciju (§9.4)
    
    
 - 
      izračun gradijenata (-)
    
 
   - 
    3: Optimizacija (§8)
       (pdf)
    
- 
      Izazovi u učenju dubokih modela (§8.1-§8.4)
    
 - 
      učenje s momentom, akcelerirani gradijent, prilagodljivi moment (§8.5)
    
 - 
      normalizacije podataka: LRN, batchnorm (§8.7)
    
 
   - 
    4: Regularizacija (§7)
       (pdf)
    
- 
      Kažnjavanje norme težina (§7.1-§7.3)
    
 - 
      generiranje podataka i unošenje šuma (§7.4-§7.5)
    
 - 
      rano zaustavljanje (§7.8)
    
 - 
      vezanje i dijeljenje parametara (§7.9)
    
 - 
      kombiniranje modela baggingom (§7.11)
    
 - 
      isključivanje čvorova grafa (dropout) (§7.12)
    
 
   - 
    5: Povratni modeli 
       (pdf)
    
- 
      modeliranje slijedova (§10.1-§10.2)
    
 - 
      primjene u razumijevanju prirodnog jezika (-)
    
 
   - 
    6: Napredni povratni modeli
       (pdf)
    
- 
      duboki i dvosmjerni modeli (§10.3, §10.5)
    
 - 
      povratne ćelije s propusnicama (§10.10)
    
 - 
      prevođenje iz slijeda u slijed (§10.4)
    
 - 
      modeli utemeljeni na pažnji (-)
    
 
   - 
    7: Metrička ugrađivanja
       (pdf)
    
- 
      kontrastni i trojni gubitak
    
 - 
      detalji izvedbe i prosječna preciznost
    
 - 
      primjeri: stereoskopska korespondencija, samonadziranje
    
 
   - 
    8: Stanje tehnike konvolucijskih modela
       računalnog vida
    (pdf)
  
 
Laboratorijske vježbe
  - 
    Logistička regresija, gradijentni spust, Python, numpy:
    upute.
  
 - 
    Osnove dubokih modela, PyTorch, MNIST:
    upute;
  
 - 
    Konvolucijski modeli, MNIST, CIFAR:
    upute;
  
 - 
    Povratni modeli:
    upute.
  
 - 
    Metrička ugrađivanja:
    upute.
  
 
Snimke predavanja
  
  YouTube kanal 
  kolegija.
Preporučena literatura
  - 
    Ian Goodfellow, Yoshua Bengio and Aaron Courville.
    Deep Learning.
    MIT Press
    (html)
  
 - 
    Aston Zhang, Zack C. Lipton, Mu Li, Alex J. Smola.
    Dive into Deep Learning.
    (html)
  
 - 
    Michael Nielsen.
    Neural Networks and Deep Learning.
    Determination press.
    (html)
  
 
Primjeri pismenih ispita
  
  - 
    Završni ispit 2021/22
    (pdf)
  
 - 
    Laboratorijska provjera 2020/21
    (lab1,
     lab2,
     lab3)
  
 - 
    Završni ispit 2019/20
    (pdf)
  
 - 
    Međuispit 2018/19
    (pdf)
  
 - 
    Završni ispit 2017/18
    (pdf)
  
 - 
    Međuispit 2017/18
    (pdf)
  
 - 
    Završni ispit 2016/17
    (pdf)
  
 - 
    Međuispit 2016/17
    (pdf)
  
 
Pomoćna literatura
  - 
    Zoran Kalafatić, Antonio Pošćić, Siniša Šegvić i Julijan Šribar.
    Python za znatiželjne.
    Element
    (html)
  
 
Studentski projekti
  
  - 
    Riješeni zadatci s predavanja iz Dubokog učenja 1.
    Ivan Rep.
    tekst.
  
 - 
    Minimalni okvir za unatražnu automatsku diferencijaciju u Pythonu.
    Bruno Gavranović.
    Seminar,
    prezentacija,
    kod.
  
 - 
    Numerička provjera gradijenata.
    Marin Kačan.
    Prezentacija.
  
 - 
    Interaktivna 3D vizualizacija gradijentne optimizacije.
    Petar Afrić.
    Seminar,
    prezentacija,
    kod.
  
 
Zanimljivi sadržaji
  
  - 
    Ilya Sutskever.
    A Brief Overview of Deep Learning 
    html
  
 - 
    Yann LeCun, Yoshua Bengio, Geoffrey Hinton.
    Deep learning.
    pdf
  
 - 
    Pedro Domingos.
    A Few Useful Things to Know about Machine Learning.
    CACM 2012.
    pdf
  
 - 
    Awesome Deep Vision. 
    A curated list of deep learning resources 
    for computer vision.
    html
  
 - 
    Tensorflow - open source deep learning framework.
    html
  
 - 
    A neural network playground.
    html
  
 - 
    C. Olah.
    Neural networks and data representations.
    html
  
 - 
    Convolutional Neural Networks for Visual Recognition.
    Stanford CS programme.
    html
  
 - 
    Deep Learning for Natural Language Processing.
    Stanford CS programme.
    html
  
 - 
    Deep Learning Courses.
    html
  
 - 
    Terence Tao.
    Linear algebra.
    html
  
 - 
    Randal Barnes.
    Matrix Calculus.
    html
  
 - 
    Eduardo Sontag.
    VC Dimension of Neural Networks. NATO ASI Series F.
    pdf
  
 - 
    Slav Ivanov.
    37 Reasons why your Neural Network is not working.
    html
  
 - 
    Olexa Bilaniuk.
    Einstein summation in Numpy.
    html
  
 - 
    Terence Parr and Jeremy Howard.
    The Matrix Calculus You Need For Deep Learning.
    html