Apa langkah konvolusi dalam Jaringan Syaraf Tiruan Convolutional?

16

Saya mempelajari jaringan saraf convolutional (CNNs) karena aplikasi mereka dalam visi komputer. Saya sudah terbiasa dengan jaringan saraf feed-foward standar, jadi saya berharap beberapa orang di sini dapat membantu saya mengambil langkah ekstra dalam memahami CNN. Inilah yang saya pikirkan tentang CNN:

  1. Dalam NN feed-foward tradisional, kami memiliki data pelatihan di mana setiap elemen terdiri dari vektor fitur yang kami input ke NN di "lapisan input," sehingga dengan pengenalan gambar, kami dapat membuat setiap piksel menjadi satu input. Itu adalah vektor fitur kami. Sebagai alternatif, kita dapat secara manual membuat vektor fitur lain yang kemungkinan lebih kecil.
  2. Keuntungan dari CNN Is adalah ia dapat menghasilkan vektor fitur yang lebih kuat yang lebih tidak berubah-ubah terhadap distorsi dan posisi gambar. Seperti ditunjukkan gambar berikut (dari tutorial ini ), CNN menghasilkan peta fitur yang kemudian diumpankan ke jaringan saraf standar (jadi benar-benar ini merupakan langkah pra-pemrosesan raksasa).

masukkan deskripsi gambar di sini

  1. Cara kita mendapatkan fitur "yang lebih baik" itu adalah dengan mengubah konvolusi dan sub-sampling. Saya mengerti cara kerja sub-sampling. Untuk setiap peta fitur, ambil saja subset pikselnya, atau kami dapat meratakan nilai pikselnya.

Tapi yang paling membingungkan saya adalah bagaimana langkah konvolusi bekerja. Saya akrab dengan konvolusi dari teori probabilitas (kepadatan untuk jumlah dua variabel acak), tetapi bagaimana mereka bekerja di CNN, dan mengapa mereka efektif?

Pertanyaan saya mirip dengan yang satu ini tetapi khususnya, saya tidak yakin mengapa langkah konvolusi pertama berhasil.

Ilmuwan komputer
sumber

Jawaban:

16

Pertama-tama saya akan mencoba membagikan intuisi di balik CNN dan kemudian mengomentari topik-topik tertentu yang Anda daftarkan.

Lapisan konvolusi dan sub-pengambilan sampel dalam CNN tidak berbeda dari lapisan tersembunyi dalam MLP yang umum, yaitu fungsinya untuk mengekstraksi fitur dari inputnya. Fitur-fitur ini kemudian diberikan ke lapisan tersembunyi berikutnya untuk mengekstraksi fitur yang masih lebih kompleks, atau langsung diberikan ke classifier standar untuk menampilkan prediksi akhir (biasanya Softmax, tetapi juga SVM atau yang lainnya dapat digunakan). Dalam konteks pengenalan gambar, fitur-fitur ini adalah suguhan gambar, seperti pola goresan di lapisan bawah dan bagian-bagian objek di lapisan atas.

Dalam gambar alami, fitur ini cenderung sama di semua lokasi. Mengenali pola goresan tertentu di tengah gambar akan sama bermanfaatnya dengan mengenalinya dekat dengan batas. Jadi mengapa kita tidak meniru lapisan tersembunyi dan menghubungkan banyak salinannya di semua wilayah gambar input, sehingga fitur yang sama dapat dideteksi di mana saja? Persis seperti yang dilakukan CNN, tetapi dengan cara yang efisien. Setelah replikasi (langkah "konvolusi") kami menambahkan langkah sub-sampel, yang dapat diimplementasikan dalam banyak cara, tetapi tidak lebih dari sub-sampel. Secara teori, langkah ini bahkan bisa dihilangkan, tetapi dalam praktiknya sangat penting untuk memungkinkan masalah tetap bisa diselesaikan.

Jadi:

  1. Benar.
  2. Seperti dijelaskan di atas, lapisan tersembunyi dari CNN adalah ekstraktor fitur seperti pada MLP biasa. Langkah konvolusi dan sub-sampling yang berganti dilakukan selama pelatihan dan klasifikasi, sehingga mereka bukan sesuatu yang dilakukan "sebelum" proses aktual. Saya tidak akan menyebut mereka "pra-pemrosesan", dengan cara yang sama lapisan tersembunyi dari MLP tidak disebut demikian.
  3. Benar.

3×35×5

masukkan deskripsi gambar di sini

9

Langkah konvolusi dan sub-sampling selanjutnya didasarkan pada prinsip yang sama, tetapi dihitung berdasarkan fitur yang diekstraksi pada lapisan sebelumnya, bukan piksel mentah dari gambar asli.

Saul Berardo
sumber
Terimakasih atas klarifikasinya. Saya akan memeriksa tutorial yang Anda sebutkan.
ComputerScientist
Grafik ilustrasi yang sangat bagus. Lihat karya referenec: M. Egmont-Petersen, D. de Ridder, H. Handels. Pemrosesan gambar dengan jaringan saraf - review, Pattern Recognition, Vol. 35, No. 10, hlm. 2279-2301, 2002
Match Maker EE
Empat tahun kemudian dan sekarang saya bekerja dengan CNN hampir setiap hari. Posting dari @Saul Berardo ini benar-benar membantu saya mendapatkan jalan yang benar :)
ComputerScientist
1

Saya tidak tahu apa yang Anda maksud dengan "mengapa langkah konvolusi pertama berhasil." Agar CNN berhasil, CNN harus memiliki banyak lapisan. Salah satu ide mendasar di balik CNN dan banyak pendekatan pembelajaran mendalam lainnya adalah bahwa sinyal yang lebih besar dapat diidentifikasi oleh korelasi spasial dari bagian-bagian kecil mereka yang jarang dapat diwakili. Dengan kata lain, gambar mungkin terlihat rumit tetapi dibuat dari kombinasi hanya beberapa bagian dasar. Untuk penglihatan komputer, struktur garis dasar dalam gambar biasanya terdiri dari tepi dan sudut. CNN mencoba mengeksploitasi sparseness dari struktur dalam sebuah gambar dengan mencari struktur lokal yang umum. Itulah yang coba ditentukan oleh lapisan pertama CNN. Pikirkan konvolusi sebagai filter pencocokan yang mencari sinyal yang cocok dengan templat tertentu. Seberapa baik kerjanya tergantung pada data yang ada. Untungnya dunia penuh dengan pengulangan dalam skala kecil, jadi CNN bekerja dengan baik untuk tugas-tugas penglihatan komputer.

SimpleLikeAnEgg
sumber
Ya, saya pikir itu ide umum. Saya tidak jelas dalam pertanyaan awal saya, tetapi saya bertanya-tanya mengapa matematika bekerja, yaitu, mengapa properti konvolusi itu sendiri memungkinkan lapisan pertama untuk menemukan bagian-bagian kecil itu.
ComputerScientist
1
Baca lebih lanjut tentang konvolusi dan pemfilteran yang cocok. Ketika kernel konvolusi cocok dengan sinyal, ia memberikan pengembalian terbesar.
SimpleLikeAnEgg