GAN

ייצור דאטה טבלאי ע”י שימוש ב- Conditional Tabular GAN

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

נכתב על ידי yuval schreiber

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

דאטה טבלאי

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

הגדרת הבעיה- נניח דאטה טבלאי T שמכיל Nd עמודות בדידות ו-Nc עמודות רציפות, המטרה הינה לאמן מחולל G ללמוד לייצר דאטה טבלאי סינתטי מ-T שיקרא Tsyn
כדי להעריך את ביצועי המחולל מפצלים את T לאימון ומבחן, ובוחנים שני היבטים:

  1. התאמת הנתונים ב- Tsyn להתפלגות הנתונים ב- Ttrain
  2. השוואת מודל סיווג/רגרסיה מאומן על Tsyn עם מודל מאומן על Ttrain, מבחינת ביצועים על Ttest

GANGenerative Adversarial Network

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

התאמות שנעשות ב-CTGAN

השימוש ב-GAN רגיל לייצור דאטה טבלאי יוצר שתי בעיות שההתאמות ב-CTGAN באות לפתור:

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

לכל משתנה רציף תחילה מתאימים VGM (variational Gaussian mixture model), GM רגיל מנסה למצוא את k הגאוסיאנים שמייצגים הכי טוב את הנתונים דרך שימוש ב-EM, לעומת זאת VGM-ים יכולים להחליט מהו ה-k הכי מתאים לנתונים דרך סף משקולות.
לאחר שנמצאו k (בדוגמה מעלה k=3) ההתפלגויות שממדלות הכי טוב את המשתנה הרציף (בדוגמה מעלה עמודה i), מעריכים את ההסתברויות (בדוגמה מעלה ρ1,ρ23) להשתייכות הדגימה (בדוגמה מעלה j) לכל אחת מההתפלגויות, מהן דוגמים את ההתפלגות הנבחרת (מסומנת ב- β), ואז מייצגים את ערך הדגימה בתוך ההתפלגות שלה (כמה היא חשובה בתוך הגאוסיאן שלה) ע״י שימוש ב-α , כאשר η הינו השכיח ו-φ הינה סטיית התקן של ההתפלגות.
כעת עבור כל דגימה המודל יקבל במקום הערכים הרציפים,שרשור של α ו-β  של כל העמודות הרציפות, עם וקטורי האחד חם של העמודות הבדידות.

2. דגימה הוגנת של משתנים בדידים– באימון GAN רעש הקלט מיוצר מהתפלגות פריורית (לרוב גאוסיאנית מרובת משתנים), דגימה זו עבור משתנים בדידים עשויה להחמיץ מידע על התפלגותם ולשמר את חוסר האיזון בדאטה, נרצה לבצע דגימה מחדש בדרך שמאפשרת דגימה שווה בין ערכים דיסקרטיים שונים בזמן האימון, ושחזור ההתפלגות האמיתית בזמן המבחן.
הפתרון המוצע מורכב מ-3 אלמנטי מפתח:
a. וקטור מותנה– וקטור אשר מכיל מידע על המשתנים הבדידים, ומשתמשים בו כדי לכפות על המחולל לייצר דגימות משתנים בדידים עם התפלגות דומה לנתוני האימון.
הוקטור מכיל שרשור של כל וקטורי אחד חם של העמודות הבדידות, כך שכל הערכים הינם 0 מלבד קטגוריה אחת מאחת העמודות הבדידות, והוא מאלץ את המחולל לייצר דגימה מקטגוריה נבחרת זו.
b. הפסד המחולל– כדי לוודא שהאילוץ אכן מתקיים מענישים את פונקציית ההפסד של המחולל ע”י הוספת CE בין החלק של העמודה בה יש 1 בוקטור המותנה, לחלק של אותה עמודה בדגימה המיוצרת.
c. אימון לפי דגימה– דוגם את התנאים לפיהם נוצר הוקטור המותנה, כך שההתפלגויות הנוצרות ע”י המחולל יתאימו להתפלגויות המשתנים הבדידים בנתוני האימון.
אימון לפי דגימה מתבצע כך:

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

