Apa yang dimaksud dengan invarian terjemahan dalam visi komputer dan jaringan saraf convolutional?


38

Saya tidak memiliki latar belakang visi komputer, namun ketika saya membaca beberapa pemrosesan gambar dan jaringan saraf terkait artikel dan makalah, saya terus-menerus menghadapi istilah translation invariance,, atau translation invariant.
Atau saya banyak membaca bahwa operasi konvolusi menyediakan translation invariance? !! Apa artinya ini?
Saya sendiri selalu menerjemahkannya ke diri saya sendiri seolah-olah itu berarti jika kita mengubah gambar dalam bentuk apa pun, konsep sebenarnya dari gambar itu tidak berubah.
Sebagai contoh jika saya memutar gambar katakanlah pohon, itu lagi pohon tidak peduli apa yang saya lakukan untuk gambar itu.
Dan saya sendiri menganggap semua operasi yang dapat terjadi pada gambar dan mengubahnya dengan cara (memotongnya, mengubah ukurannya, skala abu-abu itu, warna itu dll ...) menjadi seperti ini. Saya tidak tahu apakah ini benar sehingga saya akan berterima kasih jika ada yang bisa menjelaskan hal ini kepada saya.

Jawaban:


61

Anda berada di jalur yang benar.

Invarian berarti Anda dapat mengenali suatu objek sebagai objek, bahkan ketika tampilannya berbeda beda . Ini umumnya merupakan hal yang baik, karena menjaga identitas objek, kategori, (dll) melintasi perubahan spesifik dari input visual, seperti posisi relatif dari penampil / kamera dan objek.

Gambar di bawah ini berisi banyak tampilan patung yang sama. Anda (dan jaringan saraf yang terlatih) dapat mengenali bahwa objek yang sama muncul di setiap gambar, meskipun nilai piksel sebenarnya sangat berbeda.

Berbagai macam invarian, dipertunjukkan

Perhatikan bahwa terjemahan di sini memiliki arti khusus dalam penglihatan, yang dipinjam dari geometri. Itu tidak merujuk pada jenis konversi apa pun, tidak seperti katakanlah, terjemahan dari bahasa Prancis ke bahasa Inggris atau antara format file. Sebaliknya, itu berarti bahwa setiap titik / piksel dalam gambar telah dipindahkan dengan jumlah yang sama ke arah yang sama. Sebagai alternatif, Anda dapat menganggap bahwa asal telah dipindahkan dalam jumlah yang sama ke arah yang berlawanan. Misalnya, kita dapat menghasilkan gambar ke-2 dan ke-3 di baris pertama dari baris pertama dengan menggerakkan setiap piksel 50 atau 100 piksel ke kanan.


Seseorang dapat menunjukkan bahwa operator konvolusi pulang pergi sehubungan dengan terjemahan. Jika Anda menggabungkan f dengan g , tidak masalah jika Anda menerjemahkan keluaran yang berbelit-belit fg , atau jika Anda menerjemahkan f atau g terlebih dahulu, kemudian berbelit-belit. Wikipedia memiliki sedikit lebih banyak .

Salah satu pendekatan untuk pengenalan objek invarian-terjemahan adalah dengan mengambil "templat" dari objek dan menggabungkannya dengan setiap lokasi yang mungkin dari objek dalam gambar. Jika Anda mendapatkan respons besar di lokasi, itu menunjukkan bahwa objek yang menyerupai templat berada di lokasi itu. Pendekatan ini sering disebut pencocokan templat .


Invariance vs. Equivariance

Jawaban Santanu_Pattanayak (di sini ) menunjukkan bahwa ada perbedaan antara terjemahan invariance dan terjemahan equivariance . Penerjemahan invarian berarti bahwa sistem menghasilkan respons yang persis sama, terlepas dari bagaimana inputnya digeser. Misalnya, face-detector dapat melaporkan "FACE FOUND" untuk ketiga gambar di baris atas. Ekuivarians berarti bahwa sistem bekerja dengan baik di semua posisi, tetapi responsnya bergeser dengan posisi target. Misalnya, peta panas "face-iness" akan memiliki tonjolan serupa di kiri, tengah, dan kanan saat memproses baris pertama gambar.

Ini kadang-kadang merupakan perbedaan penting, tetapi banyak orang menyebut kedua fenomena itu "invarian", terutama karena biasanya sepele untuk mengubah respons yang sama menjadi yang invarian - cukup abaikan semua informasi posisi).


2
Senang bisa membantu. Ini adalah salah satu minat penelitian besar saya jadi jika ada hal lain yang akan berguna, saya akan melihat apa yang bisa saya lakukan.
Matt Krause

Bisakah Anda mengklarifikasi bagaimana invarian terjemahan dicapai dengan CNN? Aktivasi lapisan konvolusional dalam CNN tidak invarian di bawah terjemahan: mereka bergerak di sekitar ketika gambar bergerak (yaitu, mereka sama, bukan invarian, ke terjemahan). Aktivasi itu biasanya dimasukkan ke dalam lapisan penyatuan, yang juga tidak berbeda dengan terjemahan. Dan pooling layer dapat dimasukkan ke dalam lapisan yang sepenuhnya terhubung. Apakah bobot dalam lapisan yang sepenuhnya terhubung, entah bagaimana, mengubah transalation equivarian menjadi perilaku invarian terjemahan?
maks

