# 📊 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.