קוד
חבילת פייתון רלוונטית והסבר על אופן השימוש בה

קישורים רלוונטיים

One Hot Encoding
EM
CTGAN

Posted by yuval schreiber in deep

הבינה המלאכותית שמנהלת את הפירסום באינטרנט – Amobee

המאוריין: אלון רוזנטל מנהל קבוצת ה DataSciense

רקע

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

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

לניתוח וקבלת ההחלטה המהירה הזו יש חלק ניכר לענקית אמובי.

באמובי יש צוות חזק שעוסק בעיקר ב NLP. לא מזמן זכינו במקום הראשון בתחרות Sentiment Detection ב WASA2018

כמה  אנשי  פיתוח  ? איך מחולקים  ?

קבוצת ה Datasciense של המרכז בארץ מונים 6 מפתחים.

כולם בעלי יכולות תיכנות גבוהות.

שלושה דאטאסיינס, שני מהנדסי Big Data, ואחד גם וגם.

מהם  המוצרים  בחברה ?

אתאר את עיקרי השירותים שאנו מציעים:

  • לספק אנליטיקה על משתמשים (גולשים). שזה אומר למשל פילוג של גיל, מין, מוצא והרגלי גלישה.
  • ניתוח (parsing) של דפי אינטרנט לצורך טירגוט (targeting) ובחירה של פרסומות רלוונטיות
  • מעקב אחרי קמפיינים שיווקיים ברשת

אילו חלקים במוצר מצריכים אלגוריתמיקה ?

כל השירותים שהזכרתי קודם מצריכים אלגוריתמיקה, בעיקר בתחום ה NLP ובייצוג משתמשים.

אחלק את עיקרי הפעילות שלנו לשתים:

תחום ה User Profiling עוסק בהיסטוריה של ארועים והגלישה שיש על המשתמש.

חשוב להבין שעל כל משתמש יש מגוון מקורות מידע: ההתנהגות שלו ברשת, במובייל, ובטלוויזיה.

המטרה לאפשר פילוח של המשתמשים לפי בקשה.

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

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

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

בעיות NLP קלאסיות כמו Sentiment Detection, Topic Detection בכדי להחליט איזו פרסומת תתאים

לאיזה משתמש ולאיזה עמוד.

מה עובד לכם טוב ?

הפתרונות לבעיות ה NLP שלנו השתדרגו משמעותית עם השימוש ב ,Language Modeling שזה קונספט די חדש (מהשנתיים האחרונות).

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

מה מאתגר אתכם ?

אנחנו מנסים לשפר את ה State of the art  של מודל השפה וזה מאוד מאתגר.

למשל לוקחים את הכי טוב של גוגל Bert ומשלבים עם Evolved Transformer.

בעיות שפתרתם בדרך יצירתית ?

לגבי ה Topic Classification יש דרישה מהתעשייה שהתוצאות יהיו היררכיות, ז”א במבנה של עץ. למשל:

ספורט – > פוטבול -> שחקן מפורסם

רכב – > אופנועים

        -> מכוניות מירוץ

       -> ג’יפים

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

התבססו על מודל שפה עם וקטורים למאמר וברשת שפיתחנו יש משקלים משותפים לכל פרדיקציה של נושא ושל תת נושא ופונקציות המחיר (Loss functions) גם כן היררכיות.

כך שלמעשה מהקלט הגולמי חוזים את התת נושא.

ממש תפרנו את הרשת לבעיה וזה היה יפה!

ספר על משימת איסוף ה DB אצלכם ? (מי עושה ? מי בודק ? מי מתייג ? מי מנהל ?)

יש לנו כמות לא שגרתית של Data והשימוש בו מאוד תלוי משימה.

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

