refactor: re-structure folder

This commit is contained in:
matthewflrnt
2026-09-21 09:04:44 +07:00
parent 7492704c8e
commit 5ac0a227c4
26 changed files with 911 additions and 944 deletions
+136
View File
@@ -0,0 +1,136 @@
# 📊 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.