Apa Itu CNN (Convolutional Neural Network)? Penjelasan Lengkap, Contoh Kasus & Implementasi dengan PyTorch

CNN atau Convolutional Neural Network adalah jenis deep learning yang banyak digunakan untuk memproses data visual, seperti gambar dan video. Teknologi ini sangat populer dalam bidang Computer Vision karena kemampuannya mengenali pola visual secara otomatis.

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

  1. Convolutional Layer: Menyaring fitur dari gambar (tepi, warna, pola).

  2. ReLU Activation: Menambahkan non-linearitas.

  3. Pooling Layer: Mengurangi ukuran data dan overfitting.

  4. 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

  1. Efektif untuk pengolahan gambar
    CNN sangat unggul dalam mendeteksi pola spasial dari citra.

  2. Mengurangi kebutuhan feature engineering
    CNN mengekstrak fitur secara otomatis tanpa harus mendesain fitur secara manual.

  3. Komputasi efisien
    Operasi konvolusi lebih ringan dibandingkan metode tradisional full-connected.

  4. Terbukti akurat
    CNN telah terbukti efektif dalam berbagai bidang seperti kesehatan, otomotif, dan keamanan.

Kekurangan CNN

  1. Butuh data besar untuk akurasi tinggi
    CNN memerlukan banyak data agar tidak overfitting.

  2. Waktu training lama
    Karena jumlah parameter yang besar, training bisa sangat lambat tanpa GPU.

  3. Kurang efisien untuk data non-visual
    CNN tidak cocok untuk data teks, suara, atau data sekuensial (lebih cocok LSTM/RNN).

  4. Kurang interpretatif
    Sulit memahami mengapa CNN membuat keputusan tertentu (black box).


Program Lengkap CNN dengan PyTorch – Klasifikasi MNIST

Hasil Output Program


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.


Referensi

https://majjanglin2003.medium.com/create-neural-network-with-pytorch-1f91054fe229#783e
https://jillanisofttech.medium.com/building-an-ann-with-pytorch-a-deep-dive-into-neural-network-training-a7fdaa047d81




Komentar