מהם אתגרי העתיד ?

  • השלמה ואחידות המידע על היוזרים שהמידעים שלהם מגיע ממקורות שונים מבוסס GAN.
  • שיפור מודל השפה כי הכל מבוסס עליו
Posted by תמיר נווה in companies

לחולל DATA חדש כדי לשפר סיווג (הרחבת Data בעזרת GAN)

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

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

מה עושים כשאין מספיק Data ?

כשרוצים לאמן רשת Deep Learning ואין מספיק Data ישנם מספר שיטות מה לעשות, העיקריות הינן:

  • – Data Augmentation (למשל בתמונות: סיבובים, הזזות, הרעשות, מחיקות, שינויי הארה)
  • – הקטנת המודל
  • – יצירת DB סינטטי
  • – עזרה לאימון ע”י Data Preprocessing (למשל בתמונות Cropping מתוך הבנה מה חשוב ומה מיותר בתמונה על מנת לסווג)

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

רציתי להתעמק ולהבין למה שזה יעבוד ועד כמה זה בכלל משפר תוצאות ?

גיגול קצר הביא אותי לשני המאמרים האלו: (ששניהם אגב יצאו במרץ 2018 ואף אחד מהם לא מצטט את השני)

DATA AUGMENTATION GENERATIVE ADVERSARIAL NETWORKS

GAN-based Synthetic Medical Image Augmentation for increased CNN Performance in Liver Lesion Classification

בחרתי להתעמק במאמר הראשון מבין השניים (שנקרא בקיצור DAGAN), כי הם מצרפים לו קוד שאפילו רץ לי במכה ראשונה 🙂

בתמונות פנים הבאות ניתן לראות שהתמונות האמיתיות (לקוחות מ VGG-Face) הם רק בעמודה השמאלית הן של הגברים והן של הנשים, ובכל השאר העמודות התמונות מג’נרטות\מזויפות. (ז”א תוצר של DAGAN)

תודה ל DATA AUGMENTATION GENERATIVE ADVERSARIAL NETWORKS

איך בדיוק קורה הקסם ?

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

מדובר על Database המחולק לכמה מחלקות ומטרתנו להגדיל את ה DB כדי לשפר רשת סיווג (אחרת).

הרשת שמגדילה את ה DB מורכבת מGeneratror  ו Discriminator.

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

התרשים הבא (לקוח מהמאמר) והוא מסביר הכל:

תודה ל  DATA AUGMENTATION GENERATIVE ADVERSARIAL NETWORKS

מאמנים רשת Generator (צד שמאל בתרשים) המקבלת רעש גאוסיאני (z) ותמונה אמיתית (xi) ממחלקה c ועל בסיסם לג’נרט תמונה מזויפת (xg). ובמקביל לאמן רשת Discriminator (צד ימין בתרשים) להבדיל בין זוג תמונות אמיתי (xi, xj) ממחלקה c לבין זוג תמונות שאחת מהן אמיתית ואחת מזויפת (xi,xg) כאשר השניה (xg) נוצרה על בסיס הראשונה (xi).

בצד שמאל (הג’ינרוט) משתמשים במקודד-מפענח כאשר המפענח מקבל שירשור של הטלה לינארית ל z (הרעש המוגרל) ושל xi (התמונה האמיתית).

המימוש המוצע

הכותבים מימשו את הרעיון באופן הבא:

ה Generator (המחולק לEncoder  ול- Decoder) ממומש ע”י שילוב של UNet ושל ResNet והכותבים קוראים לו UResNet:

תודה ל DATA AUGMENTATION GENERATIVE ADVERSARIAL NETWORKS

ה Discriminator ממומש ע”י DenseNet.

סדרי גודל ותוצאות

ראשית נציין עובדה חשובה שכשהשוו תוצאות של ה classifier, בתוצאות ללא ה Gan Augmentation הם כן השתמשו ב Augmentation קלאסי (שכלל: סיבובים של 90 מעלות, הזזות, הוספת רעש לבן), ובתוצאות ים ה Gan Augmentation הם עשו גם Augmentation  קלאסי, מה שאומר שהגישה של ה Gan Augmentation באמת תרמה ביחס להוספת תמונות באופן רגיל.

