Leave those Nets Alone – Bursuc

Saya lagi dengerin video tutorial dari CVPR 2021 tentang Self-supervised learning. Tutorial ini dibagi 6 sesi. Pada tulisan ini saya bahas sesi pertama yaitu introduction oleh Andrei Bursuc dari Valeo-ai.

Andrei cerita tentang perkembangan komputer vision saat ini yang mengandalkan Deep Learning dan supervised learning. Metode ini secara umum punya 3 tahapan:

  1. Mendefinisikan konsep apa yang mau dipelajari pada gambar
  2. Mengumpulkan sampel dalam jumlah besar dan beragam
  3. Training model dengan beberapa GPU selama berjam-jam

Cuman ada kendala untuk mendapatkan label. Perlu biaya besar, mahal dan lama. Selain itu juga rentan terhadap human eror. Contohnya untuk melakukan anotasi/pelabelan gambar di bawah ini untuk segmentasi semantik dibutuhkan waktu 1,5 jam. Bayangkan kalau kita harus melakukan anotasi untuk puluhan ribu gambar.

Saat ini dataset standar pada vision adalah ImageNet, namun belum ada dataset yang sebesar ImageNet khusus untuk obyek deteksi, gambar satelit.

Permasalahan lainnya adalah distribution shifts. Yaitu data terus berubah. Contohnya pada tren baju laki-laki dibawah ini. Tren pakaian terus berubah, sehingga perlu anotasi data baru, training lagi dst.

Selain itu perubahan lainnya adalah perkembangan teknologi yang terus berubah. Seperti perkembangan sensor dengan resolusi lebih tinggi. Sehingga perlu anotasi ulang, training ulang dst.

Sehingga kemudian muncul self-supervised learning. Pertanyaannya bisakah kita belajar label dari data secara langsung. Mendapatkan data tidak berlabel lebih mudah, namun metode supervised yang ada tidak bisa memahami gambar-gambar tersebut.

Deep learning membutuhkan data besar dengan label. Sementara data berlabel ini susah untuk didapatkan, dan biayanya mahal untuk melakukan labeling.

Walaupun kita memiliki data yang besar, masih ada beberapa kendala berikut pada metode supervised untuk mempelajari representasi yang baik.

Terjadi bias pada jaringan. Dari paper L.A.Gatys dkk “texture and art with deep neural network” neurobiology 2017, dia coba melakukan prediksi VGG-16 pada gambar dengan menambahkan tekstur buatan. Terlihat hasilnya gambarnya jadi aneh seperti gambar berikut.

Contoh lainnya dari paper R.Geirhos dkk “ImageNet-trained CNNs are biased towards texture: increasing shape bias improves accuracy and robustnes, ICLR 2019. Dia melakukan klasifikasi gambar ImageNet dengan Resnet-50. Pada gambar terlihat dia menggabungkan dua gambar. Terlihat jaringan bias terhadap texture dari gambar.

Untuk mengatasi bias ini, Andrei cerita paper dari S.Jenni “Steering self-supervised feature learning beyond local pixel statistics” CVPR 2020. Jenni mencoba mengacak gambar, dengan tujuan statistik lokalnya tetap sama namun statistik globalnya berubah. Kemudian mesin diminta melakukan klasifikasi yang mana gambar yang benar dan mana yang sudah acak.

Training dilakukan dengan conv5, dan didapatkan hasil berikut:

  1. Pada model yang di pre-training dengan dataset ImageNet berlabel: akurasinya adalah 78%
  2. Pada model yang di pre-training dengan self-supervision akurasinya mencapai 85%

Menurut Andrei, untuk meningkatkan performa representation learning, tidak diperlukan fitur yang khusus untuk menyelesaikan sebuah task supervised tertentu. Namun fitur yang dapat digunakan untuk berbagai downstream task.

Contoh implementasi Self-supervised yang sukses adalah di bidang NLP. Misalnya model word2vec. Contohnya pada paper T.Mikolov dkk “efficient estimation of word representations in vector space, Arvix 2013; paper T.Mikolov dkk “Distributed representations of words and phrases and their composionality, NeurIPS 2013 dan J.Devlin “BERT: pre-training of Deep Bidirectional Transformers for Language Understanding, ArXiv 2018”. Mereka berhasil melakukan prediksi kata yang hilang pada sebuah kalimat. Maupun prediksi apakah 2 kalimat berurutan atau tidak, seperti pada gambar berikut:

Self-supervision adalah sebuah metode unsupervised learning dimana data yang menyediakan supervision signal, bukan orang. Langkah yang dilakukan pada supervised learning adalah:

  1. Mendefinisikan sebuah pretext task, dimana network dipaksa untuk mempelajari sesuatu yang kita inginkan. Umumnya bagian dari data disembunyikan, dan network diminta untuk melakukan prediksi.
  2. Feature/representasi yang dipelajari pada pretext task kemudian digunakan untuk downstream task berbeda, biasanya ketika beberapa anotasi telah tersedia.

Contohnya ada pada paper S.Gidaris dkk “Unsupervised representation learning by predicting image rotations, ICLR 2018”. Dia membuat sistem yang dapat melakukan prediksi rotasi pada gambar burung dibawah ini:

