CoAtNet: Kombinasi Convolution dan Attention

Dewabrata
Data Folks Indonesia
5 min readFeb 18, 2022

CoAtNet merupakan arsitektur model yang diperkenalkan oleh Google Research pada September 2021 dan diklaim mencapai state-of-the art pada bidang computer vision. Pada paper yang mereka rilis tersebut, mereka mengklaim CoAtNet berhasil mencapai akurasi 86.0% pada dataset ImageNet. Bahkan saat CoAtNet menggunakan dataset JFT-3B sebagai pretrained, model ini berhasil mencapai akurasi 90.88% pada ImageNet-1K, yang membuat model ini menjadi state-of-the art saat ini.

Pada artikel ini, saya akan menjelaskan secara singkat latar belakang dan cara kerja CoAtNet beserta beberapa variasinya.

Latar Belakang CoAtNet

Semenjak AlexNet diperkenalkan pada tahun 2012, Convolutional Neural Network (CNN) menjadi model andalan banyak orang dalam menyelesaikan permasalahan computer vision. Meski begitu, seiring bertumbuhnya jumlah data, seberapa efisien pelatihan menjadi hal penting yang perlu dipertimbangkan. Sebagai contoh, GPT-3 menunjukkan performa yang luar biasa di bidang natural language processing, namun memakan waktu berminggu-minggu untuk training bahkan dengan menggunakan ribuan GPU (Graphics Processing Unit) sekalipun. Pelatihan yang lama ini membuat sulit dilakukannya pelatihan ulang demi hasil yang lebih baik. Hal inilah yang memicu para peneliti untuk merancang model yang lebih kecil (jumlah parameter) dan cepat (inference time), namun masih akurat.

Terdapat berbagai upaya dalam perancangan model computer vision yang efisien, salah satunya adalah penggunaan depthwise separable convolution pada MobileNet V1. Depthwise separable convolution merupakan modifikasi operasi konvolusi yang berhasil mempersingkat kecepatan operasi hingga 8 atau 9 kali. Jenis konvolusi ini kemudian disempurnakan menjadi MBConv (sebelumnya disebut Inverted Residual Block) pada MobileNet V2. Layer MBConv inilah yang menjadi salah satu inspirasi CoAtNet.

Selain upaya dalam memodifikasi operasi konvolusi, adapun upaya lain yakni penggunaan self-attention pada Vision Transformer (ViT). Tidak seperti model computer vision pada umumnya, ViT tidak menggunakan convolution layer sama sekali, melainkan self-attention yang umumnya digunakan pada kasus natural language processing. ViT menunjukkan model ini empat kali lebih cepat dibandingkan model CNN sebanding.

Meski lebih ringan, ViT masih belum bisa menggantikan CNN. Untuk mencapai akurasi tinggi, ViT memerlukan dataset berskala besar seperti JFT (300 juta citra). Namun ketika ViT dilatih dengan dataset yang relatif kecil (1 juta citra dari ImageNet), performanya lebih buruk dibandingkan CNN.

Perbandingan akurasi beberapa model CNN dan ViT pada dataset ImageNet-1K dan 21K+1K. Sumber: https://arxiv.org/abs/2106.04803

Dibandingkan transformer, CNN yang memiliki inductive bias memiliki generalisasi yang lebih baik. Inductive bias merupakan sekumpulan asumsi yang model gunakan untuk memprediksi kasus yang belum pernah ditemui (tidak ada di dataset).

Kelebihan dan kekurangan masing-masing metode inilah yang menginspirasi Google Research untuk mengkombinasi convolution dan self-attention layer, yang mereka beri nama CoAtNet. Kombinasi generalisasi CNN dan kapasitas besar Transformer diharapkan dapat menghasilkan model dengan performa baik untuk segala ukuran dataset.

Arsitektur CoAtNet

Arsitektur CoAtNet sebenarnya cukup sederhana, dimana model ini hanya memiliki 5 stage yang tersusun secara linear. Kelima stage ini antara lain adalah:

  • layer konvolusi biasa (S0)
  • MBConv pertama (S1)
  • MBConv kedua (S2)
  • Transformer pertama (S3)
  • Transformer kedua (S4)