@ Max, Pooling memang meningkatkan invarian terjemahan, terutama max-pooling (!), yang sepenuhnya mengabaikan informasi spasial dalam lingkungan pooling. Lihat Bab 9 dari Deep Learning deeplearningbook.org/contents/convnets.html (mulai dari hlm. 335). Gagasan ini juga populer di bidang ilmu saraf - model HMAX (mis., Di sini: maxlab.neuro.georgetown.edu/docs/publications/nn99.pdf ) menggunakan kombinasi rata-rata dan pengelompokan maks untuk menghasilkan terjemahan (dan jenis lain dari ) invarian.
Matt Krause

1
Oh benar, penggabungan memberikan variasi atas terjemahan kecil (saya berpikir tentang perubahan yang lebih besar, tapi mungkin setiap lapisan penyatuan yang berurutan dapat menangani perubahan yang semakin besar secara progresif). Tetapi bagaimana dengan jaringan yang sepenuhnya konvolusional ? Tanpa penggabungan, apa yang menyediakan (setidaknya perkiraan) invarian?
maks

1
@Fredom, itu mungkin lebih baik sebagai pertanyaan baru, tetapi secara singkat - sinyal audio terdengar sama bahkan ketika Anda menggesernya ke depan dalam waktu (misalnya, dengan menambahkan banyak kesunyian di awal). Namun, jika Anda menggesernya dalam domain frekuensi, kedengarannya berbeda: spektrum tidak hanya bergeser, tetapi hubungan antar frekuensi (misalnya, harmonik) juga terdistorsi.
Matt Krause

4

Saya pikir ada beberapa kebingungan tentang apa yang dimaksud dengan invarian translasi. Konvolusi memberikan arti penerjemahan yang berarti jika suatu objek dalam gambar berada di area A dan melalui konvolusi fitur terdeteksi pada output di area B, maka fitur yang sama akan terdeteksi ketika objek dalam gambar diterjemahkan ke A '. Posisi fitur keluaran juga akan diterjemahkan ke area baru B 'berdasarkan ukuran kernel filter. Ini disebut translational equivariance dan bukan translational invariance.


2

Jawabannya sebenarnya lebih sulit daripada yang muncul pada awalnya. Secara umum, invarian translasi berarti bahwa Anda akan mengenali objek yang tidak diatur di mana muncul pada bingkai.

Pada gambar berikutnya dalam bingkai A dan B Anda akan mengenali kata "stres" jika visi Anda mendukung terjemahan invarian kata - kata . masukkan deskripsi gambar di sini

Saya menyoroti istilah kata-kata karena jika invarian Anda hanya didukung pada huruf, maka frame C juga akan sama dengan frame A dan B: ia memiliki huruf yang persis sama.

Dalam istilah praktis, jika Anda melatih CNN Anda tentang huruf, maka hal-hal seperti MAX POOL akan membantu untuk mencapai invarian terjemahan pada huruf, tetapi mungkin tidak selalu mengarah pada terjemahan invarian pada kata-kata. Pooling mengeluarkan fitur (yang diekstraksi oleh lapisan yang sesuai) tanpa terkait dengan lokasi fitur lainnya, sehingga akan kehilangan pengetahuan tentang posisi relatif huruf D dan T dan kata-kata STRESS dan DESSERTS akan terlihat sama.

Istilah itu sendiri mungkin berasal dari fisika, di mana simetri ranslasional berarti bahwa persamaan tetap sama terlepas dari terjemahan dalam ruang.


1

@Santanu

Sementara jawaban Anda benar sebagian dan menyebabkan kebingungan. Memang benar bahwa lapisan Konvolusional itu sendiri atau peta fitur keluaran adalah sama-sama terjemahan. Apa yang dilakukan max-pooling layers adalah menyediakan beberapa terjemahan invarian seperti yang ditunjukkan oleh @Matt.

Dengan kata lain, kesetaraan dalam peta fitur yang dikombinasikan dengan fungsi layer max-pooling menyebabkan invarian terjemahan pada lapisan output (softmax) dari jaringan. Rangkaian gambar pertama di atas masih akan menghasilkan prediksi yang disebut "patung" meskipun telah diterjemahkan ke kiri atau kanan. Fakta bahwa prediksi itu tetap "patung" (yaitu sama) meskipun menerjemahkan input berarti jaringan telah mencapai beberapa terjemahan invarian.


Saya tidak begitu yakin bahwa pengumpulan mengarah ke invarian terjemahan.
Aksakal

Cukup. Ingat operator pooling max mengambil nilai pixel maksimum sebagai output di jendela yang diberikan. Secara matematis ini memerlukan beberapa invarian karena lokasi spasial dari nilai piksel maksimum tidak relevan (dalam beberapa toleransi).
mr e
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.