Trojan TR/Crypt.ZPACK.Gen

Hari ini ada teman yang mintol, katanya malwarenya kena malware. Malwarenya bisa kedetek sama antivirus tapi gak bisa diremove. Setelah saya lihat ternyata malwarenya TR/Crypt.ZPACK.GEN. Ini sejenis trojan, maksudnya malware yang ngumpulin data2 di komputer korban terus dikirim ke pemilik malware. TR/Crypt.ZPACK.Gen ini nama yang digunakan oleh Avira. Biasanya nyebar lewat email, dan punya fungsi auto run.

Sayangnya avira gak bisa ngeremove trojan ini. Jadi pilihannya paling di karantina. Untuk ngeremove bisa menggunakan tools berikut:

  1.  Kaspersky tdss killer , 
  2. Malwarebytes chameleon
  3. RogueKiller
  4. Hitman Pro
  5. Emsisoft emergency kit

Semoga bermanfaat!

referensi:

Remove TR/Crypt.ZPACK.Gen trojan (Removal Instructions)

Malware Penambang – cryptomining malware

Nambang Bitcoin saat ini telah jadi tren baru, mengalahkan tren batu akik yang semakin meredup. Bahkan di kantin kampus seringkali saya dengar obrolan para penambang dan para pedagang cryptocurrency. Para penambang rela menghabiskan jutaan rupiah untuk membeli GPU paling canggih. Konon semakin canggih hardware yang digunakan maka semakin banyak keuntungan yang bisa diraih. Demi keuntungan besar, para penambang memanfaatkan malware untuk nambang di komputer orang lain. Malware jenis ini yang dinamakan cryptomining malware.

Contohnya malware Smominru botnet (Ismo). Malware ini digunakan untuk nambang Koin Monero di Windows Server. Malware ini menyebar ke komputer korban memanfaatkan eksploit EternalBlue (CVE-2017-0144).

Buat yang tertarik belajar tentang malware cryptomining ini, berikut ini ada beberapa link tentang malware cryptomining

The state of malicious cryptomining

Mining is the new black

https://www.eset.com/int/malicious-cryptominers/

https://www.darktrace.com/en/blog/crypto-mining-malware-uncovering-a-cryptocurrency-farm-in-a-warehouse/

https://www.trendmicro.com/vinfo/de/security/news/cybercrime-and-digital-threats/security-101-the-impact-of-cryptocurrency-mining-malware

Github

https://github.com/gsuareztangil/cryptomining-malware

https://github.com/topics/cryptomining

Paper:

https://arxiv.org/pdf/1808.00811.pdf%C2%A0

Klik untuk mengakses 1901.00846.pdf

Klik untuk mengakses JAKO201919761178776.pdf

Semoga Bermanfaat!

Decoding Komunikasi GSM

Beberapa waktu lalu saya menguji proyek akhir mahasiswa tentang decoding komunikasi GSM. Proyek akhir ini dikerjakan berdua oleh haryo novianto dan bryan rizky rivaldy dengan pembimbing pak rossi dan pak Fahru. Jadi ceritanya mereka mencoba menangkap komunikasi GSM dengan perangkat RTL-SDR. RTL-SDR ini semacam antena yang bisa digunakan untuk menangkap sinyal dari BTS. Kemudian sinyal yang ditangkap didecode dengan menggunakan aplikasi GR-GSM.

Proyek akhir mereka membuktikan bahwa penyadapan komunikasi GSM bisa dilakukan, memang tidak mudah untuk mendecode komunikasinya, tapi mereka berhasil mendecode menggunakan aplikasi kraken. Memang standar keamanan komunikasi GSM kita belum optimal, vendor telekomunikasi masih belum sepenuhnya aman. Algoritma enkripsi yang digunakan masih jadul yaitu A5/1 sudah harus diupdate. Semoga sisi keamanan ini lebih diperhatikan lagi. Paper proyek akhir brian bisa dilihat disini:

https://openlibrarypublications.telkomuniversity.ac.id/index.php/appliedscience/article/view/5178

Paper Proyek akhir haryo bisa dilihat disini:

https://openlibrarypublications.telkomuniversity.ac.id/index.php/appliedscience/article/view/5197

Selamat untuk haryo dan brian. Beberapa link tentang tema ini bisa dilihat pada link berikut:

tentang algoritma A5/1:

https://github.com/0xh4di/GSMDecryption

https://en.wikipedia.org/wiki/A5/1

tentang crackint A5/1

https://ptrkrysik.github.io/

https://www.crazydanishhacker.com/?s=gsm

Kumpulan video:

http://infocon.hackingand.coffee/

Klik untuk mengakses ptrkrysik_camppp.pdf

https://domonkos.tomcsanyi.net/?p=428

Kape – tools forensik

Untuk para penggemar Forensik, ada tools baru namanya KAPE. Program ini digunakan untuk menemukan artifak forensik dan melakukan parsing. Dengan KAPE ini penyelidik bisa menemukan artifak dengan cepat dan menentukan prioritas artifak tersebut.

Tools ini dapat penghargaan DFIR non-commercial tool of the year. Tools ini gak perlu diinstal, bekerja dalam command line. Tentang KAPE bisa dilihat pada web ini:

https://ericzimmerman.github.io/KapeDocs/#!index.md

Bisa dilihat juga di github berikut ini:

https://github.com/EricZimmerman/KapeFiles

Untuk mahasiswa yang sedang cari topik Proyek Akhir mungkin bisa dieksplorasi tools KAPE ini, dan dikembangkan jadi tools PA.

Semoga Bermanfaat!

Tanda tangan digital

Jaman pandemi karena wfh semuanya jadi serba digital. Termasuk salah satunya tanda tangan. Di kampus biasanya ada beberapa dokumen yang harus ditandatangan, contohnya untuk sidang tugas akhir, perlu tandatangan dosen pembimbing, dosen wali dll. Nah semenjak wfh jadinya semua dokumen harus ditandatangan secara digital.

Sayangnya orang masih banyak yang salah kaprah tentang tanda tangan digital. Yang dimaksud tanda tangan digital itu bukan tanda tangan di kertas yang kemudian discan. Bisa juga sih, cuman dari sisi security tandatangan seperti ini rentan untuk disalahgunakan. Misalnya tandatangan itu di gandakan tanpa seijin orangnya. Sudah ada beberapa kejadian misalnya mahasiswa meng-kopi tanda tangan dosen, kemudian ditempelkan di dokumen lain tanpa seijin dosennya. Nah ini kan tidak sesuai dengan etika.

Padahal buat orang security yang dimaksud tanda tangan digital yang menggunakan publik key. Jadi kita harus generate dulu kunci dengan sebuah algoritma kriptografi (biasanya pake RSA). Kunci yang digenerate ini sepasang, ada public key dan private key. Kunci publik itu untuk dibagikan ke umum, sementara kunci private disimpan sendiri. Kunci private ini yang digunakan untuk melakukan tanda tangan sebuah dokumen. Dokumen yang telah ditandatangani ini nantinya akan diverifikasi oleh penerima menggunakan kunci publik.

