Apa itu convolutional neural network (CNN)?
Convolutional neural network (CNN) adalah neural network yang mengolah data berbentuk grid, misalnya gambar, dengan menggeser filter kecil hasil belajar di atas input. Setiap filter menghitung dot product di setiap posisi dan menghasilkan feature map yang menandai tempat polanya muncul. Dengan menumpuk layer convolution, ReLU, dan pooling, network membangun pemahaman dari tepi sampai objek utuh, sebelum dense layer membuat prediksi akhir.
CNN adalah model standar untuk klasifikasi gambar, object detection, segmentation, dan pencitraan medis, dan juga dipakai pada spektrogram audio dan time series. Kekuatannya datang dari dua batasan: setiap filter hanya melihat area lokal yang kecil, dan weight filter yang sama dipakai ulang di setiap posisi. Dibanding dense network, jumlah weight berkurang berkali-kali lipat, dan sebuah pola bisa terdeteksi di mana pun ia muncul dalam gambar.
Ide utama
- Convolution menggeser kernel kecil di atas input dan menghitung dot product di setiap posisi.
- Weight sharing berarti satu kernel bisa mendeteksi polanya di mana saja dalam gambar.
- Nilai kernel dipelajari lewat gradient descent, bukan dirancang manual.
- ReLU mempertahankan respons positif dan mengubah sisanya menjadi nol.
- Pooling mengecilkan feature map dan menambah toleransi terhadap pergeseran kecil.
- Layer yang lebih dalam menggabungkan feature sederhana menjadi bagian dan objek, lalu dense layer melakukan klasifikasi.
Pertanyaan umum
Apa bedanya CNN dengan neural network biasa?
Layer biasa (fully connected) menghubungkan setiap input ke setiap output, sehingga mengabaikan posisi pixel satu sama lain. Convolutional layer menghubungkan setiap output hanya ke area lokal kecil dan memakai ulang weight yang sama di semua posisi. Jumlah parameternya jauh lebih sedikit, dan asumsi bahwa pixel yang berdekatan saling berkaitan sudah tertanam di dalamnya.
Untuk apa convolution 1x1?
Convolution 1x1 mencampur channel di setiap pixel tanpa melihat tetangganya. Ini dipakai untuk mengecilkan atau memperbesar jumlah channel dengan biaya murah, misalnya di bottleneck block ResNet dan modul Inception. Cara kerjanya seperti dense layer kecil yang diterapkan di setiap posisi.
Apakah CNN masih dipakai setelah ada vision transformer?
Ya. Vision transformer menyamai atau mengalahkan CNN kalau dilatih pada dataset yang sangat besar, tetapi CNN masih umum pada dataset yang lebih kecil, di ponsel dan perangkat embedded, dan sebagai backbone untuk detection dan segmentation. Banyak model saat ini menggabungkan keduanya, dengan convolution di layer awal dan attention di layer berikutnya.
Apakah CNN bisa dipakai untuk data selain gambar?
Bisa. Convolution 1D bergeser di sepanjang sequence, jadi cocok untuk gelombang audio, pembacaan sensor, dan teks. Convolution 3D menambahkan sumbu waktu atau kedalaman untuk video dan pemindaian medis. Data apa pun yang nilai-nilai berdekatannya saling berkaitan cocok untuk CNN.
Penjelasan terkait
- Neural Network · Cara neuron dan layer mengenali gambar
- Pooling dan Downsampling · Perkecil dimensi spasial sambil mempertahankan feature terpenting di feature map
- Skip Connection & ResNet · Residual learning dan alasan network yang lebih dalam bisa bekerja
- Batch Normalization · Kenapa normalisasi aktivasi mempercepat training deep network
- Object Detection · Menemukan dan mengklasifikasikan banyak objek dalam gambar dengan bounding box dan skor confidence
- Image Segmentation · Klasifikasikan setiap pixel dalam gambar, dari area semantik sampai tiap objek
Referensi
- LeCun, Bottou, Bengio & Haffner (1998), "Gradient-Based Learning Applied to Document Recognition", Proc. IEEE
- Krizhevsky, Sutskever & Hinton (2017), "ImageNet Classification with Deep Convolutional Neural Networks", Communications of the ACM
- Zeiler & Fergus (2013), "Visualizing and Understanding Convolutional Networks"
- Stanford CS231n, "Convolutional Neural Networks"
Terakhir diperbarui