Xlera8

מבוא למודלים של דיפוזיה ללמידת מכונה

מאמר זה פורסם במקור ב AssemblyAI ופורסם מחדש ב-TOPBOTS באישור המחבר.

דגמי דיפוזיה הם דגמים גנרטיביים אשר צוברים פופולריות משמעותית בשנים האחרונות, ומסיבה טובה. קומץ מאמרים מכובדים שפורסמו בשנות ה-2020 לבד הראו לעולם מה מסוגלים מודלים של דיפוזיה, כמו לנצח את GANs[6] על סינתזת תמונות. לאחרונה, מתרגלים ראו שימוש במודלים של דיפוזיה DALL-E2, מודל יצירת התמונות של OpenAI שפורסם בחודש שעבר.

תמונות שונות שנוצרו על ידי DALL-E 2 (מָקוֹר).

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

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

דגמי דיפוזיה - מבוא

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

ניתן להשתמש במודלים של דיפוזיה ליצירת תמונות מרעש (מותאם מ מָקוֹר)

ליתר דיוק, מודל דיפוזיה הוא מודל משתנה סמוי אשר ממפה למרחב הסמוי באמצעות שרשרת קבועה של מרקוב. שרשרת זו מוסיפה בהדרגה רעש לנתונים על מנת להשיג את ה-q(x) האחורי המשוער1:ת|x0), כאשר x1,…,איקסT הם המשתנים הסמויים בעלי מימדיות זהה ל-x0. באיור למטה, אנו רואים שרשרת מרקוב כזו באה לידי ביטוי עבור נתוני תמונה.

בסופו של דבר, התמונה עוברת טרנספורמציה אסימפטוטית לרעש גאוסי טהור. ה מטרה של אימון מודל דיפוזיה הוא ללמוד את להפוך תהליך – כלומר הדרכה עמ'θ(xt-1|xt). על ידי מעבר לאחור לאורך השרשרת הזו, נוכל ליצור נתונים חדשים.

היתרונות של דגמי דיפוזיה

כפי שהוזכר לעיל, המחקר על מודלים של דיפוזיה התפוצץ בשנים האחרונות. בהשראת התרמודינמיקה ללא שיווי משקל[1], דגמי דיפוזיה מייצרים כיום איכות תמונה עדכנית, דוגמאות להן ניתן לראות להלן:

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

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

דגמי דיפוזיה - צלילה עמוקה

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

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

הערה מתמטית

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

שתי ההצהרות הללו שוות ערך. זה

כדי להבין מדוע, נשתמש בניצול קל לרעה של סימון על ידי טענה

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

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

איפה β1,…,βT הוא לוח זמנים של שונות (לומד או קבוע) אשר, אם הוא מתנהג היטב, מבטיח זאת xT הוא כמעט גאוס איזוטרופי עבור T גדול מספיק.

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

כפי שהוזכר קודם לכן, ה"קסם" של דגמי הדיפוזיה מגיע ב תהליך הפוך. במהלך האימון, המודל לומד להפוך את תהליך הדיפוזיה הזה על מנת לייצר נתונים חדשים. החל מהרעש הגאוסי הטהור p(xT):=N(xT,0,I) המודל לומד את ההתפלגות המשותפת pθ(x0:ת) כפי ש

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

הדרכה

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

פירוט סימון

שימו לב כי לVLB הוא מבחינה טכנית העליון bound (השלילי של ELBO) שאנו מנסים למזער, אך אנו מתייחסים אליו כאל LVLB לעקביות עם הספרות.

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

מהי סטיית KL?

הצורה המתמטית של סטיית KL עבור התפלגויות רציפות היא

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

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

יְצִיקָה לבלב במונחים של פערי KL

כפי שהוזכר קודם לכן, יתכן [1] לשכתב את LVLB כמעט לחלוטין במונחים של הבדלי KL:

איפה

פרטי גזירה

גבול הווריאציה שווה ל

