99 lines
4.4 KiB
Markdown
99 lines
4.4 KiB
Markdown
# 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
|