SSL Vision Ishan


Saya lanjutkan pembahasan kuliah Ishan Misra tentang Self Supervised Learning pada komputer vision. Sebelumnya telah dibahas tentang teknik Barlow Twin. Sekarang saya bahas tentang sesi diskusi dari kuliah Ishan Misra.

Question(Q): Ada banyak metode dalam SSL. Apa Blueprint yang harus diikuti bila kita ingin membangun model SSL? Model apa yang cocok untuk task apa?

Answer (A): Tergantung pada dataset dan task apa yang ingin kita lakukan. Namun ada kelebihan dan kekurangan dari metode2 ini. Kalau kita mempertimbangkan konvergen, model berbasis clustering konvergen lebih cepat.

Kalau kita ingin implementasi yang lebih mudah, maka Barlow Twins. Kodenya lebih mudah, parameter yang diubah lebih sederhana.

Kalau kita memiliki berbagai macam modality yang ingin kita bandingkan, misalnya video, audio, RGB pixel, dll maka pake contrastive learning lebih baik. Karena kita memiliki dua tipe encoder yang berbeda, dan dua tipe arsitektur yang berbeda, sehingga masalah optimisasi lebih susah.

Tambahan dari Yann LeCun(Y): Dia lebih suka metoda non-contrastive. Ada pertanyaan bahwa Barlow Twins adalah sebuah metode secret contrastive, karena dia melakukan contrastive training antara fitur atau sampel. BYOL cara kerjanya misterius, karena ada implisit contrastive term pada efek batch normalisasi. Ada beberapa publikasi dari Deepmind dll tentang cara kerja BYOL, tapi sepertinya menghilangkan beberapa bagian dimana BYOL tidak bekerja, apa kamu bisa jelaskan tentang apa yang membuat BYOL bekerja.

A: Ada batch norm yang digunakan untuk mencegah kolaps dst, namun menginterpretasikan data sebagai metode hidden contrastive kurang tepat. Alignment batch seperti melebarkan data atau preconditioning atau meningkatkan atau optimasi data daripada contrastive learning. Dengan contrastive learning dibutuhkan banyak data negatif, seperti ribuan ribuan data negativ. Bila kita bekerja dengan batch 1028, tidak bisa disebut metode contrastive.

Q: Apakah bisa bekerja dengan tipe normalisasi yang berbeda?

A: Bisa, tergantung dari arsitektur yang digunakan dan tipe optimasi, contohnya transformer kemudian training dengan byol, pada kasus ini kita tidak menggunakan normalisasi batch.

Y:Ada paper dari Deepmind yang merubah normalisasi batch pada tingkat yang berbeda pada byol, namun kemudian pada layer terakhir kolaps

A:Ada beberapa teknik yang bisa dilakukan (inisialisasi) misalnya layer norm kemudian mencoba untuk inisialisasi parameter dengan berbeda. Selain itu masalah ini adalah kesulitan pada optimasi dibandingkan daripada masalah metode. Menurut ishan kalo dicoba pada arsitektur student teacher yang berbeda, mungkin bisa jalan. Seperti transformer tanpa batch norm

Q: Apa masa depan SSL?

A: Di masa depan, semua metoda pada image, melakukan bootstrap dari sinyal yang sama. Semuanya melakukan augmentasi dari gambar yang sama, embeddingnya harus sama dan sementara gambar yang berbeda maka augmentasinya berbeda. Sementara di masa depan bisa dipelajari apakah ada sinyal yang harus kita fokus pelajari. Saat ini berbicara tentang augmentasi invariance dan mencegah solusi trivial. Apakah ada sinyal lain? apakah hanya invariance yang harus kita perhatikan? atau ada properti lain yang harus dipelajari dalam SSL? inilah pertanyaan yang harus dijawab

Y: Bagaimana kemungkinan implementasi SSL pada video dengan pedekatan yang berbeda? learning feature pada video? Ide membuat distorsi pada gambar, adalah cara untuk membuat nearest neighbour graph. Kita punya sangat banyak koleksi gambar, kemudian kita generate gambar yang mirip kontennya. Dimana kemudian dicari similaritynya. Sementara pada video kita harus mencari frame berurutan memiliki konten yang sama, atau salah satu cabang pada arsitektur joint embedding memiliki sekumpulan frame, sementara cabang lainnya memiliki frame berikutnya atau frame yang ada ditengah

A: SSL pada video mengikuti video arsitektur sorting dibandingkan task klasifikasi video, seperti image task dibanding arsitektur image . Ada metode contrastive yang bisa digunakan, bisa dipelajari kemiripan frame berdekatan, menggunakan teknik augmentasi seperti crop, color distortion dll. Semuanya sama dengan contrastive learning, Hal baru misalnya menggunakan audio untuk self-supervision. Bila kita hitung augmentasi data pada audio, ada banyak redundansi, sehingga task contrastive menjadi lebih mudah. Sehingga kita harus lebih agresif pada implementasi teknik augmentasi data. Karena task dapat mengenali 2 klip yang berbeda dari video yang sama. Contohnya ada 10 frame yang memiliki background yang sama, dimana kita bergerak antara frame, sehingga tasknya menjadi lebih mudah. Predictive learning akan menjadi hal yang lebih menarik, dan masalah yang paling susah. Karena prediksi video, adalah salah satu hal yang sulit untuk dilakukan.

Q: Untuk SSL apakah ada yagn pernah mencoba GAN untuk membuat noise untuk augmentasi data, seperti mencoba belajar mengenali noise terbatas yang muncul pada enkoder kondisi terburuk?

A: Apakah ini seperti membuat augmentasi loss maksimum daripada mencari nilai minimumnya? ada beberapa teknik yang telah dilakukan tapi tidak populer. Seperti menambahkan suara dengan frekuensi tinggi dll

Sampai disini kuliahnya. Semoga bermanfaat!

Materinya bisa dilihat disini:

https://atcold.github.io/NYU-DLSP21/en/week10/10-2/

slidenya ada disini:

https://drive.google.com/file/d/1BQlWMVesOcioW69RCKWCjp6280Q42W9q/edit

Videonya:


Silahkan tuliskan tanggapan, kritik maupun saran