refactor: re-structure folder
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
# Analisis Pemilihan Model (Model Selection)
|
||||
|
||||
## (a) Prediksi stok barang dari 12 bulan historis penjualan
|
||||
|
||||
**Arsitektur:** LSTM (atau ML Klasik seperti XGBoost / SARIMA sebagai alternatif kuat).
|
||||
|
||||
**Justifikasi:** Data penjualan historis merupakan deret waktu (time-series) yang memiliki dependensi temporal, tren, dan pola musiman antar-bulan. LSTM dirancang khusus untuk memproses data sekuensial dengan mempertahankan informasi masa lalu melalui mekanisme cell state dan gates, sehingga mampu menangkap dinamika tren penjualan tanpa kehilangan memori jangka panjang.
|
||||
|
||||
---
|
||||
|
||||
## (b) Klasifikasi foto produk rusak vs normal di lini produksi
|
||||
|
||||
**Arsitektur:** CNN (Convolutional Neural Network).
|
||||
|
||||
**Justifikasi:** Data citra memerlukan ekstraksi pola visual lokal seperti goresan, retakan, atau perbedaan warna yang terikat pada korelasi spasial antarpiksel. Operasi konvolusi pada CNN mampu mengekstraksi hierarki fitur visual (dari garis tepi hingga tekstur utuh) serta memiliki sifat translation invariance, sehingga cacat produk tetap terdeteksi meskipun posisinya bergeser.
|
||||
|
||||
---
|
||||
|
||||
## (c) Analisis sentimen review Google Play Store
|
||||
|
||||
**Arsitektur:** LSTM (atau variannya seperti Bi-LSTM / model berbasis Transformer).
|
||||
|
||||
**Justifikasi:** Ulasan teks adalah data sekuensial linguistik di mana arti suatu kalimat sangat bergantung pada urutan dan konteks kata di sekitarnya. LSTM secara efektif menangani panjang kalimat yang bervariasi dan mampu mempertahankan konteks makna dari awal hingga akhir ulasan untuk menentukan polaritas sentimen positif atau negatif secara akurat.
|
||||
|
||||
---
|
||||
|
||||
## (d) Prediksi churn pelanggan dari 15 kolom tabular
|
||||
|
||||
**Arsitektur:** ML Klasik (seperti XGBoost, LightGBM, atau Random Forest).
|
||||
|
||||
**Justifikasi:** Pada data tabular berdimensi kecil (15 fitur), model gradient boosted decision trees secara konsisten mengungguli deep learning dalam hal performa generalisasi, kecepatan latih, dan interpretasi fitur (feature importance). Jaringan saraf seperti ANN cenderung membutuhkan volume sampel yang jauh lebih besar dan rentan overfitting pada batas keputusan data tabular yang tidak terstruktur secara spasial.
|
||||
3. **Gunakan Model ML Klasik Berbasis Pohon (XGBoost / LightGBM)** saat bekerja dengan data tabular berstruktur tetap karena akurasi lebih unggul, waktu latih cepat, dan memiliki interpretabilitas fitur yang tinggi.
|
||||
Reference in New Issue
Block a user