רובוטריקים הם מודל Deep Learning חזק מאוד שהצליח להפוך לסטנדרט במשימות רבות של עיבוד שפה טבעית והוא מוכן לחולל מהפכה גם בתחום ה-Computer Vision.
הכל התחיל ב-2017 כשגוגל בריין פרסמה את העיתון שנועד לשנות הכל, Attention Is All You Need [4]. חוקרים מיישמים את הארכיטקטורה החדשה הזו על מספר בעיות של עיבוד שפה טבעית, ומיד ניכר עד כמה זה עשוי להתגבר על חלק מהמגבלות שמציקות ל-RNN, המשמשים באופן מסורתי למשימות כמו תרגום משפה אחת לאחרת.
אם תוכן חינוכי מעמיק זה שימושי עבורך, הירשם לרשימת התפוצה של מחקרי AI שלנו להתריע כשאנחנו משחררים חומר חדש.
במהלך השנים, רובוטריקים הפכו למוסד בתחום עיבוד השפה הטבעית ו-Google Brain, ב-2020, שואל, האם הם יהיו יעילים באותה מידה בתמונות? התשובה היא כן, ה-Vision Transformers נולדו ועם כמה שינויים מקדימים בתמונות, הם מצליחים לנצל את הארכיטקטורה הקלאסית של הרובוטריקים ומגיעים עד מהרה לעדכניות בבעיות רבות גם בתחום זה.
ההתרגשות גדולה ואחרי כמה חודשים, בתחילת 2021, חוקרי פייסבוק פרסמו הפעם גרסה חדשה של הרובוטריקים, אולם במיוחד לווידאו, ה-TimeSformers. ברור שגם במקרה זה, עם כמה שינויים מבניים קלים הארכיטקטורה הזו מנצחת בקרוב בווידאו ופייסבוק מכריזה בפברואר 2021 שהיא תשתמש בה עם הסרטונים של הרשתות החברתיות שלה כדי ליצור מודלים חדשים למגוון רחב של מטרות.
למה אנחנו צריכים שנאים?
אבל בואו ניקח צעד אחורה ונחקור את המניעים שהניעו את חוקרי גוגל לחפש ארכיטקטורה חלופית חדשה לפתרון משימות עיבוד שפה טבעית.
באופן מסורתי, משימה כמו תרגום בוצעה באמצעות רשתות עצביות חוזרות, אשר ידועות כבעלות מספר בעיות. אחת הבעיות העיקריות היא הפעולה הרציפה שלו. לדוגמה, כדי לתרגם משפט מאנגלית לאיטלקית, עם סוג זה של רשתות, המילה הראשונה של המשפט לתרגום הועברה למקודד יחד עם מצב התחלתי, והמצב הבא הועבר לאחר מכן למקודד שני עם המילה השנייה של המשפט, וכך הלאה עד המילה האחרונה. המצב המתקבל מהמקודד האחרון מועבר לאחר מכן למפענח שמחזיר כפלט הן את המילה המתורגמת הראשונה והן את המצב הבא, המועבר למפענח אחר, וכן הלאה.
הבעיה כאן די ברורה, כדי להשלים את השלב הבא, אני חייב לקבל את התוצאה של השלב הקודם. זהו פגם גדול מכיוון שאתה לא מנצל את יכולת ההקבלה של מעבדי GPU מודרניים ובכך מפסיד מבחינת ביצועים. ישנן גם בעיות אחרות כמו פיצוץ שיפוע, חוסר יכולת לזהות תלות בין מילים רחוקות באותו משפט וכו'.
תשומת לב היא כל מה שאתה צריך?
לאחר מכן עלתה השאלה, האם יש מנגנון שאנו יכולים לחשב באופן מקביל המאפשר לנו לחלץ את המידע שאנו צריכים מהמשפט? התשובה היא כן, והמנגנון הזה הוא תשומת לב.
אם היינו מגדירים קשב שוכחים לרגע כל היבט טכני ויישום, איך היינו עושים זאת?
ניקח משפט לדוגמה ונשאל את עצמנו, תוך התמקדות במילה "נתן", באילו מילים נוספות במשפט עלי לשים את תשומת ליבי כדי להוסיף משמעות למילה זו? אני יכול לשאול את עצמי סדרה של שאלות, למשל, מי נתן? ובמקרה הזה, הייתי מתמקד במילה "אני", ואז אולי אשאל למי נתן? הפניתי את תשומת לבי במקרה הזה למילה צ'רלי ולבסוף, אפשר לשאול, מה נתן? סוף סוף התמקדות במילה אוכל.
אם אשאל את עצמי את השאלות הללו ואולי אעשה זאת עבור כל אחת מהמילים במשפט, אולי אוכל להבין את המשמעות וההיבטים. הבעיה בשלב זה היא, איך אני מיישם את המושג הזה בפועל?
כדי להבין את חישוב הקשב נוכל ליצור הקבלות לעולם מאגרי המידע. כאשר אנו מבצעים חיפוש במסד הנתונים אנו שולחים שאילתה (Q) ומחפשים בין הנתונים הזמינים מפתח אחד או יותר העונים על השאילתה. הפלט הוא הערך המשויך למפתח הרלוונטי ביותר לשאילתה.
מה שקורה במקרה של חישוב קשב דומה מאוד.
נתחיל בהסתכלות על המשפט שעליו לחשב את הקשב כקבוצה של וקטורים. כל מילה, באמצעות מנגנון הטבעת מילים, מקודדת לוקטור. אנו רואים בוקטורים אלו כמפתחות לחיפוש ביניהם, בהתייחס לשאילתה שאנו מחפשים, שיכולה להיות מילה מאותו משפט (תשומת לב עצמית) או ממשפט אחר. בשלב זה, עלינו לחשב את הדמיון בין השאילתה לכל אחד מהמפתחות הזמינים, באופן מתמטי באמצעות מוצר הנקודות בקנה מידה. תהליך זה יחזיר סדרה של ערכים אמיתיים, אולי שונים מאוד זה מזה, אך מכיוון שאנו רוצים לקבל משקלים בין 0 ל-1 שסכומם שווה ל-1, אנו מיישמים SoftMax על התוצאות. לאחר קבלת המשקולות עלינו להכפיל את המשקל של כל מילה, ולפיכך את הרלוונטיות שלה לשאילתה, בווקטור המייצג אותה. סוף סוף אנחנו מחזירים את השילוב של מוצרים אלה בתור וקטור הקשב.
כדי לבנות מנגנון זה אנו משתמשים בשכבות ליניאריות שמתחילות בוקטור הקלט, מייצרות מפתחות, שאילתות וערכים, על ידי כפל מטריצה. שילוב המפתחות והשאילתות יאפשר קבלת ההתאמה הנכונה ביותר בין שני הסטים הללו, אשר לאחר מכן התוצאה שלו תשולב עם הערכים על מנת לקבל את השילוב הרלוונטי ביותר.
אבל המנגנון הזה יספיק אם נרצה להתמקד במילה אחת, אבל מה אם נרצה להסתכל על המשפט מכמה נקודות מבט ואז לחשב כמה פעמים, במקביל, את תשומת הלב? אנו משתמשים במה שנקרא קשב רב ראשים, עם מבנה דומה שתוצאותיו פשוט משולבות בסוף כדי להחזיר וקטור יחיד ומסכם של כל הקשב המחושב.
כעת, לאחר שהבנו באיזה מנגנון להשתמש והקפדנו על יכולת ההקבלה שלו, בואו ננתח את המבנה שבתוכו מוטמעת הקשב הרב-ראשי ומי שמהווה את השנאי.
אם ניקח בחשבון תמיד משימת תרגום, בואו נתמקד תחילה בחלק השמאלי של התמונה, חלק הקידוד, שלוקח כקלט את כל המשפט שיש לתרגם מאנגלית לאיטלקית. כבר כאן רואים שיש מהפכה עצומה בהשוואה לגישת ה-RNN כי במקום לעבד את המשפט מילה במילה, הוא מוגש כולו. לפני שממשיכים בחישוב הקשב, הוקטורים המייצגים את המילים משולבים במנגנון קידוד מיקום, המבוסס על סינוס וקוסינוס, המטמיע בוקטורים מידע על מיקום המילים במשפט. זה חשוב מאוד כי אנחנו יודעים שבכל שפה מיקומן של המילים במשפט הוא יותר מהרלוונטי וזה מידע שאנחנו לא יכולים לאבד לחלוטין אם אנחנו רוצים לבצע הערכה נכונה. כל המידע הזה עובר למנגנון קשב רב ראשי, שתוצאתו מנורמלת ומועברת להזנה קדימה. ניתן לבצע את הקידוד N פעמים כדי לקבל מידע משמעותי יותר.
אבל המשפט שיש לתרגם הוא לא הקלט היחיד לשנאי, יש לנו בלוק שני, המפענח, שמקבל את הפלט של הביצוע הקודם של השנאי. אם נניח, למשל, שכבר תרגמנו את שתי המילים הראשונות ונרצה לחזות את המילה השלישית של המשפט באיטלקית, נעביר במפענח את שתי המילים המתורגמות הראשונות. הקידוד המיקום ותשומת הלב מרובה הראשים יבוצעו על המילים הללו והתוצאה תשולב עם תוצאת המקודד. תשומת הלב מחושבת מחדש על השילוב והתוצאה, באמצעות שכבה לינארית ו-softmax, תהיה וקטור של מילים מועמדות פוטנציאליות להיות המילה המתורגמת החדשה, עם הסתברות הקשורה לכל אחת מהן. באיטרציה הבאה, המפענח יקלוט גם את המילה הזו בנוסף לקודמות.
לכן המבנה הזה הוכיח את עצמו כיעיל וביצועי להפליא, זאת משום שהוא מעבד את המשפט בשלמותו ולא מילה במילה, שומר מידע על מיקומן של מילים במשפט ומנצל את הקשב שהוא מנגנון המסוגל לבטא ביעילות את תוכן המשפט.
אחרי כל ההסבר הנחמד הזה אפשר לחשוב ששנאים הם מושלמים וללא כל סוג של פגם. ברור שזה לא כך ואחת החוזקות שלו היא גם החולשה שלו, חישוב הקשב!
כדי לחשב את תשומת הלב של כל מילה ביחס לכל האחרות אני צריך לבצע חישובי N², שגם אם ניתנים להקבלה חלקית, עדיין יקרים מאוד. עם מורכבות כזו בואו נדמיין מה זה אומר לחשב את תשומת הלב, פעמים רבות, בפסקה של מאות ומאות מילים.
מבחינה גרפית אתה יכול לדמיין מטריצה שיש למלא בערכי הקשב של כל מילה בהשוואה לכל מילה אחרת וברור שיש לזה עלות רלוונטית. חשוב לציין כי באופן אופציונלי ובדרך כלל על המפענח, ניתן לחשב את תשומת הלב המסוכה שבה נמנעים לחישוב תשומת הלב בין מילת השאילתה לכל אחת שאחריה
יש שיטענו אז, אבל האם אנחנו באמת צריכים את כל המבנה הזה שנראה לעיל אם אז רבים מהיתרונות שמביאים שנאים קשורים דווקא למנגנון הקשב? אבל האם המאמר הראשון של Google Brain משנת 2017 לא אומר "Attention Is All You Need"? [4] בהחלט לגיטימי, אבל במרץ 2021, שוב פרסמו חוקרי גוגל מאמר שכותרתו "Attention Is Not All You Need" [6]. מה זה אומר? החוקרים ערכו ניסויים שניתחו את התנהגות מנגנון הקשב העצמי שנערך ללא אף אחד מהמרכיבים האחרים של השנאים וגילו שהוא מתכנס למטריצה דרגה 1 עם קצב מעריכי כפול. המשמעות היא שהמנגנון הזה, כשלעצמו, כמעט חסר תועלת. אז למה שנאים כל כך חזקים? זה נובע ממשיכה בין מנגנון הקשב העצמי שנוטה להפחית את דרגת המטריצה לבין שני מרכיבים נוספים של שנאים, חיבורי דילוג ו-MLP.
הראשון מאפשר לגוון את התפלגות הנתיבים תוך הימנעות מהשגת כל אותו נתיב וזה מקטין באופן דרסטי את ההסתברות שהמטריקס מצטמצם לדרגה 1. ה-MLP במקום זאת מצליח להעלות את הדרגה של המטריצה המתקבלת בשל אי-לינאריות שלה. לעומת זאת, הוכח שלנורמליזציה אין תפקיד בהימנעות מהתנהגות זו של מנגנון הקשב העצמי. לכן, תשומת לב היא לא כל מה שצריך, אבל ארכיטקטורת השנאים מצליחה לנצל אותה לטובתה כדי להגיע לתוצאות מרשימות.
רובוטריקים חזון
כשהגיעו לנקודה זו בשנת 2020, שוב תהו חוקרי גוגל, "אבל אם רובוטריקים נמצאו כל כך יעילים בתחום של עיבוד שפה טבעית, איך הם יפעלו עם תמונות?". קצת כמו שזה נעשה עם NLP, אנחנו מתחילים מהמושג תשומת לב אבל הפעם מיושמים על תמונות. בואו ננסה להבין את זה באמצעות דוגמה.
אם ניקח בחשבון תמונה של כלב עומד מול קיר, כל אחד מאיתנו יגיד שזו "תמונה של כלב" ולא "תמונה של קיר", זה בגלל שאנחנו ממקדים את תשומת הלב שלנו נושא דומיננטי ומבחין בתמונה וזה בדיוק מה שעושה מנגנון הקשב המופעל על תמונות.
כעת, לאחר שהבנו שניתן להרחיב את מושג הקשב גם לתמונות, עלינו רק למצוא דרך להזין תמונות לשנאי קלאסי.
אנחנו יודעים שהשנאי לוקח בתור וקטורים קלט, אלה של מילים, אז איך נוכל להמיר תמונה לוקטורים? אין ספק שפתרון ראשון יהיה להשתמש בכל הפיקסלים של התמונה ולשים אותם "inline" כדי להשיג וקטור. אבל בואו נעצור לרגע ונראה מה יקרה אם נבחר באפשרות הזו.
אמרנו בעבר שלחישוב הקשב יש מורכבות השווה ל-O(N²) זה אומר שאם נצטרך לחשב את המורכבות של כל פיקסל ביחס לכל האחרים, בתמונה ברזולוציה נמוכה כמו 256×256 פיקסלים היינו מקבלים כמות קיצונית של חישובים ובלתי ניתנת לפתרון עם המשאבים של היום. אז גישה זו בהחלט לא כדאית.
הפתרון די פשוט ובמאמר "תמונה שווה 16×16 מילים" [2] מוצע לחלק את התמונה לטלאים ולאחר מכן להמיר כל טלאי לוקטור באמצעות הקרנה ליניארית שתמפה את הטלאים בוקטור. מֶרחָב.
עכשיו אנחנו רק צריכים ללכת ולראות את הארכיטקטורה של Vision Transformer.
לאחר מכן התמונה מחולקת לטלאים, העוברים דרך הקרנה ליניארית כדי לקבל וקטורים, אשר משולבים עם מידע על מיקומו של התיקון בתוך התמונה ומוגשים לשנאי קלאסי. הוספה של מידע על המיקום המקורי של התיקון בתוך התמונה היא בסיסית מכיוון שבמהלך ההקרנה הליניארית המידע הזה יאבד גם אם חשוב מאוד להבין את תוכן התמונה במלואו. מוכנס וקטור נוסף שאינו תלוי בתמונה המנותחת ואשר משמש לקבלת מידע גלובלי על כל התמונה ולמעשה, הפלט המתאים לתיקון זה הוא היחיד שנחשב ומועבר ל-MLP שיחזור המעמד החזוי.
עם זאת, יש נקודה בתהליך הזה שבה יש אובדן מידע משמעותי מאוד. למעשה, במעבר מתיקון לוקטור, כל סוג של מידע על מיקום הפיקסלים בתיקון הולך לאיבוד. זה בהחלט דבר רציני, מציינים המחברים של Transformer in Transformer (TnT) [3] כי סידור הפיקסלים בתוך חלק מהתמונה לניתוח הוא מידע מסוים שלא נרצה לאבד כדי ליצור איכות נְבוּאָה.
מחברי TnT שאלו את עצמם אז האם אפשר למצוא דרך טובה יותר לגרום לוקטורים להגיש לשנאי?
ההצעה שלהם היא לקחת כל תיקון בודד (pxp) של התמונה, שהן בעצמן תמונות ב-3 ערוצי RGB, ולהפוך אותה לטנזור ערוץ c. לאחר מכן טנזור זה מחולק לחלקים p' עם p'
לאחר מכן הם משורשרים ומוקרנים באופן ליניארי על מנת להפוך אותם לגודל זהה לווקטור המתקבל מההקרנה הליניארית של התיקון המקורי ומשולב איתו.
על ידי כך גם וקטורי הקלט לשנאי יושפעו מסידור הפיקסלים בתוך הטלאים ועל ידי כך הצליחו המחברים לשפר עוד יותר את הביצועים במשימות ראיית מחשב שונות.
TimeSformers
לאור ההצלחות הגדולות של שנאים תחילה ב-NLP ולאחר מכן ביישומם לתמונות, בשנת 2021 ניסו חוקרי פייסבוק ליישם את הארכיטקטורה הזו גם בווידאו.
באופן אינטואיטיבי, ברור שאפשר לעשות זאת מאחר וכולנו יודעים שסרטון הוא לא יותר מסט של פריימים אחד אחרי השני ופרימים הם לא יותר מתמונות.
יש רק פרט אחד קטן שעושה אותם שונים מ-Vision Transformers, צריך לקחת בחשבון לא רק מקום אלא גם זמן. במקרה זה למעשה, כאשר אנו ניגשים לחשב את תשומת הלב איננו יכולים להסתכל על הפריימים כתמונות מבודדות אך עלינו למצוא צורה כלשהי של תשומת לב שלוקחת בחשבון את השונות המתרחשת בין פריימים עוקבים שכן היא מרכזית בהערכה של וידאו.
כדי לנסות לפתור בעיה זו, הציעו המחברים מספר מנגנוני קשב חדשים, מאלה המתמקדים אך ורק במרחב, המשמשים בעיקר כנקודת התייחסות, ועד לאלו שמחשבים את הקשב בצירי, מפוזרים או במשותף בין מרחב וזמן.
עם זאת, השיטה שהשיגה את התוצאות הטובות ביותר היא Divided Space-Time Attention. הוא מורכב, בהינתן מסגרת ברגע t ואחד מהטלאים שלו כשאילתה, לחשב את הקשב המרחבי על פני כל המסגרת ולאחר מכן את הקשב הזמני באותו תיקון של השאילתה אבל בפריים הקודם והבא.
אבל למה הגישה הזו עובדת כל כך טוב? הסיבה היא שהוא לומד תכונות נפרדות יותר מגישות אחרות ולכן הוא מסוגל להבין טוב יותר סרטונים מקטגוריות שונות. נוכל לראות זאת בהדמיה הבאה שבה כל סרטון מיוצג על ידי נקודה במרחב והצבע שלו מייצג את הקטגוריה אליה הוא שייך.
המחברים גם הטילו ספק ברלוונטיות של הרזולוציה של הסרטונים ומספר הפריימים בהם ומצאו שככל שהרזולוציה גבוהה יותר כך הדיוק של הדגם טוב יותר, עד נקודה מסוימת. לגבי מספר הפריימים, שוב ככל שמספר הפריימים עולה, גם הדיוק עולה. המעניין הוא שלא ניתן היה לבצע בדיקות עם מספר פריימים גבוה יותר מזה שמוצג בגרף ולכן פוטנציאל הדיוק עדיין יכול להשתפר, עדיין לא מצאנו את הגבול העליון של השיפור הזה.
ב-Vision Transformers ידוע כי מערך אימון גדול יותר מביא לרוב לדיוק טוב יותר. זה גם נבדק על ידי המחברים ב-TimeSformers ושוב, ככל שמספר סרטוני האימון הנחשבים עולה, גם הדיוק עולה.
מסקנות
מה נשאר לעשות עכשיו? רובוטריקים זה עתה נחתו בעולם הראייה הממוחשבת ונראה שהם יותר מנחושים להחליף את הרשתות הקונבולוציוניות המסורתיות או לפחות למלא לעצמם תפקיד חשוב בתחום זה. הקהילה המדעית סוערת אפוא לנסות לשפר עוד יותר את רובוטריקים, לשלב אותם עם טכניקות שונות וליישם אותם בבעיות אמיתיות, ולבסוף להיות מסוגלים לעשות דברים שלא היו אפשריים עד לאחרונה. ענקיות גדולות כמו פייסבוק וגוגל פועלות באופן פעיל לפיתוח ויישום רובוטריקים וכנראה שעדיין רק שרטנו את פני השטח.
אהבתם את הכתבה? הצטרפו אלי בלינקדאין! ואם אתם מתעניינים ברובוטריקים קרא את המאמר שלי על DINO!
הפניות ותובנות
[1] "גדאס ברטסיוס, הנג וואנג ולורנצו טורסאני". ”האם תשומת לב מרחב-זמן היא כל מה שאתה צריך כדי להבין וידאו?".
[2] "Alexey Dosovitskiy et al.". ”תמונה שווה 16 × 16 מילים: רובוטריקים לזיהוי תמונות בקנה מידה".
[3] "קאי האן ואח'". ”שנאי בשנאי".
[4] "אשיש ואסואני ואח'". ”תשומת הלב היא כל מה שאתה צריך".
[5] "Qizhe Xie et al.". ”אימון עצמי עם Noisy Student משפר את סיווג ImageNet".
[6] "Yihe Dong et al.", "תשומת לב היא לא כל מה שאתה צריך: תשומת לב טהורה מאבדת דירוג מעריכי כפליים עם עומק"
[7] "ניקולה מסינה ואח'", "Transformer Reasoning Network עבור התאמה ואחזור תמונה-טקסט"
[8] "ניקולה מסינה ואח'", "יישור טקסטואלי חזותי עדין עבור אחזור מודולרי באמצעות מקודדי שנאים"
[9] "דיוויד קוקומיני", "TimeSformer לסיווג וידאו עם קוד הדרכה"
מאמר זה פורסם במקור ב לקראת מדעי נתונים ופורסם מחדש ל- TOPBOTS באישור המחבר.
נהנה ממאמר זה? הירשם לעוד עדכוני AI.
נודיע לך כשנפרסם חינוך טכני נוסף.
מוצרים מקושרים
מקור: https://www.topbots.com/transformers-timesformers-and-attention/
- 2020
- 2021
- 7
- 9
- חֶשְׁבּוֹן
- יתרון
- AI
- ai מחקר
- תעשיות
- בין
- מכריז
- בקשה
- ארכיטקטורה
- AREA
- אמנות
- מאמר
- מחברים
- הטוב ביותר
- קצת
- לִבנוֹת
- שינוי
- ערוצים
- מיון
- קהילה
- לחשב
- ראייה ממוחשבת
- חיבורי
- תוכן
- נתונים
- מסד נתונים
- מאגרי מידע
- למידה עמוקה
- פרט
- לפתח
- חינוך
- חינוך
- אפקטיבי
- אנגלית
- הוצאת להורג
- לנצל
- פייסבוק
- תכונות
- בסופו של דבר
- ראשון
- פגם
- להתמקד
- מזון
- טופס
- gif
- גלוֹבָּלִי
- GPUs
- גדול
- כאן
- איך
- HTTPS
- עצום
- מאות
- תמונה
- זיהוי תמונה
- אימג'נט
- להגדיל
- מידע
- מוסד
- IT
- מפתח
- מפתחות
- שפה
- למידה
- לינקדין
- מַפָּה
- צעדה
- מודל
- חודשים
- שפה טבעית
- עיבוד שפה טבעית
- רשת
- רשתות
- עצביים
- רשתות עצביות
- NLP
- אפשרות
- להזמין
- אחר
- אחרים
- מאמר
- תיקון
- טלאים
- ביצועים
- תמונה
- פיקסל
- מגפה
- נבואה
- המוצר
- מוצרים
- הצעה
- איכות
- להפחית
- מחקר
- משאבים
- תוצאות
- החזרות
- חיפוש
- סדרה
- סט
- פָּשׁוּט
- מידה
- קטן
- So
- חֶברָתִי
- לפתור
- מֶרחָב
- מרחבית
- התחלה
- מדינה
- סטודנט
- הוגש
- משטח
- טכני
- בדיקות
- הגרף
- זמן
- הדרכה
- תרגום
- עדכונים
- us
- ערך
- וִידֵאוֹ
- וידאו
- לצפיה
- חזון
- ראיה
- מִלחָמָה
- מי
- בתוך
- מילים
- תיק עבודות
- עוֹלָם
- ראוי
- שנים