14 poin oleh xguru 2024-04-17 | 1 komentar | Bagikan ke WhatsApp
  • Vision Transformers (ViTs) adalah kelas model deep learning yang mencapai performa terbaik untuk tugas klasifikasi gambar
  • Menerapkan arsitektur transformer yang dirancang untuk pemrosesan bahasa alami (NLP) pada data gambar
  • Panduan ini membantu memahami bagaimana model-model ini bekerja dan seperti apa aliran data saat melewati model, dengan menggunakan visualisasi dan penjelasan sederhana

Poin utama

  • Gambar dibagi menjadi patch berukuran sama, yaitu p x p
  • Vektor yang mengenkode setiap patch memiliki ukuran tetap d
  • Sisanya adalah array berukuran n x d (n adalah jumlah patch gambar, d adalah ukuran embedding patch)
  • Untuk melatih model secara efektif, array embedding patch diperluas dengan vektor tambahan yang disebut token klasifikasi (token cls)
  • Karena tidak ada informasi posisi, ditambahkan vektor embedding posisi yang diinisialisasi secara acak
  • Setelah vektor embedding posisi ditambahkan, array berukuran (n+1) x d dimasukkan sebagai input ke transformer
  • Di dalam transformer
    • 10.1 Vektor embedding patch input transformer di-embedding secara linear menjadi beberapa vektor besar: Q - vektor query, K - vektor key, V - vektor value
    • 10.2 Untuk menghitung skor attention A, semua vektor query Q dikalikan dengan semua vektor key K
    • 10.3 Setelah matriks skor attention A terbentuk, fungsi softmax diterapkan pada semua baris agar jumlah setiap baris menjadi 1
    • 10.4 Untuk menghitung informasi konteks teragregasi bagi vektor embedding patch pertama, fokus diberikan pada baris pertama dari matriks attention dan elemennya digunakan sebagai bobot untuk vektor value V
    • 10.5 Proses ini kemudian diulang untuk semua baris dalam matriks skor attention, sehingga menghasilkan N+1 vektor informasi konteks teragregasi (satu untuk tiap patch + satu untuk token klasifikasi); tahap ini menyelesaikan head attention pertama
    • 10.6 Karena ini adalah multi-head attention, seluruh proses dari langkah 10.1 - 10.5 diulangi lagi dengan menggunakan pemetaan QKV yang berbeda
    • 10.7 Tahap terakhir layer attention. Semua head digabungkan lalu dipetakan menjadi vektor berukuran d, sama seperti embedding patch
    • 10.8 Pada tahap-tahap sebelumnya, layer attention telah selesai, dan jumlah embedding yang tersisa sama persis ukurannya dengan input
    • 10.9 Transformer banyak menggunakan residual connection, yang berarti cukup menambahkan input dari layer sebelumnya ke output layer saat ini
    • 10.10 Hasil dari residual connection (penjumlahan) menghasilkan vektor dengan ukuran yang sama
    • 10.11 Output ini melewati jaringan saraf feed-forward dengan fungsi aktivasi nonlinier
    • 10.12 Setelah tahap transformer ada residual connection lain, tetapi diabaikan di sini. Dengan demikian layer transformer selesai. Hasilnya, transformer menghasilkan output dengan ukuran yang sama seperti input
  • Seluruh tahap komputasi untuk transformer, dari langkah 10.1 hingga 10.12, kemudian diulang beberapa kali (misalnya 6 kali)
  • Langkah terakhir adalah mengidentifikasi output token klasifikasi. Vektor ini akan digunakan pada tahap akhir Vision Transformer
  • Pada tahap akhir, token output klasifikasi ini dan satu jaringan saraf fully connected lainnya digunakan untuk memprediksi probabilitas klasifikasi dari gambar input
  • Vision Transformer dilatih menggunakan fungsi loss cross-entropy standar yang membandingkan probabilitas kelas yang diprediksi dengan label kelas sebenarnya
    • Model dilatih menggunakan backpropagation dan gradient descent, yang memperbarui parameter model untuk meminimalkan fungsi loss

1 komentar

 
ninebow 2024-04-22

Saya melihat tulisan yang Anda perkenalkan dan merasa akan lebih baik jika dijelaskan bersama gambar, jadi saya meminta izin kepada penulis dan menerjemahkan teks aslinya: