Tentang CNN, kernel dan skala / invarian rotasi


17

Saya punya beberapa pertanyaan yang membingungkan saya mengenai CNN.
1) Fitur yang diekstraksi menggunakan CNN adalah skala dan rotasi invarian?
2) Kernel yang kita gunakan untuk berbelit-belit dengan data kita sudah didefinisikan dalam literatur? kernel apa ini? apakah berbeda untuk setiap aplikasi?

Jawaban:


17

1) Fitur yang diekstraksi menggunakan CNN adalah skala dan rotasi invarian?

Fitur itu sendiri dalam CNN bukanlah skala atau invarian rotasi. Untuk lebih jelasnya, lihat: Pembelajaran Jauh. Ian Goodfellow dan Yoshua Bengio dan Aaron Courville. 2016: http://egrcc.github.io/docs/dl/deeplearningbook-convnets.pdf ; http://www.deeplearningbook.org/contents/convnets.html :

Konvolusi tidak secara alami sama dengan beberapa transformasi lain, seperti perubahan skala atau rotasi gambar. Mekanisme lain diperlukan untuk menangani transformasi semacam ini.

Ini adalah lapisan penyatuan maks yang memperkenalkan invarian semacam itu:

masukkan deskripsi gambar di sini

2) Kernel yang kita gunakan untuk berbelit-belit dengan data kita sudah didefinisikan dalam literatur? kernel apa ini? apakah berbeda untuk setiap aplikasi?

Kernel dipelajari selama fase pelatihan JST.


Saya tidak dapat berbicara dengan detail dalam hal keadaan seni saat ini, tetapi pada topik poin 1, saya menemukan ini menarik.
GeoMatt22

@ Franc 1) Itu berarti, kita tidak mengambil langkah-langkah khusus untuk membuat lebih dari invarian rotasi sistem? dan bagaimana dengan skala invarian, apakah mungkin untuk mendapatkan skala invarian dari pooling max?
Aadnan Farooq A

2) Kernel adalah fitur-fiturnya. Saya tidak mengerti. [Sini] ( wildml.com/2015/11/... ) Mereka telah menyebutkan bahwa "Misalnya, dalam Klasifikasi Gambar, CNN dapat belajar mendeteksi tepi dari piksel mentah pada lapisan pertama, kemudian menggunakan tepi untuk mendeteksi bentuk sederhana di lapisan kedua, dan kemudian gunakan bentuk-bentuk ini untuk menghalangi fitur tingkat yang lebih tinggi, seperti bentuk wajah di lapisan yang lebih tinggi. Lapisan terakhir kemudian merupakan classifier yang menggunakan fitur-fitur tingkat tinggi ini. "
Aadnan Farooq A

2
Perhatikan bahwa penyatuan yang Anda bicarakan disebut sebagai penyatuan lintas saluran dan bukan jenis penyatuan yang biasanya dirujuk ketika berbicara tentang "penyatuan maksimum", yang hanya menyatukan dimensi spasial (bukan melalui saluran input yang berbeda ).
Soltius

1
Apakah ini menyiratkan model yang tidak memiliki lapisan max-pool (sebagian besar arsitektur SOTA saat ini tidak menggunakan pooling) sepenuhnya bergantung pada skala?
shubhamgoel27

5

Saya pikir ada beberapa hal yang membingungkan Anda, jadi hal pertama yang pertama.

Diberi sinyal x[n], dan kernel (juga disebut filter) h[n], kemudian belokan dari x[n] dengan h[n] ditulis sebagai y[n]=(xh)[n], dan dihitung melalui produk titik geser, secara matematis diberikan oleh:

y[n]=m=-x[m] h[n-m]

Di atas jika untuk sinyal satu dimensi, tetapi yang sama dapat dikatakan untuk gambar, yang hanya sinyal dua dimensi. Dalam hal ini, persamaannya menjadi:

sayanew[r,c]=kamu=-v=-sayaHaild[kamu,v] k[r-kamu,c-v]

