הכוכב הבא – תכנית הריאליטי של האלגוריתם GAN

מיועד ל- כל אחד (כתבה לא טכנית)

נכתב על ידי תמיר נווה

נתחיל בשאלה:

מי מזהה את השחקן הזה ובאיזה סרט הוא שיחק ?

תודה לאנבידיה

לא משנה מה עניתם, פשוט טעיתם!

התמונה הזו הינה תוצאה של אלגוריתם של אנבידיה המבוסס על GAN=Generative Adversarial Network שאומן על Database של סלבריטאים ומייצר סלבריטאים בקצב יותר גבוה מכל תכנית ריאליטי שיש כיום.

ז”א אין באמת אדם כזה במציאות אלא זו תמונה שנוצרה ע”י אלגוריתם שלמד טוב מאוד איך נראים תמונות של סלבריטאים ויצר (ג’ינרט) יש מאין תמונה חדשה שכזו!

רוצים להכיר עוד סלבריטאים שכאלו ?

הטירוף שנקרא GAN החל ב 2014 במאמר של Ian Goodfellow שהראה דרך מקורית וייחודית למודלים גנרטיביים Generative Models. מודלים גנרטיביים הינם אלגוריתמים שיוצרים data יש מאין, בין אם תמונות, וידאו, צלילים, קטעי מוסיקה או דיבור, טקסט או כל סוג אחר של מידע.

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

תודה ל Gan Zoo

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

כידוע רשת נוירונים צריך לאמן, ולפני האימון היא נותנת פלטים אקראיים ולא מעניינים.

ז”א במקרה שלנו רשת ה Generator הבלתי מאומנת תוציא בהתחלה תמונות של רעש לבן (ז”א תוציא תמונות שבוודאי לא אמיתיות) והרשת Discriminator שניתן לה תמונות לבחינה תחזיר בהתחלה תשובה מקרית (תמונה אוטנטית\תמונה לא אוטנטית ללא קשר למהי באמת התמונה הנבחנת).

ואז נותנים לרשתות לשחק בינהם משחק כזה כך שכל אחת תאתגר את השניה וכך כל אחת מהן תתאמן ותשתפר במשימתה עד שלבסוף הרשת Discriminator כבר תדע בקלות להגיד על תמונה אם היא נראית אמיתית או לא (למשל אם אכן כך נראית תמונה של סלבריטאי) והרשת Generator תדע בקלות ליצור תמונת סלבריטאי שנראית אמיתית.

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

בתרשים זה ניתן לראות איך מאמנים את הרשתות:

תיאור של אלגוריתם האימון של אלגוריתם GAN

רשת ה Discriminator מקבלת הן תמונות אמיתיות והן תמונות שיצרה רשת ה Generator.

מה שיוצר את האימון של כל רשת הוא הפידבק מתוצאת הרשת השנייה. הרי הצלחה עבור רשת ה Generator תהיה אם רשת ה Discriminator תגיד על הפלט שלה שהוא נראה אוטנטי. והצלחה עבור רשת ה Discriminator תהיה אם מצד אחד תגיד אוטנטי על תמונות אמיתיות ממאגר תמונות ומצד שני תגיד לא אוטנטי על תמונות שיצאו מרשת ה Generator.

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

מתעניין בהדרכה יותר טכנית ומעמיקה על הנושא ובעברית ?