החלפת ההתפלגויות בהגדרות שלהן בהינתן הנחת מרקוב שלנו, אנו מקבלים

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

באמצעות משפט בייס והנחת מרקוב שלנו, הביטוי הזה הופך

לאחר מכן חילקנו את המונח האמצעי באמצעות כללי יומן

לבודד את הקדנציה השנייה, אנו רואים

מחברים את זה בחזרה למשוואה שלנו עבור LVLB, יש לנו

באמצעות כללי יומן, אנו מסדרים מחדש

d8

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

לבסוף, בהחלת שוויון זה על הביטוי הקודם, אנו מגיעים

התניה של התהליך קדימה אחורי ב-x0 ב-Lt-1 תוצאות בצורה פתירה שמובילה ל כל הבדלי KL הם השוואות בין גאוסים. המשמעות היא שניתן לחשב את ההבדלים במדויק עם ביטויים בצורה סגורה ולא עם הערכות מונטה קרלו[3].

בחירות דגם

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

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

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

תהליך קדימה ו-LT

כפי שצוין לעיל, לגבי התהליך קדימה, עלינו להגדיר את לוח השונות. במיוחד, הגדרנו אותם להיות קבועים תלויי זמן, תוך התעלמות מהעובדה שניתן ללמוד אותם. לדוגמה[3], לוח זמנים ליניארי מ-β1= 10-4 ל-βTניתן להשתמש ב-=0.2, או אולי בסדרה גיאומטרית.

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

תהליך הפוך ו-L1:T-1

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

כעת עלינו להגדיר את הצורות הפונקציונליות של μθ או Σθ. אמנם יש דרכים מסובכות יותר להגדיר פרמטרים של Σθ[5], פשוט קבענו

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

בהתחשב בניסוח החדש הזה של Σθ, יש לנו

מה שמאפשר לנו לשנות

ל

כאשר האיבר הראשון בהפרש הוא צירוף ליניארי של xt ו-x0 זה תלוי בלוח השונות βt. הצורה המדויקת של פונקציה זו אינה רלוונטית למטרותינו, אך ניתן למצוא אותה ב- [3].

המשמעות של הפרופורציה לעיל היא ש הפרמטר הפשוט ביותר של μθ פשוט מנבא את הממוצע האחורי של הדיפוזיה. חשוב לציין, המחברים של [3] למעשה מצא שאימון μθ לחזות את רעש רכיב בכל שלב זמן נתון מניב תוצאות טובות יותר. בפרט, תן

איפה

זה מוביל לפונקציית האובדן החלופית הבאה, אשר מחברי [3] נמצא כמוביל לאימון יציב יותר ולתוצאות טובות יותר:

המחברים של [3] ציין גם את הקשרים של ניסוח זה של מודלים של דיפוזיה למודלים מחוללים תואמי ציון המבוססים על דינמיקה של Langevin. אכן, נראה כי מודלים של דיפוזיה ומודלים מבוססי ציון עשויים להיות שני צדדים של אותו מטבע, בדומה להתפתחות עצמאית ובמקביל של מכניקת קוונטים מבוססת גל ומכניקת קוונטים מבוססת מטריצה ​​החושפים שני ניסוחים שוות ערך של אותן תופעות.[2].

אדריכלות רשת

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

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

מפענח תהליך הפוך ו-L0

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

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

כאשר D הוא הממדיות של הנתונים והכתב העילי i מציין חילוץ של קואורדינטה אחת. המטרה כעת היא לקבוע את הסבירות לכל ערך שלם עבור פיקסל נתון נתן ההתפלגות על פני ערכים אפשריים עבור הפיקסל המתאים בתמונה עם רעש קל בזמן t=1:

כאשר התפלגויות הפיקסלים עבור t=1 נגזרות מהגאוס הרב-משתני למטה שמטריצת השונות האלכסונית שלו מאפשרת לנו לפצל את ההתפלגות למכפלה של גאוסים חד-משתנים, אחד עבור כל מימד של הנתונים:

