Memahami Tentang Convolutional Neural Network (CNN) - Deep Learning

Memahami Tentang Convolutional Neural Network (CNN) - Deep Learning
Memahami Tentang Convolutional Neural Network (CNN)

Di Googling - Deep Learning telah terbukti menjadi teknologi yang sangat berguna dalam beberapa dekade terakhir karena kapasitasnya untuk mengelola jumlah data yang sangat besar. Hidden layers telah melampaui popularitas pendekatan tradisional, terutama dalam pengenalan pola. Convolutional Neural Network (CNN) adalah salah satu deep neural network yang paling sering digunakan.

Para peneliti telah berusaha menciptakan sistem yang dapat menangkap input visual sejak 1950-an ketika AI masih dalam masa pertumbuhan. sehingga kemudian dikenal sebagai Computer Vision di tahun-tahun berikutnya. Ketika sekelompok akademisi dari University of Toronto membangun model AI yang mengungguli algoritma pengenalan gambar teratas dengan selisih yang cukup besar pada tahun 2012.

Sistem AI, dijuluki AlexNet (setelah perancangnya, Alex Krizhevsky), memenangkan tantangan komputer vision ImageNet 2012 dengan tingkat akurasi 85 persen yang luar biasa. Pada tes, runner-up menerima 74 persen. CNN, suatu bentuk jaringan saraf yang mendekati penglihatan manusia, merupakan inti dari AlexNet. CNN telah menjadi fitur integral dari banyak aplikasi komputer vision dari waktu ke waktu.

Didalam jaringan saraf, CNN adalah salah satu algoritma untuk melakukan pengenalan gambar, klasifikasi gambar, deteksi objek, pengenalan wajah, dan lain-lain, adalah beberapa contoh di mana CNN banyak digunakan.

CNN Pertama

        Sekitar tahun 1980-an, CNN pertama kali dibuat dan digunakan. Pada saat itu, yang terbaik yang bisa dilakukan CNN adalah mendeteksi angka tulisan tangan. Itu terutama digunakan dalam industri pos untuk membaca kode pos, PIN, dan informasi serupa lainnya. Hal terpenting untuk dipahami tentang model pembelajaran mendalam apa pun adalah bahwa dibutuhkan banyak data dan banyak sumber daya komputer untuk dilatih. Ini adalah kerugian besar bagi CNN pada saat itu, sehingga mereka terbatas pada sektor pos dan tidak pernah berhasil masuk ke bidang pembelajaran mesin.

Alex Krizhevsky menyimpulkan pada tahun 2012 bahwa sudah waktunya untuk menghidupkan kembali multi-layered neural network dari deep learning. Para peneliti dapat menghidupkan kembali CNN karena ketersediaan jumlah data yang sangat besar, termasuk kumpulan data ImageNet dengan jutaan gambar beranotasi dan sumber daya komputasi yang berlimpah.

Jadi, mari kita lihat bagaimana CNN berfungsi.

Apa itu CNN?

        Convolutional Neural Network (CNN/ConvNet) adalah jenis deep neural network yang digunakan untuk mengevaluasi gambar visual dalam deep learning. Ketika kita berpikir tentang jaringan saraf, kita biasanya memikirkan perkalian matriks, tetapi tidak demikian halnya dengan ConvNet. Ini menggunakan metode yang dikenal sebagai Convolusi. Convolusi adalah prosedur matematika yang menciptakan fungsi ketiga yang menunjukkan bagaimana bentuk satu dipengaruhi oleh yang lain.

Bagaimana cara kerjanya?

        Sebelum kita masuk ke cara kerja CNN, mari kita bahas beberapa dasar seperti apa itu gambar dan bagaimana tampilannya. Gambar RGB tidak lebih dari matriks nilai piksel tiga dimensi, sedangkan gambar skala abu-abu adalah sama tetapi hanya berisi satu bidang. Untuk mempelajari lebih lanjut, lihat gambar di bawah ini.
Klasifikasi citra CNN mengambil citra masukan, memprosesnya dan mengklasifikasikannya dalam kategori tertentu (Misalnya, Anjing, Kucing, Harimau, Singa). Komputer melihat gambar input sebagai array piksel dan itu tergantung pada resolusi gambar. Berdasarkan resolusi citra akan terlihat h x w x d( h = Height, w = Width, d = Dimension ). Misalnya, gambar array matriks RGB 6 x 6 x 3 (3 mengacu pada nilai RGB) dan gambar array matriks 4 x 4 x 1 gambar berskala abu-abu.

Convolutional Neural Network digoogling.com

