# Praktikum Deep Learning - Kelompok 3 Repository ini berisi implementasi tugas praktikum Deep Learning, mencakup: 1. **Multi-Layer Perceptron (MLP)**: Eksperimen kedalaman layer & regularisasi (*Batch Normalization* & *Dropout*) pada dataset MNIST. 2. **Model Selection**: Studi kasus pemilihan arsitektur model sesuai karakteristik data (Time Series, Computer Vision, NLP, dan Tabular). 3. **Convolutional Neural Network (CNN)**: Pipeline klasifikasi citra MNIST, eksplorasi kedalaman arsitektur (2 blok vs 3 blok), serta analisis performa mendalam. 4. **Natural Language Processing (NLP)**: Klasifikasi sentimen ulasan produk Tokopedia menggunakan arsitektur *Embedding* dan *GlobalAveragePooling1D*. --- ## 📁 Struktur Direktori ```text kelompok3-deeplearning/ ├── requirements.txt # Dependensi Python proyek ├── README.md # Panduan utama proyek ├── docs/ # Laporan & materi presentasi │ ├── laporan_akhir.md # Laporan akhir praktikum lengkap │ ├── PRESENTATION.md # Panduan materi slide presentasi │ ├── model_selection.md # Analisis justifikasi pemilihan model │ └── analisis_evaluasi_model_sentimen_gap.md # Analisis model NLP Tokopedia ├── src/ # Modul bersama (data loader, arsitektur, utils) │ ├── data_loader.py # Data loader & preprocessor MNIST │ ├── models.py # Fungsi pembangun arsitektur model │ └── utils.py # Timer callback & helper visualisasi ├── tasks/ # Skrip tugas yang siap dieksekusi per topik │ ├── mlp/ # Topik 1: Multi-Layer Perceptron │ │ ├── 01_mlp_comparison.py # Perbandingan 3 arsitektur MLP (1, 2, 3 hidden layer) │ │ ├── 02_regularization.py # Uji regularisasi BatchNorm + Dropout pada MLP │ │ └── 03_model_selection.py # Implementasi contoh arsitektur model selection │ ├── cnn/ # Topik 2: Convolutional Neural Network │ │ ├── 04_cnn_mnist.py # Baseline CNN MNIST & perbandingan awal vs MLP │ │ ├── 05_cnn_full_pipeline.py # Training pipeline CNN lengkap & confusion matrix │ │ ├── 06_cnn_deeper.py # Eksplorasi kedalaman arsitektur CNN (2 blok vs 3 blok) │ │ └── 07_cnn_evaluation.py # Evaluasi mendalam (metrik per kelas, confidence, error analysis) │ └── nlp_sentiment/ # Topik 3: NLP Analisis Sentimen │ └── 08_sentimen_gap.py # Klasifikasi sentimen ulasan Tokopedia (GAP Model) └── results/ # Output hasil training (grafik, bobot model, laporan) ├── 01_mlp/ # Output tugas MLP ├── 02_cnn/ # Output tugas CNN └── 03_nlp_sentiment/ # Output tugas NLP Sentimen ``` --- ## 🚀 Panduan Menjalankan ### 1. Setup Virtual Environment & Install Dependensi ```bash # Buat dan aktifkan virtual environment python3 -m venv .venv source .venv/bin/activate # Install seluruh dependensi yang dibutuhkan pip install -r requirements.txt ``` ### 2. Eksekusi Script per Topik #### 🔹 Topik 1: Multi-Layer Perceptron (MLP) ```bash python tasks/mlp/01_mlp_comparison.py python tasks/mlp/02_regularization.py python tasks/mlp/03_model_selection.py ``` #### 🔹 Topik 2: Convolutional Neural Network (CNN) ```bash python tasks/cnn/04_cnn_mnist.py python tasks/cnn/05_cnn_full_pipeline.py python tasks/cnn/06_cnn_deeper.py python tasks/cnn/07_cnn_evaluation.py ``` #### 🔹 Topik 3: NLP Analisis Sentimen (Tokopedia) ```bash python tasks/nlp_sentiment/08_sentimen_gap.py ``` --- ## 📚 Dokumen Terkait - **Laporan Akhir Praktikum:** [docs/laporan_akhir.md](docs/laporan_akhir.md) - **Materi Presentasi (PPT):** [docs/PRESENTATION.md](docs/PRESENTATION.md) - **Analisis Model Selection:** [docs/model_selection.md](docs/model_selection.md) - **Analisis Sentimen Tokopedia:** [docs/analisis_evaluasi_model_sentimen_gap.md](docs/analisis_evaluasi_model_sentimen_gap.md) --- ## 🛠️ Stack Teknologi - **Bahasa:** Python 3.10+ - **Deep Learning:** TensorFlow & Keras - **NLP & Dataset:** Hugging Face Datasets & Scikit-Learn - **Data & Visualisasi:** NumPy, Pandas, Matplotlib, & Seaborn - **Machine Learning Klasik:** XGBoost