Vision transformer

Vision Transformer (ViT) הוא טרנספורמר המיועד למשימות עיבוד ראייה כגון זיהוי תמונה. הטרנספורמרים הראשונים שימשו בעיקר במשימות עיבוד שפה טבעית (NLP), כפי שהדגימו מודלים של שפה כמו BERT ו-GPT. לעומת זאת, מערכות עיבוד תמונה מסורתיות השתמשו ברשת עצבית קונבולוציונית (CNN). כך ניתן למצוא פרויקטים ידועים כמו Xception, ResNet, EfficientNet, DenseNet, ו-Inception. טרנספורמרים מודדים את היחסים בין זוגות של "טוקנים" שנקלטו במערכת (מילים, במקרה של מחרוזות טקסט), המכונים Attention. העלות היא ריבועית במספר הטוקנים. עבור תמונות, יחידת הניתוח הבסיסית היא הפיקסל. עם זאת, יחסי מחשוב עבור כל זוג פיקסלים בתמונה טיפוסית נחשבים כמעט בלתי אפשריים מבחינת יכולות הזיכרון והעיבוד הקיימים. טכנולוגיית ViT מחשבת יחסים בין פיקסלים בחלקים קטנים שונים של התמונה (למשל, 16x16 פיקסלים), בעלות מופחתת באופן דרסטי. הקטעים (עם הטבעות מיקום) ממוקמים ברצף. ההטבעות הן וקטורים הניתנים ללמידה. כל קטע מסודר ברצף ליניארי ומוכפל במטריצת ההטבעה. התוצאה, עם הטבעת המיקום מוזנת לטרנספורמר. כמו במקרה של BERT, תפקיד בסיסי במשימות הסיווג ממלא סוג הטוקן. טוקן מיוחד המשמש כקלט היחיד של ראש MLP הסופי מכיוון שהוא הושפע מכל האחרים. הארכיטקטורה לסיווג תמונה היא הנפוצה ביותר ומשתמשת רק ב-Transformer Encoder על מנת להפוך את טוקני הקלט השונים. עם זאת, ישנם גם יישומים אחרים שבהם נעשה שימוש גם בחלק המפענח של ארכיטקטורת הטרנספורמרים המסורתית. טרנספורמים הוצגו לראשונה בשנת 2017 במאמר הידוע "Attention is All You Need". ומאז הם התפשטו בתחום עיבוד השפה הטבעית והפכו במהרה לאחת הארכיטקטורות הנפוצות והמבטיחות ביותר של רשתות עצבים בתחום. בשנת 2020 הותאמו Vision Transformers למשימות ב-Computer Vision עם המאמר "תמונה שווה 16x16 מילים". הרעיון הוא בעצם לפרק תמונות קלט כסדרה של טלאים שברגע שהופנו לוקטורים, נתפסות כמילים בטרנספורמר רגיל. אם בתחום עיבוד השפה הטבעית מנגנון הקשב של הטרנספורמרים ניסה לזהות את היחסים בין מילים שונות של הטקסט שיש לנתח, ב-Computer Vision טרנספורמרי הראייה מנסים במקום זאת לזהות את היחסים בין חלקים שונים של תמונה. בשנת 2021 מודל על בסיס טרנספורמר הפגין ביצועים טובים יותר ויעילות רבה יותר מ-CNN בסיווג תמונות. באותה שנה הוצעו כמה גרסאות חשובות של ה-Vision Transformers. גרסאות אלו נועדו בעיקר להיות יעילות יותר, מדויקות יותר או מותאמות יותר לתחום ספציפי. בין הרלוונטיים ביותר הוא ה-Swin Transformer, שבאמצעות שינויים מסוימים במנגנון הקשב וגישה רב-שלבית השיג תוצאות מתקדמות בכמה מערכי נתונים לזיהוי אובייקטים כגון COCO. גרסה מעניינת נוספת היא ה-TimeSformer, המיועד להבנת משימות וידאו ומסוגל ללכוד מידע מרחבי וזמני באמצעות שימוש בתשומת לב מחולקת של מרחב-זמן. Vision Transformers הצליחו גם לצאת מהמעבדה לאחד התחומים החשובים ביותר של Computer Vision, רכב אוטונומי. הצורך הניכר בנתונים במהלך שלב ההכשרה חיוני למצוא שיטות חלופיות לאימון מודלים אלה, ותפקיד מרכזי ממלא כעת שיטות למידה בפיקוח עצמי. באמצעות גישות אלה, ניתן לאמן רשת עצבית בצורה כמעט אוטונומית, מה שמאפשר לה להסיק את המוזרויות של בעיה ספציפית מבלי לבנות מערך נתונים גדול או לספק לו תוויות שהוקצו במדויק. היכולת להכשיר Vision Transformer מבלי שיהיה לרשותו מערך ויזואלי ענק יכול להיות המפתח להפצה נרחבת של ארכיטקטורה חדשה ומבטיחה זו. Vision Transformers משתמשים בהרבה משימות Computer Vision עם תוצאות מעולות ובמקרים מסוימים אפילו חדישים. בין תחומי היישום הרלוונטיים ביותר הם: סיווג תמונה זיהוי אובייקטים זיהוי Deepfake של וידאו פילוח תמונה זיהוי אנומליות סינתזת תמונה ניתוח אשכולות נהיגה אוטונומית ישנם יישומים רבים של Vision Transformers והגרסאות שלו זמינות בקוד פתוח באינטרנט. הגרסאות העיקריות של ארכיטקטורה זו יושמו ב-PyTorch אך יישומים הפכו זמינים גם עבור TensorFlow. Igarashi, Yoshiyuki (2021-02-04). "Are You Ready for Vision Transformer (ViT)?". Medium. נבדק ב-2021-07-11. Coccomini, Davide (2021-05-03). "On DINO, Self-Distillation with no labels". Towards Data Science. נבדק ב-2021-10-03. Vaswani. "Attention Is All You Need". arXiv:1706.03762. Dosovitskiy. "An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale". arXiv:2010.11929. Coccomini, Davide (2021-03-31). "On Transformers, TimeSformers, and Attention. An exciting revolution from text to videos". Towards Data Science. Coccomini, Davide (2021-07-24). "Self-Supervised Learning in Vision Transformers". Towards Data Science. Salama, Khalid (2021-01-18). "Image classification with Vision Transformer". keras.io.