✕ סגור 
צור קשר
תודה על ההתעניינות .

Thank you! Your submission has been received!

Oops! Something went wrong while submitting the form

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

תמיר נווה
|
קלה
|
Jul 17, 2018
להרשמה לניוזלטר

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

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

 

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

 

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

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

כדי להבין את אלגוריתם CycleGan צריך להבין איך אלגוריתם GAN (הבסיסי) עובד.

אנסה להסביר את המבנה גם לקורא שהדברים זרים לו: ישנן שתי זוגות של רשתות בסיפור הזה (Generator, Discriminator):

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

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

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

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

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

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

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

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

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

מאת: תמיר נווה, פרילנסר- מומחה פיתוח אלגוריתמים

ai-blog.co.il

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

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

 

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

 

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

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

כדי להבין את אלגוריתם CycleGan צריך להבין איך אלגוריתם GAN (הבסיסי) עובד.

אנסה להסביר את המבנה גם לקורא שהדברים זרים לו: ישנן שתי זוגות של רשתות בסיפור הזה (Generator, Discriminator):

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

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

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

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

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

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

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

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

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

מאת: תמיר נווה, פרילנסר- מומחה פיתוח אלגוריתמים

ai-blog.co.il

תמיר נווה
בואו נעבוד ביחד
צרו קשר