Materi 10 Β· Deep Learning

CNN & Computer Vision

Convolutional Neural Network mengubah dunia 2012 dengan AlexNet. Pelajari cara kerja convolution, pooling, arsitektur klasik (ResNet, VGG, EfficientNet), dan aplikasi modern: classification, detection, segmentation.

⏱ 30 Menit🎯 Intermediate-AdvancedπŸ“š Module 10/15

1. Mengapa CNN untuk Image?

Gambar 256Γ—256Γ—3 = 196,608 input nodes. Fully connected layer akan punya jutaan parameter β€” overfitting parah, tidak feasible.

Insight Utama CNN

1) Local connectivity: pixel berdekatan berkorelasi. 2) Parameter sharing: filter yang sama di-slide ke seluruh image. 3) Translation invariance: objek bisa di mana saja di gambar β€” CNN tetap deteksi.

2. Komponen CNN

πŸ”

Convolution Layer

Filter/kernel (3x3, 5x5) di-slide ke image, hitung dot product. Detect edge, texture, pattern.

πŸ“‰

Pooling Layer

Reduce spatial dimension. Max pooling ambil nilai terbesar di window β€” robust ke posisi.

⚑

ReLU Activation

Non-linearity. Tanpa ini, deep network = single linear transform.

🎯

Fully Connected

Layer terakhir untuk klasifikasi. Flatten feature map β†’ dense β†’ softmax.

πŸ›‘οΈ

Batch Normalization

Normalize aktivasi tiap batch. Stabilize training, allow higher learning rate.

πŸ’§

Dropout

Random matikan neuron. Cegah overfitting di fully-connected layers.

3. Convolution Operation

Convolution Math output[i][j] = Ξ£ Ξ£ input[i+m][j+n] Γ— filter[m][n] + b
// Filter slides across image, dot product at each position
Output Size output_size = (input_size βˆ’ filter_size + 2Γ—padding) / stride + 1
// Tipikal: 3x3 filter, padding=1, stride=1 β†’ output sama ukuran input

4. Arsitektur Klasik

ArsitekturTahunInovasi
LeNet-51998CNN pertama yang sukses (digit recognition)
AlexNet2012ReLU + GPU + Dropout. Revolusi deep learning
VGG2014Sederhana β€” stack 3x3 conv layers
GoogLeNet/Inception2014Inception modules, parallel filters
ResNet2015Skip connection. Train 100+ layers tanpa vanishing
DenseNet2017Tiap layer connect ke semua layer berikutnya
EfficientNet2019Compound scaling β€” best accuracy/efficiency
Vision Transformer (ViT)2020Transformer untuk image β€” challenge CNN dominance
πŸ’‘ Insight

ResNet's Skip Connection

Sebelum ResNet, training network >30 layer hampir mustahil β€” gradient vanishing. Skip connection (output = F(x) + x) memungkinkan gradient mengalir bypass layer, membuka era 100-1000 layer network.

5. Tugas Computer Vision

6. Transfer Learning β€” Cara Cerdas

Jangan Train From Scratch

Pretrained model (ResNet50, EfficientNet) sudah belajar feature umum dari ImageNet (1.4 juta gambar). Untuk task baru:

1. Feature extractor: freeze semua layer, train classifier head saja. Cocok untuk dataset kecil.
2. Fine-tuning: unfreeze beberapa layer akhir, train dengan learning rate kecil. Cocok untuk dataset menengah.
3. Full retraining: unfreeze semua. Hanya untuk dataset sangat besar yang berbeda dari ImageNet.

7. Studi Kasus

🌟 Real World

JD.ID & Visual Search

JD.ID Indonesia memakai visual search β€” user upload foto, sistem temukan produk serupa di marketplace. Pakai pretrained CNN sebagai feature extractor, similarity di latent space.

Hasil: conversion rate visual search 3Γ— lebih tinggi dari text search untuk fashion category. User menemukan produk lebih cepat tanpa kesulitan deskripsikan style.

πŸ“ Tugas

Train Image Classifier

  1. Pakai PyTorch + Google Colab (free GPU).
  2. Load dataset CIFAR-10 (60K images, 10 classes).
  3. Build CNN sederhana: 3 conv blocks + fully connected.
  4. Train 20 epochs. Plot loss & accuracy curve.
  5. Bandingkan dengan transfer learning dari ResNet18 pretrained.
  6. Coba data augmentation (flip, rotate). Apakah accuracy naik?

Rangkuman