Secara imajiner, inilah yang terjadi:

enter image description here

Bagaimanapun, hal yang perlu diingat, adalah bahwa kernel , sebenarnya dipelajari selama pelatihan Deep Neural Network (DNN). Kernel hanya akan menjadi apa yang Anda gabungkan input Anda dengan. DNN akan mempelajari kernel, sehingga menampilkan aspek-aspek tertentu dari gambar (atau gambar sebelumnya), yang akan baik untuk menurunkan kehilangan tujuan target Anda.

Ini adalah poin penting pertama yang harus dipahami: Secara tradisional orang telah mendesain kernel, tetapi dalam Deep Learning, kami membiarkan jaringan memutuskan kernel apa yang terbaik. Namun satu hal yang kami tentukan adalah dimensi kernel. (Ini disebut hyperparameter, misalnya, 5x5, atau 3x3, dll).


Penjelasan yang bagus. Bisakah Anda menjawab bagian pertama dari pertanyaan. Tentang CNN apakah skala / rotasi Invariant?
Aadnan Farooq A

1
@AadnanFarooqA saya akan melakukannya malam ini.
Tarin Ziyaee

2

Banyak penulis termasuk Geoffrey Hinton (yang mengusulkan jaring Kapsul) mencoba menyelesaikan masalah ini, tetapi secara kualitatif. Kami mencoba mengatasi masalah ini secara kuantitatif. Dengan memiliki semua konvolusi, kernel menjadi simetris (dihedral simetri orde 8 [Dih4] atau 90 derajat rotasi simetris, dkk) di CNN, kami akan menyediakan platform untuk vektor input dan vektor yang dihasilkan pada setiap konvolusi, lapisan tersembunyi diputar. serempak dengan properti simetris yang sama (yaitu, Dih4 atau 90-rotasi rotasi simetris, et al). Selain itu, dengan memiliki properti simetris yang sama untuk setiap filter (yaitu, sepenuhnya terhubung tetapi berbobot berbagi dengan pola simetris yang sama) pada lapisan pipih pertama, nilai yang dihasilkan pada setiap node akan identik secara kuantitatif dan mengarah ke vektor output CNN yang sama. demikian juga. Saya menyebutnya CNN yang identik dengan transformasi (atau TI-CNN-1). Ada metode lain yang juga dapat membangun CNN identik-transformasi menggunakan input simetris atau operasi di dalam CNN (TI-CNN-2). Berdasarkan TI-CNN, CNNs identik-rotasi diarahkan (GRI-CNN) dapat dibangun oleh beberapa TI-CNN dengan vektor input diputar oleh sudut langkah kecil. Lebih lanjut, CNN yang identik secara kuantitatif tersusun juga dapat dibangun dengan menggabungkan beberapa GRI-CNN dengan berbagai vektor input yang ditransformasikan.

  1. "Jaringan Syaraf Konvolusional Identik dan Invarian Identik melalui Operator Elemen Simetris" https://arxiv.org/abs/1806.03636 (Juni 2018)

  2. “Jaringan Syaraf Konvolusional Identik dan Invarian Identik dengan Menggabungkan Operasi Simetris atau Vektor Input” https://arxiv.org/abs/1807.11156 (Juli 2018)

  3. "Sistem Jaringan Syaraf Konvolusional Identik dan Invarian yang Diarahkan secara Rotari" https://arxiv.org/abs/1808.01280 (Agustus 2018)


-1

Saya pikir max pooling dapat memesan invariansi translasi dan rotasi hanya untuk terjemahan dan rotasi yang lebih kecil dari ukuran langkahnya. Jika lebih besar, tidak ada invarian


1
bisakah kamu mengembangkan sedikit? Kami mendorong jawaban di situs ini untuk menjadi sedikit lebih rinci dari ini (sekarang, ini terlihat lebih ke komentar). Terima kasih!
Antoine
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.