GAN קורס בינה מלאכותית : RB26-02

GAN (Generative Adversarial Network) 2014 היא רשת בינה מלאכותית שמורכבת משתי רשתות עצביות "מתחרות":
-
Generator (מייצרת) – יוצרת דוגמאות חדשות (למשל תמונות מזויפות).
-
Discriminator (מבחינה) – מנסה לזהות אם הדוגמאות אמיתיות (מהנתונים המקוריים) או מזויפות (מה-Generator).
השתיים מאמנות אחת את השנייה בתהליך משחק "אפס-סכום":
-
ה-Generator משתפר בלהטעות את ה-Discriminator.
-
ה-Discriminator משתפר בלזהות זיופים.
המטרה היא שה-Generator ילמד ליצור דוגמאות שנראות אמיתיות לגמרי.
שימושים נפוצים: יצירת תמונות ריאליסטיות, שיפור תמונות, Deepfake, הפקת מוזיקה, ועיבוד תמונה יצירתי.
שלבי הלמידה:
-
נותנים לו נתונים אמיתיים (מתוך סט האימון) עם תווית "אמיתי".
-
נותנים לו נתונים מזויפים שיצר ה־Generator עם תווית "מזויף".
-
הוא לומד להבדיל בין השניים על ידי חישוב שגיאה (loss) ועדכון המשקלים עם backpropagation.
איך זה קורה בפועל:
בכל שלב:
-
ה־Discriminator מקבל קלט (תמונה למשל).
-
הוא מפיק פלט בין 0 ל־1:
-
קרוב ל־1 = נראה לו אמיתי
-
קרוב ל־0 = נראה לו מזויף
-
-
הפלט הזה נבדק מול התשובה הנכונה (אמיתי/מזויף), והשגיאה נמדדת.
-
בעזרת השגיאה, מעדכנים את הרשת (המשקלים) כך שתשתפר בזיהוי.
דוגמה פשוטה:
אם ה־Generator מייצר תמונה של חתול עם 3 עיניים, ה־Discriminator יזהה שזה לא נראה כמו החתולים האמיתיים בסט האימון – ולכן יתייג זאת כמזויף.
ככל שמתקדם האימון – ה־Discriminator נעשה טוב יותר בזיהוי זיופים, מה שמכריח את ה־Generator להשתפר גם כן.
ברוב ה־GANs, גם ה־Discriminator וגם ה־Generator מבוססים על CNN – רשתות קונבולוציה, במיוחד כשעובדים עם תמונות.
למה CNN?
כי CNN מצוינות ב:
-
ניתוח תמונה לפי אזורים מקומיים (פילטרים).
-
זיהוי תבניות, מרקמים, קצוות, צורות – שזה בדיוק מה שה־Discriminator צריך.
סיכום:
רכיב | סוג רשת נפוץ | למה |
---|---|---|
Discriminator | CNN | כדי לזהות תבניות "אמיתיות" לעומת "מזויפות" בתמונה |
Generator | CNN (deconvolution / transpose conv) | כדי ליצור תמונה משכבת רעש |
ANN רגיל (Fully Connected):
משמש לפעמים ב־GANs פשוטים או עם קלט שאינו תמונה (למשל וקטורים או טקסט).
אבל בתמונות – CNN נותנת ביצועים ודיוק הרבה יותר טובים.
ברוב ה־GANs, גם ה־Discriminator וגם ה־Generator מבוססים על CNN – רשתות קונבולוציה, במיוחד כשעובדים עם תמונות.
למה CNN?
כי CNN מצוינות ב:
-
ניתוח תמונה לפי אזורים מקומיים (פילטרים).
-
זיהוי תבניות, מרקמים, קצוות, צורות – שזה בדיוק מה שה־Discriminator צריך.
סיכום:
רכיב | סוג רשת נפוץ | למה |
---|---|---|
Discriminator | CNN | כדי לזהות תבניות "אמיתיות" לעומת "מזויפות" בתמונה |
Generator | CNN (deconvolution / transpose conv) | כדי ליצור תמונה משכבת רעש |
ANN רגיל (Fully Connected):
משמש לפעמים ב־GANs פשוטים או עם קלט שאינו תמונה (למשל וקטורים או טקסט).
אבל בתמונות – CNN נותנת ביצועים ודיוק הרבה יותר טובים.

