137 lines
7.4 KiB
Markdown
137 lines
7.4 KiB
Markdown
# 📊 Presentasi Praktikum Deep Learning
|
||
**Kelompok 3**
|
||
|
||
---
|
||
|
||
## 1. INTRODUKSI
|
||
|
||
### 📌 Latar Belakang
|
||
Praktikum ini bertujuan untuk mengeksplorasi berbagai arsitektur jaringan saraf tiruan (Neural Network) dan teknik pelatihan, mulai dari Multi-Layer Perceptron (MLP), mitigasi overfitting melalui regularisasi, analisis pemilihan model (*Model Selection*), hingga Convolutional Neural Network (CNN) pada dataset MNIST dan domain data lainnya.
|
||
|
||
### 📦 Dataset Utama: MNIST Handwritten Digits
|
||
* **Ukuran Dataset:** 60.000 citra training & 10.000 citra testing.
|
||
* **Format Data:** Citra grayscale berukuran $28 \times 28$ piksel.
|
||
* **Jumlah Kelas:** 10 kelas target (digit angka 0 sampai 9).
|
||
* **Preprocessing:**
|
||
* Normalisasi nilai piksel dari $[0, 255]$ menjadi rentang $[0.0, 1.0]$.
|
||
* Penyesuaian bentuk data (vektor 784 untuk MLP, tensor $28 \times 28 \times 1$ untuk CNN).
|
||
|
||
---
|
||
|
||
## 2. PENJELASAN TUGAS 1: Eksperimen Arsitektur & Kedalaman MLP
|
||
|
||
### 🎯 Tujuan
|
||
Menguji pengaruh kedalaman layer dan jumlah neuron terhadap akurasi model serta waktu pelatihan pada dataset MNIST.
|
||
|
||
### 🏗️ Konfigurasi 3 Model MLP
|
||
* **Model A (1 Hidden Layer):** Input (784) $\rightarrow$ `Dense(64, ReLU)` $\rightarrow$ `Dense(10, Softmax)`
|
||
* **Model B (2 Hidden Layer):** Input (784) $\rightarrow$ `Dense(128, ReLU)` $\rightarrow$ `Dense(64, ReLU)` $\rightarrow$ `Dense(10, Softmax)`
|
||
* **Model C (3 Hidden Layer):** Input (784) $\rightarrow$ `Dense(256, ReLU)` $\rightarrow$ `Dense(128, ReLU)` $\rightarrow$ `Dense(64, ReLU)` $\rightarrow$ `Dense(10, Softmax)`
|
||
|
||
### 📈 Hasil Eksperimen
|
||
| Model | Arsitektur Hidden Layer | Jumlah Parameter | Test Accuracy | Waktu Training / Epoch |
|
||
| :--- | :--- | :---: | :---: | :---: |
|
||
| **Model A** | `[64]` | 50.890 | 97,06% | 1,22 detik |
|
||
| **Model B** | `[128, 64]` | 109.386 | 97,24% | 1,29 detik |
|
||
| **Model C (Terbaik)** | `[256, 128, 64]` | 242.762 | **97,64%** | 2,50 detik |
|
||
|
||
### 💡 Kesimpulan Tugas 1
|
||
* **Model C** menghasilkan akurasi tertinggi (**97,64%**) karena mampu mempelajari representasi fitur yang lebih kompleks.
|
||
* Semakin dalam layer, jumlah parameter dan waktu komputasi per epoch meningkat secara signifikan.
|
||
|
||
---
|
||
|
||
## 3. PENJELASAN TUGAS 2: Eksperimen Regularisasi pada Deep MLP
|
||
|
||
### 🎯 Tujuan
|
||
Mengatasi permasalahan *overfitting* yang muncul pada Model C saat dilatih dalam durasi yang lebih panjang (20 epoch).
|
||
|
||
### 🔍 Permasalahan pada Baseline (Tanpa Regularisasi)
|
||
* *Training loss* terus menurun mendekati 0, namun *validation loss* mulai naik dan berfluktuasi setelah epoch ke-7.
|
||
* Terjadi pelebaran *generalization gap* (model menghafal data training, bukan mempelajari pola umum).
|
||
|
||
### 🛡️ Solusi: Penerapan Batch Normalization & Dropout
|
||
* **Batch Normalization:** Menormalkan input di setiap layer, menstabilkan distribusi gradien, dan mempercepat konvergensi.
|
||
* **Dropout (rate = 0.3):** Mematikan 30% koneksi neuron secara acak selama training untuk mencegah *co-adaptation*.
|
||
|
||
```text
|
||
Arsitektur Regularized:
|
||
Input (784) ──> Dense(256) ──> BatchNorm ──> ReLU ──> Dropout(0.3)
|
||
──> Dense(128) ──> BatchNorm ──> ReLU ──> Dropout(0.3)
|
||
──> Dense(64) ──> BatchNorm ──> ReLU ──> Dropout(0.3)
|
||
──> Dense(10, Softmax)
|
||
```
|
||
|
||
### 💡 Kesimpulan Tugas 2
|
||
* Penambahan BatchNorm dan Dropout berhasil menjaga kurva *validation loss* tetap stabil dan sejajar dengan *training loss*.
|
||
* Daya generalisasi model meningkat dan risiko overfitting berhasil ditekan secara efektif.
|
||
|
||
---
|
||
|
||
## 4. PENJELASAN TUGAS 3: Analisis & Justifikasi Pemilihan Model (*Model Selection*)
|
||
|
||
### 🎯 Tujuan
|
||
Menentukan dan menjustifikasi arsitektur model yang paling optimal berdasarkan karakteristik data input dan kebutuhan komputasi.
|
||
|
||
### 📋 Hasil Pemilihan Model untuk 4 Skenario:
|
||
|
||
#### (a) Prediksi Stok Barang dari 12 Bulan Historis Penjualan
|
||
* **Tipe Data:** Deret Waktu (*Time-Series*).
|
||
* **Arsitektur Terpilih:** **LSTM (Long Short-Term Memory)** *(Alternatif: XGBoost / SARIMA)*.
|
||
* **Justifikasi:** Data memiliki dependensi urutan waktu dan tren musiman. LSTM mampu mempertahankan memori jangka panjang melalui *cell state* dan mekanisme *gates* tanpa terkena *vanishing gradient*.
|
||
|
||
#### (b) Klasifikasi Foto Produk Rusak vs Normal di Lini Produksi
|
||
* **Tipe Data:** Citra 2D (*Computer Vision*).
|
||
* **Arsitektur Terpilih:** **CNN (Convolutional Neural Network)**.
|
||
* **Justifikasi:** Pola kerusakan (goresan/retakan) terikat pada korelasi spasial piksel. CNN mengekstrak hierarki fitur visual secara bertingkat dan memiliki sifat *translation invariance* (tahan pergeseran).
|
||
|
||
#### (c) Analisis Sentimen Review Google Play Store
|
||
* **Tipe Data:** Teks Bebas Bahasa Alami (*NLP / Sequential Text*).
|
||
* **Arsitektur Terpilih:** **LSTM dengan Word Embedding** *(Alternatif: Transformer / IndoBERT)*.
|
||
* **Justifikasi:** Ulasan teks adalah sekuens kata di mana arti kalimat sangat bergantung pada urutan. Embedding memetakan makna semantik kata, dan LSTM memahami konteks kalimat dari awal hingga akhir.
|
||
|
||
#### (d) Prediksi Churn Pelanggan dari 15 Kolom Tabular
|
||
* **Tipe Data:** Tabular Terstruktur (*Structured Tabular Data*).
|
||
* **Arsitektur Terpilih:** **ML Klasik (XGBoost / LightGBM)**.
|
||
* **Justifikasi:** Pada data tabular dimensi kecil (15 fitur), model *gradient boosted trees* secara konsisten mengungguli deep learning dalam performa generalisasi, kecepatan latih, dan interpretasi fitur (*feature importance*).
|
||
|
||
---
|
||
|
||
## 5. PENJELASAN TUGAS 4: Implementasi CNN pada MNIST vs MLP
|
||
|
||
### 🎯 Tujuan
|
||
Membangun model CNN 2D sederhana dan membandingkan performanya secara kuantitatif dengan model MLP terbaik dari Tugas 1 (Model C).
|
||
|
||
### 🏗️ Arsitektur Model CNN
|
||
```text
|
||
Input (28, 28, 1)
|
||
↓
|
||
Conv2D (32 filter, 3×3, ReLU) ──> Output: (26, 26, 32)
|
||
MaxPooling2D (2×2) ──> Output: (13, 13, 32)
|
||
↓
|
||
Conv2D (64 filter, 3×3, ReLU) ──> Output: (11, 11, 64)
|
||
MaxPooling2D (2×2) ──> Output: (5, 5, 64)
|
||
↓
|
||
Flatten ──> Output: 1600
|
||
Dense (64, ReLU) + Dropout (0.3)
|
||
↓
|
||
Dense (10, Softmax) ──> Output: Probabilitas 10 Kelas
|
||
```
|
||
|
||
### 📊 Tabel Perbandingan Kuantitatif: CNN vs MLP Terbaik
|
||
| Metrik Evaluasi | MLP Terbaik (Model C) | Model CNN Sederhana | Analisis / Improvement |
|
||
| :--- | :---: | :---: | :--- |
|
||
| **Test Accuracy** | 97,64% | **99,03%** | **+1,39 poin persentase** |
|
||
| **Test Loss** | 0,0933 | **0,0297** | **Turun signifikan (-68,2%)** |
|
||
| **Error Rate** | 2,36% | **0,97%** | **Pengurangan error 58,9% (relatif)** |
|
||
| **Salah Klasifikasi** | 236 dari 10.000 | **97 dari 10.000** | **139 gambar lebih sedikit salah** |
|
||
| **Jumlah Parameter** | 242.762 | **121.930** | **Hemat 49,8% parameter (separuh bobot)** |
|
||
| **Waktu / Epoch (CPU)** | **2,50 detik** | 16,56 detik | Konvolusi membutuhkan komputasi lebih di CPU |
|
||
|
||
### 💡 Mengapa CNN Lebih Unggul untuk Data Citra?
|
||
1. **Preservasi Struktur Spasial:** Memproses citra dalam format 2D asli sehingga korelasi antarpiksel tetangga tetap terjaga (tidak hilang seperti pada *flattening* MLP).
|
||
2. **Parameter Sharing:** Filter konvolusi yang sama digeser ke seluruh permukaan citra untuk mendeteksi pola yang sama di berbagai posisi.
|
||
3. **Hierarki Fitur Otomatis:** Layer awal mengekstrak garis tepi/sudut, sedangkan layer lanjutan menggabungkannya menjadi bentuk kurva dan pola angka utuh.
|
||
4. **Translation Invariance:** Fitur `MaxPooling2D` membuat prediksi model tetap konsisten meskipun posisi tulisan tangan sedikit bergeser.
|
||
|