הבעיה ש-AdamW פתר: L2 regularization אינה "דעיכת-משקלים" באלגוריתמים אדפטיביים
רוב ספריות הלמידה-העמוקה יישמו את מה שהן כינו "דעיכת-משקלים" (Weight Decay) של Adam בתור רגולריזציית L2 רגילה — הוספת עונש פרופורציוני-לגודל-המשקל ישירות לגרדיאנט לפני שהוא נכנס לחישוב האדפטיבי. איליה לושצ'ילוב ופרנק הוטר הראו ב-2017 שזו טעות: "רגולריזציית L2 ורגולריזציית דעיכת-משקלים שקולות עבור ירידת-גרדיאנט סטוכסטית סטנדרטית (כשמשנים-קנה-מידה לפי קצב-הלמידה), אך כפי שאנו מדגימים זה אינו נכון עבור אלגוריתמים אדפטיביים של גרדיאנט, כגון Adam" — כך נכתב במפורש בתקציר המאמר שלהם. כלומר, השם "weight decay" שהשתמשו בו ספריות כמו TensorFlow ו-PyTorch עבור Adam הרגיל היה, לפני AdamW, פשוט לא-מדויק. המאמר עצמו פותח בכך שאלגוריתמים אדפטיביים כמו AdaGrad, RMSProp ו-Adam כבר הפכו ל"שיטת ברירת-המחדל לאימון רשתות-הזנה-קדימה ורשתות-חוזרות" — ולמרות זאת, התוצאות המובילות במערכי-נתונים לסיווג-תמונות כמו CIFAR-10 ו-CIFAR-100 עדיין הושגו בעיקר עם SGD ומומנטום, פער שהניע את המחקר הזה מלכתחילה.
למה ההבדל בכלל משנה: משקלים עם גרדיאנט-היסטורי גדול נענשים פחות
כשה-L2 מתערבב לתוך הגרדיאנט לפני חלוקתו בממוצע-הנע האדפטיבי של Adam (בדיוק אותו מנגנון שהגיע מ-RMSProp), גם עונש-הרגולריזציה עצמו מתחלק באותו קנה-מידה כמו הגרדיאנט של פונקציית-האובדן. התוצאה: משקל שצבר היסטוריית-גרדיאנטים גדולה מקבל בפועל פחות רגולריזציה יחסית ממשקל עם היסטוריה קטנה — אפקט לא-מכוון שלא היה קיים כלל ב-SGD הרגילה, ששם L2 ודעיכת-משקלים שקולות במדויק. לושצ'ילוב והוטר מראים שזה בדיוק אחד הגורמים שבגללם Adam הרגיל נוטה להכליל פחות טוב מ-SGD עם מומנטום על חלק ממשימות-הראייה-הממוחשבת.
הפתרון: לנתק את דעיכת-המשקלים מהעדכון האדפטיבי
הפתרון שהציעו פשוט מבחינה מבנית: להשאיר את חישובי-הממוצע-הנע (המומנטום והרגע-השני) תלויים אך ורק בגרדיאנט של פונקציית-האובדן, ולהחיל את דעיכת-המשקלים כצעד נפרד לגמרי — ישירות על המשקל עצמו, לא דרך הגרדיאנט. באלגוריתם AdamW, שורת-העדכון הסופית של כל פרמטר מורכבת משני איברים נפרדים: העדכון האדפטיבי הרגיל של Adam, ועוד מכפלה ישירה של המשקל בגורם-הדעיכה, ללא תלות בהיסטוריית-הגרדיאנטים שלו. השינוי הזה "מנתק את הבחירה האופטימלית של גורם-דעיכת-המשקלים מכיוונון קצב-הלמידה", כלשון המאמר עצמו — ומקל משמעותית על חיפוש-ההיפר-פרמטרים.
פרסום: מ"תיקון Adam" ב-2017 ל-ICLR 2019
איליה לושצ'ילוב ופרנק הוטר, מאוניברסיטת פרייבורג בגרמניה, העלו את המאמר לראשונה ל-arXiv בנובמבר 2017, תחת הכותרת המקורית "Fixing Weight Decay Regularization in Adam". הגרסה הסופית, בכותרת "Decoupled Weight Decay Regularization", התקבלה כמאמר-כנס רשמי ל-ICLR 2019. הקוד המלא של הניסויים פורסם בפומבי, וכתבו המחברים עצמם שדעיכת-המשקלים-המנותקת שהם הציעו "כבר אומצה על-ידי חוקרים רבים, והקהילה יישמה אותה ב-TensorFlow וב-PyTorch" עוד לפני שהמאמר עצמו התקבל רשמית לכנס.
התוצאה הנמדדת: שיפור-הכללה של 15% ותחרותיות מול SGD
במאמר עצמו נמדדה השפעת התיקון על משימות סיווג-תמונות סטנדרטיות (CIFAR-10 ו-ImageNet בגודל 32×32), על-פני טווח רחב של תקציבי-אימון (מ-100 עד 1,800 אפוכות) ולוחות-זמנים שונים של קצב-למידה. לפי המאמר, AdamW "משיג שיפור יחסי של 15% בשגיאת-המבחן" לעומת Adam הרגיל עם L2 regularization, ומאפשר לגרסאות של Adam "להתחרות עם SGD עם מומנטום על מערכי-נתונים לסיווג-תמונות (שעליהם הוא בעבר בדרך-כלל הפסיד לו)" — משפט מפורש מתוך תקציר המאמר.
AdamW היום: ברירת-המחדל בפועל לאימון מודלי-שפה-גדולים רבים
טבלת-תצורות-האימון המפורטת בסקר האקדמי המקיף "A Survey of Large Language Models" מראה ש-AdamW הוא האופטימייזר המדווח עבור מודלים בולטים כמו LLaMA, LLaMA 2, Falcon, GLM, OPT, Chinchilla ו-Galactica. עם זאת, אותה טבלה עצמה מראה ש-GPT-3, BLOOM, Gopher ו-MT-NLG מדווחים כמאומנים עם Adam הרגיל בלבד — כך שהתמונה מדויקת יותר כ"ברירת-המחדל בפועל אצל רוב המודלים הפתוחים-והגדולים המובילים", ולא כ"שימוש אוניברסלי גורף". בכל מקרה, AdamW הוא כיום אחד משני האופטימייזרים הנפוצים ביותר (יחד עם Adam הרגיל) לאימון טרנספורמרים בקנה-מידה גדול.