הכוונה היא ל־Pix2Pix – זהו GAN מותנה (Conditional GAN) שמשמש ל־תרגום תמונה לתמונה (Image-to-Image Translation).
🔧 איך Pix2Pix עובד:
בניגוד ל־GAN רגיל שמתחיל מווקטור רעש,
Pix2Pix מקבל תמונה קלט (למשל, סקיצה) ומייצר תמונה חדשה שמתאימה לה (למשל, תמונה צבעונית).
📦 רכיבים:
Generator – מבוסס על U-Net:
-
מקבל תמונה קלט (למשל, שרטוט).
-
יוצר פלט עם אותם ממדים (למשל, תמונה ריאליסטית).
-
מבנה U-Net מאפשר שימור פרטים עדינים עם skip-connections.
Discriminator – PatchGAN:
-
בודק אם כל "טלאי" קטן בתמונה (למשל 70×70) נראה אמיתי.
-
כך הדגש הוא על מרקם מקומי ולא רק על כל התמונה.
🎯 שימושים נפוצים:
-
מ־סקיצה לתמונה (edge → photo).
-
שיפור רזולוציה.
-
מ־תמונת יום → לילה.
-
שינוי מפת עומק לתמונה.

HOW GAN WORKS
🔄 1. שתי רשתות:
-
Generator (G): מנסה לייצר דגימות מזויפות שנראות אמיתיות.
-
Discriminator (D): מנסה להבחין בין דגימות אמיתיות למזויפות.
🧠 2. שלבי האימון (כל איטרציה):
א. מאמנים את ה־Discriminator:
-
מקבל דגימות אמיתיות (עם תווית 1).
-
מקבל דגימות מזויפות שנוצרו ע"י ה־Generator (עם תווית 0).
-
מחשב שגיאה → מעדכן משקלים.
ב. מאמנים את ה־Generator:
-
יוצר דגימות מזויפות.
-
שולח אותן ל־Discriminator.
-
המטרה: "לרמות" את ה־Discriminator (שיחשוב שהן אמיתיות).
-
חישוב שגיאה לפי הפלט של D → עדכון משקלי G.
🎯 מטרה כוללת:
-
G לומד לייצר דגימות ריאליסטיות.
-
D לומד להיות טוב בזיהוי זיופים.
-
כשהשניים מאוזנים, התמונות המזוייפות נראות אמיתיות לחלוטין.
איך ה-Discriminator יודע לזהות זיוף? מקבל 2 סטים של תמונות
אמיתיות ושמזויפות בזמן האימון
הוא לא יודע מראש. הוא לומד לזהות זיופים באופן הדרגתי, דרך אימון מונחה (Supervised Learning) על ההבדלים בין:
-
תמונות אמיתיות של חתולים (מתוך הדאטה).
-
תמונות מזויפות שה־Generator יצר.
🧠 מה הוא לומד בפועל?
במהלך האימון, ה־Discriminator לומד:
-
צורות אמיתיות של חתולים:
-
עיניים סימטריות.
-
מיקום אוזניים.
-
מבנה פנים טיפוסי.
-
-
מרקם טבעי:
-
פרווה, צללים, קווים חלקים.
-
-
רציפות הגיונית בתמונה:
-
לא יהיו עיוותים, חורים, אזורים מטושטשים מדי או מבנה לא טבעי.
-
ה מזינים ל־D בכל איטרציה?
שני סוגי דגימות:
מקור | מה זה? | מה D רואה? | תווית (label) |
---|---|---|---|
אמיתיות | תמונות מקוריות מה־dataset | real_image |
1 |
מזויפות | תמונות שנוצרו ע"י ה־Generator | fake_image |
0 |