Gimana caranya untuk membuat kunci dan melakukan tanda tangan digital? ada beberapa cara, kalo males nginstall aplikasi bisa langsung di terminal. Caranya pernah saya tulis disini https://julismail.staff.telkomuniversity.ac.id/pgp-signing-party/

Kalo mau yang lebih gampang bisa pake aplikasi acrobat reader. Caranya bisa dilihat di youtube berikut ini:

Semoga Bermanfaat!

Belajar analisa malware

Saya baru baca tulisan Zeltser tentang analisa malware. Zeltser ini instruktur analisa malware di SANS. Analisa malware membutuhkan banyak skill, diantaranya insiden respon, forensik, administrasi sistem, admin jaringan, keamanan dan programming. Memang cukup banyak pengetahuan yang diperlukan. Zeltser mengelompokan skil analis malware ini jadi 4 kelompok berikut dari yang paling mudah sampe paling susah:

  1. Analisa otomatis: menjalankan sampel di sandbox, membaca laporan interaksi sampel dengan sistem dan jaringan
  2. Analisa statik: mempelajari metadata dan info lainnya di file, seperti string, tanpa menjalankan sampel.
  3. Analisa behavior: menjalankan file di lab, dipelajari perilakunya
  4. Reverse kode malware: melakukan reverse malware dengan disassembler dan debugger untuk dipelajari apa saja fungsi malware

untuk mulai belajar, bisa dimulai dengan mempelajari hasil analisa malware yang dilakukan analis berpengalaman, atau dari sandbox. Beberapa contoh report analisa malware bisa dilihat di postingan zeltser di laman facebook ini https://web.facebook.com/LearnREM

Selain itu report analisa malware bisa diliat juga dari analisa sandbox gratis. Berikut ini list sandbox yang dikumpulkan zeltser pada blog dia https://zeltser.com/automated-malware-analysis/

Setup lab analisa malware

Untuk mulai belajar analisa malware, idealnya dilakukan di lab khusus. Bisa juga menggunakan virtual mesin yang dikonfigurasi khusus. Zeltser menjelaskan cara setting lab di blog dia https://zeltser.com/build-malware-analysis-toolkit/

Selain itu bisa juga nonton youtube berikut:

Pelajari juga slide berikut ini:

https://published-prd.lanyonevents.com/published/rsaus19/sessionsFiles/13567/HT-T09_Practical%20Malware%20Analysis%20Essentials%20for%20Incident%20Responders.pdf

Cara lain bisa juga pake distro Remnux, ini distro khusus yang dirancang om zeltser untuk analisa malware. Bisa diunduh disini : https://remnux.org

Dia juga nyediain video tentang remnux:

Nah langkah berikutnya belajar assembler, bisa pake ollydbg atau x64dbg . Zeltser nyedian video untuk tentang belajar assembly disini:

Kita bisa melajar analisa dinamis dengan menggunakan breakpoints pada API call di sampel. Tools yang bisa digunakan adalah FLOSS https://github.com/fireeye/flare-floss . Contoh cara pake floss bisa dilihat disini: https://isc.sans.edu/diary/Malware+Triage+with+FLOSS%3A+API+Calls+Based+Behavior/26156?_ga=2.12270132.1431902920.1621807715-1728014147.1621807715

Panduan untuk belajar reverse bisa dilihat disini: https://zeltser.com/reverse-engineering-malicious-code-tips/

Malware banyak yang menggunakan teknik evasion untuk mempersulit proses analisa. Tentang teknik evasion bisa liat video zeltser berikut:

sama slidenya ada disini: https://zeltser.com/media/docs/malware-analysis-lab.pdf

Selanjutnya unutuk anaisa statik bisa pake Ghidra https://ghidra-sre.org. Tentang ghidra bisa dilihat video Anuj Soni berikut:

dan baca juga blognya disini: https://blogs.blackberry.com/en/2019/07/an-introduction-to-code-analysis-with-ghidra

Nah selain berbentuk binary, malware ada juga yang berbentuk skript, biasanya pake javascript. Tentang malicious script ini bisa tonton video Evan Dygert berikut:

Dan pelajari juga slidenya disini: https://www.dropbox.com/sh/34zvd5ww6nminid/AAAfKexd3nyoW96OkMuYrklQa?dl=0

Khusus tentang malware yang pake Powershell bisa liat video Mari DeGrazia berikut:

Kalo mau belajar tentang malware yang sembunyi di dokumen office bisa nanton video Didier Steven berikut:

Selain itu bisa ikutin workshop Ryan chapman di github ini: https://github.com/rj-chap/CFWorkshop . Om zeltser juga nyediain link tentang malware di dokumen office pada link ini: https://zeltser.com/analyzing-malicious-documents/

Untuk belajar tentang shellcode bisa nonton video ini:

Selanjutnya kalo butuh sampel malware untuk latihan bisa dilihat pada link berikut:

Semoga bermanfaat!

diterjemahkan dari: https://www.sans.org/blog/how-you-can-start-learning-malware-analysis/

Machine Learning Static Malware Analysis-Shalaginov-Paper Review

Paper Title:Machine Learning Aided Static Malware Analysis: A Survey and Tutorial

Authors: Andrii Shalaginov, Sergii Banin, Ali Dehghantanha, Katrin Franke

Venue: Springer, Advances in Information Security , vol 70, p7-45

URL: https://arxiv.org/abs/1808.01201

Problem:Malware masih menjadi ancaman nomer satu bagi pengguna Windows. Jumlah malware juga terus bertambah. Analisa malware terdiri dari 2 cara static dan dinamis. Analisa dinamis membutuhkan resource yang besar. Sementara static membutuhkan skill yang baik dan waktu yang cukup. Perlu ada pendekatan baru untuk deteksi malware

Contribution

  1. Melakukan review komprehensif teknik machine learning untuk analisa static malware
  2. Menyusun taxonomy konstruksi feature static untuk klasifikasi ML
  3. Memberikan tutorial teknik ML dan membandingkan performanya

