Demistify jaringan saraf convolutional

Terjemahan dari Demystifying Neural Networks Konvolusional .


Jaringan saraf convolutional.

Dalam dekade terakhir, kami telah melihat kemajuan luar biasa dalam visi komputer. Saat ini, komputer dapat mengenali objek dalam gambar dan bingkai video dengan akurasi 98%, sudah ada di depan seseorang dengan 97% nya. Fungsi otak manusia yang menginspirasi pengembang untuk membuat dan meningkatkan teknik pengenalan.

Suatu ketika ahli saraf melakukan percobaan pada kucing dan menemukan bahwa bagian gambar yang sama mengaktifkan bagian otak kucing yang sama. Yaitu, ketika kucing melihat ke lingkaran, zona alfa diaktifkan di otaknya, dan ketika dia melihat ke alun-alun, zona beta diaktifkan. Para peneliti menyimpulkan bahwa di otak hewan terdapat area neuron yang merespons karakteristik gambar tertentu. Dengan kata lain, hewan mempersepsikan lingkungan melalui arsitektur saraf multilayer otak. Dan setiap adegan, setiap gambar melewati blok seleksi tanda-tanda yang khas, dan baru kemudian ia ditransmisikan ke struktur otak yang lebih dalam.

Terinspirasi oleh ini, matematikawan telah mengembangkan sistem di mana kelompok neuron ditiru yang beroperasi pada sifat gambar yang berbeda dan berinteraksi satu sama lain untuk membentuk gambar yang sama.

Mengambil Properti


Gagasan sekelompok neuron teraktivasi yang disuplai dengan data input spesifik diubah menjadi ekspresi matematis dari matriks multidimensi yang memainkan peran penentu serangkaian properti - disebut filter atau kernel. Setiap filter tersebut mencari kekhasan dalam gambar. Misalnya, mungkin ada filter untuk menentukan batas. Properti yang ditemukan kemudian ditransfer ke set filter lain yang dapat menentukan properti tingkat yang lebih tinggi dari gambar, misalnya, mata, hidung, dll.


Konvolusi gambar menggunakan filter Laplace untuk menentukan batas.

Dari sudut pandang matematika, antara gambar input, disajikan dalam bentuk matriks intensitas piksel, dan filter, kami melakukan operasi konvolusi, sehingga menghasilkan apa yang disebut peta properti (peta fitur). Peta ini akan berfungsi sebagai input ke lapisan filter berikutnya.

Mengapa berbelit-belit?


Konvolusi adalah proses di mana jaringan mencoba untuk menandai sinyal input dengan membandingkannya dengan informasi yang sebelumnya diketahui. Jika sinyal input terlihat seperti gambar sebelumnya dari kucing, jaringan yang sudah dikenal, maka sinyal referensi "kucing" akan diminimalkan - dicampur - dengan sinyal input. Sinyal yang dihasilkan ditransmisikan ke lapisan berikutnya. Dalam hal ini, sinyal input berarti representasi tiga dimensi dari gambar dalam bentuk intensitas piksel RGB, dan sinyal referensi "cat" dipelajari oleh kernel untuk mengenali kucing.


Operasi dan filter konvolusi gambar. Sumber

Operasi konvolusi memiliki properti yang sangat baik - terjemahan invarian. Ini berarti bahwa setiap filter konvolusi mencerminkan sekumpulan properti tertentu, misalnya mata, telinga, dll. Dan algoritma jaringan saraf convolutional belajar untuk menentukan set properti mana yang sesuai dengan referensi, misalnya, kucing. Intensitas sinyal output tidak tergantung pada lokasi properti, tetapi pada keberadaannya. Oleh karena itu, kucing dapat digambarkan dalam berbagai pose, tetapi algoritme masih dapat mengenalinya.

Pooling


Dengan mengikuti prinsip otak biologis, para ilmuwan dapat mengembangkan alat matematika untuk mengekstraksi properti. Tetapi setelah mengevaluasi jumlah total lapisan dan properti yang perlu dianalisis untuk melacak bentuk geometris yang kompleks, para ilmuwan menyadari bahwa komputer tidak akan memiliki cukup memori untuk menyimpan semua data. Selain itu, jumlah sumber daya komputasi yang dibutuhkan tumbuh secara eksponensial dengan peningkatan jumlah properti. Untuk mengatasi masalah ini, teknik pooling dikembangkan. Idenya sangat sederhana: jika area tertentu berisi properti yang diucapkan, maka kita dapat menolak untuk mencari properti lain di area ini.


