Kesamaan Gambar Dengan Penjelasan Deep Learning – Menuju AI – Teknologi, Sains, dan Teknik Terbaik

Penulis: Romain Futrzynski

Pembelajaran Mendalam

Baru-baru ini saya memberikan ceramah Meetup di mana saya membahas dua topik favorit saya: jaringan saraf dan gambar. Karena perusahaan saya meluncurkan fitur untuk kesamaan gambar, saya pikir saya akan merangkum beberapa ide dari pembicaraan ini dan memberikan pendapat saya tentang beberapa pertanyaan:

Mengapa bekerja dengan kesamaan?
Bagaimana pembelajaran mendalam membantu?
Mengapa kesamaan kosinus tersebar luas?
Apa bedanya dengan klasifikasi gambar?

Apa kesamaan gambar?

Apakah gambar-gambar ini serupa? Tentu saja mengapa tidak. | Gambar 1, 2 di Unsplash

Persamaan menurut definisi adalah konsep yang tidak jelas. Ini berfungsi dengan baik ketika dua manusia berkomunikasi, tetapi itu bukan hal termudah untuk ditangani untuk program komputer deterministik. Pikirkan dua gambar di atas: Anda dapat dengan mudah membuat siapa pun setuju bahwa mereka terlihat mirip (orang berjaket kulit, kontemplatif, menghadap ke kiri), meskipun beberapa aspek jelas berbeda (berdiri vs. duduk, latar belakang laut vs. jalan, pria vs. . wanita).

Jika tujuan Anda adalah untuk mengevaluasi aspek-aspek tertentu dari sebuah gambar maka, tentu saja, rancang, dan latih model untuk tugas itu. Namun, jika kriteria Anda untuk “kesamaan” adalah visual tetapi tidak didefinisikan dengan baik, atau jika Anda kekurangan data yang diberi label untuk pelatihan, di sinilah kesamaan gambar dengan pembelajaran yang mendalam dapat memberi Anda dorongan.

Pembelajaran mendalam membuka jalur untuk secara konsisten mengukur kesamaan antara gambar, memungkinkan otomatisasi bahkan tugas yang tidak jelas.

Apa yang dapat Anda lakukan dengan kesamaan gambar?

Temukan gaun serupa secara online dari gambar referensiKonsep pakaian dan 3 pertandingan teratas di Zalando, diberi peringkat berdasarkan kesamaan. Ribuan gambar dibandingkan dalam sekejap mata, bebas dari kata kunci yang kaku. | Sketsa pada Unsplash, gambar 1,2,3 dari zalando.se ditampilkan dengan izin

Aplikasi yang paling jelas adalah pencarian terbalik. Entah bagaimana, saya cukup dewasa untuk mengetahui saat kata kunci menguasai internet, dan semoga berhasil menemukan apa pun tanpa mengejanya dengan tepat.

Pencarian terbalik memungkinkan Anda memulai dengan konten dan memberi Anda kata kunci yang terkait. Saat ini, tentu saja, mesin pencari jauh lebih fleksibel dan Anda mungkin tidak tertarik untuk menemukan kata kunci, tetapi Anda mungkin masih memulai dari sebuah contoh dan menjelajah dengan menjelajahi dari suka ke suka.

Klasifikasi ekstrim: Google merilis set data dengan ratusan ribu landmark untuk dikenali.

Teknik kemiripan pembelajaran mendalam juga ada di balik beberapa metode terbaik untuk pengenalan tengara, jika Anda memerlukan bantuan untuk mengingat di mana foto-foto liburan Anda diambil. Dan ketika Anda dapat mengenali bangunan terkenal di seluruh dunia, Anda mungkin juga memeriksa seberapa baik kerjanya untuk pengenalan wajah.

Terakhir, jika Anda ingin mengatur semuanya dengan baik, kesamaan gambar dapat diterapkan pada pengelompokan data. Ini memungkinkan Anda untuk memanfaatkan kombinasi informasi eksplisit, seperti jenis pakaian, dan fitur visual yang dipelajari secara implisit oleh model pembelajaran mendalam.

Pengelompokan data mencampurkan kategori berlabel dan kesamaan visualMengelompokkan item dari toko ritel online, diwarnai menurut kategori. Kategori seperti sepatu secara visual unik, sementara kategori lain lebih beragam dan mungkin tumpang tindih secara visual dengan tetangganya. | Gambar 1,2,3,4,5,6 di Unsplash

Bagaimana cara kerja kesamaan gambar?

Saya tidak bisa cukup menekankan bahwa kesamaan adalah konsep yang tidak jelas. Jika kita ingin membuat kemajuan tanpa menetapkannya pada definisi tertentu, kita harus berpikir abstrak sejenak.

Katakanlah untuk item data apa pun, khususnya di sini sebuah gambar, kami menginginkan representasi dari data ini yang mudah dibandingkan dengan item lain. Jika representasi ini berukuran kecil, pencarian melalui ribuan item akan cepat (jika hanya dengan memuat lebih sedikit data dari disk). Itu pada dasarnya ide yang sama seperti membuat tabel hash dari data Anda, sudut yang dirinci lebih lanjut di Deep Hashing for Similarity Search.

