2026-09-21 09:04:44 +07:00
2026-09-21 09:04:44 +07:00
2026-09-21 09:04:44 +07:00
2026-09-21 09:04:44 +07:00
2026-09-21 09:04:44 +07:00
2026-09-21 09:04:44 +07:00
2026-09-21 09:04:44 +07:00
2026-09-21 09:04:44 +07:00

Praktikum Deep Learning - Kelompok 3

Repository ini berisi implementasi tugas dan eksperimen Deep Learning, mencakup perbandingan arsitektur Multi-Layer Perceptron (MLP), teknik regularisasi (Batch Normalization & Dropout), studi kasus pemilihan model (Model Selection), serta implementasi Convolutional Neural Network (CNN) pada dataset MNIST.


📁 Struktur Folder Proyek

Struktur direktori telah dirapikan secara modular sebagai berikut:

kelompok3-deeplearning/
├── .gitignore                      # Konfigurasi file & folder yang diabaikan git
├── requirements.txt                # Daftar pustaka / dependensi Python
├── README.md                       # Dokumentasi utama proyek
├── docs/                           # Dokumentasi dan analisis tambahan
│   └── model_selection.md          # Analisis justifikasi pemilihan model (Tugas 3)
├── src/                            # Modul reusable / fungsi pembantu
│   ├── __init__.py
│   ├── data_loader.py              # Loader & preprocessor dataset MNIST (MLP & CNN)
│   ├── models.py                   # Definisi arsitektur model (MLP, Regularized MLP, CNN)
│   └── utils.py                    # Callback timer, manajemen folder, plotting helper
├── experiments/                    # Skrip eksperimen & tugas utama
│   ├── 01_mlp_comparison.py        # Tugas 1: Perbandingan 3 arsitektur MLP
│   ├── 02_regularization.py        # Tugas 2: Eksperimen Regularisasi BatchNorm + Dropout
│   ├── 03_model_selection.py       # Tugas 3: Implementasi contoh arsitektur model
│   └── 04_cnn_mnist.py             # Tugas 4: Implementasi CNN MNIST & perbandingan vs MLP
└── results/                        # Output dari eksperimen
    ├── figures/                    # Plot visualisasi (akurasi, loss curve, bar chart)
    │   ├── hasil_cnn.png
    │   └── loss_regularization.png
    └── models/                     # Bobot model terlatih (.keras)
        ├── model_cnn_mnist.keras
        └── model_c_regularized.keras

🚀 Panduan Instalasi & Menjalankan

1. Buat dan Aktifkan Virtual Environment

# Linux / macOS
python3 -m venv .venv
source .venv/bin/activate

# Windows (Command Prompt / PowerShell)
python -m venv .venv
.venv\Scripts\activate

2. Install Dependensi

pip install -r requirements.txt

3. Menjalankan Eksperimen

Semua skrip eksperimen berada di dalam folder experiments/:

  • Eksperimen 1: Perbandingan Arsitektur MLP

    python experiments/01_mlp_comparison.py
    
  • Eksperimen 2: Regularisasi (BatchNorm + Dropout)

    python experiments/02_regularization.py
    
  • Eksperimen 3: Contoh Model Selection (LSTM, CNN, NLP, XGBoost)

    python experiments/03_model_selection.py
    
  • Eksperimen 4: CNN MNIST vs MLP

    python experiments/04_cnn_mnist.py
    

📊 Ringkasan Hasil Eksperimen

1. Perbandingan Arsitektur MLP (Tugas 1)

  • Model A (1 Hidden Layer - 64): ~97.06% Akurasi, 50,890 Parameter
  • Model B (2 Hidden Layers - 128 → 64): ~97.24% Akurasi, 109,386 Parameter
  • Model C (3 Hidden Layers - 256 → 128 → 64): ~97.64% Akurasi, 242,762 Parameter

2. Regularisasi pada Model C (Tugas 2)

  • Penambahan Batch Normalization dan Dropout (0.3) terbukti menstabilkan proses training dan menekan generalization gap / overfitting pada kurva validasi.

3. Keunggulan CNN vs MLP pada MNIST (Tugas 4)

Metrik MLP Terbaik (Model C) CNN Sederhana Perubahan
Test Accuracy 97.64% 99.03% +1.39%
Error Rate 2.36% 0.97% -58.9% (relatif)
Jumlah Parameter 242,762 121,930 -49.8% (lebih efisien)
Salah Klasifikasi 236 / 10,000 97 / 10,000 139 gambar lebih sedikit

🛠️ Teknologi & Framework

  • Python 3.10+
  • TensorFlow / Keras
  • NumPy & Pandas
  • Matplotlib & Seaborn
  • XGBoost & Scikit-Learn
Description
No description provided
Readme 4 MiB
Languages
Python 100%