Contoh penggabungan nilai maksimum.

Operasi penyatuan tidak hanya menghemat memori dan daya pemrosesan, tetapi juga membantu membersihkan gambar dari noise.

Lapisan terikat sepenuhnya


Oke, mengapa jaringan saraf berguna jika hanya dapat menentukan set properti gambar? Kita perlu mengajarinya bagaimana cara mengkategorikan gambar. Dan pendekatan tradisional untuk pembentukan jaringan saraf akan membantu kita dalam hal ini. Secara khusus, peta properti yang diperoleh pada lapisan sebelumnya dapat dikumpulkan ke dalam lapisan yang sepenuhnya terkait dengan semua label yang kami siapkan untuk kategorisasi. Lapisan terakhir ini akan menetapkan probabilitas pencocokan setiap kelas. Dan berdasarkan probabilitas akhir ini, kita dapat menghubungkan gambar ke beberapa kategori.


Lapisan terikat sepenuhnya. Sumber

Arsitektur akhir


Sekarang tinggal menggabungkan semua konsep yang dipelajari oleh jaringan ke dalam satu kerangka kerja - jaringan saraf convolutional (Convolution Neural Network, CNN). CNN terdiri dari serangkaian lapisan konvolusional yang dapat dikombinasikan dengan lapisan penyatuan untuk menghasilkan peta properti yang diteruskan ke lapisan yang sepenuhnya terhubung untuk menentukan probabilitas pencocokan kelas mana pun. Membawa kembali kesalahan yang kita dapatkan, kita bisa melatih jaringan saraf ini hingga mendapatkan hasil yang akurat.

Sekarang kita memahami perspektif fungsional CNN, mari kita lihat lebih dekat aspek-aspek menggunakan CNN.

Jaringan saraf convolutional



Lapisan konvolusional.

Lapisan convolutional adalah blok bangunan utama CNN. Setiap lapisan tersebut mencakup satu set filter independen, yang masing-masing mencari set properti sendiri di gambar yang masuk.


Operasi konvolusi. Sumber

Dari sudut pandang matematika, kami mengambil filter dengan ukuran tetap, menempatkannya pada gambar dan menghitung produk skalar dari filter dan sepotong gambar input. Hasil pekerjaan ditempatkan di peta properti akhir. Kemudian kami memindahkan filter ke kanan dan mengulangi operasi, juga menambahkan hasil perhitungan ke peta properti. Setelah konvolusi seluruh gambar dengan bantuan filter, kami mendapatkan peta properti, yang merupakan serangkaian tanda-tanda eksplisit dan dimasukkan sebagai input ke lapisan berikutnya.

Langkah


Langkahnya adalah jumlah filter offset. Dalam ilustrasi di atas, kami menggeser filter dengan faktor 1. Tapi terkadang Anda perlu menambah ukuran offset. Misalnya, jika piksel tetangga sangat berkorelasi satu sama lain (terutama pada lapisan bawah), maka masuk akal untuk mengurangi ukuran output menggunakan langkah yang sesuai. Tetapi jika langkahnya dibuat terlalu besar, maka banyak informasi akan hilang, jadi berhati-hatilah.


Langkahnya adalah 2. Sumber .

Padding



Padding single layer. Sumber

Salah satu efek samping dari melangkah adalah penurunan yang konsisten pada peta properti karena semakin banyak konvolusi baru yang dilakukan. Ini mungkin tidak diinginkan karena "reduksi" berarti kehilangan informasi. Untuk membuatnya lebih jelas, perhatikan berapa kali filter diterapkan pada sel di tengah dan di sudut. Ternyata tanpa alasan informasi di bagian tengah lebih penting daripada di tepinya. Dan untuk mengekstrak informasi berguna dari lapisan sebelumnya, Anda dapat mengelilingi matriks dengan lapisan nol.

Berbagi Parameter


Mengapa kita membutuhkan jaringan konvolusional jika kita sudah memiliki jaringan saraf pembelajaran yang baik? Perlu dicatat bahwa jika kita menggunakan jaringan pembelajaran yang mendalam untuk mengklasifikasikan gambar, jumlah parameter pada setiap lapisan akan seribu kali lebih besar daripada jaringan saraf convolutional.


Berbagi parameter dalam jaringan saraf convolutional.

Source: https://habr.com/ru/post/id443236/


All Articles