Namun, tidak seperti fungsi hash pada umumnya, representasi yang dikompresi harus sebanding untuk menunjukkan secara langsung tingkat kesamaan antara item yang sesuai. Karena kita belum mendefinisikan apa yang kita maksud dengan serupa, mari kita mulai dengan gagasan bahwa representasi data harus menjaga informasi. Ini bisa dijamin jika ada cara untuk merekonstruksi data dari representasi.

Jadi yang kami cari adalah cara untuk mengompres data dengan cara yang berarti.
Di sinilah jaringan neural dalam berguna. Secara khusus, struktur autoencoder memeriksa banyak kotak yang berguna:

Mempertahankan informasi dengan merekonstruksi masukan Dapat menangani berbagai jenis data Representasi terkompresi ukuran tetap Fungsi masukan yang lebih atau kurang berkelanjutan Dapat dilatih untuk ketahanan kebisingan Dapat disetel dengan baik untuk arti khusus “serupa”
Arsitektur AutoencoderStruktur autoencoder: data dikompresi ke ukuran tetap oleh jaringan encoder, namun informasi dipertahankan karena input dapat dipulihkan oleh jaringan decoder.

Fakta bahwa autoencoder adalah (lebih atau kurang) fungsi kontinu dari input mereka, dan bahwa mereka dapat dilatih untuk ketahanan kebisingan, adalah berita yang sangat bagus untuk aplikasi kesamaan. Artinya, masukan yang terlihat sama harus memiliki representasi terkompresi yang hampir identik.

Namun, dapat dikatakan bahwa jika dekoder dibiarkan menjadi kompleks sewenang-wenang, ia mungkin dapat berperilaku lebih seperti fungsi hash. Ini akan menyulitkan untuk membandingkan embeddings yang dikompresi secara langsung.

Itulah mengapa dalam praktiknya, arsitektur dasar model kesamaan lebih menyerupai jaringan classifier daripada autoencoder. Bisa dibilang ini menyimpan lebih sedikit informasi, tetapi memungkinkan untuk membuat perbandingan dengan kesamaan kosinus. Belum lagi jaringan pengklasifikasi jauh lebih luas dan lebih mudah dilatih daripada autoencoder.

Mengapa menggunakan kesamaan kosinus?

Dalam hal kesamaan, “kesamaan kosinus” ada di bibir setiap orang karena operasi itulah yang hampir selalu digunakan untuk mengukur seberapa dekat dua item. Jadi, ketika Anda membaca bahwa dua gambar 90% serupa, kemungkinan besar itu berarti kesamaan kosinus dari representasi terkompresi mereka sama dengan 0,90, atau setara bahwa keduanya berjarak 25 derajat.

Membawa trigonometri mungkin tampak tidak diperlukan saat berurusan dengan jaringan neural dalam, tetapi hal ini muncul secara alami dari cara jaringan menghitung. Untuk memahami alasannya, mari kita lihat jaringan pengklasifikasi sederhana.

Jaringan klasifikasi. CNN seperti VGG bertindak sebagai pembuat enkode dan mengompresi gambar menjadi koordinat. Lapisan padat tunggal mengklasifikasikan koordinat dengan menghitung jaraknya dari garis kategori.

Berikut adalah pengklasifikasi yang saya latih pada 3 kelas dari hewan dengan atribut 2. Encoder melakukan bagian berat dari pemrosesan gambar dan memampatkan input menjadi koordinat dalam ruang dimensi-N (di sini N = 2).

“Decoder”, bagaimanapun, direduksi menjadi satu lapisan dan hanya dapat bertindak sebagai pengklasifikasi, sebagai lawan untuk merekonstruksi seluruh gambar masukan. Untuk memutuskan apakah sebuah titik yang berasal dari encoder termasuk dalam kategori tertentu, itu hanya dapat melakukan hal yang sangat sederhana: menggambar garis (atau bidang) di ruang dimensi-N. Jika sebuah titik ada di sisi kanan garis ini, itu termasuk dalam kategori. Jika titik berada di sisi yang salah, itu tidak termasuk dalam kategori dari garis ini.

Baik pembuat enkode yang menghitung koordinat dan pengklasifikasi yang menggambar garis dilatih bersama sehingga setiap gambar dari kategori yang diketahui dapat diklasifikasikan dengan benar. Saat kami meningkatkan jumlah kategori yang diketahui (terutama jika kategori tersebut saling eksklusif), kami dapat melihat bahwa titik yang dibuat oleh pembuat enkode mengatur dirinya sendiri dalam cluster yang tersebar di sekitar lingkaran.

Alhasil, sudut antara dua titik menjadi cara alami untuk membandingkannya. Kesamaan kosinus, yang memetakan sudut antara 0 ° dan ± 180 ° ke nilai bagus antara 1 dan -1, menawarkan ukuran kesamaan yang intuitif.

Apa perbedaan kesamaan gambar dari klasifikasi?

