פונקציות אובדן

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

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

  • minimax loss: פונקציית האובדן שנעשה בה שימוש במאמר שבו הוצגו GAN.
  • Wasserstein loss: פונקציית האובדן שמוגדרת כברירת מחדל למכשירי ההערכה של TF-GAN. התיאור הראשון שלהם מופיע במאמר מ-2017.

ב-TF-GAN מוטמעות גם פונקציות אובדן רבות אחרות.

פונקציית אובדן אחת או שתיים?

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

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

אובדני האנרגיה של הגנרטורים והמייחד נראים שונים בסוף, למרות שהם נגזרים מנוסחה אחת.

אובדן מינימלי מקסימלי

במאמר שבו הוצגו GAN, המנגנון ליצירת נתונים מנסה למזער את הפונקציה הבאה, בעוד שהמנגנון המבדיל מנסה למקסם אותה:

Ex[log(D(x))]+Ez[log(1D(G(z)))]

בפונקציה הזו:

  • הערך D(x) הוא האומדן של המבדיל לגבי ההסתברות שמופיעה מופע נתונים אמיתי x.
  • Ex הוא הערך הצפוי בכל המופעים של הנתונים האמיתיים.
  • G(z) הוא הפלט של המחולל כשנותנים לו את הרעש z.
  • הערך D(G(z)) הוא האומדן של המזהה לגבי ההסתברות שמופיעה מופע מזויף כ'אמיתי'.
  • Ez הוא הערך הצפוי של כל הקלט האקראי למחולל (למעשה, הערך הצפוי של כל המופעים המזויפים שנוצרו G(z)).
  • הנוסחה נובעת מהאנטרופי החוצה בין התפלגויות האמיתיות לבין התפלגויות שנוצרו.

הגנרטור לא יכול להשפיע ישירות על המונח log(D(x)) בפונקציה, ולכן, מבחינת הגנרטור, צמצום האובדן שווה לצמצום log(1 - D(G(z))).

ב-TF-GAN, אפשר למצוא הטמעה של פונקציית האובדן הזו ב-minimax_discriminator_loss וב-minimax_generator_loss.

אובדן מינימלי מותאם

במאמר המקורי על GAN צוין שפונקציית האובדן של minimax שצוינה למעלה עלולה לגרום ל-GAN להיתקע בשלבים המוקדמים של אימון ה-GAN, כשהמשימה של המבדיל קלה מאוד. לכן, במאמר מוצע לשנות את אובדן האנרגיה של המחולל כך שהמחולל ינסה למקסם את הערך של log D(G(z)).

ב-TF-GAN, אפשר למצוא הטמעה של השינוי הזה ב-modified_generator_loss.

אובדן Wasserstein

כברירת מחדל, ב-TF-GAN נעשה שימוש בWasserstein loss.

פונקציית האובדן הזו תלויה בשינוי של הסכימה של GAN (שנקראת Wasserstein GAN או WGAN), שבה המזהה לא מסווג למעשה את המופעים. לכל מכונה הוא מנפיק מספר. המספר הזה לא חייב להיות קטן מ-1 או גדול מ-0, ולכן אי אפשר להשתמש ב-0.5 כסף כדי להחליט אם מכונה היא אמיתית או מזויפת. אימון המזהה רק מנסה להגדיל את הפלט של המופעים האמיתיים בהשוואה למופעים המזויפים.

מכיוון שהוא לא יכול להבחין בין אמיתי לבין מזויף, המזהה של WGAN נקרא למעשה 'מבקר' במקום 'מזהה'. להבדל הזה יש חשיבות תיאורטית, אבל למטרות מעשיות אפשר להתייחס אליו כאל אישור לכך שהקלט לפונקציות האובדן לא חייב להיות ערכים של הסתברות.

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

Critic Loss: D(x) - D(G(z))

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

Generator Loss: D(G(z))

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

בפונקציות האלה:

  • D(x) הוא הפלט של הבדיקה למקרה אמיתי.
  • G(z) הוא הפלט של המחולל כשנותנים לו את הרעש z.
  • D(G(z)) הוא הפלט של הבדיקה למקרה מזויף.
  • הפלט של מבקר D לא חייב להיות בין 1 ל-0.
  • הנוסחאות נגזרות ממרחק Earth Mover בין התפלגויות האמיתית והממוזערת.

ב-TF-GAN, אפשר לעיין בהטמעות של wasserstein_generator_loss ו-Wasserstein_discriminator_loss.

דרישות

ההצדקה התיאורטית ל-Wasserstein GAN (או WGAN) מחייבת שהמשקלים בכל חלקי ה-GAN ייחתכו כדי שיישארו בטווח מוגבל.

יתרונות

מודלים של Wasserstein GAN פחות חשופים לסטאק מאשר מודלים של GAN שמבוססים על minimax, והם מונעים בעיות שקשורות לירידה חדה במדדי שיפוע. יתרון נוסף של מרחק Earth Mover הוא שהוא מדד אמיתי: מדד מרחק במרחב של הפצות הסתברות. אנtropy חוצה לא נחשב למדד במובן הזה.