Mochammad Farhan
Membuat model Klasifikasi Gambar dengan Deep Learning
Deskripsi Proyek
Di era digital, data visual seperti gambar kian penting, terutama dengan perkembangan media sosial dan teknologi otomatis. Pengolahan gambar hewan peliharaan, seperti kucing dan anjing, memiliki berbagai aplikasi di bidang kesejahteraan hewan, ritel, dan hiburan. Pengidentifikasian manual hewan dari gambar memakan waktu dan rentan terhadap kesalahan manusia, terutama dalam jumlah besar.
Proyek ini bertujuan untuk mengembangkan model klasifikasi gambar yang mampu secara otomatis dan akurat mengidentifikasi kucing atau anjing, guna meningkatkan efisiensi dan akurasi dalam pengelolaan gambar hewan peliharaan.
Dataset
Saya menggunakan dataset yang tersedia online dan free license dari www.kaggle.com
masing masing kategori (kucing dan anjing) memiliki 12.500 gambar
Dataset mentah ini kemudian saya pisahkan menjadi beberapa folder yaitu folder Train dan Validation dengan manual dengan presentasi 20% validation dan 60% train
Metodologi dan Arsitektur Model
1. Preprocessing Data
Dataset: Dataset diambil dari direktori dengan dua subfolder: train dan validation yang masing-masing berisi gambar kucing dan anjing.
Augmentasi Gambar: Data latih di-augmentasi untuk meningkatkan variasi, dengan teknik seperti rotasi hingga 40 derajat, pergeseran horizontal dan vertikal, shear, zoom, dan flipping horizontal.
Normalisasi: Semua gambar di-rescale ke rentang 0 hingga 1 dengan membagi nilai piksel sebesar 255, sehingga mempercepat konvergensi saat pelatihan model.
2. Arsitektur
Layer Convolutional: Model CNN memiliki tiga layer convolutional:
Layer pertama dengan 32 filter, ukuran kernel 3x3, dan fungsi aktivasi ReLU.
Layer kedua dengan 64 filter, ukuran kernel 3x3, dan fungsi aktivasi ReLU.
Layer ketiga dengan 128 filter, ukuran kernel 3x3, dan fungsi aktivasi ReLU.
Layer Pooling: MaxPooling dengan ukuran 2x2 diterapkan setelah setiap layer convolutional untuk mengurangi dimensi fitur, mengurangi overfitting, dan mempercepat pelatihan.
Flatten Layer: Setelah ekstraksi fitur, layer flatten digunakan untuk meratakan hasil sebelum memasuki fully connected layer.
Fully Connected Layer: Satu layer dense dengan 512 neuron dan fungsi aktivasi ReLU.
Output Layer: Layer output menggunakan satu neuron dengan fungsi aktivasi sigmoid untuk menghasilkan prediksi biner (kucing atau anjing).
3. Kompilasi Model
Optimizer: RMSprop digunakan dengan learning rate 0.001 untuk optimasi model.
Loss Function: Binary cross-entropy dipilih karena ini adalah tugas klasifikasi biner (kucing vs anjing).
Metrics: Akurasi dipantau sebagai metrik utama.
4. Pelatihan Model
Model dilatih selama 15 epoch dengan batch size 20.
Steps per Epoch: Untuk dataset latih, model melakukan 100 steps per epoch.
Validasi: Model dievaluasi menggunakan dataset validasi, dengan 50 langkah validasi per epoch.
5. Evaluasi Hasil
Plot Akurasi dan Loss: Setelah pelatihan, akurasi dan loss untuk data latih dan validasi diplot untuk memvisualisasikan performa model. Grafik ini menunjukkan apakah model mengalami overfitting atau underfitting.
Akurasi: Plot akurasi menunjukkan peningkatan selama pelatihan, dengan evaluasi yang konsisten di data validasi.
Loss: Plot loss digunakan untuk memantau penurunan loss selama pelatihan.
Tantangan
Selama pengembangan model klasifikasi gambar ini, beberapa tantangan yang dihadapi antara lain:
Overfitting: Salah satu masalah yang muncul adalah overfitting, di mana model bekerja sangat baik pada data latih tetapi kurang akurat pada data validasi. Hal ini dapat disebabkan oleh jumlah data yang tidak cukup besar atau variasi yang kurang dalam data latih.
Pemilihan Hyperparameter: Menentukan hyperparameter yang tepat seperti learning rate, jumlah filter di setiap layer convolutional, dan jumlah epoch membutuhkan beberapa kali eksperimen dan pengujian untuk mendapatkan kombinasi terbaik yang menghasilkan model dengan performa optimal.
Code Model