March 21, 2025

MUHAMMAD GHIFARY

Arsitektur Transformer (Vaswani et al. 2017) telah menjadi fenomena pada bidang AI, melahirkan berbagai model fondasi (foundational models) terutama untuk generative AI. Arsitektur ini merevolusi pendekatan pemecahan masalah dengan memanfaatkan attention mechanism (Bahdanau et al. 2015) dalam ranah pemrosesan bahasa alami (Natural Language Processing/NLP). Namun, sebelum tahun 2020, penerapan Transformer di bidang Computer Vision (CV) belum mencapai keberhasilan yang serupa seperti di NLP — model-model berbasis convolution networks masih mendominasi ranah CV.

Vision Transformer (ViT) (Dosovitskiy et al. 2021) dirancang untuk menjadi solusi bagi permasalahan di Computer Vision, hanya dengan mengandalkan attention mechanism / tanpa menggunakan lapisan convolution. ViT terinspirasi dari skalabilitas pelatihan Transformer — performa arsitektur Transformer dapat terus meningkat seiring penambahan data latih, lebih baik dibandingkan sequence model lainnya, e.g., recurrent networks.

ViT bukan yang pertama dalam mengajukan ide untuk mengganti convolution sepenuhnya dengan attention mechanism. Terdapat beberapa percobaan sebelumnya yang melakukan hal tersebut (Ramachandran et al. 2019, Wang et al. 2020), namun terkendala kompleksitas komputasi dikarenakan desain mekanisme attention yang lebih kompleks dibandingkan Transformer versi awal. ViT mencoba kembali lagi ke mekanisme attention yang lebih simpel. Dengan beberapa trik khusus, ViT mampu menawarkan performa yang setara atau lebih baik dibandingkan model berbasis convolution.

Pada paper (Dosovitskiy et al. 2021), dilaporkan hasil evaluasi untuk pemecahan problem klasifikasi objek, bahwa ViT memiliki performa agak sedikit dibawah ResNet (model state-of-the-art berbasis convolution) jika jumlah data latih berukuran medium, misalnya seperti pada dataset ImageNet dengan sampel gambar sebanyak ~1 juta. Namun pada kasus dengan data latih yang lebih banyak (14 - 300 juta), ViT memiliki performa lebih baik dibandingkan ResNet. Hal ini secara empiris membuktikan hipotesis skalabilitas pelatihan dari ViT dibandingkan model berbasis convolution.

Artikel ini membahas implementasi arsitektur dan pelatihan ViT dengan menggunakan Keras 3.

Arsitektur Vision Transformer (ViT)

Agak berbeda dengan model asal Transformer yang berbentuk encoder-decoder karena dirancang untuk dilatih secara self-supervised pada data sekuensial, ViT merupakan model encoder-only yang dilatih secara supervised. Namun, arsitektur encoder ViT sangat mirip dengan encoder pada Transformer*,* yaitu tersusun dari beberapa blok lapisan yang didalamnya terdapat multi head attention.

Screenshot 2025-03-09 at 13.54.13.png

Perbedaan lainnya adalah bagaimana input diproses. Desain Transformer secara natural cocok untuk memproses data sekuensial seperti teks, namun tidak serta merta cocok untuk data gambar. ViT mengakalinya dengan memecah gambar menjadi kotak-kotak kecil (diistilahkan sebagai patches), misalnya berukuran 16 x 16 untuk tiap patch, yang dianggap sebagai token untuk diproses pada lapisan berikutnya.

Tidak hanya itu, tiap-tiap patch akan diasosiasikan dengan informasi indeks posisi, untuk secara eksplisit menyatakan bahwa, misalnya, “patch A berada di posisi ke-1”.

Secara umum, arsitektur ViT tersusun dari operasi-operasi berikut:

  1. Patch Extractor: memecah gambar menjadi kotak-kotak kecil (patches)
  2. Patch Encoder: mengkonversi patch menjadi embeddings melalui proyeksi linear yang hasilnya diasosiasikan dengan informasi posisi (position embedding)
  3. Encoder Block: blok lapisan utama pada ViT yang terdiri dari Multi-Head Attention (MHA) dan Multi-Layer Perceptron (MLP) secara berulang.
  4. Classification Head: lapisan paling atas yang terkoneksi dengan label supervisi.

Kita akan bedah satu-persatu.

I. Patch Extractor

Untuk membagi suatu gambar jadi kotak-kotak kecil, kita dapat memanfaatkan fungsi keras.ops.image.extract_patches . Cukup untuk memberitahu seberapa besar dimensi patch yang diharapkan (patch_size), fungsi tersebut akan mengembalikan himpunan patches.