Pengenalan Convolutional Neural Network (CNN)

Sep 17, 2024

Catatan Kuliah tentang Convolutional Neural Network (CNN)

Pengantar

  • CNN adalah bentuk Neural Network yang umum digunakan untuk menganalisa dan mengklasifikasikan gambar dengan melihat pola-pola di dalamnya.
  • Pembelajaran CNN memfasilitasi pengembangan aplikasi Artificial Intelligence dan Machine Learning.
  • Kuliah ini bertujuan untuk menjelaskan semua aspek terkait CNN secara komprehensif dan sederhana.

Struktur Video

  • Durasi: Sekitar 45 menit.
  • Jika ada bagian yang kurang jelas, anjurkan untuk menonton ulang.

Definisi dan Aplikasi CNN

  • CNN berfokus pada pengolahan citra, tetapi juga dapat diterapkan di banyak bidang lainnya.
  • Contoh aplikasi: Klasifikasi simbol tangan (U, V, W) dengan gambar berukuran 160 x 160.
  • Data pada train X dan train Y: 150 data dengan ukuran 160 x 160 x 3 (RGB).

Proses Pengolahan Gambar

  1. Flattening

    • Mengubah ukuran gambar 160x160x3 menjadi satu baris dengan 76.800 piksel.
    • Semua piksel diambil dari baris demi baris dan digabungkan.
  2. Transpose

    • Memutar representasi data untuk memudahkan proses input ke node neural network.
    • Setiap node menerima input dari semua 76.800 piksel.
  3. Masalah dalam Flattening

    • Penyebaran informasi di berbagai lokasi menyulitkan jaringan untuk mengenali pola.
    • Memerlukan cara yang lebih komprehensif untuk melihat pola gambar.

Proses Konvolusi

  • Definisi: Menggunakan filter untuk melihat area kecil (misalnya 3x3, 5x5) dari gambar.
  • Memungkinkan node untuk melihat lebih banyak piksel secara bersamaan untuk mengenali fitur tertentu.
  • Filter berfungsi untuk mendeteksi fitur-fitur (ujung jari, sudut, garis, dll).

Proses Konvolusi Umum

  1. Hitung produk dari setiap piksel dengan bobot filter.
  2. Jumlahkan hasil perkalian dan tambahkan bias.
  3. Terapkan fungsi aktivasi (misalnya ReLU).
  4. Hasil output ditentukan berdasarkan seberapa baik filter mendeteksi fitur.

Pengaruh Ukuran Filter dan Padding

  • Padding ditambahkan untuk menjaga ukuran output tetap sama dengan input.
  • Stride: Menentukan seberapa banyak kita melompat saat menerapkan filter.
    • Stride = 1 berarti melangkah satu piksel, stride = 2 berarti melangkah dua piksel.

Pooling

  • Max Pooling
    • Mengambil nilai maksimum dari area tertentu (mis. 2x2).
    • Mengurangi ukuran output tanpa mengubah jumlah channel.
  • Average Pooling
    • Mengambil rata-rata dari area tertentu.
  • Pooling membantu mengurangi ukuran dengan cara yang lebih efisien daripada stride.

Rangkaian CNN

  1. Layer Konvolusi
    • Menggunakan beberapa filter untuk menghasilkan banyak channel.
  2. Layer Pooling
    • Mengurangi ukuran output dari layer konvolusi.
  3. Flattening
    • Mengubah output menjadi satu dimensi untuk input ke layer berikutnya.
  4. Layer Dense
    • Menggunakan neural network biasa untuk klasifikasi.

Kesimpulan dan Rencana Berikutnya

  • CNN memiliki struktur yang lebih kompleks dibandingkan neural networks biasa, memungkinkan untuk pengenalan pola yang lebih baik dalam gambar.
  • Kuliah berikutnya akan memberikan contoh pemrograman CNN dalam aplikasi nyata untuk klasifikasi gambar.