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

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

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

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

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

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

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

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

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

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

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

$$E_x[log(D(x))] + E_z[log(1 - D(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_gen_loss להטמעה של פונקציית ההפסדים הזו.

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

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

ב-TF-GAN, אפשר לעיין ב-modified_variable_loss כדי להטמיע את השינוי הזה.

אובדן וסרשטיין

כברירת מחדל, ב-TF-GAN נעשה שימוש באבדן וסטרשטיין.

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

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

פונקציות ההפסדים עצמן פשוטות ופשוטות:

הפסד מבקרים: D(x) - D(G(z))

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

מחולל הפסדים: D(G(z))

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

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

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

ב-TF-GAN, כדאי לעיין ב-waserstein_מחולל_loss וב-waserstein_discriminator_loss להטמעות.

דרישות

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

יתרונות

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