06 Convolutional Neural Networks

Warning

🚧 Չորս դասախոսության սլայդերը պատրաստ են (L16–L19)։ Տնայիններից պատրաստ են HW1b և HW1c-ն (լուծումներով)․ HW2–HW4-ը դեռ գրվում են։

Note

Այս գլխի մի մասը հենվում է LMU I2DL (slds-lmu/lecture_i2dl) նյութի վրա, CC BY 4.0։

🎲 Random

TBD

📚 Նյութը

Չորս դասախոսություն (սլայդերը ml/ch6_cnn/ պանակում)․

  • L16 — CNN Foundations: պատկերը որպես թվերի ցանց, RGB և HSV, կոնվոլյուցիա 1D→2D, kernel-ների գործիքատուփ, padding / stride / pooling, ինչու՞ dense ցանցը սխալ գործիք է պատկերների համար. PDF
  • L17 — CNN Architectures: ImageNet-ի պատմությունը, LeNet → AlexNet → VGG → ResNet, residual learning-ը որպես «boosting խորության մեջ», և 2026-ի տեսլականը (ViT, VLM, diffusion, SAM). PDF
  • L18 — Transfer Learning: ինչու՞ եք հազվադեպ զրոյից սովորեցնում, freeze vs fine-tune (+ BatchNorm-ի թակարդը), Grad-CAM և Clever Hans, պիտակավորման տնտեսագիտությունը. PDF
  • L19 — Vision Tasks: detection (IoU, NMS, YOLO), segmentation (semantic vs instance, U-Net), կոնվոլյուցիայի տարբերակները (dilated, transposed, separable). PDF

Լրացուցիչ՝ The Convolution, Mathematically — ոչ պարտադիր հավելված (convolution theorem, Fourier, cross-correlation). PDF

📝 Թեմայի վերաբերյալ հարցաշար (Google Form): TBD

🏡 Տնային

HW1b — Photoshop from scratch 🧀🧀

Կոնվոլյուցիան գրվում է ձեռքով, առանց scipy.signal-ի և cv2-ի։ Ամեն ֆիլտր Photoshop-ի իրական menu item է. Filter > Other > Custom երկխոսությունը բառացիորեն 5×5 kernel-ի ցանց է։ Ամեն ինչ աշխատում է laptop-ի CPU-ի վրա, առանց GPU-ի և առանց training-ի։

Tasks:

  1. The engine 🧀 — convolve2d_naive (loop over output pixels), ապա convolve2d_fast (loop over the k×k taps, vectorised). Երկուսը պետք է համընկնեն 1e-12 ճշտությամբ։ Ստուգումները՝ identity kernel, L16-ի սլայդի օրինակը, և o = ⌊(i − k + 2p)/s⌋ + 1 բանաձևը։
  2. The kernel zoo 🧀 — ամեն ֆիլտր առանձին, իր knob-ով՝ box blur (k = 3…41), Gaussian (σ = 1…8), motion blur (4 ուղղություն × 3 երկարություն), unsharp mask (4 amount × 3 scale), emboss (4 պտույտ), Sobel X/Y/magnitude, և ձեր սեփական երեք kernel-ը։
  3. The thumbnail generator 🧀🧀 — YouTube-ի lo-fi երաժշտության thumbnail-ը՝ շերտ առ շերտ. cover → text → background → blur → darken։ σ = 30 նշանակում է 181×181 kernel = 32,761 tap մեկ պիքսելի համար, ուստի separability-ն այստեղ ընտրություն չէ։
  4. HSV 🧀🧀 — rgb_to_hsv ձեռքով, ապա Hue/Saturation panel-ը՝ hue rotation, desaturation, «կարմիր զգեստը սև-սպիտակ ֆիլմում»։
  • Bonus 🎁 — ցույց տվեք, որ 2D Gaussian-ը երկու 1D-ի outer product-ն է ( tap → 2k), և չափեք արագացումը։

Առաջադրանք: HW1b_photoshop.ipynb (download) · view on GitHub

Լուծում: HW1b_photoshop_solution.ipynb (download) · view on GitHub

HW1c — A liver biopsy, filtered 🧀🧀🧀

HW1b-ի գործիքները կիրառվում են լյարդի իրական բիոպսիայի վրա (H&E և Masson trichrome ներկեր)։ Աշխատում է — հետո անցնում եք երկրորդ slide-ին և դադարում է աշխատել։ Հենց դա է ամբողջ գլխի փաստարկը։

Tasks:

  1. Blur as denoising 🧀🧀 — գտեք այն σ-ն, որից հետո առանձին կորիզները միաձուլվում են։
  2. Edge orientation 🧀🧀 — Sobel X-ը տեսնում է ուղղահայաց եզրերը, Y-ը՝ հորիզոնականները. մեկ առանցքը վերականգնում է gradient-ի էներգիայի միայն ~65%-ը։
  3. Separate the stains 🧀🧀🧀 — RGB-ով չի ստացվում (այն իրականում պարզապես brightness threshold է՝ մի threshold-ի 0.15 փոփոխությունը պատասխանը փոխում է 9 անգամ)։ HSV-ով hue-ի առանցքի վրա haematoxylin-ը և eosin-ը ~20° հեռու են։
  4. Search the thresholds 🧀🧀🧀 — grid search երկու knob-ի վրա, ինչպես [08]-ում։ Բայց validation set չկա — ոչ ոք ոչ մի կորիզ չի պիտակավորել, ուստի «լավագույն» հարցը չի տրվում, միայն «հավանական»-ը։
  5. Count the nuclei 🧀🧀🧀 — connected components, ապա գնահատեք, թե ինչ արժե այդ թիվը (կպչող կորիզները դառնում են մեկ component)։
  6. Quantify slide B 🧀🧀🧀 — fibrosis և steatosis-ի մակերեսը trichrome ներկի վրա։
  7. The honesty question 🧀 — կիրառեք slide A-ի կանոնը slide B-ի վրա։ Բացատրեք, թե ինչու է քանդվում։

Առաջադրանք: HW1c_biopsy.ipynb (download) · view on GitHub

Լուծում: HW1c_biopsy_solution.ipynb (download) · view on GitHub

HW2–HW4 — TBD

  • HW2 (L17) — architecture comparison CIFAR-10-ի վրա։
  • HW3 (L18) — transfer learning + Grad-CAM audit (Oxford-IIIT Pets)։
  • HW4 (L19) — pretrained YOLO ձեր սեփական լուսանկարների վրա + dilated conv-ի փորձ։

Flag Counter