מקודד אוטומטי וריאציוני (VAE)

יסודות בינה מלאכותית

הגדרה

מקודד אוטומטי וריאציוני (VAE) הוא גרסה הסתברותית של מקודד אוטומטי, שבה הרשת לומדת לתאר את הייצוג הדחוס כהתפלגות-הסתברות ולא כווקטור קבוע — צעד שהופך אותו לכלי גנרטיבי לכל דבר, מסוגל ליצור דוגמאות חדשות ומקוריות ולא רק לשחזר קיימות.

ממקודד-דוחס למודל גנרטיבי

מקודד אוטומטי רגיל לומד לדחוס קלט לייצוג צר ואז לשחזר אותו בחזרה — אבל הייצוג הדחוס שהוא לומד הוא נקודה בודדת וקבועה במרחב, בלי מבנה שמאפשר לדגום ממנו דוגמאות חדשות באופן מבוקר. מקודד אוטומטי וריאציוני (VAE) משנה את זה מהיסוד: במקום שהמקודד יפיק וקטור קבוע אחד לכל קלט, הוא מפיק שני וקטורים — ממוצע ושונות — שמגדירים יחד התפלגות-הסתברות (בדרך-כלל גאוסיאנית) סביב אותו קלט במרחב החבוי. הפלט בפועל נדגם מתוך ההתפלגות הזו, לא נלקח ישירות ממנה. ההבדל הזה, שנשמע טכני, הוא בדיוק מה שהופך VAE לכלי גנרטיבי אמיתי: אחרי האימון אפשר לדגום נקודה כלשהי מהמרחב החבוי — גם כזו שלא הגיעה מקלט ספציפי — ולהעביר אותה דרך המפענח כדי לקבל דוגמה חדשה ומקורית.

המקור: קינגמה ולינג, 2013

VAE הוצג בדצמבר 2013 במאמר "Auto-Encoding Variational Bayes" של דידריק קינגמה ומקס וולינג (arXiv:1312.6114), שעסק במקורו בבעיה כללית יותר מתחום ההסקה הבייסיאנית — איך ללמוד ולהסיק ביעילות במודלים הסתברותיים עם משתנים חבויים רציפים, כשהפילוג-האחורי שלהם בלתי-נסבל לחישוב ישיר. הפתרון שהם הציעו, המכונה אלגוריתם Auto-Encoding VB, מבוסס על מה שנקרא "תעלול הפרמטריזציה-מחדש" (reparameterization trick): דרך לדגום מהתפלגות באופן שעדיין מאפשר להעביר דרכו גרדיאנטים באימון רגיל בשיטת ירידת-גרדיאנט. כשמיישמים את הרעיון הזה תוך שימוש ברשתות-נוירונים כמקודד וכמפענח — התוצאה היא בדיוק ארכיטקטורת ה-VAE המוכרת כיום.

פונקציית-האימון: שני יעדים במקביל

אימון VAE מאזן בין שני מרכיבים בפונקציית-מטרה אחת, המכונה "הגבול-התחתון על העדות" (ELBO — Evidence Lower Bound). המרכיב הראשון הוא שגיאת-שחזור רגילה — כמה קרוב הפלט המשוחזר לקלט המקורי, בדיוק כמו במקודד אוטומטי רגיל. המרכיב השני הוא מרחק קולבק-לייבלר (KL divergence) בין ההתפלגות שהמקודד למד לבין התפלגות-מוצא פשוטה וקבועה מראש, לרוב גאוסיאנית סטנדרטית. המרכיב השני הזה הוא שמכריח את כל ההתפלגויות הנלמדות להתקבץ סביב מבנה משותף וחלק במרחב החבוי, במקום להתפזר באופן שרירותי — ובזכות זה אפשר לדגום ממנו נקודה חדשה כלשהי ולקבל תוצאה סבירה, לא רעש חסר-משמעות.

לעומת מקודד אוטומטי רגיל ומכווץ-רעש

שלוש הגרסאות חולקות את אותה ארכיטקטורת בסיס — מקודד שמכווץ ומפענח שמרחיב — אך נבדלות במה שהן בעצם לומדות לעשות. מקודד אוטומטי רגיל לומד לדחוס ולשחזר קלט נתון, בלי כל אילוץ על מבנה המרחב החבוי. מקודד אוטומטי מכווץ-רעש לומד לשחזר גרסה נקייה מתוך קלט שפגמו בו במכוון, מה שמכריח אותו ללמוד תכונות עמידות יותר. VAE הולך צעד נוסף: הוא לא רק דוחס ומשחזר, אלא מעצב את המרחב החבוי כולו כהתפלגות רציפה שאפשר לדגום ממנה. התוצאה היא שדווקא VAE, ולא שתי הגרסאות האחרות, מתפקד כמודל גנרטיבי במובן המלא של המילה.