אנו מניחים שהתמונות מורכבות ממספרים שלמים ב-0,1,...,255 (כפי שעושים תמונות RGB סטנדרטיות) שהותאמו באופן ליניארי ל-[−1,1]. לאחר מכן אנו מפרקים את הקו האמיתי ל"דליים" קטנים, שם, עבור ערך פיקסל בקנה מידה נתון x, הדלי עבור טווח זה הוא [x−1/255, x+1/255]. ההסתברות לערך פיקסל x, בהינתן ההתפלגות הגאוסית החד-משתנית של הפיקסל המתאים ב-x1, הוא שטח מתחת לאותה התפלגות גאוסית חד-משתנית בתוך הדלי שבמרכזו x.

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

הערה טכנית

הדליים הראשונים והאחרונים משתרעים על -inf ו-+inf כדי לשמר הסתברות כוללת.

ניתן א t = 0 ערך פיקסל עבור כל פיקסל, הערך של pθ(x0|x1) הוא פשוט המוצר שלהם. תהליך זה מוקף בתמציתיות במשוואה הבאה:

איפה

ו

בהינתן משוואה זו עבור pθ(x0|x1), נוכל לחשב את האיבר הסופי של LVLB שאינו מנוסח כהבדל KL:

מטרה סופית

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

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