Secara teknis, model CNN deep learning untuk melatih dan menguji, setiap gambar input akan melewati serangkaian lapisan konvolusi dengan filters (Kernals), Pooling, fully connected layers (FC) dan menerapkan fungsi Softmax untuk mengklasifikasikan objek dengan nilai probabilistik antara 0 dan 1. Gambar di bawah ini adalah alur lengkap CNN untuk memproses gambar input dan mengklasifikasikan objek berdasarkan nilai.

Convolutional Neural Network digoogling.com

1. Convolution Layer

        Convolution adalah lapisan pertama yang mengekstrak fitur dari gambar input. Konvolusi menjaga hubungan antara piksel dengan mempelajari fitur gambar menggunakan kotak kecil data masukan. Ini adalah operasi matematika yang mengambil dua input seperti matriks gambar dan filter atau kernel.

Convolution Layer digoogling.com

Pertimbangkan 5 x 5 yang nilai piksel gambarnya adalah 0, 1 dan matriks filter 3 x 3 seperti yang ditunjukkan di bawah ini:

Convolution Layer 5x5 digoogling.com

Kemudian konvolusi dari matriks gambar 5 x 5 dikalikan dengan matriks filter 3 x 3 yang disebut “Feature Map” seperti yang ditunjukkan di bawah ini:

Feature Map digoogling.com

Konvolusi gambar dengan filter yang berbeda dapat melakukan operasi seperti deteksi tepi, blur, dan pertajam dengan menerapkan filter. Contoh di bawah ini menunjukkan berbagai gambar konvolusi setelah menerapkan berbagai jenis filter (Kernel).

Filter (Kernel) digoogling.com

2. Strides

        Stride adalah jumlah piksel yang bergeser di atas matriks input. Ketika langkahnya adalah 1 maka kami memindahkan filter ke 1 piksel sekaligus. Ketika langkahnya adalah 2 maka kami memindahkan filter ke 2 piksel sekaligus dan seterusnya. Gambar di bawah ini menunjukkan konvolusi akan bekerja dengan langkah 2.

Strides CNN digoogling.com

3. Padding

        Terkadang filter tidak pas dengan gambar input. Kami memiliki dua opsi:

  1. Padukan gambar dengan angka nol (zero-padding) agar pas
  2. Jatuhkan bagian gambar yang filternya tidak pas. Ini disebut padding yang valid yang hanya menyimpan bagian yang valid dari gambar.

Padding CNN digoogling.com

4. Non Linearity (ReLU)

        ReLU adalah singkatan dari Rectified Linear Unit untuk operasi non-linier. Outputnya adalah ƒ(x) = max(0,x). Mengapa ReLU penting : Tujuan ReLU adalah untuk memperkenalkan non-linearitas di ConvNet. Karena, data dunia nyata ingin ConvNet belajar akan menjadi nilai linier non-negatif.

Non Linearity (ReLU) digoogling.com

Ada fungsi non linier lainnya seperti tanh atau sigmoid yang juga dapat digunakan sebagai pengganti ReLU. Sebagian besar ilmuwan data menggunakan ReLU karena kinerja ReLU lebih baik daripada dua lainnya.

5. Pooling layers

        Bagian pooling layer akan mengurangi jumlah parameter saat gambar terlalu besar. Pengumpulan spasial juga disebut subsampling atau downsampling yang mengurangi dimensi setiap peta tetapi menyimpan informasi penting. Pengumpulan spasial dapat dari berbagai jenis:

  1. Max Pooling
  2. Average Pooling
  3. Sum Pooling

Penggabungan maksimum mengambil elemen terbesar dari peta fitur yang diperbaiki. Mengambil elemen terbesar juga bisa mengambil rata-rata penyatuan. Jumlah semua elemen dalam peta fitur disebut sebagai penjumlahan penjumlahan.

Pooling layers CNN digoogling.com

6. Fully Connected Layer

        Lapisan yang kami sebut sebagai lapisan FC, kami meratakan matriks kami menjadi vektor dan memasukkannya ke dalam lapisan yang terhubung penuh seperti jaringan saraf.

Fully Connected Layer digoogling.com

Pada diagram di atas, matriks peta fitur akan diubah menjadi vektor (x1, x2, x3, …). Dengan lapisan yang terhubung sepenuhnya, kami menggabungkan fitur-fitur ini bersama-sama untuk membuat model. Sehingga, kami memiliki fungsi aktivasi seperti softmax atau sigmoid untuk mengklasifikasikan output sebagai kucing, anjing, mobil, truk, dan lain-lain.

Fully Connected Layer digoogling.com



       Jadi dalam artikel ini, kami membahas Memahami Tentang Convolutional Neural Network (CNN) - Deep Learning. Yaitu yang terkait dengan CNN seperti Convolution, ReLu, pooling, FC. Semoga pembahasan pada situs digoogling.com ini dapat bermanfaat dan trimakasih.