שימושים בפועל

VAE משמש ליצירת דוגמאות חדשות בתחומים שבהם חשוב שהמרחב החבוי יהיה חלק ומתמשך — למשל אינטרפולציה בין שתי דוגמאות קיימות (כמו מעבר הדרגתי בין שני פרצופים), עיצוב מולקולות חדשות בכימיה חישובית, ודחיסת-נתונים עם יכולת דגימה נלווית. הוא משמש גם לגילוי-חריגות באופן דומה למקודד אוטומטי רגיל — קלט שרחוק מהתפלגות-האימון משוחזר בצורה גרועה יחסית — ולפעמים כרכיב-קידום-אימון (pretraining) ברשתות גדולות יותר, בזכות המרחב החבוי המסודר שהוא מייצר.

מגבלה מוכרת: פלט מטושטש יחסית

החיסרון המוכר ביותר של VAE הוא איכות-פלט: תמונות שהוא יוצר נוטות להיראות מטושטשות יותר בהשוואה לרשת יריבה גנרטיבית (GAN) או למודל דיפוזיה, תופעה שקשורה לאופן שבו איבר הגבול-התחתון מעניש חריגה מההתפלגות הממוצעת. מצד שני, אימון VAE יציב באופן ניכר יותר מאימון GAN, שסובל לעיתים קרובות מקשיי-התכנסות ומ"קריסת-מצב" (mode collapse). בגלל הפשרה הזו, VAE נותר שימושי היום בעיקר כשהיציבות וה"מרחב חבוי שימושי" חשובים יותר מאיכות-תמונה מירבית, בעוד שיצירת-תמונות ברזולוציה גבוהה עברה ברובה למודלי-דיפוזיה.

שלוש גרסאות של מקודד אוטומטי
מקודד אוטומטי רגילמקודד אוטומטי מכווץ-רעשמקודד אוטומטי וריאציוני (VAE)
מה משתנה באימוןשום דבר — קלט ופלט זהיםהקלט מפוגם במכוון, הפלט נשאר נקיהמקודד מפיק התפלגות, לא וקטור קבוע
הייצוג החבויוקטור קבוע, ללא מבנה מיוחדוקטור קבוע, עמיד יותר לרעשהתפלגות-הסתברות רציפה
יכולת ליצור דוגמאות חדשותמוגבלת מאודמוגבלת מאודכן — זו המטרה המרכזית
שימוש טיפוסידחיסה, גילוי-חריגותניקוי-רעש, למידת-תכונות עמידותיצירת דוגמאות, אינטרפולציה

שאלות נפוצות ❓

מה ההבדל בין מקודד אוטומטי רגיל ל-VAE?

מקודד אוטומטי רגיל דוחס קלט לוקטור קבוע ומשחזר אותו; VAE מפיק במקום זה התפלגות-הסתברות סביב כל קלט, ולכן אפשר לדגום ממנו נקודות חדשות ולקבל דוגמאות מקוריות — לא רק לשחזר קיימות.

מה זה 'תעלול הפרמטריזציה-מחדש'?

שיטה שמאפשרת לדגום מהתפלגות-הסתברות בתוך הרשת בלי לחסום את זרימת הגרדיאנטים באימון — קינגמה ו-וולינג הציגו אותה במאמר המקורי מ-2013 כדי לאמן VAE בשיטת ירידת-גרדיאנט הרגילה.

האם VAE הוא מודל גנרטיבי אמיתי?

כן — בניגוד למקודד אוטומטי הרגיל שממנו הוא התפתח, VAE מסוגל לדגום נקודות חדשות מהמרחב החבוי וליצור דוגמאות מקוריות, לא רק לשחזר קלט קיים.

למה תמונות מ-VAE נראות מטושטשות יותר מתמונות מ-GAN?

מרכיב מרחק-קולבק-לייבלר בפונקציית האימון של VAE מעניש חריגה מהתפלגות ממוצעת וחלקה, מה שנוטה להוציא פלט מטושטש-מעט; GAN ומודלי-דיפוזיה, שאינם כפופים לאותו אילוץ, מגיעים בדרך-כלל לחדות גבוהה יותר, במחיר יציבות-אימון נמוכה יותר.