Pemahaman Dasar Convolutional Neural Networks

Source: Deep Learning on Medium


image: Sumit Saha, Towards Data Science — A Comprehensive Guide to Convolutional Neural Networks — the ELI5 way

Convolutional Neural Networks atau yang biasa disebut CNN, adalah neural networks yang bagus dalam memproses data secara spatial. Biasanya algorithma CNN ini digunakan untuk mengolah data image. Walaupun, kita juga dapat mengolah data image tersebut dari 2 dimensi kemudian reshape kedalam 1 dimensi dan mengolahnya dengan multi layer perceptron.

Artikel ini membahas fundamental attribut-attribut yang ada di CNN. Sehingga kedepannya kita dapat memaksimalkan penggunaan parameter yang ada di CNN.

Channels

Natural Language Processing with Pytorch — safaribooksonline

Channels merujuk pada jumlah layer input dalam tahap proses konvolusi. Jumlah channel ini bisa kita set atau jumlah channel ini akan secara otomatis mengikuti jumlah input channel. Dalam sebuah foto yang memiliki nilai RGB yang artinya memiliki 3 channels, maka kernel yang digunakan pun juga berjumlah 3 channels.

Natural Language Processing with Pytorch — safaribooksonline

Selain itu kita juga bisa mengatur jumlah channels dalam kernel walaupun input datanya hanya memiliki 1 channel.

Kernel

Natural Language Processing with Pytorch — safaribooksonline

Dimensi Kernel itu disebut kernel size, dalam gambar diatas kernel size tersebut adalah 3. artinya setiap kali melakukan konvolusi, maka 3×3 matrix di input data dikalikan dengan 3×3 di filter. Jika tiap kali pergeseran kernel dalam input data 1 step, maka hasilnya berupa column-2.

Stride

Natural Language Processing with Pytorch — safaribooksonline

Dalam CNN, kita juga bisa mengkontrol step size yang disebut Stride. Seperti yang dibahas sebelumnya, stride mengatur berapa banyak matrix yang dilompati. Di gambar tersebut stride nya 2.

Padding

Natural Language Processing with Pytorch — safaribooksonline

Padding, kita dapat mengatur padding dalam input size, jadi jika input sizenya terlalu kecil, maka kita dapat menambahkan angka 0 di setiap outer matrixnya. Dalam gambar ini padding diset menjadi 1.

Dilation

Natural Language Processing with Pytorch — safaribooksonline

Dilation adalah cara untuk mengendalikan kernel yang diterapkan ke input matrix. Gambar di atas menggunakan dilation 2, sehingga matrix yang di proses lebih renggang. Jika kita menggunakan dilation = 1. maka tidak ada bedanya dengan gambar sebelumnya. Bagi penulis, teknik ini mirip seperti pembersaran objek dalam suatu gambar, jadi daripada memakai semua input matrix, maka yang di gunakan matrix matrix tertentu saja.

Conclusion

Tulisan ini jauh dari kata sempurna, penulis mencoba membuat pemahaman yang lebih singkat tentang convolutional neural network. sehingga ada konsep konsep yang tidak masuk dalam pembahasan.