מודל דיפוזיה

מודל דיפוזיה (באנגלית: Diffusion model) הוא סוג של מודל גנרטיבי ללמידת מכונה שתוכנן על ידי ג'ונתן הו ועמיתיו מאוניברסיטת קליפורניה בשנת 2020 בהינתן סט אימון, ניתן להשתמש במודל בשביל ללמוד את ההתפלגות שממנה מגיעים הנתונים, וכתוצאה מכך ניתן להשתמש בו בשביל ליצור דגימות חדשות שנראות כמו דגימות ששייכות למאגר הנתונים. לדוגמה, מודל שאומן על מאגר תצלומים של בני אדם, יוכל ליצור תצלומים חדשים של בני אדם שנראים אותנטיים ומכילים מאפיינים מציאותיים רבים. דוגמאות למודלי דיפוזיה מוכרים הם DALL-E של OpenAI או parti של גוגל. הרעיון של מודל דיפוזיה הועלה לראשונה ב-2015 במחקר שפורסם על ידי גסצ'ה סול דיקסטיין ועמיתיו בתור אופציה נוספת על פני מודלים גנרטיבים אחרים כגון GAN. ב-2021 זכה לתהודה כאשר המודל DALL-E של OpenAi העושה שימוש במודל, הצליח ליצור תמונות מפורטות במגוון סגנונות. התחום קיבל גל חדש של עניין בשל כך וחברות רבות עלו עם מודלי דיפוזיה משלהם. תהליך האימון מתחלק לשני חלקים, בחלק הראשון מוסיפים רעש גאוסיאני לתמונת האימון בהדרגה והמודל לומד את ההתפלגות הפוסטריורית q ( x 1... T | x 0 ) {\displaystyle q(\mathrm {x} _{1...T}|\mathrm {x} _{0})} (התפלגות המצבים בשרשרת המרקוב בהינתן התמונה ההתחלתית). בשלב השני הופכים את התהליך ומנסים לשחזר את התמונה המקורית מהתמונה עם הרעש על ידי הורדת הרעש שנוסף בכל שלב והמודל לומד את ההתפלגות ההפוכה p θ ( x t − 1 | x t ) {\displaystyle p_{\theta }(\mathrm {x} _{t-1}|\mathrm {x} _{t})} (התפלגות התמונה בהינתן תמונה עם הוספת רעש). בכל שלב מוסיפים רעש גאוסיאני לתמונת האימון וממשיכים כך באופן באופן איטרטיבי מספר קבוע של פעמים T {\displaystyle T} (בדרך כלל T {\displaystyle T} גדול מספיק כך שהתמונה הופכת לרעש גאוסיאני ללא אפשרות לזיהוי של התמונה המקורית). את תהליך הוספת הרעש אפשר לתאר על ידי שרשרת מרקוב q ( x 1... T | x 0 ) = ∏ t = 1 T q ( x t | x t − 1 ) = ∏ t = 1 T N ( x t ; 1 − β t x t − 1 , β t I ) {\displaystyle q(\mathrm {x} _{1...T}|\mathrm {x} _{0})=\prod _{t=1}^{T}{q(\mathrm {x} _{t}|{\mathrm {x} }_{t-1})}=\prod _{t=1}^{T}{N(\mathrm {x} _{t};{\sqrt {1-\beta _{t}}}\mathrm {x} _{t-1},\beta _{t}{\mathrm {I} })}} כאשר t {\displaystyle t} מייצגת את מספר האיטרציה ו- β {\displaystyle \beta } מייצגת את גודל הצעד ( β {\displaystyle \beta } נקבעת לפי המתזמן שבחרנו). אפשר לחשב את האיטרציה ה- t {\displaystyle t} בחישוב אחד על ידי q ( x t | x 0 ) = N ( x t ; a t ¯ x 0 , 1 − a t ¯ ) {\displaystyle q(\mathrm {x} _{t}|{\mathrm {x} }_{0})=N(\mathrm {x} _{t};{\sqrt {\bar {a_{t}}}}\mathrm {x} _{0},1-{\bar {a_{t}}})} כאשר a t = 1 − β t {\displaystyle a_{t}=1-\beta _{t}} ו- a t ¯ = ∏ s = 1 t a s {\displaystyle {\bar {a_{t}}}=\textstyle \prod _{s=1}^{t}\displaystyle {a_{s}}} . בשלב זה לוקחים את תמונת הרעש מהשלב הקודם ומנסים לשחזר ממנה את התמונה המקורית בעזרת רשת עצבית מלאכותית שמקבלת את התמונה x t {\displaystyle \mathrm {x} _{t}} ומנסה לנחש את הרעש שנוסף לתמונה x t − 1 {\displaystyle \mathrm {x} _{t-1}} (מנסים לנחש את הרעש ולא את התמונה x t − 1 {\displaystyle \mathrm {x} _{t-1}} ישירות מכיוון שזה נותן תוצאה טובה יותר. אפשר להשיג את התמונה x t − 1 {\displaystyle \mathrm {x} _{t-1}} ברגע שיש לנו את הרעש) ואת התהליך נבצע T {\displaystyle T} פעמים עד שנקבל את התמונה המשוחזרת. את התהליך אפשר לתאר כשרשרת מרקוב p θ ( x 1... T ) = p ( x T ) ∏ t = 1 T p θ ( x t − 1 | x t ) {\displaystyle p_{\theta }(\mathrm {x} _{1...T})=p(\mathrm {x} _{T})\prod _{t=1}^{T}p_{\theta }(\mathrm {x} _{t-1}|\mathrm {x} _{t})} כאשר p ( x T ) {\displaystyle p(\mathrm {x} _{T})} היא ההסתברות ההתחלתית למצב x T {\displaystyle \mathrm {x} _{T}} (התפלגות גאוסיאנית). Jonathan Ho, Denoising Diffusion Probabilistic Models Alex Nichol, Improved Denoising Diffusion Probabilistic Models Prafulla Dhariwal, Diffusion Models Beat GANs on Image Synthesis מימוש מודל פיזור, במחברת colab הסבר מפורט על המתמטיקה של מודל הפיזור באתר assemblya סרטון המסביר על מודלי פיזור באתר יוטיוב הסבר על המודל Jonathan Ho, Ajay Jain, Pieter Abbeel, Denoising Diffusion Probabilistic Models, 2020 ascha Sohl-Dickstein, Eric Weiss, Niru Maheswaranathan, Surya Ganguli, Deep Unsupervised Learning using Nonequilibrium Thermodynamics, Proceedings of the 32nd International Conference on Machine Learning, 2015, עמ' 2256-2265