Lima stage tersebut hanyalah layer feature extraction, jadi jangan lupa tambahkan layer klasifikasi sesuai problem yang ingin diselesaikan.

Arsitektur CoAtNet. Sumber: https://ai.googleblog.com/2021/09/toward-fast-and-accurate-neural.html

Pada setiap stage, ukuran dari citra input akan selalu berkurang setengahnya. Sebagai contoh, seandainya citra input berukuran 256 x 256, maka pada output S0, citra akan berukuran 128 x 128. Hal ini terus dilakukan sehingga output feature dari S4 akan berukuran 8 x 8 saja.

Selain ukuran citra, adapun 2 parameter lain yang disebut L dan D. Parameter L merujuk pada berapa kali layer konvolusi/transformer itu diulang, sedangkan D merupakan jumlah output channel dari blok tersebut. Sebagai contoh, jika L pada S1 berjumlah 2, maka layer MBConv akan diulang sebanyak 2 kali (output blok pertama akan menjadi input blok kedua, dan seterusnya). Jika jumlah output channel dari S1 adalah 64, maka output dari S1 akan berukuran H/4 x H/4 x 64 yang dimana output ini akan digunakan sebagai input S2.

Kedua parameter inilah yang menuntun CoAtNet memiliki beberapa variasi. Pada paper CoAtNet, peneliti membuat 5 variasi dasar (CoAtNet-0 hingga CoAtNet-4) serta 3 variasi lain (CoAtNet-5 hingga CoAtNet-7) yang sedikit memodifikasi bloknya. Pada bagian selanjutnya, saya akan merangkum semua varian CoAtNet.

Variasi CoAtNet

Terdapat lima variasi standar CoAtNet yang dapat dilihat pada tabel di bawah ini. Pada kelima variasi ini, ukuran attention head untuk semua blok transformer adalah 32 dengan alasan mengikuti penelitian Swin Transformer. Perbedaan antara varian-varian CoAtNet ini hanya terletak pada nilai L dan D saja. Ketika training dilakukan dengan ImageNet-1K, CoAtNet-3 merupakan varian terbaiknya. Sedangkan ketika dilatih dengan ImageNet-21K, CoAtNet-4 merupakan varian terbaik.

Lima variasi dasar CoAtNet. Sumber: https://arxiv.org/abs/2106.04803

Adapun varian CoAtNet-5 yang tidak hanya mengubah nilai L dan D, namun juga mengubah ukuran attention head menjadi 64. Pada variasi ini, model memiliki speed-performance yang lebih baik dibandingkan CoAtNet standar.

Variasi CoAtNet-5. Sumber: https://arxiv.org/abs/2106.04803

Terakhir, terdapat variasi CoAtNet-6 dan CoAtNet-7 yang bertujuan untuk mengurangi konsumsi memori dengan cara memindahkan 2/3 blok MBConv pada S2 ke S3 serta meningkatkan dua kali lipat output channelnya. Dengan ini, S3 akan menjadi stage campuran antara MBConv dan Transformer. Selain itu, ukuran atention head juga diubah menjadi 128 dengan tujuan mempercepat performa.

Variasi CoAtNet-6 dan CoAtNet-7. Sumber: https://arxiv.org/abs/2106.04803

Kesimpulan

CoAtNet merupakan model state-of-the-art computer vision yang mengkombinasikan generalisasi CNN dan kapasitas besar Transformer. Kombinasi kedua jenis blok ini membuat CoAtNet mampu memiliki performa yang sangat baik unttuk segala ukuran data, baik kecil seperti ImageNet maupun besar seperti JFT. CoAtNet memiliki 2 parameter yakni jumlah blok (L) dan output channels (D). Kedua parameter inilah yang membuat CoAtNet memiliki 8 variasi.

Referensi

https://ai.googleblog.com/2021/09/toward-fast-and-accurate-neural.html

https://ai.googleblog.com/2020/12/transformers-for-image-recognition-at.html

--

--