Apa Itu CNN (Convolutional Neural Network)? Penjelasan Lengkap, Contoh Kasus & Implementasi dengan PyTorch
Apa Itu CNN?
CNN merupakan arsitektur jaringan saraf tiruan yang dirancang untuk mengenali pola visual. CNN bekerja dengan cara mengekstrak fitur dari gambar melalui proses konvolusi, kemudian melakukan klasifikasi berdasarkan fitur tersebut.
Struktur Utama CNN
-
Convolutional Layer: Menyaring fitur dari gambar (tepi, warna, pola).
-
ReLU Activation: Menambahkan non-linearitas.
-
Pooling Layer: Mengurangi ukuran data dan overfitting.
-
Fully Connected Layer: Menyatukan semua fitur dan menghasilkan prediksi.
Implementasi CNN dengan PyTorch
Berikut adalah contoh arsitektur CNN sederhana dengan PyTorch:
Contoh Kasus: Klasifikasi Gambar Angka (MNIST)
Kasus: Sistem ingin mengenali angka tulisan tangan dari gambar grayscale 28x28 piksel, misalnya gambar angka 7, 3, atau 0.
Solusi dengan CNN:
-
Dataset: MNIST
-
CNN mengekstrak fitur garis lurus, lengkungan, dan bentuk dari gambar.
-
Output: Probabilitas 10 kelas (0–9).
-
Akurasi bisa mencapai lebih dari 98% setelah training beberapa epoch.
Kelebihan CNN
-
Efektif untuk pengolahan gambar
CNN sangat unggul dalam mendeteksi pola spasial dari citra. -
Mengurangi kebutuhan feature engineering
CNN mengekstrak fitur secara otomatis tanpa harus mendesain fitur secara manual. -
Komputasi efisien
Operasi konvolusi lebih ringan dibandingkan metode tradisional full-connected. -
Terbukti akurat
CNN telah terbukti efektif dalam berbagai bidang seperti kesehatan, otomotif, dan keamanan.
Kekurangan CNN
-
Butuh data besar untuk akurasi tinggi
CNN memerlukan banyak data agar tidak overfitting. -
Waktu training lama
Karena jumlah parameter yang besar, training bisa sangat lambat tanpa GPU. -
Kurang efisien untuk data non-visual
CNN tidak cocok untuk data teks, suara, atau data sekuensial (lebih cocok LSTM/RNN). -
Kurang interpretatif
Sulit memahami mengapa CNN membuat keputusan tertentu (black box).
Epoch adalah jumlah putaran training seluruh data.
-
Di sini: dilakukan 5 kali training penuh terhadap seluruh dataset.
Loss adalah ukuran seberapa buruk prediksi model pada epoch tersebut.
-
Semakin kecil nilai loss, semakin baik model memahami pola data.
-
Loss turun dari 0.2341 ke 0.0387 → menunjukkan model belajar dengan baik.
Ini adalah persentase prediksi model yang benar dari total data uji (10.000 gambar dari MNIST).
Akurasi tinggi (di atas 98%) menunjukkan bahwa model sudah sangat baik dalam mengenali angka tulisan tangan.



Komentar
Posting Komentar