Memang benar bahwa kemiripan gambar terkait erat dengan klasifikasi gambar, jika hanya karena itu menggunakan jaringan pengklasifikasi yang sama sebagai pekerja keras pemrosesan. Namun, ada beberapa poin yang membuat kemiripan gambar menjadi miliknya.

Kesamaan gambar mempertimbangkan banyak dimensi

Dalam masalah klasifikasi gambar, kami hanya memikirkan apakah suatu gambar termasuk dalam satu (atau mungkin beberapa) kategori terpisah, yang berarti banyak informasi yang dibuang dari hasil akhir.

Dengan menggunakan representasi data sebelum lapisan klasifikasi akhir, lebih banyak aspek data dapat digunakan.

Pada contoh di bawah ini, saya memberikan twist pada dataset MNIST lama yang bagus. Saya melatih jaringan untuk mengenali angka tulisan tangan, dan tentunya cukup banyak poin yang dikelompokkan sesuai dengan kategorinya – digit antara 0 dan 9. Namun, saya juga mendefinisikan 2 dimensi lagi yang harus dipelajari jaringan:

Paritas: apakah sebuah digit genap atau ganjil Besarnya digit tersebut
Kesamaan cosinus menggabungkan kelas digit MNIST, paritas digit, dan besaranSebuah jaringan dapat dilatih secara eksplisit untuk mengenali digit pada sebuah citra, paritas digit, dan besaran digit. Kesamaan kosinus mengukur kemiripan antara dua gambar dengan mempertimbangkan semua dimensi ini sekaligus.

Kesamaan kosinus antara dua gambar menggabungkan semua dimensi ini dan mengembalikan nilai tunggal yang minimal untuk digit yang sama, sedikit lebih besar untuk digit berturut-turut dengan paritas yang sama, dan terbesar untuk digit dengan paritas berbeda.

Dimensi dapat dipelajari secara implisit

Jika Anda melatih jaringan pengklasifikasi untuk mengenali lumba-lumba, harimau, dan kuda, hewan-hewan ini adalah domain pelatihannya dan Anda tidak boleh mengandalkan klasifikasi yang lain. Menurut gambar di bawah, jaringan yang saya latih sebelumnya akan mengklasifikasikan sebagian besar gambar zebra sebagai harimau, yang sebenarnya salah.

Jaringan ini menghitung bahwa zebra, yang tidak dilatih untuk dikenali, terlihat seperti sesuatu antara kuda dan harimau. Mungkin karena garis-garisnya, rata-rata zebra terlihat cos (25 °) = 0,90 mirip dengan harimau.

Kesamaan kosinus menggabungkan banyak dimensi yang dipelajari secara implisit (mungkin di sini, pola bergaris dan keberadaan kaki atau rumput) menjadi nilai numerik fluida. Hasilnya, Anda mendapatkan dari jaringan yang sama bahwa zebra terlihat seperti sesuatu di antara kuda dan harimau, meskipun Anda tidak berlatih secara eksplisit untuk mengenali kelas zebra.

Jaringan khusus ini mungkin menganggap zebra sedikit lebih mirip dengan harimau daripada Anda, tetapi untungnya jaringan melakukannya dengan menggunakan operasi deterministik yang dapat disetel.

Kesamaan gambar dapat dilatih secara berbeda

Jika Anda ingin membiarkan jaringan mempelajari dimensi implisit sepenuhnya sendiri, Anda bahkan mungkin tidak memerlukan kategori berlabel untuk dilatih.

Menggunakan label hanya menunjukkan apakah dua gambar serupa atau tidak, jaringan dapat dilatih berkat kerugian kontrastif. Ini berfungsi jika Anda mengetahui kesamaan hubungan antara setiap pasangan gambar dalam kumpulan data, atau hanya di antara beberapa pasangan.

Fungsi kerugian tersebut agak berbeda dari fungsi kerugian yang secara tradisional digunakan untuk melatih jaringan klasifikasi. Memang, tujuan mereka bukan untuk mendorong gambar masukan ke kategori tetap, tetapi ke gambar lain yang diketahui serupa.

Lebih jauh

Tutorial:

Meetup talk: Kemiripan gambar dengan deep learning – pertemuan digital dengan Solita & Romain Futrzynski / Peltarion

Literatur:

Kerangka Sederhana untuk Pembelajaran Kontrasif Representasi Visual, Ting Chen et al., 2020 Self-Supervised Similarity Learning for Digital Pathology, Jacob Gildenblat, Eldad Klaiman, 2020 Mendukung pengenalan gambar skala besar dengan sampel di luar domain, Christof Henkel, Philipp Singer, 2020 Deep Face Recognition: A Survey, Mei Wang, Weihong Deng, 2020 Unsupervised Feature Learning via Non-Parametric Instance-level Discrimination, Zhirong Wu et al., 2018

Image Similarity With Deep Learning Explained awalnya diterbitkan di Towards AI on Medium, di mana orang-orang melanjutkan percakapan dengan menyoroti dan menanggapi cerita ini.

Diterbitkan melalui Towards AI