CNN yang dikenal dengan Convolutional Neural Network merupakan salah satu jaringan saraf yang paling populer saat ini. CNN secara sistemastis menerapkan filter yang dipelajari untuk memasukkan gambar untuk membuat peta fitur (Feature Map) yang merangkum keberadaan fitur-fitur tersebut di dalam input. Keterbatasan output pada peta fitur dari lapisan konvolusi adalah mereka merekam posisi yang tepat dari fitur dalam input. Jadi dapat diartikan bahwa pergerakan kecil pada posisi fitur pada citra masukan akan menghasilkan peta fitur yang berbeda. Hal yang menyebabkan ini terjadi dengan adanya crop, rotate, shifting, atau bahkan perubahan kecil lainnya pada gambar input.

Untuk mengatasi masalah tersebut, secara umum diatasi dengan proses down sampling. Down Sampling adalah proses mengurangi dimensi pada peta fitur. Tujuannya adalah untuk mempertahankan informasi penting dari hasil output, sehingga mempercepat komputasi dikarenakan parameter yang harus di update semakin sedikit dan mampu mengatasi overfitting. Down sampling dapat dicapai dengan lapisan konvolusi dengan mengubah stride pada keselutuhan gambar. Pendekatan yang lebih kuat dan umum dapat dengan menggunakan pooling layer.

Pooling layer adalah layer yang terdiri dari filter dengan ukuran dan stride tertentu yang bergeser pada keseluruhan peta fitur. Pooling layer akan ditambahkan setelah convolutional layer. Penambahan ini digunakan untuk mengurutkan layer di dalam CNN yang dapat diulang satu kali atau lebih dalam model tertentu. Secara umum filter pada pooling layer menggunakan filter berukutan 2×2 yang diaplikasikan dengan stride sebanyak 2, yang kemudian beroperasi pada setiap irisan pada input. Operasi pooling ditentukan, bukan dipelajari. Dua fungsi umum yang digunakan pada operas pooling adalah:

  1. Average Pooling: menghitung nilai rata-rata untuk setiap patch pada peta fitur
  2. Max Pooling: menghitung nilai maksimum untuk setiap patch pada peta fitur.

Hasil dari penggunaan pooling layer adalah rangkuman dari fitur yang terdeteksi pada input. Hasil ini akan sangat berguna, karena perubahan kecil pada lokasi fitur dalam input yang terdeteksi oleh lapisan konbolusi akan menghasilkan peta fitur yang digabungkan dengan fitur di lokasi yang sama. Kemampuan ditambahkan dengan pooling ini disebut dengan model’s invariance to local transition

Maximum Pooling

Pooling merupakan proses pengurangan ukuran matriks dengan menggunakan operasi pooling. Teknik pooling yang umum dan populer digunakan adalah maximum pooling. Teknik ini akan mengambil nilai maksimum dari setiap patch pada peta fitur. Bentuk lapisan pooling umumnya menggunakan filter 2×2 yang diaplikasikan langkah sebanyak 2 dan beroperasi pada setiap irisan dari inputnya. Gambar 4 merupakan contoh sniplet code dengan menggunakan maxpooling pada suatu gambar.

Gambar 5 merupakan gambar input image yang diberikan, dan Gambar 6 adalah hasil dari proses maxpooling. Pada proses ini menggunakan window size 4×4 dengan menggunakan PyTorch, numpy, dan opencv. Dengan memanggil torch.nn, kita mampu mengakses fungsi dari Maxpool2D secara langsung. OpenCV digunakan untuk membaca file gambar yang diinginkan dan mencetak gambar untuk menjadi output.

References

[1]      C. Y. Lee, P. W. Gallagher, and Z. Tu, “Generalizing pooling functions in convolutional neural networks: Mixed, gated, and tree,” Proc. 19th Int. Conf. Artif. Intell. Stat. AISTATS 2016, pp. 464–472, 2016.

[2]      A. Karpathy, “CS231n Convolutional Neural Networks for Visual Recognition,” 2018. [Online]. Available: https://cs231n.github.io/convolutional-networks/.

[3]      P. Singh, P. Raj, and V. P. Namboodiri, “EDS pooling layer,” Image Vis. Comput., vol. 98, p. 103923, 2020.

[4]      https://androidkt.com/explain-pooling-layers-max-pooling-average-pooling-global-average-pooling-and-global-max-pooling/

[5]      https://www.programmersought.com/article/56424727455/