סיכום תיאוריית מודל הדיפוזיה

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

  1. מודל הדיפוזיה שלנו מוגדר כ- שרשרת מרקוב, כלומר המשתנים הסמויים שלנו x1,…,איקסT תלוי רק בשלב הזמן הקודם (או הבא).
  2. אל האני התפלגויות מעבר ברשת מרקוב נמצאים גאוס, שבו התהליך קדימה דורש לוח זמנים של שונות, ופרמטרי התהליך ההפוך נלמדים.
  3. תהליך הדיפוזיה מבטיח ש-xT is מופץ בצורה אסימפטוטית כגאוס איזוטרופי עבור T גדול מספיק.
  4. במקרה שלנו, ה לוח הזמנים של השונות נקבע, אבל אפשר ללמוד גם. עבור לוחות זמנים קבועים, מעקב אחר התקדמות גיאומטרית עשוי להניב תוצאות טובות יותר מהתקדמות ליניארית. בכל מקרה, השונות גדלות בדרך כלל עם הזמן בסדרה (כלומר βij עבורי
  5. דגמי דיפוזיה הם גמיש מאוד ולאפשר כל ארכיטקטורה שמימדי הקלט והפלט שלה זהים לשימוש. יישומים רבים משתמשים דמוי U-Net אדריכלות.
  6. אל האני מטרת האימון הוא למקסם את הסבירות של נתוני האימון. זה בא לידי ביטוי ככוונן של פרמטרי המודל למזער את הגבול העליון הווריאציוני של סבירות היומן השלילי של הנתונים.
  7. כמעט את כל המונחים בפונקציה האובייקטיבית ניתן להטיל בתור הבדלי KL כתוצאה מהנחת מרקוב שלנו. ערכים אלו להיות עמיד לחישוב בהתחשב בכך שאנו משתמשים גאוסים, ולכן משמיטים את הצורך לבצע קירוב מונטה קרלו.
  8. בסופו של דבר, באמצעות א מטרת הכשרה פשוטה לאמן פונקציה אשר מנבאת את מרכיב הרעש של משתנה סמוי נתון מניבה את התוצאות הטובות והיציבות ביותר.
  9. מפענח דיסקרטי משמש להשגת סבירות יומן על פני ערכי פיקסלים כשלב האחרון בתהליך הדיפוזיה ההפוכה.

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

דגמי דיפוזיה ב- PyTorch

בעוד שמודלים של דיפוזיה עדיין לא עברו דמוקרטיזציה באותה מידה כמו ארכיטקטורות/גישות ישנות אחרות ב- Machine Learning, עדיין יש יישומים זמינים לשימוש. הדרך הקלה ביותר להשתמש במודל דיפוזיה ב- PyTorch היא להשתמש ב- denoising-diffusion-pytorch חבילה, המיישמת מודל דיפוזיה של תמונה כמו זה שנדון במאמר זה. כדי להתקין את החבילה, פשוט הקלד את הפקודה הבאה בטרמינל:

pip install denoising_diffusion_pytorch

דוגמה מינימלית

כדי להכשיר מודל וליצור תמונות, אנו מייבאים תחילה את החבילות הדרושות:

import torch
from denoising_diffusion_pytorch import Unet, GaussianDiffusion

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

model = Unet(
 dim = 64,
 dim_mults = (1, 2, 4, 8)
)

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

diffusion = GaussianDiffusion(
 model,
 image_size = 128,
 timesteps = 1000, # number of steps
 loss_type = 'l1' # L1 or L2
)

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

training_images = torch.randn(8, 3, 128, 128)
loss = diffusion(training_images)
loss.backward()

לאחר הכשרה של המודל, נוכל סוף סוף ליצור תמונות באמצעות ה sample() השיטה של diffusion לְהִתְנַגֵד. כאן אנו יוצרים 4 תמונות, שהן רק רעש בהתחשב בכך שנתוני האימון שלנו היו אקראיים:

sampled_images = diffusion.sample(batch_size = 4)

הדרכה בנושא נתונים מותאמים אישית

אל האני denoising-diffusion-pytorch החבילה גם מאפשרת לך לאמן מודל דיפוזיה על מערך נתונים ספציפי. פשוט להחליף את 'path/to/your/images' מחרוזת עם נתיב ספריית הנתונים ב- Trainer() חפץ למטה, ושנה image_size לערך המתאים. לאחר מכן, פשוט הפעל את הקוד כדי לאמן את המודל, ולאחר מכן דגום כמו קודם. שימו לב ש-PyTorch חייב להיות הידור עם CUDA מופעל על מנת להשתמש ב- Trainer מעמד:

from denoising_diffusion_pytorch import Unet, GaussianDiffusion, Trainer
model = Unet(
 dim = 64,
 dim_mults = (1, 2, 4, 8)
).cuda()
diffusion = GaussianDiffusion(
 model,
 image_size = 128,
 timesteps = 1000, # number of steps
 loss_type = 'l1' # L1 or L2
).cuda()
trainer = Trainer(
 diffusion,
 'path/to/your/images',
 train_batch_size = 32,
 train_lr = 2e-5,
 train_num_steps = 700000, # total training steps
 gradient_accumulate_every = 2, # gradient accumulation steps
 ema_decay = 0.995, # exponential moving average decay
 amp = True # turn on mixed precision
)
trainer.train()

להלן ניתן לראות דה-נוז מתקדם מרעש גאוסי רב-משתני לספרות MNIST בדומה לדיפוזיה הפוכה:

מילים אחרונות

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

הפניות

[1] למידה עמוקה ללא פיקוח באמצעות תרמודינמיקה ללא שיווי משקל

[2] מודלים גנרטיביים על ידי הערכת שיפועים של חלוקת הנתונים

[3] Denoising Diffusion Probabilistic Models

[4] טכניקות משופרות לאימון מודלים מחוללים מבוססי ציונים

[5] מודלים הסתברותיים משופרים של דיפוזיה

[6] דגמי דיפוזיה ניצחו את GANs בסינתזת תמונה

[7] גלישה: לקראת יצירה ועריכה של תמונות פוטוריאליסטיות עם מודלים של פיזור מונחי טקסט

[8] יצירת תמונה מותנית בטקסט היררכי עם CLIP Latents

נהנים מהמאמר הזה? הירשם לעדכוני מחקר AI נוספים.

נודיע לך כשנפרסם מאמרים נוספים בנושא זה.

דבר איתנו

שלום שם! איך אני יכול לעזור לך?