CycleGan

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

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

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

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

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

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

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

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

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

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

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

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

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

אימון של GAN

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

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

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

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

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

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

תודה ל CycleGan

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