הבחינה נעשתה על שלושה אתגרי קלאסיפיקציה:

האחד במאגר Omniglot שהינו מאגר של עשרות אלפי תמונות של 1623 אותיות שונות מחמישים שפות שונות בכתב יד. השני ממאגר תמונות פנים VGG-Face והשלישי ממאגר תמונות כתב יד EMNIST שהינו הרחבה של MNIST  הפופולארי.

השיפור בביצועי הקלאסיפיקציה משמעותי:

הבעיה עם Augmentation רגיל   עם Gan Augmentation 
Omniglot 69% 82%
EMNIST 73.9% 76%
VGG-Face 4.5% 12%

 

הריצה מאוד ארוכה אגב: 500 epochs על עשרות אלפי תמונות, חייבים כמה GPUים כדי להריץ בזמן סביר.

קישורים

ניתן להשתמש ב-DAGAN להרחבת DB כלשהוא של תמונות, כקופסה שחורה באמצעות הקוד הבא:

https://github.com/AntreasAntoniou/DAGAN

Posted by תמיר נווה in deep

CycleGan אומנות בשירות הבינה המלאכותית

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

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

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

אבל בכתבה זו נכיר את אחד היישומים המרשימים שנולדו כנגזרת של GAN=Generative Adversarial Networks שנקרא CycleGan:

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

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

כיוון שאין זוגות תמונות תואמות, הטריק של אלגוריתם CycleGan הינו לאמן המרה של תמונה מעולם תוכן א’ לעולם תוכן ב’, ולאמן בחזרה המרה של תמונות מעולם תוכן ב’ לעולם תוכן א’ כך שהמסלול המחזורי (א’ ל-ב’ ומשם ב’ ל-א’) יחזיר לנו תמונה דומה ככל הניתן למקור. אילוץ זה מחייב את ההמרה (מא’ ל-ב’) להיות כזה שהתמונה תיראה אותו דבר רק שהינה מעולם ב’. (ז”א הזברה שנוצרה מתמונת הסוס תהיה באותה התנוחה והזווית צילום של תמונת הסוס המקורית)

כדי להבין את אלגוריתם CycleGan צריך להבין איך אלגוריתם GAN (הבסיסי) עובד. אנסה בכל זאת לתת את המבנה גם לקורא שהדברים זרים לו:

 ישנן שתי זוגות של רשתות בסיפור הזה (Generator, Discriminator),

זוג אחד: המרה מעולם תוכן א’ ל-ב’ (Generator), ורשת זיהוי עולם תוכן ב’ (Discriminator).

זוג שני: (ההפוך) המרה מעולם תוכן ב’ ל-א’ (Generator), ורשת זיהוי עולם תוכן א’ (Discriminator).

מאמנים כל זוג רשתות כמו שמאמנים רשת GAN רגילה כמו בתרשים הסכמטי הבא:

אימון של GAN

ובדומה את זוג הרשתות השני.

כמו כן מאמנים את התהליך הציקלי (המחזורי) בשני הכיוונים שלו (ז”א מעולם תוכן א’ ל-ב’ ולהיפך), כך שתמונה שמקורה בעולם תוכן כלשהוא שחזרה לאותו עולם התוכן, אמורה להיות זהה ככל הניתן.

תרשים סכמטי עבור עולם תוכן א’:

ובדומה מאמנים עבור עולם תוכן ב’.

והתוצאות המדהימות מדברות בשם עצמן!

זו למשל תמונה שסווגה ככישלון ע”י כותבי המאמר, אם כי זהו כשלון מעניין לכל הדעות:

תודה ל CycleGan

Posted by תמיר נווה in deep

הכוכב הבא – תכנית הריאליטי של האלגוריתם 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.

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

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

Posted by תמיר נווה in deep