Barlow Twins – 3 – Ishan


Saya lanjutkan pembahasan tentang metoda Barlow Twins dari kuliah Ishan Misra. Barlow Twins dapat mencegah solusi trivial tanpa melihat sampel negatif. Pada setiap titik proses embedding hanya memperhatikan sampel positif.

Sekarang kita mencoba mencegah solusi trivial tanpa melakukan Asymmetric learning.

Ishan menampulkan perbandingan Barlow twins dengan metoda lain seperti swav, byol, dan simsian. Pada Swav kita menggunakan algoritma sinkhorn, pada simSiam dan Byol kita memiliki perbedaan arsitektur, learning update, student teacher, atau ada predictor dll. Pada Barlow twin arsitekturnya sama, learning update nya sama, encodernya sama, konsep student dan teachernya sama pencegahan solusi trivial menggunakan perhitungan loss function dan cross correlation.

Sehingga Barlow twins lebih mudah diimplementasikan. Ishan menampilkan bagian kode barlow twins, ada fungsi data loader, optimisasi, matrix cross corelasi. Kode ini menurut dia mudah untuk diimplementasikan, lebih mudah dibandingkan metode lain yang menggunakan asimetric learning.

Kemudian dia menampilkan pengujian performa Barlow twins pada downstream task. Dia melakukan finetuning barlow twins pada dataset ImageNet. Finetuning dilakukan dengan jumlah label yang sedikit. Misalnya hanya 1% label, dan 10%. Barlow twins menghasilkan akurasi yang cukup baik, bila hanya menggunakan 1% label, performanya jauh lebih baik dibandingkan metode lainnya.

Pada tabel kanan dilakukan pengujian lainnya. Representasinya diambil dan kemudian di freezing, dilakukan learning dengan linear classifer pada bagian atas representasi. Setelah itu ditransfer learning ke dataset lainnya yaitu places-205, voc07, iNat18. Terlihat performanya cukup baik. Sehingga bisa dikatakan bisa dilakukan kita melakukan learning pada metode yang lebih sederhana, namun menghasilkan performa yang baik. Kemudian menambah pemahaman kita tentang mempelajari representasi dan menghindari solusi trivial, ada banyak cara untuk mencegah solusi trivial.

Kemudian ditampilkan seberapa sensitif Barlow Twins dengan ukuran batch. Karena kita perlu melakukan operasi centering sebelum melakukan perhitungan cross-correlation. Pada SimCLR dan contrastive learning, untuk mencegah korelasi negatif dengan mengambil batch yang besar dan menyebarnya antara beberapa GPU. Pada contrastive learning, sampel negatif yang bagus sangat penting, untuk mencegah solusi trivial, juga untuk mendapatkan cluster yang baik. Pada SimCLR kalau kita mengurangi jumlah batch, maka kita mengurangi jumlah negatif yang diperlukan pada perhitungan. Bisa dilihat SimCLR memerlukan jumlah batch yang besar untuk mendapatkan performa yang baik, karena semakin besar batchnya semakin banyak jumlah negatif yang digunakan pada contrastive learning.

Pada Byol yang menggunakan metode distilasi, ukuran batch sizenya lebih stabil. Jadi tidak perlu ukuran batch size yang besar. Sementara pada barlow twins, tidak sesensitif seperti simclr, tapi juga tidak se-robust pada byol. Bahkan pada ukuran batch 128, performanya juga masih stabil dan mirip dengan byol. Sementara penurunan performa pada batch besar, bukan karena algoritma tapi dikarenakan teknik optimasi parameter yang digunakan. Selain dari teknik optimasi, loss function juga sensitif terhadap ukuran batch. Seperti pada kasus contrastive learning pada simclr.

Selanjutnya Ishan cerita tentang efek dari teknik augmentasi data, terhadap performa. SimCLR dan BT memiliki kemiripan performa pada teknik augmentasi yang digunakan, keduanya sensitif terhadap teknik augmentasi apa yang digunakan. Sementara Byol lebih robust, terlihat dari grafik kita bisa menghilangkan berbagai teknik augmentasi namun penurunanperforma Byol lebih rendah.

