בדל מהי רשת יריבות יצירתית (GAN)? - Unite.AI
צור קשר
כיתת אמן בינה מלאכותית:

AI 101

מהי רשת יריבות יצירתית (GAN)?

mm
מְעוּדכָּן on

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

הגדרת מודלים גנרטיביים ו-GANs

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

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

רשתות יריבות גנרטיביות היו הוצע לראשונה על ידי איאן גודפלו ב-2014, והם שופרו על ידי Alec Redford וחוקרים אחרים בשנת 2015, מה שהוביל לארכיטקטורה סטנדרטית עבור GANs. GANs הם למעשה שתי רשתות שונות המחוברות זו לזו. GANs הם מורכב משני חצאים: מודל דור ומודל אפליה, המכונה גם מחולל ומפלה.

ארכיטקטורת GAN

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

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

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

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

תהליך הדרכה של GAN

בואו נסתכל על כולו הַדְרָכָה תהליך למשימת יצירת תמונה היפותטית.

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

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

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

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

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

יישומי GAN

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

יצירת דוגמאות חדשות עבור מערכי נתונים

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

יצירת פנים אנושיות ייחודיות

האישה בתמונה זו לא קיימת. התמונה נוצרה על ידי StyleGAN. תמונה: Owlsmcgee דרך Wikimedia Commons, Public Domain (https://commons.wikimedia.org/wiki/File:Woman_1.jpg)

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

תרגום תמונה לתמונה

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

תרגום טקסט לתמונה

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

עריכה ותיקון תמונות

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

רזולוציית סופר

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

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