Gambar berikut ini adalah ilustrasi tahapan self-supervised untuk klasifikasi rotasi gambar dengan tahapan pretext dan downstream task:

Pada tahap 1 pretext-task, network mempelajari fitur untuk melakukan klasifikasi. Pada tahap kedua, downstream task, encodernya adalah fixed, kemudian beberapa hal yang terkait pretext task dihilangkan seperti linear klasifier z0,-z270 pada gambar diatas. Kemudian digunakan pada downstream dimana kita menggunakan beberapa data, contohnya pada gambar diatas untuk klasifikasi linear. Atau bila kita memiliki tambahan lebih banyak data Downstream task bisa juga digunakan untuk deteksi obyek, segmentasi semantik, dll.

Andrei memberikan contoh analogi pada film Karate Kid. Dimana ada anak (Daniel LaRusso) yang ingin belajar karate ke Mr Miyagi. Namun bukannya diajarin karate tapi malah disuruh kerja macem-macem untuk melatih ototnya seperti pada gambar berikut:

Pre-text dilakukan Daniel dengan melakukan berbagai pekerjaan yang disuruh Mr.Miyagi untuk mengembangkan ototnya. Kemudian dilakukan fine-tuning pada downstream task dengan berlatih karate:

Hal ini yang kita lakukan pada self-supervised, yaitu melakukan training pada pretext-task dengan data yang kita punya, kemudian melakukan finetuning pada downstream task dengan sedikit data berlabel.

Telah terjadi perkembangan sangat cepat pada self-supervised. Contohnya pada transfer learning untuk deteksi obyek, andrei menampilkan performa metode self-supervised terus meningkat dari tahun ke tahun

Ada banyak pendekatan yang dilakukan peneliti pada self-supervised learning, diantaranya ada rekonstruksi input, generate data, training dengan sinyal berpasangan, menyembunyikan, maupun instance discrimination:

Untuk pengujian metode self-supervised biasanya menggunakan beberapa dataset dan task. Model SoTA saat ini umumnya melakukan pre-training pada ImageNet untuk pretext task dan kemudian melakukan fine-tuning pada dataset/protokol lain. (Goyal dkk, 2019) dan Zhai dkk,2019)

Task pengujian yang digunakan diantarnaya:

  1. Klasifikasi Linear/probe
  2. Efficient learning
  3. Transfer learning