Pada gambar sebelah kanan terlihat perbandingannya modelnya. Pada BT dan SimCLR gambar diambil kemudian dimasukan ke encoder yang sama, sehingga memiliki weight yang sama, kemudian baru diperoleh output fitur. Kemudian ada perbedaan pada saat backpropagasi BT digunakan redundancy reduction loss, sementara pada simCLR mencari similarity dengan contrastive learning. Augmentasi data kita menghasilkan fitur yang berbeda, sementara pada Byol, ketika gambar dimasukan ke encoder, ada perbedaan weight pada arsitektur student- teacher. Walaupun kita masukan gambar yang sama, outputnya akan berbeda, karena weightnya berbeda. Teacher menggunakan seperti teknik augmentasi natural dari average weight yang berubah. Sehingga Byol lebih robust terhadap augmentasi data.

Selanjutnya ditampilkan apakah Asymetric learning membantu meningkatkan performa barlow twins. Sampai saat ini kita lihat bahwa tanpa Asymetric learning, Barlow twins berhasil mencegah solusi trivial. Kemudian diuji apakah menambah asymetric learning meningkatkan performa Barlow twins. Dicoba melakukan teknik seperti SimSiam, yaitu menggunakan stop graident atau menggunakan predictor. Dari grafik terlihat menambahkan teknik ini tidak mempengaruhi performa BT. Bahkan menggunakan kedua teknik ini bersamaan, malah membuat performanya menurun. Sehingga disimpulkan untuk mencegah solusi trivial tidak diperlukan asymetric learning.

Properti berikutnya yang diuji adalah jumlah non-redundant neuron. Ketika mengambil n-neuron dan kita ingin n-neuron ini menjadi berbeda. Pada BT ketika kita memasukan gambar dan kita masukan ke encoder ada fitur image tertentu, misalnya untuk resnet 2048. Fitur ini diproyeksikan ke MLP sebelum dihitung reduction redundancy loss. Pada contrastive learning, dari 2048 dimensi dimasukan ke MLP untuk dihitung embedding kecil kemudian dilakukan contrastive learning. Pada Byol ada bagian predictive. Pada BT, semua redundancy reduction dilakukan pada fitur yang dihitung setelah MLP. Pada studi ini dipelajari apakah dimensi fitur ini ngaruh apa gak? dan seberapa ngaruh?

Pada percobaan ini dimensi MLP diubah2. Contoh dari input 2048 fitur dimensi dapat menghasilkan 256 – 4000 fitur dimensi. Untuk 3 metode ini digunakan 2048 fitur, sehingga dibandingkan performa encoder dan decoupling dengan MLP yang digunakan. Pada sumbu X adalah dimensi projektor dari 16 – 16 ribu. Performa BT meningkat ketika dimensinya semakin besar, sementara byol dan simclr lebih stabil. Namun performa Byol menurun diatas ukuran dimensi 128. Simclr lebih robust, nilainya tetap stabil.

Kenapa dibandingkan 3 metode ini. BT dengan redundancy reduction loss, seperti mendorong sparse (longgar) representation, sehingga neuron harus mengenkode info yang berbeda-beda. Misal kita memiliki 10 konsep representasi image. Semua neuron harus menangkap konsep-konsep representasi yang berbeda, kita perlu jumlah neuron yang sangat banyak. Karena neuron harus decorelated secara keseluruhan.

Sementara untuk BYOL dan simclr, representasi (vektor) lebih dense (rapat). Vektor-vektor ini tidak mendorong sparsity. Sehingga dengan BT performanya lebih baik pada dimensi proyektor yang lebih besar. Sampai disini dulu, besok saya lanjutkan dengan sesi terakhir, yaitu tanya jawab

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