Method/solution

  1. Menggunakan 1 dataset benign dan 2 dataset malware untuk studi
  2. Training menggunakan AdaBoost dan Random Forest untuk 500 best selected n-grams pada range 1-8 n
  3. Function call membentuk graph untuk menampilkan PE32 header fitur seperti nodes, edges dan subgraph
  4. Jumlah besar fitur yang diekstrak dapat digunakan untuk membangun model menggunakan SVM atau single-layer Neural Netowrk
  5. Array of API calls dari IAT diproses dengan Fisher score 
  6. Fitur dasar dari PE32 header adalah Ukuran header, Ukuran Uninitialized Data, Ukuran Stack Reverse
  7. Menggunakan Decision Tree untuk analisa PE Header
  8. Menggunakan F-score sebagai performance metrik untuk analisa PE32 header
  9. MEnggunakan control flow change dari 256 alamat pertama untuk membangun fitur n-gramm
  10. Naïve Bayes digunakan untuk klasifikasi binary (benign atau malicious); Input harus symbolical, contohnya string, opcode, instruction n-gramm
  11. Bayesian Network digunakan pada klasifikasi dan information retrieval seperti semantic search
  12. Algoritma rule based C4.5 digunakan untuk membangun decision tree
  13. Neuro-Fuzzy digunakan untuk membedakan malware dan benign, tapi juga untuk mendeteksi tipe malware
  14. Teknik distance based diantaranya k-NN tidak memerlukan training. Diperlukan pemilihan fitur yang temat serta metode untuk membedakan data yang mixed
  15. Fungsi kernel dipilih antara polynomial, GAussian, hyperbolic dll
  16. Neural network terdiri dari input layer, hidden layer dan output layer. Input menerima normalized data, hidden layer menhasilkan output aktivasi menggunakan weighted input dan fungsi aktivasi. ANN dugunakan pada model kompleks dengan high-dimensional spaces
  17. Tools yang digunakan Weka, untuk split dataset; Python weka wrapper, LibSVM, RapidMiner dan Dlib
  18. Metode pemilihan fitur menggunakan Information Gain dan CFS (Correlation-base Feature subset selection)
  19. Metode information gain digunakan untuk menentukan atribut malware
  20. Menggunakan sequence opcode dengan length 1-4 dengan Random forest, J48, kNN, bayesian networks dan SVM
  21. Pengujian dilakukan pada VM Ubuntu 14.04 dengan server Xen4.4. Intel Core i7 2,6Ghz denan 4 core (8 thread, 2 core untuk VM; Harddisk SSD RAID, Ram 8GB 
  22. Pre-processing dengan scrit bash; database mySql 5.5; python 2.7.6 dan PhP 5.5.8
  23. Membangun benign file dari windows XP,7, 8.1 dan windwos 10
  24. Dataset malware menggunakan VX Heaven dan Virusshare
  25. Benign sampel 16.632 dengan ukuran 7,4GB; malware0 58.023 ; 14 GB dan malware 2 41.899 sampel; 16 GB
  26. Konstruksi fitur dengan PEFrame, Hexdump, dan objdump
  27. Fitur PE32 dipilih dengan metode Cfs dan InfoGain dengan 5-fold cross validation

Main result

  1. N-gram byte sequence adalah salah satu fitur dari sequence byte binary
  2. Akurasi deteksi malware menggunakan fitur n-gram byte mencapai 97%
  3. Algoritma yang digunakan diantaranya Naive Bayes, C4.5 dan k-NN digunakan untuk deteksi n-gramm
  4. N-gram 4-5 menghasilkan akurasi tinggi. 
  5. Opcode banyak digunakan untuk klasifikasi
  6. Beberapa API calls hanya ditemukan di malware 
  7. Belum ada penelitian yang mencapai akurasi 100%, karena malware menggunakan obfuscation dan enkripsi untuk menghindari deteksi
  8. Pendeketan dengan n-grams membutuhkan resource besar
  9. SVM menghasilkan akurasi yang tinggi
  10. Banyak peneliti menggunakan fitur byte n-gram, opcde n-gramm dan PE32 header, dan algoritma C4.5, SVM dan k-NN
  11. Peneliti memilih antara ekstrak fitur yang menghasilkan akurasi klasifikasi tinggi, atau menggunakan metoda konvensional seperti information gain
  12. N-gram based membutuhkan FS lainnya untuk menghilangkan feature yang tidak diperlukan
  13. Rule based ML adalah metode klasifikasi yang banyak digunakan, diikuti SVM
  14. Metode Forest-based lebih mudah diterapkan untuk fitur PE32 header based
  15. ANN tidak banyak digunakan
  16. Metode Bayes-based menghasilkan akurasi rendah 50%, metoda lain 80-100%
  17. Fitur dari shortinfo dari PE32 header dapat dijadikan indikator malware
  18. ANN dan C4.5 menghasilkan performa yang lebih baik

Limitation:

  1. Tidak melakukan review pada Deep Lerning
  2. Tidak melakukan review pada image representation

Note:

  1. N-gram byte sequence adalah salah satu fitur dari sequence byte binary
  2. Malware PE32 paling banyak ditemukan karena bisa menginfeksi windows 64 bit dan 32 bit
  3. PE32 dimulai dari windows 3.1 dan kemudian berkembang jd format PE32+ untuk OS windows 64 bit
  4. PE file mengandung header COFF (Common Object File Format). Standar COFF field adalah header, section table, data directories dan Import Address Table (IAT)
  5. Selain PE Header fitur static lainnya diekstrak dari eksekutable binary seperti strings, entropy dan size of various sections
  6. Feature static ada yang numerik dan nominal
  7. Numerk contohnya integer, real atau binary
  8. Nominal contohnya finite set dari kategori atau label
  9. Contoh fitur numerik adalah CPU (%) usage, RAM dalam Megabyte) usage
  10. Contoh nominal bisa sebuah tipe file seperti *.dll atau *.exe atau API function call seperti write() atau read()
  11. N-gramm didapate menggunakan hexdump; membuat 4gram dari byte sequence dari PE32
  12. Fitur dikumpulkan dengan sliding window of n bytes, yang menghasilkan 200 juta fitur dengan 10-gramm pada 2 ribu files
  13. Feature selection digunakan untuk memilih 500 feature paling penting berdasarkan information Gain Metric
  14. Ada penelitian yang menggunakan 100-500 selected n-grams pada set 250 malicious dan 250 sampel benign
  15. Opcode sequence atau operation code adalah set of low level machine abstraksi  berurutan yang digunakan untuk berbagai macam operasi CPU. Banyak digunakan untuk fitur pada klasifikasi malware
  16. Namun perlu ada balance antara ukuran feature set dan Panjang n-gram opcode sequence.
  17. Bragen menguji kehandalan analisa malware menggunakan sequence opcode dari 992 PE malware dan benign.50 juta opcode diekstrak. 1gram dan 2 gram menghasilkan akurasi baik dan komputasi yang sedang
  18. Wang menggunakan 2-tuple opcode sequence digunakan pada kombinasi density clustering
  19. API call adalah fungsi yang dipanggil sebuah program untuk menjalannkan fungsi tertenti
  20. Perlu dibedakan System API dan User API. System API call disediakan oleh dll sistem
  21. User API disediakan oleh software yang diinstal pengguna
  22. API call berbahaya, Anti-VM dan anti-debugger hook dan calls bisa diekstrak menggunakan tools analisa PE seperti PEframe
  23. API calls bisa juga diekstrak dengan PE parser
  24. PE Header adalah koleksi dari metadata terkait PE file
  25. Belum ada penelitian yang menjamin akurasi 100% pada deteksi malware. 
  26. Metode menggunakan n-gram cenderung menggunakan set pemilihan fitur seperti tf-idf dan symetric uncertainty yang lebih cocok untuk similar sequence dalam jumlah besar
  27. Fitur berbasis PE32 cenderung menghasilkan entropy tinggi untuk klasifikasi; sehingga control-flow graph based dan gain ratio lebih cocok untuk task ini
  28. 4 fitur disarankan untuk klasifikasi; PE32 header, Byte n-gram, opcode n-gram dan API calls
  29. PE32 header diperoleh dari tools PE-Frame; Berikut beberapa fitur numerical dari pe32 header
  30. ShortInfo_Directories menjelaskan 16 data directory yang tersedia di PE; yang paling banyak digunakan adalah import, export, resource, debug, relocation
  31. ShortInfo_Xor menunjukan deteksi XOR obfuscation
  32. ShortInfo_DLL adalah sebuah flag binary atau apakah sebuah file executable atau dll
  33. shortInfo_fileSize adalah ukuran binary dalam bytes
  34. ShortInfo_Detected menampilkan teknik evading deteksi seperti hooks untuk disable execution in virtualized environment atau API calls mencurigakan
  35. ShortInfo_Sections adalah jumlah subsection pada header
  36. DigitalSignature berisi informasi tentang digital signature 
  37. Packer  mengnjukkan deteksi packer
  38. AntiDebug memberikan gambaran teknik untuk mencegah debugging process
  39. AntiVM digunakan untuk mencegak eksekusi pada VM
  40. SuspiciousAPI api mencurigakan
  41. SuspiciousSections seperti .rsrc \u0000 \u0000\u0000
  42. Url adalah beberapa alamat url  pada binary
  43. Byte n-gram adalah sequence dari some items (dengan minimum length adalah 1
  44. Opcode-ngram: set instruksi yang dilakukan CPU bila binary dijalankan; pop, push, mov, add, sub

Supervised Contrastive Learning-Khosla- Paper Review

Paper Title:Supervised Contrastive Learning

Authors: Prannay Khosla, Piotr Teterwak, Chen Wang, Aaron Sarna, Yonglong Tian, Phillip Isola, Aaron Maschinot, Ce Liu, Dilip Krishnan

Venue34th Conference on Neural Information Processing Systems (NeurIPS 2020), Vancouver, Canada.

URLhttps://arxiv.org/pdf/2004.11362v5.pdf

Problem: Contrastive learning banyak digunakan pada self-supervised learning. Pada prakteknya sebagian besar model tidak bekerja lebih baik pada dataset besar seperti ImageNet, terutama dari sisi cross-entropy loss

Contribution

  1. Mengembangkan pendekatan self-supervised batch contrastive menjadi fully-supervised
  2. Mengajukan sebuah loss untuk supervised learning yang terinspirasi dari self-supervised dengan memanfaatkan informasi label. 
  3. Mengajukan ekstensi baru dari contrastive loss function yang menggunakan banyak positive per anchor
  4. Menunjukan bahwa loss dari sistem usulan menghasilkan akurasi top-1 dari beberapa dataset berbeda, dan lebih kuat terhadap korupsi natural
  5. Menunjukan secara analisis bahwa gradient dari loss function usulan mendorodng dari hard positive dan hard negative
  6. Menunjukan secara empiris bahwa loss usulan lebih tidak sensitive daripada cross-entropy pada range hyperparameter

Method/solution

  1. Cluster poin yang masuk pada kelas yang sama, ditarik ke embedding space, dan mendorong cluster sampel dari kelas berbeda
  2. Melakukan analisa 2 versi dari Supervised contrastive (SupCon) loss 
  3. Pendekatan supervised contrastive menggunakan soft-nearest neighbour loss, yang ditingkatkan dengan normalisasi embeddings dan mengganti Euclidean distance dengan inner product. Selain itu ditambahkan dengan augmentasi data, sebuah contrastive head disposable dan 2 tahap training (contrastive diikuti dengan cross-entropy) dan mengganti form dari loss function 
  4. Embedding ternormalisasi dari kelas yang sama, ditarik mendekat dibandingkan embedding dari kelas berbeda
  5. Mendapat input batch data, kemudian dilakukan augmentasi data 2x untuk mendapat 2 kopi dari batch
  6. Kedua kopi tersebut diforward melalui jaringan encoder untuk mendapatkan embedding normalisasi dengan dimensi 2048
  7. Melalui training, representasi ini dipropagasi melalui sebuah jaringan projeksi yang diabaikan pada waktu inference
  8. Supervised contrastive loss dihitung pada output dari projection network
  9. Untuk menggunakan model training untuk klasifikasi, dilatih sebuah klasifikasi linear dengan cross-entropy loss
  10. Komponen utama dari framework usulan adalah: module augmentasi data; encoder network dan projection network
  11. Pada setiap input x, digenerate 2 random augmentasi x’ masing-masing mewaliki view yang berbeda terhadap data dan terdiri dari beberapa subset informasi pada sampel asli
  12. Encoder network melakukan pemetaan x pada representasi vector r. Kedua sampel yang telah diaugmentasi secara terpisah dimasukan pada sebuah encoder yang sama. Yang menghasilkan sepasang vector representasi. R dinormalisasidengan unit hypershere pada Rde
  13. Jaringan projection memetakan r ke vector z. projeksi yang digunakan adalah multi-layer perceptron dengan sebuah hidden layer dengan ukuran 2048 dan vector output dengan ukuran Dp=128 atau hanya sebuah layer linear single dengan ukuran Dp=128
  14. Kemudian dilakukan normalisasi dari output dari jaringan ini pada unit hypershere, menggunakan inner product untuk mengukur distance dari projection space
  15. Loss yang digunakan memiliki properti: generalisasi pada number positive, contrastive power meningkat dengan banyak negative, memiliki kemampuan untuk melakukan hard positive/negative mining
  16. SupCon loss diuki dengan mengukur akurasi klasifikasi pada beberapa benchmark seperti CIFAR-10 dan CIFAR-100 dan ImageNet
  17. Kemudian model ImageNet dibenchmark juga untuk mengetahui common image corruptions, dan mengetahui perubahan performa dengan perubahan hyperparameter dan pengurangan data
  18. Untuk Encoder network, diuji dengan 3 arsitektur encoder yang umum yaitu ResNet-50, ResNet-101 dan ResNet-200
  19. Final Pooling layer menggunakan normalized activation (De-2048)
  20. Implementasi diuji pada 4 modul data augmentasio: autoAugment; randAugment, SimAugment dan Stacked RandAugment
  21. ResNetMelakukan pengujian alternatif memory based. Dengan ImageNet pada memory size 8192 dengan ukuran storage 128-dimensi vector, ukuran batch-size 256 dan SGD optimizer, pada 8 Nvidia V100 GPUs
  22. Melakukan pengujian cross-entropy ResNet-50 baseline dengan ukuran batchsize 12.288
  23. Menggunakan daaset ImageNet-C untuk benchmark pengukuran performa model pada korupsi natural, dibandingkan dengan mCE (Mean Corruption Error) dan Relative Mean Corruption Error Metric
  24. Menguji stabilitas hyperparameter dengan mengubah augmentasi, optimizer dan learning rate satu persatu dan mencari kombinasi yang terbaik.
  25. Perubahan Augmentasi dilakukan dengan RandAugment, AutoAugment, SimAugment, Stacked Rand Augmet; Perubahan optimizer dengan LARS, SGD with momentum dan RMS props
  26. Mengujia learned representation untuk fine-tuning pada 12 natural image dataset.
  27. Training dilakukan dengan 700 epoch pada pretraining untuk ResNet-200 dan 250 epochs untuk model yang lebih kecil
  28. Melatih model dengan batch size sampai 6144. Untuk ResNet-50 diuji sampai batch size 6144 dan ResNet-200 dengan batch-size 4096
  29. Menggunakan temperature = 0,1

Main result

  1. Pengujian pada ResNet-200 diperoleh akurasi 81,4% (top-1) pada dataset ImageNet. 0,8% lebih baik dari state-of-the-art arsitektur ini
  2. Menghasilkan performa lebih baik pada cross-entropy pada dataset lain dan 2 ResNet Variant.
  3. AutoAugment menghasilkan performa yang terbaik pada ResNet-50 pada SupCon dan cross Entropy dengan akurasi 78,7%
  4. Stacked RandAugment menghasilkan performa terbaik untuk ResNet-200 untuk kedua loss functions
  5. Menghasilkan performa sedikit lebih baik dibandingkan CutMix, yang merupakan state-of-the-art pada strategi data augmentasi
  6. Menghasilkan akurasi 79,1 pada pengujian alternatif memory based dengan ResNet-50. 
  7. Akurasi 77,5% pada pengujian cross-entropy ResNet-50
  8. Pada pengujian penambahan training epoch pada cross-entropy sampai 1400, akurasi turun menjadi 77%
  9. Pada pengujian N-Pair loss dengan batchsize 6144 mendapatkan akurasi 57,4% pada ImageNet
  10. Pada pengujian natural corruption model usulan memiliki nilai mCE lebih rendah pada corruption berbeda, menunjukan robustness.
  11. Model usulan menghasilkan degradasi akurasi yang lebih rendah pada peningkatan korupsi
  12. Hasil pengujian stabilitas hyperparameter menunjukan nilainya konstan top-1 akurasi
  13. Sistem usulan memiliki contrastive loss yang setara dengan cross-entropu dan self-supervised pada transfer learning ketika ditrain pada arsitektur yang sama
  14. Pada ResNet50 fungsi akurasi menunjukan 200 epoch sudah mencukupi
  15. Hasil pengujian menunjukan batch size 2048 sudah mencukupi
  16. Performa terbaik untuk ImageNet menggunakan LARS untuk pre-training dan RMSProp untuk training layer linear
  17. Untuk CIFAR1- dan CIFAR 100, SGD menghasilkan performa terbaik

Limitation:

  1. Tidak melakukan training linear classifier Bersama dengan encoder dan projection network
  2. N-Pair loss masih rendah

Note: 

  1. Contrastive learning telah menjadi state-of-the-art pada unsupervised training pada model deep image
  2. Pendekatan batch contrastive modern melampaui tradisional contrastive loss seperti triplet, max-margin dan N-pair los
  3. Cross-entropy loss adalah fungsi loss paling banyak digunakan pada supervised dari model deep classification
  4. Perkembangan contrastive learning mendorong perkembangan self-supervised learning
  5. Contrastive learning bekerja dengan menarik sebuah anchor dan sebuah sampel positive ke embedding space dan memisahkan anchor dari sampel negative
  6. Karena tidak ada label tersedia, sebuah pasangan positive terdiri dari augmentasi data dari samepl, dan pasangan negatif dibentuk oleh anchor dan secara random memilih sampel dari minibatch
  7. Koneksi dibuat dari contrastive loss dari maximization dari informasi mutual antara view data-data yang berbeda
  8. Kebaruan teknis adalah dengan mempertimbangkan banyak positive dari anchor sebagai tambahan pada banyak negative; berbeda dengan self-supervised contrastive learning yang hanya menggunakan single positive
  9. Positive diambil dari sampel pada kelas yang sama dengan anchor, tidak dari augmentasi data dari anchor. 
  10. Walaupun terlihat sebagai extensi sederhana dari SSL, namun tidak mudah untuk mensetting loss function dengan baik. Ada 2 alternatif yang dipelajari
  11. Loss pada model ini dapat dilihat sebagai sebuah generalisasi dari triplet dan N-Pair los
  12. Triplet hanya menggunakan 1 positif dan 1 negative sampel per anchor
  13. N-Pair menggunakan 1 positive dan banyak negative
  14. Banyak positive dan banyak negative pada setiap anchor menghasilkan performa state-of-the art tanpa perlu mining hard negative, yang susah untuk detuning
  15. Model ini adalah contrastive loss pertama yang menghasilkan performa lebih baik daripada cross entropy pada tugas klasifikasi besar
  16. Metode ini menghasilkan sebuah loss function yang dapat digunakan pada self-supervised atau supervised
  17. SupCon mudah diimplementasi dan stabil untuk di training
  18. Naive extension menghasilkan performa lebih buruk dibandingkan sistem usulan
  19. Cross-entropy loss adalah powerfull loss function untuk train deep network; setiap kelas diassigned sebuah target (biasanya 1-hot) vector. Namun tidak jelas kenapa target label tersebut adalah yang optimal, dan banyak penelitian telah mencoba mengidentifikasi target label vector yang lebih baik
  20. Kekurangan cross entropy loss diantaranya sensitivitas label noisy, adanya adversarial examples dan poor margin
  21. Loss alternativ telah diajukan, tapi yang terbaik adalah mengubah reference label distribution seperti label smoothing, data augmentasi seperti mixup dan cutmix dan knowledge distillation
  22. SSL berbasis model deep learning banyak digunakan pada natural language. 
  23. Pada domain image, pendekatan pixel prediksi digunakan untuk belajar embedding.
  24. Metode ini digunakan untuk memprediksi bagian yang hilang dari sinyal input.
  25. Pendekatan yang lebih efektif adalah mengganti sebuah desne per-pixel predictive loss, dengan sebuah loss di lower dimensional representation space.
  26. State-of-the-art family model untuk SSL menggunakan paradigma yang dibawah istilah contrastive learning
  27. Loss pada penelitian tersebut terinspirasi oleh noise contrastive estimation atau N-pair loss
  28. Loss diterapkan pada layer terakhir dari sebuah deep network
  29. Pada pengujian embedding dari layer sebelumnya digunakan untuk downstream transfer task, fine tuning atau direct retrieval task.
  30. Terkait dengan contrastive learning adalah family dari loss berbasis metric distance learning atau triplets
  31. Loss tersebut banyak digunakan utk supervised, dimana label digunakan untuk memandu pemilihan positive dan negative pairs
  32. Yang membedakan triplet loss dan contrastive loss adalah jumlah pasangan positive dan negative pada setiap data poin
  33. Triplet loss menggunakan 1 positive dan 1 pasangan negative per anchor.
  34. Pada setingan supervised metric, hamper selalu dibutuhkan hard-negative mining untuk performa yang baik
  35. SSL contrastive loss hanya menggunakan 1 positive pair utk setiap anchor sampel, memilih antara co-occurrence atau data augmentation
  36. Perbedaannya adalah banyak negative pair digunakan untuk setiap anchor. Yang dipilih secara random menggunakan weak knowledge seperti patches dari gambar lain atau frame dari video random lainnya. Dengan asumsi bahwa pendekatan ini menghasiklan probability false negative paling rendah
  37. Loss formulation yang dekat dengan usulan adalah entangle representasi pada intermediate layer dengan melakukan maximize loss
  38. Metoda yang paling mirip adalah Compact clustering via label propagation (CCLP) regularizer
  39. CCLP focus pada semi-supervised, pada fully supervised regularizer mengurangi hamper sama dengan loss formulation usulan
  40. Perbedaannya adalah normalisasi yang diusulkan adalah dengan embedding ke unit sphere, tuning parameter temperatur dan augmentasi yang lebih kuat
  41. Deep Neural network tidak robust terhadap data yang out of distribution atau korupsi natural seperti noise, blur dan kompresi JPEG

Framework contrastive learning – chen -paper review

Paper Title: A Simple Framework for Contrastive Learning of Visual Representation

AuthorsTing Chen, Simon Kornblith, Mohammad Norouzi, Geoffrey Hinton

VenueProceedings of the 37 th International Conference on Machine Learning, Vienna, Austria, PMLR 119, 2020

URL : http://proceedings.mlr.press/v119/chen20j/chen20j.pdf

Problem: Mempelajari representasi visual tanpa supervise orang adalah sebuah tantangan. Sistem  self-supervised yang ada masih menghasilkan performa yang lebih rendah dibandingkan dengan supervised learning. Diperlukan pendekatan baru untuk meningkatkan performa metode self-supervised

Contribution

  1. Menyederhanakan algoritma SSL, sehingga tidak memerlukan arsitektur khusus atau sebuah memory bank
  2. Menunjukan bahwa komposisi dari augmentasi data berperan penting dalam menentukan prediction task yang efektif
  3. Mengusulkan transofmasi nonlinear learnable dan contrastive loss akan meningkatkan kualitas dari representasi
  4. Contrastive learning lebih efektif pada ukuran batch yang lebih besar dan step training yang lebih banyak dibandingkan supervised

Method/solution

  1. Memiliki 4 komponen utama: modul data augmentasi stochastic, neural network base encoder f(.) ; proyeksi neural network head kecil g(.) dan contrastive loss function
  2. Module data augmentasi stochastic melakukan transformasi data example secara random, menghasilkan 2 corelated view dari contoh yang sama xi dan xj, yang dinamakan positive pair
  3. Menggunakan 3 augmentasi: random cropping, diikuti dengan resize back ke ukuran original; random color distortions, dan random Gaussian blur
  4. Jaringan neural network base encoder mengekstrak vector representasi dari augmented data example
  5. Menggunakan ResNet untuk mendapat hi=f(xi)=ResNet(xi) adalah output dari average pooling layer
  6. Small neural network projection head memetakan representasi ke space dimana contrastive loss diterapkan
  7. Sebuah MLP digunakan 1 hidden layer untuk mencapai zi=g(hi)=W (2)σ(W (1)hi  
  8. Contrastive loss function digunakan untuk sebuah contrastive prediction task
  9. Model tidak ditrain dengan sebuah memory bank, namun mengubah-ubah ukuran training batch N dari 256 ke 8192
  10. Untuk men stabilkan training digunakan LARS optimizer untuk semua batch sizes
  11. Model ditrain dengan Cloud TPU, dengan 32-128 core
  12. Dataset menggunakan ImageNet ILSVRC-2012 untuk unsupervised pretraining. 
  13. Pengujian representasi menggunakan protocol linear evaluation dan dibandingkan dengan metode state-of-the-art di semi-supervised dan transfer learning
  14. Untuk augmentasi data digunakan random crop dan resize, color distortion dan gaussian blur
  15. Menggunakan ResNet-50 sebagai base encoder network dan proyeksi MLP 2-layer head
  16. Melakukan crop image secara random dan resize ke resolusi yang sama 
  17. Membandingkan NT-Xent loss terhadap fungsi loss contrastive lain seperti logistic loss dan margin loss
  18. Untuk membandingan dengan state-of-the-art dilakukan pengujian dengan ResNet-50 pada 3 hidden layer width yang berbeda, dan ditrain dengan 1000 epoch
  19. Membandingkan dengan semi-supervised mengginakan ILSVRC-12 dilakukan training dengan 1%-10% dataset yang class-balanced
  20. Menguji transfer learning pada 12 dataset natural imate pada linear evaluation dan fine-tuning. Dilakukan hyperparameter tuning pada setiap kombinasi model-dataset

Main result:

  1. Menghasilkan performa lebih baik dibandingkan metoda state-of-the-art dari SSL dan semi-supervised learning pada ImageNet
  2. SimCLR mencapai akurasi 76,5% top-1, peningkatan 7% daripada state-of-the-art dan menyamai performa supervised ResNet-50
  3. Setelah fine-tuning pada 1% label akurasi mencapai 85,8% top-5, mengalahkan AlexNet dengan 100x label lebih sedikit
  4. Augmentasi warna yang lebih kuat meningkatkan linear evaluation pada unsupervised model
  5. Meningkatkan depth dan width meningkatkan performa
  6. Proyeksi nonlinear lebih baik 3% daripada proyeksi linear dan lebih baik >10% daripada no projection. Hidden layer sebelum projection head adalah representasi yang lebih baik dibandingkan layer sesudahnya
  7. Tanpa normalisasi dan skaling temperatur, performa menurun. Tanpa normalisasi l2, akurasi contrastive task lebih tinggi, namun representasi lebih buruk dibawah linear evaluation
  8. Bila jumlah training epoch kecil (100 epoch) ukuran batch size yang lebih besar memberi keunggulan dibandingkan ukuran yang lebih kecil. Dengan training step/epoch lebih banyak, gap antara batch size yang berbeda menurun atau menghilang
  9. Berbeda dengan supervised learning, pada contrastive learning, semakin besar batch sizes menghasilkan lebih banyak negative example, menyebabkan convergence. Training lebih lama juga menghasilkan negative example yang lebih banyak
  10. Dibandingkan state-of-the-art, sistem usulan dapat menggunakan network standar untuk hasil yang lebih baik, dibandingkan metode sebelumnya yang memerlukan arsitektur yang didesain khusus
  11. Hasil terbaik dengan Resnet-50 (4x) dapat menyamai supervised pretrained ResNet-50
  12. Fine-tuning model pretrained ResNet-50 pada full ImageNet lebih baik 2% dibandingkan training dari awal
  13. Setelah fine-tuned model self-supervised menghasilkan performa lebih baik dibandingkan baseline supervised pada 2 jenis (contoh pets dan flower)

Limitation:

  1. Membutuhkan komputasi yang besar

Note:

  1. Pendekatan utk representasi visual tanpa supervise manusia dapat dibagi 2: generative atau discriminative
  2. Generative belajar untuk generate atau model pixel pada input space (Hinton.et.al 2006, Kingma & Welling 2013, GoodFellow et.al 2014)
  3. Namun pixel-level generation membutuhkan komputasi besar, dan bisa saja tidak dibutuhkan pada representation learning
  4. Pendekatan diskriminativ mempelajari representasi menggunakan objective function seperti yang digunakan pada supervised learning, tapi melakukan train network untuk melakukan pretext task dimana input dan label diturunkan dari dataset unlabeld. Penekatan ini banyak menggunakan heuristics untuk merancang pretext task (Doersch, 2015; Zhang, 2016, Noroozi & Favaro, 2016; Gidaris, 2018). Pendekatan ini dapat membatasi generalitas dari representasi
  5. Pendekatan Discriminative berdasarkan contrastive learning pada latent space telah menunjukan hasil yang menjajikan, dan hasil state-of-the-art (Hadsell, 2006; Dosovitskiy, 2014; Oord, 2018; Bachman, 2019)
  6. Unsupervised contrastive learning mendapatkan manfaat dari stronger data augmentasi daripada supervised learning
  7. Representasi learning dengan contrastive cross entropy loss mendapatkan hasil lebih baik daripada normalized embeddings dan menyesuaikan parameter temperature
  8. Model Network base encoder mengijinkan beberapa pilihan dari arsitektur jaringan tanpa hambatan

Self-Supervised Learning -Goyal -Paper Review

Paper Title: Self Supervised Pretraining of Visual Features in the wild

Authors: Priya Goyal, Mathilde Caron, Benjamin Lefaudeux, Min Xu, Pengchao Wang, Vivek Pai, Mannat Singh, Vitaliy Liptchinsky, Ishan Misra, Armand Joulin, Piotr Bojanowski

Venue: pre-print; Arxiv

URL: https://arxiv.org/abs/2103.01988

Problem:

Beberapa model self-supervised learning seperti MoCo, SimCLR, BYOL dan SwAV telah mengalami perkembangan yang baik dan mendekati performa Supervised learning. Namun pengujian model-model tersebut dilakukan pada lingkungan yang terkontrol seperti dataset ImageNet. Apakah model SSL bisa belajar dari random image, uncurated, unlabeled, dan dari dataset manapun

Contribution:

  1. Mengajukan model Self-Supervised (SEER) baru
  2. Membuktikan bahwa SSL dapat bekerja pada kondisi sebenarnya

Method/solution

  1. Melakukan pretraining high capacity model pada miliar gambar internet random, tampa memperhatikan meta-data atau anotasi untuk filtering pada data
  2. Fokus pada REgNet family, terutama aristektur dengan 700 juta parameter
  3. Training model dilakukan secara onlne pada sebuah dataset 2Milliar gambar internet random menggunakan SwAV SSL. Menggunakan beberapa tools yang ada untuk mengurangi pemakain memori, termasuk mixed precision dan gradient checkponting
  4. SwAV membandingkan fitur-fitur dari sudut pandang berbeda dari gambar yang sama menggunakan intermediate cluster assignment. SwAV adalah metode clustering online untuk training convnets tanpa anotasi. Caranya dengan melakukan training sebuah embedding yang menghasilkan cluster assignment konsisten antara multiple view dari gambar yang sama
  5. Dengan mining cluster invariant ke augmentasi data, sistem belajar representasi semantic.
  6. Bila feature menangkap informasi sama, maka mungkin untuk memprediksi assignment dari satu fitur ke view lain.
  7. Kita menetapkan sebuah set K cluster, yang diasosiasikan dengan prototype vector vk dengan d dimensi. Diberikan sebuah batch B image, setiap gambar i ditransformasikan menjadi 2 views: xiq dan xi2. Setiap view kemudian difiturisasi dengan sebuah convnet, menghasilkan 2 set fitur (f11,…,fB1) dan F12,…,fb2)
  8. Setiap set fitur di assigned secara independent ke prototipe cluster menggunakan optimal transport solver
  9. Solver ini memaksa fitur terbagi sepanjang cluster secara seragam, menghindarkan solusi trivial dimana semua representasi dipetakan ke prototipe unik.
  10. Cluster prediction loss l(f,y) adalah cross entropy antara cluster assignment dan sebuah softwax dari dot produk dari f dan semua prototipe vk
  11. Menggunakan Arsitektur RegNetY dan menambahkan sebuah squeeze-and excitation op untuk meningkatkan performa
  12. Model family RegNetY diparameterkan dengan 5 parameter
  13. Model menggunakan arsitektur RegNetY-256GF dengan paramater; w0=640, wa=230,83, wm=2,53, group width=373
  14. Memiliki 4 stages dengan stage depths (2,7,17,1 dan stage width (528, 1056, 2904, 7392) yang menghasilkan 695,5 juta parameter
  15. Menguji 2 learning rate schedule; cosine wave dan fixed learning rate. Pada training model RegNetY-256GF menggunakan cosine learning rate schedule pada 1 milliar gambar
  16. Mengurangi pemakaian memori GPU selama training dengan gradient checkpointing dan mixed precision
  17. Menggunakan level optimasi 01 pada NVIDIA Apex Library untuk operasi GEMMs dan konvolusi pada 16 bit floating point precision
  18. Menggunakan Pytorch gradient checkpointing implementasi
  19. Mengenable mixed-precision untuk optimasi memori dan training speed.
  20. Melakukan pretraining RegNetY-256GF dengan SwAV dengan 6 crop per image pada resolusi 2×224+4×96. Data Augmentation mengikuti Caron et.al [7]
  21. Pada pretraining menggunakan 3-layer multi-layer perceptron (MLP) projection head of dimensions 10444×8192, 8192×8192 dan 8192×256
  22. Tidak menggunakan layer BatchNorm pada head
  23. Menggunakan 16ribu proroipe, temperature t set =0,1 
  24. Parameter Sinkhorn regularisasi e=0,05 dan 10 iterasi algoritma Sinkhorn
  25. Melakukan sinkronisasi Batch-norm stat antara gpus dan membuat process group dengan ukuran 64 untuk sinkronisasi
  26. Menggunakan weight decay 10-5, Lars optimizer dan optimasi 01 mixed-precision dari Apex library
  27. Menggunakan activation checkpointing
  28. Melakukan training model dengan stochastic gradient descent menggunakan ukuran batch besar pada 8192 gambar berbeda yang didistribusikan pada 512 NVIDIA V100 32 GB GPUs, menghasilkan 16 gambar berbeda pada setiap GPU.
  29. Secara keseluruhan menggunakan 1 milliar gambar pada training dengan iterasi 122ribu
  30. Pengujian dilakukan dengan pretraining 6 arsitektur Regnet {8,16,32,64,128,256} pada 1 milliar random, public dan non-EU gambar Instagram dengan SwAV
  31. Melakukan finetune model tesebut dengan task image classification pada ImageNet dengan standar 1,28 juta gambar training dengan label, dan mengevaluasi 50ribu gambar pada standar validation set
  32. Finetune untuk 35 epochs dengan SGD, ukuran batch 256, learning rate 0,0125 dikurangi dengan factor 10 setelah 30 epoch, weight decay 10-4 dan momentum 0,9
  33. Baseline menggunakan iNaturalist, OpenImages, Places205, PascalVOC

Main result

  1. Hasil pengujian pada RegNetY dengan 1,3 Miliar parameter di training pada 1 milliar gambar random dengan GPU 512 menghasilkan akurasi 84,2%
  2. Hasil akurasi lebaih baik 1% daripada model ssl terbaik saat ini
  3. Model pretraining SEER tidak hanya baik untuk insialisasi training pada dataset curated seperti Image NET, namun juga baik pada few shot learning. Mencapai 75,1% hanya dari 10% dataset ImageNet. 
  4. Sebuah Iterasi training pada 8704 gambar membutuhkan waktu 6125 ms,pada Nvidia GPU 512 V100 32GB
  5. Training model pada 1 milliar gambar membutuhkan 114.890 iterasi training pada sebuah ukuran batch 8701 gambar, selama 8 hari training
  6. Learning rate 0,15-9,6 pada 8000 training update. 6Setelah itu mennggunakan cosine learning rate schedule dan mendapatkan learning rate 0,009
  7. Mendapatkan akurasi terbaik pada validasi set dengan 224×224 center crop
  8. Pada pengujian 1-10% gambar didapatkan akurasi 77,9%
  9. Untuk downstream task dan arsitektur, model self-supervised pretraining menghasilkan performa lebih baik dibandingkan supervised sekitar 1,5-2 point
  10. Dibandingkan dengan weakly-supervised pretraining model usulan menghasilkan performa lebih rendah 65% dibandingkan 81%
  11. Peningkatan kapasitas model secara signifikan meningkatkan kualitas feature secara logarithmic
  12. Meningkatkan jumlah parameter pada head dan jumlah cluster meningkatkan performa model (+3%)

Limitation:

  1. Performa model masih lebih rendah dibandingkan weak-supervised
  2. Dataset yang digunakan masih relatif besar

Note:

  1. SSL reduce the gap supervised learning; ex MoCo [22], SimCLR [8], BYOL [20] dan SwAV [7] in controlled environment dataset ImageNet
  2. Pre-training approaches (weakly-supervised, semi-supervised, self-supervised) meningkatkan performansi dari downstream task Deep Learning. Contoh implementasinya pada NLP, Speech Recognition dan computer vision
  3. Faktor yang berpengaruh: a) pretraining pada dataset besar; GPT-3 language model, pretrained pada 300 M words; Speech model Wav2vec2 belajar pada 53ribu jam audio; b) menggunakan model dengan kapasitas besar, triliunan parameter pada model NLP
  4. SSL model baik pada few-shot learner mencapai 77,9% dari hanya 10% gambar dari dataset ImageNet
  5. Pretraining pada unlabeled data untuk mencapai performa state-of-the-art pada transfer learning, dan membuat sistem yang belajar secara kontinu secara self-supervised pada datastream tidak berakhir
  6. SSL model pretrained pada image net lebih baik pada supervised pretrained model pada task multiple downstream
  7. training unlabele data dengan kemajuan SSL [6,8,20,22]
  8. regnet dipilih karena 2 alasan: a)trade-off yang baik antara efisiensi dan performansi; b)flexible untul scaling jumlah parameter
  9. SwAV digunakan karena convergencenya yang cepat dan performansinya yang baik pada setting online dengan jumlah batch size besar.
  10. SSL pada vision dengan basis autoencoder[42.51], clustering [1,5,11] instance level discrimination [3,15,21,51]; 
  11. Basis pada contrastive learning [21,38] menghasilkan bahwa pretraining unsupervised menghasilkan feature yang melebih supervised feature pada task downstream task [7,8,20,22,37]
  12. Metode berikut membedakan each instance feature [8,22,37] atau cluster assignmentsnya [2,7,32]
  13. Sebagian besar unsupervised pretraining focus pada supervised dataset seperti imagenet atau curated dataset yang dikumpulkan dengan melakukan filtering image terkair label pre-degiened.
  14. Kesimpulannya supervised label tidak diperlukan selama kita melakukan training pada data yang difilter.
  15. Unsupervised training pada image [6,13,19] dan video [36]
  16. Penelitian dilakukan pada skala kecil dan ada bukti bahwa self-supervised pretraining lebih baik pada arsitektur besar [7,9,25]
  17. Mendapat keutungan dari distributed training [18] beberapa penelitian menunjukan kelebihan pretraining pada large curated image dataset dengan weak-supervised learning [27,35], semi supervised learning [54] atau supervised training pada ribuan juta gambar yang difilter [29.47]
  18. Mahajan et.al menunjukan pretraining pada miliaran gambar meningkatkan performa dari arsitektur besar dibandingkan melakukan training dari awal
  19. Penelitian tentang training pada data dengan skala besar bergantung pada sebuah langkah data filtering untuk menyimpan image yang terkait dengan konsep yang dituju.
  20. Filtering menggunakan hastag adalah synsets dari kelas ImageNet [35,54] atau prediksi dari sebuah pretrained object classifier.
  21. Banyak penelitian yang menunjukan manfaat training arsitektur besar untuk meningkatkan kualitas fitur visual [40,48,53]. Training arsitektur besar, penting pada pretraining sebuah dataset besar, dimana sebuah model dengan kapasitas terbatas akan underfit
  22. Hal ini menjadi lebih penting ketika pretraining dilakukan dengan contrastive learning, dimana jaringan belajar untuk membedakan antara instance pada dataset [6,8,9,20] untuk mendapatkan representasi visual yang baik
  23. Kolesnikov et.al menunjukan pentingnya training jaringan lebar untuk kualitas dari fitur visual yang dipelajari dengan self-supervision
  24. Chen et.al [9] mendapatkan performa yang baik dengan konfigurasi ResNet yang lebih dalam dan lebih lebar25. SwAV yang digunakan me-refer pada Caron.et.al [7].