Pengujian pertama metode SSL adalah dengan linear classification. Jadi kita menguji enkoder untuk melakukan klasifikasi linear. Misalnya dengan menambahkan layer FC (full connected, atau dengan linear SVM). Beberapa dataset yang biasanya digunakan adalah ImageNet, Places205, Pascal VOC07 (klasifikasi gambar), COCO14 (klasifikasi gambar, iNat.

Berikut adalah perbandingan performa beberapa metode self-supervised pada ImageNet:

Terlihat self-supervised semakin mendekati performa supervised. Perbandingan lainnya yang lebih baru dilakukan oleh J.B.Grill dkk yang mengajukan metode BYOL

Metode evaluasi kedua adalah Anotation Efficient Classification. Cara ini sering disebut juga semi-supervised learning. Kita melakukan pre-training pada keseluruhan dataset, kemudian fine-tuning pada subset label misalnya 1% data atau 10%. Dataset yang digunakan biasanya ImageNet dan VTAB. Contohnya paper dari O.Henaf dkk “Data-efficient Image Recognition with contrastive predictive coding”, ArXiv 2019. Dia menyimpulkan bahwa supervised network biasanya tidak melakukan generalisasi dengan baik pada data yang sedikit. Sementara self-supervised menghasilkan akurasi yang lebih baik pada data yang sedikit.

Metode evaluasi yang paling populer adalah transfer learning. Model di pretraining dengan augmentasi pada model yang khusus pada task tertentu seperti dekoder untuk segmentasi semantik, RPN untuk deteksi obyek dan kemudian dilakukan fine-tuning secara sebagian atau keseluruhan. Contoh task dan dataset yang digunakan:

  1. deteksi obyek: VOC07,VOC12,COCO14
  2. Segmentasi semantik: cityscapes, ADE20K
  3. Surface Normall Estimation (NYUv2), Visual Navigation (Gibson)

Sampai disini dulu, besok akan saya lanjutkan tentang contrastive learning.

Slidenya bisa dilihat disini:

https://abursuc.github.io/slides//2021-cvpr-ssl/ssl-intro.html#1

Videonya:

Semoga Bermanfaat!

DINO dan PAWS

Saya lanjutkan pembahasan riset dari meta AI tentang Self-supervised transformer. Ada 2 inovasi yang dikenalkan tim meta AI yaitu DINO dan PAWS.

DINO mempelajari bagian obyek dan karakteristik yang dimiliki bersama antara beberapa gambar. Model DINO mempelajari fitur space yang memiliki struktur yang menarik. Bila kita meng-embed kelas ImageNet menggunakan fitur yang dihitung dengan DINO, model akan membuat gambar yang memiliki kategori sama berdekatan. Model menghubungkan kategori-kategori berdasarkan properti visual, mirip seperti yang dilakukan manusia.

Fitur space ini memudahkan kita untuk membuat klasifikasi k-NN, tanpa melakukan fine-tuning atau mempelajari klasifier. Performa dino lebih baik dibandingkan metode SSL lainnya. Dino juga bagus dalam menemukan gambar yang sama.

PAWS

PAWS menghasilkan akurasi lebih baik dibandingkan metode SSL lainnya, dengan jumlah training epoch 4x-12x lebih rendah. Contohnya ketika melakukan training sebuah model ResNet-50 hanya dengan 13 gambar berlabel per kelas, PAWS menghasilkan performa lebih baik setelah 100 kali epoch training (12x lebih rendah dibandingkan metode sebelumnya.

PAWS menggunakan pendekatan self-supervised seperti SwAV. Namun menggunakan label yang lebih sedikit, ditambah dengan data tidak berlabel.

Fokus pada pre-training adalah memetakan gambar ke representasi laten. Dari training sebuah gambar tidak berlabel, dibuat dua atau lebih versi gambar dengan augmentasi dan transformasi. Network kemudian ditraining untuk membuat representasi dari versi gambar ini mirip.

Bila metode self-supervised lainnya langsung membandingkan representasi dari gambar, PAWS menggunakan subsampel acak dari gambar berlabel untuk menetapkan pseudo label pada gambar input. Pseudo-label didapatkan dengan membandingkan representasi dari gambar tidak berlabel dengan representasi dari support sampel berlabel. Kemudian model diupdate dengan meminimalkan standard classification loss, seperti cross-entropy, antarathe pseudo-labels dari pasangan gambar input yang tidak berlabel

PAWS lebih rentan terhadap overfitting dibandingkan pendekatan semi-supervised lainnya. Karena PAWS tidak melakukan optimasi akurasi prediksi dari sampel berlabel. Dengan menggunakan data berlabel yang tidak banyak, PAWS lebih cepat melakukan training dibandingkan metode self-supervised lainnya.

PAWS melakukan prediksi dari versi positive dan anchor dari gambar dengan pendekatan berbeda. Meningkatkan (sharpening) prediksi target, sehingga PAWS tidak melakukan “collapsing representations,” dimana semua gambar dimapping ke representasi yang sama. Sebuah masalah yang umum pada metode self-supervised.

Kebutuhan anotasi dan pelabelan dataset adalah sebuah hambatan dalam perkembangan vision. Dengan DINO dan PAWS, model menjadi lebih efisien. Karena tidak memerlukan anotasi manual. Sehingga model bisa diterapkan pada task yang lebih besar, dan mengenali konsep yang lebih banyak. Learning dengan supervision yang terbatas juga pentung untuk bidang dengan dataset berlabel terbatas seperti medis.

Dino dan Paws juga mengurangi kebutuhan komputasi pada self-supervised dan semi supervised. Demikian pembahasan tentang riset Meta AI tentang self-supervised transformer.

Sumber:

https://ai.facebook.com/blog/dino-paws-computer-vision-with-self-supervised-transformers-and-10x-more-efficient-training/

Paper tentang DINO:

https://arxiv.org/abs/2104.14294?fbclid=IwAR0baKNKHAvzVa-AVomWVVrio9YItwZaoAXpRXlS26mbOqZknQZxylvOWZo

kode tentang DINO

https://github.com/facebookresearch/dino

Paper tentang PAWS:

https://arxiv.org/abs/2104.13963

kode tentang PAWS:

https://github.com/facebookresearch/suncet

Semoga Bermanfaat!

Self-Supervised Transformer

Saya lagi baca tulisan peneliti dari Meta AI tentang self-supervised Transformer. Menurut Piotr Bojanowski dkk, inovasi terbaru di bidang AI saat ini ada 2 yaitu Self-supervised learning (SSL) dan transformer. SSL membantu mesin untuk belajar dari data tidak berlabel dan acak. Sementara itu transformer membantu model AI untuk memilih fokus pada bagian tertentu dari input, yang membuat sistem lebih efektif.

Peneliti Meta AI bekerjasama dengan Inria telah mengembangkan metode baru yang dinamakan DINO. Dino melakukan trining Vision Transformer (ViT) tanpa supervisi. Dino yang menggabungkan SSL dengan transformer. Dino mampu mencari dan melakukan segmentasi obyek pada gambar maupun video tanpa supervisi, dan tanpa ditentukan target segmentasinya sebelumnya. Dengan cara ini model dapat memahami video maupun gambar dengan lebih baik.

dari blog Meta AI research

Contyhnya pada gambar terlihat ada 3 gambar. Gambar kiri adalah input, gambar tengah adalah hasil segmentasi menggunakan metode supervised, gambar kanan adalah hasil segmentasi dengan DINO.

Segmentasi obyek sangat berguna untuk berbagai task seperti mengganti background dari video chat, atau mengajarkan robot untuk melewati (navigasi) sebuah daerah yang padat. Segmentasi disebut sebagai salah satu tantangan yang berat pada Vision, karena mesin harus memahami isi gambar.

Segmentasi umumnya dilakukan dengan metode supervised dan membutuhkan banyak dataset berlabel. Namun Dino berhasil melakukan segmentasi dengan self-supervised dan transformer.

Pada komputer vision, selain performa tinggi, efisiensi juga penting. Efisiensi yang baik membuat training tidak memerlukan komputasi tinggi. Model PAWS dapat melakukan training dengan komputasi lebih rendah. PAWS melakukan pretraining model ResNet-50 dengan hanya menggunakan 1% label di ImageNet, dengan akurasi tinggi dengan langkah pretraining 10 kali lebih sedikit.

Dengan DINO dan PAWS, sistem vision dapat dibangun dengan label yang lebih sedikit dan komputasi lebih rendah. Sistem self-supervised yang ditraining dengan ViT menunjukan potensi yang menjanjikan. Kode sistem ini bisa dilihat pada web ini dan disini.

Self-supervised learning dengan Vision

Transformers telah menghasilkan performa yang baik di artificial intelligence, termasuk NLP, vision dan speech. Training dengan ViT dan DINO, model dapat mempelajari representasi secara otomatis, dan memisahkan obyek dengan background. Segmentasi obyek dilakukan tanpa anotasi manual atau dedicated dense pixel-level loss.

Komponen utama dari Vision Transformer adalah layer self-attention. Pada model ini setiap lokasi spatial membangun representasinya dengan hadir “attending” ke lokasi lain. Dengan cara “looking” at other, yaitu bagian gambar yang jauh (potentially distant pieces of the image), model membangun pemahaman yang baik terhadap gambar.

Pada visualisasi attention maps di jaringan, kita dapat melihat hubungan ke coherent semantic regions pada gambar. Sampai disini dulu, besok saya lanjutkan pembahasan tentang DINO.

Referensi:

https://ai.facebook.com/blog/dino-paws-computer-vision-with-self-supervised-transformers-and-10x-more-efficient-training/

MICLe Eksperimen

Mari kita lanjutkan bahasan tentang paper Big Self-Supervised Models Advance Medical Image Classification, karya Azizi dkk. Pada tulisan sebelumnya telah dibahas tentang proses fine-tuning. Kali ini saya lanjutkan bahasan tentang hasil eksperimen.

Eksperimen yang dilakukan azizi, dilakukan untuk menguji apakah metode self-supervised yang diusulkan menghasilkan performa lebih baik dibandingkan metode supervised. Satu aspek penting pada transfer learning dengan self-supervised adalah pemilihan dataset tidak berlabel yang tepat.

Azizi menguji beberapa arsitektur berbeda diantaranya ResNet-50 (1×), ResNet-50 (4×) dan ResNet- 152 (2×) . Kemudian menguji 3 skenario pada data medis:

  1. Menggunakan dataset ImageNet saja
  2. Menggunakan dataset tidak berlabel yang spesifikus (contohnya dataset Derm dan CheXpert)
  3. Initialisasi pretraining dari model self-supervised ImageNet yang kemudian dilanjutkan dengan pre-training pada dataset yang spesifik contohnya ImageNet → CheXpert dan ImageNet → CheXpert.

Hasil pengujian menunjukan performa terbaik pada skenario 3. Model yang lebih besar menghasilkan performa lebih baik.

Pengujian berikutnya adalah dengan multi-instance contrastive learning (MICLe) dan menggunakan beberapa gambar pada sebuah kasus dan dipelajari apakah meningkatkan performa pretraining.

Tabel berikut membandingkan performa pada dataset kulit dengan MICLe dan tanpa MICLe:

dari paper Azizi dkk

Dari tabel terlihat MICLe meningkatkan performa model dibandingkan metode SimCLR.

Percobaan berikutnya adalah dengan menggunakan sampel negatif lebih banyak dan training lebih lama dengan 1000 epochs dan batch size yang lebih besar (1024). Dari hasil pengujian hasil model MICLe menghasilkan performa lebih baik .

dari paper Azizi dkk

Dilakukan pengujian juga untuk membandingkan dengan model yang dibangun Kolesnikov dkk yaitu ResNet-101 (3×) yang di pretrained pada ImageNet21-k. Model ini dinamakan Big Transfer (BiT) bisa diakses di tautan https://github.com/ google- research/big_transfer

Model ini melakukan modifikasi pada arsitekur, dan ditraining pada dataset yang lebih besar (14 juta gambar berlabel dengan 21 ribu kelas). Dibandingkan dengan model MICLe dengan dataset 1 juta gambar pada ImageNet.

ResNet-101 (3×) memiliki parameter 382 juta, sementara ResNet-152 (2×) memiliki 233 juta parameter. Ternyata model MICLe model menghasilkan performa lebih baik dibandingkan model BiT model.

Pengujian berikutnya unutk mengujia seberapa robust model terhadap perubahan distribusi data. Pada pengujian ini digunakan model post-pretraining dan end-to-end fine-tuning (seperti CheXpert dan Derm) untuk melakukan prediksi pada dataset yang berubah tanpa melakukan fine-tuning ulang (zero-shot transfer learning).

Dari hasil pengujian ternyata model self-supervised meningkatk generalisasi model. Sementara itu hanya menggunakan model ImageNet untuk pretraining self supervised, performa model lebih rendah.

Kemudian dilakukan pengujian efisiensi label pada model self-supervised. Caranya dengan melakukan finetuning model pada potongan data training berlabel yang berbeda. Potongan labelnya berkisar antara 10% – 90% untuk dataset Derm dan CheXpert. Percobaan diulang beberapa kali menggunakan parameter terbaik dan dirata-ratakan.

Pretraining dengan model self-supervised dapat meningkatkan efisiensi label untuk klasifikasi gambar medis. Performa pada semua potongan (fractions) lebih baik dibandingkan model supervised. MICLe secara proporsi menghasilkan performa cukup baik pada label yang sedikit. MICLe berhasil menghasilkan performa sama dengan baseline hanya dengan 20% data training untuk ResNet-50(4×) dan 30% untuk ResNet- 152 (2×).

Arah penelitian kedepan adalah menguji model pada dataset tidak berlabel yang besar. Selain itu transfer pada multimodal. Dengan demikian telah selesai pembahasan paper ini.

Papernya bisa dilihat disini:

https://ieeexplore.ieee.org/document/9710396

Semoga Bermanfaat!

Tulisan sebelumnya tentang fine-tuning

Kumpulan link SimCLR

Saya lagi belajar ngoprek tentang metode self-supervised SimCLR (A simple Framework for contrastive learning of Visual Representation). Berikut ini ada kumpulan link SimCLR yang sudah saya kumpulkan:

  1. https://github.com/google-research/simclr : Ini Github dari yang bikin SimCLR (Mr. Chen dari Google)
  2. https://github.com/sayakpaul/SimCLR-in-TensorFlow-2 : Yang ini implementasi SimCLR di TensorFlow2
  3. https://medium.com/analytics-vidhya/understanding-simclr-a-simple-framework-for-contrastive-learning-of-visual-representations-d544a9003f3c : ini blog yang ngejelasin teori dan codingannya dari Aditya Rastogi
  4. https://sthalles.github.io/simple-self-supervised-learning/ : ini blog Thalles santos silva, juga ngejelasin teorinya simclr
  5. https://github.com/sthalles/SimCLR : ini codingan si om Thalles, dia pake pytorch
  6. https://amitness.com/2020/03/illustrated-simclr/ : ini blog Amit Chaudhary, ngejelasin teori juga
  7. https://github.com/mwdhont/SimCLRv1-keras-tensorflow : yang ini codingan versi tensorflow-keras dari mwdhont
  8. https://github.com/google-research/simclr/tree/master/tf2 ini codingan versi tensorflow2 dari mr chen
  9. https://github.com/AndrewAtanov/simclr-pytorch ini codingan versi pytorch dari AndrewAtanov

Semoga Bermanfaat!

Fine-tuning MICLe

Mari kita lanjutkan bahasan tentang paper Big Self-Supervised Models Advance Medical Image Classification, karya Azizi dkk. Pada tulisan sebelumnya telah dibahas tentang proses pre-training metode MICLe. Kali ini saya lanjutkan bahasan tentang fine-tuning yang dilakukan.

Pada saat finetuning, model ditraining menggunakan weight yang didapat pada saat pretraining. Model ditraining untuk downstream task menggunakna SimCLR. Training dilakukan dengan 30.000 steps dan batch size 256 menggunakan SGD (stochastic gradietn descent) dengan parameter momentum 0,9.

Untuk augmentasi data digunakan random color augmentation, crops dan resize, blurring, rotasi, dan flips (dibalik) pada kedua task. Dari hasil pengamatan, augmentasi yang digunakan mempengaruhi performa yang didapat. Dataset Derm di ubah ukurannya menjadi 448 × 448 pixels dan dataset CheXpert menjadi 224 × 224.

Untuk setiap kombinasi dari strategi pretraining dan downstream (finetuning) dilakukan pencarian hyperparameter. Learning rate dan weight decay dipilih setelah pencarian grid pada tujuh learning rates antara 10e−3.5 dan 10e−0.5 dan tiga weight antara 10e−5 dan 10e−3, serta tanpa weight decay.

Untuk baseline pretraining supervised digunakan protokol yang sama. Dari hasil pengamatan didapatkan 30.000 steps sudah cukup untuk mendapat performa terbaik. Baseline supervised dibandingkan dengan hasil Resnet ResNet models yang di pretraining pada ImageNet dengan nilai cross-entropy loss standar.

Model-model ini ditraining dengan teknik augmentasi data yang sama seperti model self-supervised (crops, strong color augmentation, and blur).

Setelah identifikasi nilai hyperparameter terbaik untuk finetuning, model dipilih berdasarkan performa set validasi. Kemudian diuji beberapa kali. 10 kali untuk gambar X-ray dan 5 kali untuk gambar kulit.

Untuk gambar kulit didapat akurasi top-1 dengan AUC seperti pada tabel dibawah. Untuk gambar X-ray, rata-ratanya juga dapat dilihat pada tabel. Digunakan juga non-parametric bootstrap untuk memperkirakan perbedaan performa model

dari paper Azizi dkk 2021

Sampai disini dulu, besok insyaallah saya lanjutkan dengan pembahasan hasil eksperimen.

Papernya bisa dilihat disini:

https://ieeexplore.ieee.org/document/9710396

Semoga Bermanfaat!

Pre-training MICLe

Saya coba lanjutkan pembahasan paper Big Self-Supervised Models Advance Medical Image Classification, karya Azizi dkk. Pada tulisan sebelumnya telah dibahas tentang metode pengujian. Kali ini saya lanjutkan bahasan tentang pre-training yang dilakukan.

Untuk menguji keefektifan proses pre-training self-supervised, Azizi mencoba arsitektur ResNet-50 (1×), ResNet-50 (4×), and ResNet-152 (2×) sebagai basis jaringan enkoder. Setelah SimCLR, dua layer full connected digunakan untuk memetakan keluaran dari jaringan-jaringan Resnet ke embedding dengan dimensi 128 untuk contrastive learning.

Kemudian digunakan juga LARS optimizer untuk men-stabilkan training selama pre-training. Pretraining SimCLR pada DUnlabeled-derm dan DUnlabeled-Chexpert, dengan inisialisasi dan tanpa insialisasi dari weight pretraining dari ImageNet self-supervised.

Pretraining dengan weight self-supervised Imagenet sebagai ImageNet→Derm dan ImageNet→CheXpert dijelaskan sebagai berikut:

Pretraining untuk dermatology task menggunakan augmentasi yang digunakan untuk pasangan positif pada SimCLR. Hal ini karena kerimipan gambar dermatology dengan gambar natural. Teknik augmentasi yang digunakan adalah augmentasi warna acak (strength=1.0), crops dengan resize, Gaussian blur, dan random flips.

Azizi menemukan bahwa ukuran batch size 512 dan learning rate 0,3 menghasilkan performa terbaik. Kemudian semua model di pretraining sebanyak 150 steps dengan DUnlabeled-Derm.

Untuk dataset CheXpert dataset, pretraining dilakukan dengan learning rate {0.5, 1.0, 1.5}, temperatur {0.1, 0.5, 1.0}, dan batch size {512, 1024}. Kemudian dipilih model dengan performa terbaik pada down-stream validation set.

Dilakukan pengujian juga dengan berbagai tipe augmantasi dan diamati mana yang menghasilkan performa terbaik pada set validasi. Augmentasi yang digunakan adalah random cropping, random color jittering (strength = 0.5), rotation (sampai 45 degrees) dan horizontal flipping. Gaussian blur tidak digunakan, karena sulit untuk membedakan variasi tekstur lokal dengan merubah interpretasi penyakit pada gambar X-ray.

Model CheXpert terbaik di pretraining dengan batch size 1024, dan learning 0,5. Pretraining dilakukan pada model dengan 100.000 steps. Pretraining MICLe hanya dilakukan pada dataset dermatology, karena pada dataset CheXpert tidak ada multiple view.

Pretraining MICLe dilakukan dengan inisialisasi model dengan weight SimCLR, kemudian digabungkan dengan prosedur multiinstance. Karena ketermatasn memori, training menggunakan batch size lebih kecil (128) dan learning rate 0,1 dengan 100.000 steps.

Setting lainnya seperti optimizer, weight decay, dan warmup step sama seperti pretraining sebelumnya. Pada semua eksperimen pretraining ukuran gambar diubah menjadi 224 × 224. Digunakan TPU dengan 16 – 64 core terhantung batch size.

Dengan 64 TPU cores, dihabiskan kurang lebih 12 jam untuk pretraining sebuah ResNet-50 (1×) dengan batch size 512 dan 100 epochs. Sampai disini dulu, besok insyaallah akan saya lanjutkan bahasan tentang proses fine-tuning.

Papernya bisa dilihat disini:

https://ieeexplore.ieee.org/document/9710396

Semoga Bermanfaat!

Tulisan sebelumnya tentang prosedur pengujian:

Multi Instance Contrastive Learning

Mari kita lanjutkan pembahasan paper Big Self-Supervised Models Advance Medical Image Classification, karya Azizi dkk. Pada tulisan sebelumnya telah dibahas tentang metode Multi Instance Contrastive Learning (MICLe). Kali ini saya lanjutkan bahasan tentang pengujian yang dilakukan.

Pengujian MICLe dilakukan pada 2 task image medis populer. Yang pertama adalah identifikasi penyakit kulit dari gambar yang diambil dengan kamera digital. Task kedua adalah klasifikasi multi label pada gambar X-Ray untuk 5 penyakit. Kedua task ini dipilih untuk mewakili karakteristik dari image medis, seperti imbalanced data dan penyakit yang terbatas pada tempat yang kecil.

Selain itu tipe keduanya juga berbeda, dari tipe gambar, label space dan setting task. Contohnya gambar kulit mirip dengan gambar natural, sementara gambar X-ray adalah drayscale dan memiliki tampilan standar. Kedua tipe berbeda ini untuk menguji kemampuan generalisasi metode MICLe.

Dataset kulit

Untuk dataset kulit, dikumpulkan dan diidentifikasi dengan layanan tele-deramtology di Amerika menggunakan kamera digital. Gambar-gambarnya heterogen dan memiliki variasi pada pose, pencahayaan, blur dan bagian tubuh. Latar belakangnya juga memiliki noise yang berbeda seperti baju dan dinding. Label ground-truth dibuat oleh dokter kulit.

Pada dataset terdapat gambar dari 12.306 pasien. Setiap pasien memiliki 1-6 gambar. Dataset dibagi dalam training set. tes set dan validasi. Foto dengan beberapa kondisi kulit berbeda pada satu kasus, atau gambar dengan kualitas jelek difilter.

Pembagian data training, validasi dan tes adalah 15.340, 1190 dan 4146. Ada 419 penyakit dengan label berbeda pada dataset. Pada pengujian hanya 26 kelas yang digunakan dan penyakit lainnya dimasukan pada kelas ke 27 (DDermin) . Digunakan juga dataset tambahan DExternalset untuk menguji generalisasi. Dataset ini lebih gakus pada kanker kulit. Labelnya didapatkan dari hasil biopsy. Kondisi ini menimbulkan tantangan untuk pengujian model zero-shot tanpa fine-tuning.

Untuk training SimCLR, digunakan campuran gambar dari DTrain dan ditambah gambar tidak berlabel dari dataset Derm. Jumlah gambar pada pretraining self-supervised yang digunakan adalah 454.295 gambar

Untuk pretraining MICLe, hanya digunakan gambar dari 15,340 kasus dari DTrain.

Dataset X-Ray

Dataset X-Ray menggunakan CheXpert, dataset open source X-Ray. Dataset ini terdiri dari 224.316 gambar dari 65.240 pasien. Label dilakukan oleh radiolog, dengan 14 jenis label berbeda. Set validasi terdiri dari 234 gambar dengan anotasi manual.

Karena ukuran dataset validasi kecil, untuk downstream task digunakan 67.429 gambar untuk training, 22.240 gambar untuk validasi dan 33.745 untuk tes. Model ditraining untuk prediksi 5 penyakit mengikuti penelitian Irvin dan Rajpurkar dkk.

Untuk pretraining menggunakan SimCLR untuk X-Ray, dengan gambar dari set training pada dataset CheXpert tampa label (DUnlabeled). Kemudian digunakan juga dataset CheXpert NIH (DNIH) untuk menguji performa zero-shot transfer. Dataset ini terdiri dari 112.120 gambar dari 30.805 pasien.

Sampai disini dulu, Insyaallah besok akan saya lanjutkan pembahasan tentang pre-training.

Papernya bisa dilihat disini:

https://ieeexplore.ieee.org/document/9710396

Semoga Bermanfaat!

Self supervised di Medis

Saya lanjutkan pembahasan paper Big Self-Supervised Models Advance Medical Image Classification, karya Azizi dkk. Pada tulisan sebelumnya telah dibahas tentang metode yang digunakan serta tentang transfer learning. Kali ini saya lanjutkan bahasan tentang teknik self-supervised di medis.

Penelitian awal di bidang self-supervised fokus pada masalah mempelajari embedding tanpa label namun biasa mencapai akurasi tinggi. Berbagai pendekatan dengan contrastive dikembangkan seperti instance discrimination, CPC, Deep InfoMax, AMDIM, CMC, MoCo, PIRL, dan SimCLR. Metode-metode ini digunakan dengan pendekatan pretraining dengan self-supervised kemudian di fine-tuning dengan metode supervised berlabel.

Chen dkk menunjukan bahwa pretraining dan fine-tuning dengan sampel besar, kemudian modelnya diimplementasikan pada model yang lebih kecil memiliki performa baik, dengan loss yang relatif kecil.

Pendekatan Multi-Instance Contrastive Learning berhubungan dengan penelitian pada video processing dengan multiple views yang menghasilkan temporal variation. Metode ini menggunakan pendekatan maximizing agreement antara frame berdekatan. Penelitian lainnya dilakukan oleh Sowrirajan dkk menggunakan MoCo untuk pretraining pada klasifikasi dataset CheXpert melalui linear evaluation.

Self-Supervised Pretraining

Pertama pretraining dilakukan pada gambar tidak berlabel menggunakan contrastive learning. Contrastive learning menggunakan kombinasi gambar dari ImageNet tidak berlabel dan gambar medis.

Kemudian bila gambar pada setiap kondisi penyakit tersedia, digunakan pretraining tambahan dengan Multi-Instance Contrastive Learning (MICLe)

Langkah berikutnya adalah fine-tuning secara supervised pada gambar medis berlabel.

Framework untuk Contrastive Learning

Untuk mempelajari representasi dari gambar tidak berlabel, mengikuti metode SimCLR. SimCLR mempelajari representasi dengan maximizing agreement antara augmented views yang berbeda dari data yang sama dengan menghitung contrastive loss.

Setiap gambar diaugmentasi dua kali dengan metode random crop, color dis- tortion dan Gaussian blur yang menghasilkan dua gambar variasi gambar. Kedua gambar diencode dengan jaringan ResNet. Hasil representasinya kemudian ditransformasi lagi dengan non-linear transformation network.

Pada analisa image medis, umum digunakan beberapa gambar untuk pasien untuk meningkatkan akurasi dan robustnes. Gambar-gambar ini diambil dari sudut berbeda atau kondisi pencahayaan berbeda. Metode MICLe dilakukan juga pada pasangan positif yang dilakukan dengan mengampil dua potongan gambar dari pasien yang sama.

Perbedaan MICLe dengan SimCLR, adalah membangun sebuah mini-batch representasi 2N. Mini batch ini secara acak diambil. Kemudian dilakukan prediksi contrastive pada pasangan positif dari gambar (bag), bukan dari augmented views dari sebuah gambar yang sama.

Setiap bag gambar, X = {x1 , x2 , …, xM } terdiri dari gambar-gambar dari pasien yang sama (penyakit sama) yang diambil dari sudut berbeda. Nilai M bisa berbeda-beda dari bag berbeda. Ketika ada dua atau lebih instance pada sebuah bag M = |X| ≥ 2, dibangun pasangan positif dengan menggambar dua potongan dari dua gambar yang dipilih secara acak.

Sampai disini dulu, besok insyaAllah akan saya lanjutkan bahasan selanjutnya dari paper ini. Papernya bisa dilihat disini:

https://ieeexplore.ieee.org/document/9710396

Semoga Bermanfaat!

Self Supervised pada klasifikasi Image medis

Hari ini saya lagi baca paper Big Self-Supervised Models Advance Medical Image Classification, karya Azizi dkk. Paper ini cerita tentang percobaan mereka yang menggunakan self-supervised untuk klasifikasi gambar medis. Percobaannya dilakukan pada 2 task:

  1. Klasifikasi foto penyakit kulit dari kamera digital
  2. Klasifikasi foto X-ray dada multilabel pada 5 kondisi patologi dari dataset CheXpert

Menurut mereka dengan Self-supervised di training di ImageNet, trus self-supervised pada gambar medis tidak berlabel, akurasi klasifikasi image medis meningkat. Metode usulannya dikasi nama Multi-Instance Contrastive Learning (MICle).

MICLE ini meningkatkan akurasi sebesar 6,7% (top 1-akurasi) dan peningkatan AUC 1,1%. Performa ini mengalahkan metode supervised yang dipretraining pada ImageNet. Selain itu metode ini kuat terhadap distribution shift dan cuman membutuhkan jumlah gambar medis berlabel yang kecil.

Untuk klasifikasi image medis, masalah yang dihadapi adalah gambarnya terbatas, kemudian proses labeling, mahal dan lama. 2 pendekatan pre-training yang digunakan biasanya:

  1. Pre-training dengan supervised pada dataset besar seperti ImageNet (14 juta gambar; 21.800 kelas)
  2. Self-supervised pretraining dengan contrastive learning pada data tidak berlabel.

Setelah pretraining, fine-tuning dengan supervised dilakukan pada dataset berlabel yang menjadi target. Sejauh ini pendekatan pre-training pertama yang populer di medis. Namun pendekatan self-supervised menghasilkan performa lebih baik.

Performa ini dibantu dengan adanya domain shift dan perbedaan antara task recognition di ImageNet dan klasifikasi image medis. Untuk mengatasinya dilakukan pre-training dengan self-supervised pada gambar medis. MICLE membantu adaptasi contastive learnign ke gambar medis dengan pathology berbeda pada pasien.

Data multi-instance banyak tersidia pada dataset medis diantaranya tampilan fromtal dan lateral dari mammograms, gambar retinal fundus dari mata dll. Dengan adanya berbagai gambar medis pada kasus seorang pasien, diiajukan pembuatan pasangan positif untuk self-supervised contrastive. Caranya dengan membuat 2 potongan dari 2 gambar berbeda dari kasus pasien yang sama.

2 potongan ini bisa gambar dari dari sudut berbeda, dan menunjukan bagian tubuh berbeda pada penyakit yang sama. Dengan cara ini algoritma Self-supervised dapat mempelajari representasi yang kuat terhadap perubahan sudut pandang, kondisi gambar dan faktor lainnya.

MICLe gak perlu label, hanya mengandalkan gambar-gambar berbeda dari kasus penyakit yang sama. Kasus penyakit yang belum diketahui

Secara umum transder learning banyak digunakan di bidang medis. Walaupun ada perbedaan antara gambar biasa dan gambar medis. Namun Raghu dkk menunjukan bahwa performa dalam konteks gambar medis tidak selalu meningkat dengan transfer learning. Namun transfer learning ImageNet dapat mempercepat konvergen, dan sangat membantu untuk gambar medis yang terbatas. Selain itu peningkatan juga diperoleh dengan menggunakan arsitektur ResNet-50 yang lebih besar.

Sampai disini dulu, besok insyaallah saya lanjutkan pembahasan tentang paper ini. Papernya bisa dilihat disini:

https://ieeexplore.ieee.org/document/9710396

Semoga Bermanfaat!

%d blogger menyukai ini: