Graffiti
Graffiti
Recycle Bin
Recycle Bin
xroi.cc
Welcome to
xroi.cc
Note Graph
Loading...
Loading Note Graph...
Aml סיכום למבחן

Aml סיכום למבחן

0 - מידע כללי למבחן

הבחינה ב-SEB והתוכן כמעט ללא שינוי משנים קודמות חוץ מ- 1. יהיו שאלות על RL 2. יהיו 2 שאלות קוד 3. השאלות יהיו בעברית 4. לא למדנו: 1. הנושאים Disentanglement ו-Compositionality 2. קצת פחות על Diffusion (אבל דומה ל-Flow Matchign) 3. שאלה 17 ממועד א 2023 4. "מטאפורמר לא ממש למדנו כמו שצריך אז לא צריך לדעת השנה" אבל כדאי להכיר את הסכמה של מטאפורמר ורזנט 5. סיכוי "פחות" שישאל איך ה-Attention של GPT שונה מ-BERT כי בשנים קודמות היה את זה בתרגיל (?) וגם פחות דיברנו על זה

איך ללמוד? - על כל שיטה שלמדנו לכתוב עליה קצת, מה היתרונות שלה, מה החסרונות שלה! - לוקח כל מיני לוסים שלמדנו בקורס ולכתוב אותם בפייטורצ'. (עד 5 שורות). - ידיד רומז שצריך לזכור את הנוסחאות. - לרוב המודלים למדנו 3 דברים - לוס, דגימה ו-Point Estimation.

1 - למידת מכונה כללית

מתי יותר קשה ללמוד?
question
  1. מעט דוגמאות אימון
  2. מימד של x או y גבוה (Curse of dimensionality)
  3. התפלגות המטרה היא עם אנטרופיה גבוה
  4. ה-y רציף
הגדרה - Empirical Risk
info

$$ L_{Emp} = \mathbb{E}{(x,y) \in \hat{q}} \ell (f\theta(x), y) = \frac{1}{n}\sum_{i=1}^{n} \ell (f_\theta(x_i), y_i) $$ - כאשר $\hat{q}$ היא ההתפלגות על הדגימות שלנו (מוגדרת בעזרת פונקציות דלטא כך שהאינטגרל שלה הוא 1). - על סמך זה מוגדר עקרון ה-Empirical Risk Minimization (ERM)

הגדרה - KL Divergence
info

$$ KL(Q|P) = \mathbb{E}{y \in q} \log \left( \frac{q(y)}{p\theta (y)} \right) = \sum_{y \in q} q(y) \cdot \log \left( \frac{q(y)}{p_\theta (y)} \right) $$ - דרך בסיסית למדוד מרחק בין התפלגויות

במקרה של למידה: $$ KL(Q|P) = \mathbb{E}{y \in q} \log \left( \frac{q(y|x)}{p\theta (y|x)} \right) $$

הגדרה - Entropy
info

$$ H(Q) = -\sum_{y \in q} q(y) \log q(y) $$ - מינוס לוג ההסתברות זה כמה המאורע "מפתיע" - להתפלגות האחידה יש את האנטרופיה הכי נמוכה

הגדרה - Cross Entropy
info

$$ CE(Q|P) = \mathbb{E}{y \in q} -\log p\theta(y) = -\sum_{y \in q} q(y) \log p_\theta(y) $$ - אינטואיטיבית בהקשר למידה זה כמה $p_{\theta}$ מופתע לפי ההתפלגות האמפירית - יכול להיות אינסוף אם p ממש נמוך מתי ש-q לא נמוך

במקרה אמפירי: $$ CE(Q|P) = -\frac{1}{n} \sum_{i \in [n]} \log p_\theta(y) $$ וזה בדיוק ה-Negative Log Likelihood!!!!

פיתוח KL
tip

מתקיים: $$ KL(Q|P) = CE(Q|P) - H(Q) $$ - כשנעשה אופטימיזציה על KL, לא אכפת לנו מהרכיב השני כי הוא קבוע ב-$\theta$ (תיאורטית היינו יכולים לאפטם על פני שניהם ואז זה לא היה נכון)

2 - מודלים גנרטיבים

בכל מודל יהיו נרצה להכיר את שלושת הדברים הבאים (אבל לא בכל מקרה יהיה אפשר לעשות את כולם): 1. שערוך - מציאת p שמשערכת את ההתפלגות האמיתית q 2. דגימה - למצוא דרך יעילה לדגום דגימות y לפי p(y) 3. שערוך נקודתי - בהינתן נקודה y, מה הצפיפות שלה ב-p. למה 1 שונה מ-3? ב-3 אני עושה מינימזציה לאיזה מדד הפרש כמו KL. יכול להיות שאני רק יודע לחשב אותו גלובלית ולא עבור נקודה מסוימת.

?איך טכנית דוגמים מגאוסיאן חד מימדי
question
  1. דוגמים אחיד בין-(0,1)
  2. מציבים בהופכי של ה-CDF (Cumulative distribution function) אפשר להרחיב את זה לגאוסיאן רב מימדי אבל באופן כללי זה קשה לדגום מפונקציות רב מימדיות שהן לא גאוסיאן

נראה המון פרדיגמות ולכל אחת יש ייתרונות וחסרונות ונכיר אותם.

2.1 מודלים אוטו-רגרסיבים

מודלים אוטו רגרסיבים מתבססים על חוק השרשרת. המודל של העולם הוא $$ q(y^{\leq d}) = q(y^d | y^{<d}) \cdot q(y^{d-1} | y^{< d-1}) \cdot ... \cdot q(y^2 | y^1) \cdot q (y^1) $$ ואנחנו לרוב נניח כי ה-y-ים הם משתנים דיסקרטיים (יכול להיות מקבוצה בגודל מיליון, למשל מילים) המטרה שלנו היא ללמוד לכל i את $$ p_\theta(y^i | y^{<i}) $$ שישערך כמה שיותר טוב את q.

תיאור המודל
error

מאמנים נגיד רשת נוירונים שבהינתן המילים עד עכשיו חוזה את המילה הבאה

שערוך / לוס של מודל אוטו רגרסיבי
tip

עושים את זה עם עקרון ה-Maximum likelihood / מינימום לוג לייקליהוד. שראינו (שגם כאן יוצא כמו Cross Entropy)! $$ L(\theta) = -\sum_{i=1}^d \mathbb{E}{q(y^{\leq i})} \log p\theta (y^i | y^{<i}) $$ ובהנחה שיש לי n משפטים שונים בסט האימון: $$ L(\theta) = -\sum_{i=1}^d \sum_{k=1}^n \log p_\theta (y^i_k | y^{<i}_k) $$ (בעצם בתוחלת של הקרוס אנטרופי במקרה האמפירי יש לי רק ערך אחד נכון ולכן נרצה שרק הוא יקבל את הלייקליהוד המקסימלי) (אבל יש לי כמה משפטים אז כן יכולות להיות כמה אפשרויות :))

דגימה ממודל אוטו רגרסיבי
tip

- מחשבים את ההסתברות כל מילה לפי הפונקציה $p_\theta$ שמצאנו, בהינתן המילים הקודמות. - אפשר לקחת את המקסימלית אבל אז אין שונות וזה לא כזה - אפשר לדגום לפי ההתפלגות שקיבלנו - אפשר לדגום לפי k המילים הכי טובות בהתפלגות שקיבלנו

Point Estimation במודל אוטו רגרסיבי
tip

ההסתברות עבור המשפט השלם היא בדיוק חוק השרשרת אבל עם הפונקציה שלמדנו: $$ \log p_\theta(y) = \sum_{i=1}^d \log p_\theta(y^i | y^{<i}) + log(y^1) $$

הסיבה שעושים הכול עם לוגים זה יציבות נומרית. בהכללה למודלים Conditional פשוט מוסיפים בהינתן x.

חסרונות: 1. זמן Inference לינארי באורך הסדרה O(n). אז בעייתי אם הסדרות ארוכות. 2. דורש סדר מסוים על הדאטא 3. לא מנצל Low Rank (?)

2.2 מודלי Variational Inference

הגדרה - GMM
info

$$ p(y) = \sum_{z=1}^k \alpha_z \cdot \mathcal{N}(y|\mu_z, \Sigma_z) $$ - אפשר לשערך באמצעות מקסימום לייקליהוד (בהנחה על כמות גאוסיאנים כלשהו). וגם יש טריק להתכנס מהר בעזרת אלגוריתם EM (אבל לא רלוונטי)

מודל Varational Autoencoder הוא סוג של הכללה של GMM למקרה שבו יש לנו אינסוף גאוסיאנים/מחלקות.

תיאור המודל
error
  • יש מרחב לטנטי z. נרצה שהוא יהיה גאוסיאן עם ממוצע 0 ושונות 1 (נכריח זאת בעזרת הלוס) ב-d מימדים.
  • נלמד פונקציה שבהינתן z תחזיר $\mu_z$ ו- $\Sigma_z$ במרחב של y.
  • לרוב השונות קבועה

איך זה מכליל GMM? $$ p_\theta(y) = \sum_z p_\theta(y|z) \cdot p_\theta(z) = \mathbb{E}{z \in p_Z} p\theta(y|z) $$ אבל יש אינסוף z-ים. אז איך נחשב את זה בצורה יעילה? גם כאן המטרה שלנו היא מינימום מינוס לוג לייקליהוד: $$ \arg \min_\theta L(\theta) = \sum_{i=1}^n - \log (p_\theta (y_i)) $$ הדרך להתמודד עם אי היעילות היא דגימה.

Monte Carlo Estimation
info

נניח שאנחנו רוצים לחשב את התוחלת של f(z) לפי Z ואנו יודעים לדגום מהמשתנה המקרי Z. אז במקום לחשב את האיטגרל המלא פשוט נדגום מלא פעמים מ-Z ונחשב את: $$ \tilde{f} \approx \frac{1}{M} \sum_{i=1}^M f(z_i) $$ ואם יהיו לנו אינסוף דגימות זה באמת יהיה הערך הנכון. אבל אם לא, תהיה בעיה כי תהיה שונות גבוהה בשערוך. זה מאוד תלוי התפלגות. למשל אם f(z) מאוד גבוהה רק במקום אחד, אבל p(z) יוניפורמית, אז סביר שלא נתפוס את הנקודה הזאת כשנדגום מ-p(z). כאן נכנס הרעיון הבא:

Importance Sampling
info

במקום לדגום מ-p(z), נבחר מה שנקרא Proposal Distribution שנמצאת סביב האיזור המעניין ונדגום משם (r). הבעיה היא שאז אנחנו משערכים את התוחלת לפי r ולא לפי z. אז ניתן משקולות importance כדי לנרמל את זה כראוי: $$ \mathbb{E}{z \in p}f(z) = \sum_z f(z) \cdot p(z) = \sum_z f(z) \cdot \frac{p(z)}{r(z)} \cdot r(z) = \mathbb{E}{z \in r} f(z) \cdot w(z) $$ תהיה שונות נמוכה בדגימה כאשר r(z) גבוה מתי ש-$p(z) \cdot f(z)$ גבוה

בהגדרה למעלה בהקשר שלנו f היא בעצם $p_\theta(y)$. אז איך נמצא את r? התשובה: נלמד רשת נוירונים שבהינתן y חוזה את r (בתור גאוסיאן).

שערוך / לוס של מודל VAE
tip

הלוס שנאפטם לפיו ה-ELBO (Evidence Lower Bound) $$ ELBO(y) = \mathbb{E}_{z \in r} \log \left( p(y|z) \right) - KL(r|p_z) $$ וזה נובע מלעשות לוג ללייקליהוד עם ה-Importance sampling אבל מתקיים: $$ log(p(y)) \geq ELBO(y) $$ - הצד השמאלי אומר שהתחזית שלנו בהינתן z במרחב הלטנטי תהיה טובה. - הצד הימני אומר שלא נתרחק מהמשתנה הנורמלי הסטנדרטי. - אפשר להוכיח שהערך האופטימלי של r הוא p(z|y) - ניקח ממוצע של ה-ELBO של כל הדגימות בדאטאסט - בפועל ב-VAE לומדים שני דברים: 1. פונקציית ג'נרטור/דיקודר G שבהינתן z מחזירה את המרכז של p(y|z) 2. פונקציית אנקודר שבהינתן y מחזירה mu ו-Sigma של גאוסיאן במרחב של z (שזה בעצם r)!!!!!!!!

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

Point Estimation VAE
tip

כבר יש לנו את האנקודר שנותן את r בהינתן y. אז פשוט מחשבים את $$ p(y) = \mathbb{E}{z \in p_z} p(y|z) = \mathbb{E}{z \in r} p(y|z) \cdot \frac{p(z)}{r(z|y)} $$ (שוב עם דגימה ומומלץ לדגום איזה 100 פעם)

2.3 מודלי Normalizing/Inverse Flow

נוסחאת החלפת המשתנים
info

$$ p_y(y) = p_z(\phi^{-1}(y)) |\det \frac{\partial \phi^{-1}(y)}{\partial y^T}| $$

אז פשוט נגדיר מודל מקסימום לייקליהוד, ונלמד את פי ככה! $$ L(\phi) = -\frac{1}{n}\sum_{i\in[n]} \log p_{y}(y_i) = -\frac{1}{n}\sum_{i\in[n]} \log \left( p_z(\phi^{-1}(y)) |\det \frac{\partial \phi^{-1}(y)}{\partial y^T}| \right) $$ אבל נצטרך שני דברים! 1. שפי תהיה הפיכה ונוכל למצוא את ההופכית. 2. שנוכל לחשב את הדטרמיננטה של היעקוביאן שלה.

מיפויים: 1. מיפוי אפיני: $$ \phi(z) = s \cdot z + b $$ קל להפוך ולחשב את הדטרמיננטה אבל לא אקספרסיבי מספיק 2. מיפוי Coupling: 1. מחלקים את z לשתי חתיכות, $z=(z_l,z_r)$ 2. חוזים עם רשת נוירונים, בהינתן $z_r$, מיפוי אפיני ל-$z_l$. כלומר חוזים $\hat{s}, b$ 3. מגדירים $y_r = s \cdot z_r + b$, $s = e^\hat{s}$ 4. מחזירים $y = (z_l, y_r)$ - בהינתן את המשקולות של הרשת, קל לחשב את ההופכי - לגבי דטרמיננטת יעקוביאן - היעקוביאן משולשית עליונה אז הדטרמיננטה זה האלכסון וזה יוצא $$ \prod_{k\in[d_r]} |s_k^{-1}| $$ 3. מיפוי פרמוטציה: להפוך בין הקואורדינות

בפועל משרשרים בין מיפויי Coupling ופרמוטציה. והדטרמיננטה היא מכפלת הדטרמיננטות!

שערוך / לוס של מודל Inverse Flows
tip

$$ L(\phi) = -\frac{1}{n}\sum_{i\in[n]} \log (p_{y}(y_i)) = -\frac{1}{n}\sum_{i\in[n]} \log \left( p_z(\phi^{-1}(y)) |\det \frac{\partial \phi^{-1}(y)}{\partial y^T}| \right) $$ $$ = -\frac{1}{n}\sum_{i\in[n]} \log (\prod s_k^{-1}) + \log (p_z(\phi^{-1}(y_i))) $$

Sampling Inverse Flows
tip

נדגום מ-z ונעביר דרך פי.

Point Estimation Inverse Flows
tip

בהינתן y נחשב את ה-z המתאים בעזרת ההופכית של פי, ואז נחשב את ההסתברות (בדרך כלל המרחב של z הוא פשוט גאוסיאן סטנדרטי אז קל לחשב) $$ log(p(y)) = \log (\prod s_k^{-1}) + \log (p_z(\phi^{-1}(y))) $$

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

2.4 מודלים אדברסריאלים

המודלים עד עכשיו השתמשו ב-Maximum likelihood / קירוב שלו. כאן לא

Two sample test
info

נניח שיש לנו דגימות משתי התפלגויות (ואנו לא יודעים כלום על ההתפלגויות). Two Sample Tests מנסים לענות לנו האם זו אותה התפלגות או לא. למשל: KL.

אבל KL Divergence בעייתי! כי בין התפלגויות אמפיריות זה יהיה אינסוף תמיד :(. זה נכון לא רק ל-KL, אלא לכל F-test.

Intergral Probablity Metrics
info

רעיון ל-Two Sample Tests שמטרתו היא למצוא פונקציה שמקבלת ערכים גבוהים עבור ההתפלגות האחת וערכים נמוכים עבור ההתפלגות השנייה. מודדים את המרחק בין ההתפלגויות לפי כמה טובה הפונקציה שמצאנו. $$ IPM(p,q|\mathcal{F}) = \max_{f \in \mathcal{F}} \mathbb{E}{y \in p}f(y) - \mathbb{E}{y \in q}f(y) $$

GAN
info

מאמנים שני מודלים במקביל. אחד שמג'נרט (נגיד תמונות), G, ודיסקרימנטור f שמנסה להבדיל בין תמונות אמיתיות למג'ונרטות. הלוס דומה ל-Two Sample Test: $$ L(\phi, \theta) = \mathbb{E}{z \in p_z}\log(f\theta(G_\phi(z))) + \mathbb{E}{y \in q}\log(1-f\theta(y)) $$

בעיות: 1. ההיפרפרמטרים של כמה עדכונים ל-G לעומת f וכו מאוד משפיעים על התוצאה. האימון לא יציב. 2. בהתחלה לדיסקרימינטור תהיה עבודה מאוד קלה, והוא יגיד שכל מה שמג'נרטים לא אמיתי, אז המודל הגנרטיבי לא ידע לאיזה כיוון ללכת כי הגרדיאנט לא אינפורמטיבי.

בעיה 3 - טענה: - אם הדיסקרימנטור הוא בעל כוח אינסופי/מספיק אקספרסיבי, הלוס של GAN אקוויולנטי ללוס JS. - זו בעיה כי זה דומה ל-KL וסיכוי גבוה שזה יקבל סתם log2 (לא אינסוף אבל קבוע ולא עוזר)! אז למה GAN סטנדרטי בכל זאת אפקטיבי לפעמים: זה לא בהכרח נכון שהדיסקרימנטור אופטימלי (כי מבוסס על רשת נוירונים שהיא בדר"כ חלקה) ועל כן לא תמיד יהיה אקוויולנטי.

==אז כדי לפתור את זה, מכריחים את הדיסרימנטור להיות ליפשיצי, וכשהוא ליפשיץ 1 ואופטמלי, הוא אקוויוולנטי למרחק וושרסטיין!!!== זה נקרא WGAN.

Wasserstein Distance
info

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

אבל איך מכריחים את הדיסקרימנטור להיות ליפשיצ 1? הרי הוא רשת נוירונים. יש כמה דרכים:

  1. אם כל שכבה היא ליפשיץ-1 אז ההרכבה שלהם היא ליפשיץ-1.
  2. לעשות Clipping למשקולות
  3. להוסיף ללוס רכיב של עונש על הגרדיאנט (אבל יכול להיות שיגדיל במקום אחד ויקטין במקום אחר)
  4. נרמול ספקטרלי - מחלקים את המשקולות של השכבות הליניאריות בערך העצמי הכי גדול.

2.5 מודלי Flow Matching (רעיון דומה ל-Diffusion / Score-based)

נרצה לעשות משהו דומה ל-Flow Matching מבלי חישובים מוזרים של הפיכות ויעקבואין ובלי ארכיטקטורות מוזרות. גם כאן יש לנו פריור בזמן t=0 (גאוסיאן), ונרצה להגיע להתפלגות האמיתית בזמן t=1. זה יתפתח בצורה רציפה שתי נקודות מבט: 1. לגרנג'יאן: פונקציית צפיפות שלמה על המרחב בכל נקודת זמן (probablity path). נסמן $p_t(y)$ 2. אוילר: מעקב אחר חלקיק ספציפי לאורך זמן. נסמן $\phi_t(y)$ (מתאר קואורדינטות)

Time dependant vector field
info

$$ \frac{d \phi_t (y)}{dt} = v_t(\phi_t(y)) $$ חלקיק בנקודה $\phi_t(y)$ זז במהירות $v_t(\phi_t(y))$ בזמן t.

נרצה לשערך את השדה הווקטורי $v_t$, ונעשה זאת בעזרת רשת נוירונים. אבל כדי לעשות זאת נצטרך להבין מה השדה האמיתי שאותו אנו משערכים, $u_t$. $$

\arg \min_{v_t} \mathbb{E}{y\sim p_t} ||v_t(y) - u_t(y)||^2 $$ ואז קל לחשב את המיקום בנקודה הבאה, פשוט מוסיפים למיקום $v_t\cdot \varDelta_t$. אז מה הprobablity path שלנו? אם היינו רוצים רק להגיע לנקודה אחת $y_1$ זה היה: $$ p_t(y|y_1) = N(y|\mu_t(y_1), \sigma_t^2I) $$ כאשר ב-t=1 מתקיים כי התוחלת היא y1 וב-t=0 היא 0. אבל אנחנו רוצים להגיע לכמה נקודות אז ניקח ממוצע משוקלל שלהם $$ p_t = \sum{y_1} p_t(y|y_1)q(y_1) $$ (בחישוב של זה עם ההתפלגות האמפירית נגיד לתמונות, סביר שיש לנו רק עותק אחד מכל תמונה ואז-q(y_1) יהיה אחיד לכל הנקודות). אבל נזכור שאנו רוצים את זה מנקודת המבט של שדה ווקטורי. נגדיר את השדה הווקטורי ה-Unconditional להיות: $$ u_t(y) = \sum_{y_1} u_t(y|y_1) \cdot p_t(y_1|y) = \sum_{y_1} u_t(y|y_1) \cdot \frac{p_t(y|y_1) \cdot q(y_1)}{p_t(y)} $$ ניתן להוכיח בעזרת ה-Continuity Equation כי השדה הווקטורי הזה מתאים לProbality path לעיל. ניתן להראות כי ביטויי האופטימיזציה הבאים שווים $$

\arg \min_{v_t} \mathbb{E}{y\sim p_t} ||v_t(y) - u_t(y)||^2 = \arg \min{v_t} \mathbb{E}_{y_1 \sim q, y\sim p_t|y_1} ||v_t(y) - u_t(y|y_1)||^2
$$ וכך באמת נאמן את הרשת. אבל מה השדות הווקטורים ה-Conditional??? במקרה הכי פשוט הקו הישר בין כל נקודה לy1.

שערוך / לוס של מודל Flow matching
tip

$$ \arg \min_{v_t} \mathbb{E}_{y_1 \sim q, y_0\sim p_0, t \sim U[0,1]} ||v_t(t\cdot y_1 + (1-t) \cdot y_0) - (y_1-y_0)||^2
$$

Sampling Flow Matching
tip

נדגום מגאוסיאן ונלך בצעדים בגודל $\varDelta_t$ קטן כלשהו. כל פעם נחשב את $v_t$ לפי רשת הנוירונים ונוסיף את המכפלה של שניהם לנקודה הנוכחית עד שנגיע לזמן t=1.

Point Estimation Inverse Flows
tip

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

Ideal Denoiser
info

במקרה הליניארי הרגיל של FLow Matching מתקיים כי: $$ u_t(y) = \frac{\sum_{y_1}y_1p_t(y_1|y) - y}{1 - t} = \frac{D(y) - y}{1 - t} $$ הביטוי הזה אומר לנו מה נקודת הסיום הצפויה שלנו. זה יוצא בדיוק ה-Ideal Denoiser התוחלת על פני כל הסיומים האפשריים עם ההסתברויות שלהם. מנקודת מבט דואלית, זה כאילו שהוספנו רעש לתמונות האימון שלנו, ואנחנו מנסים להעיף את הרעש. לא נוכל להגיד בדיוק מאיזו תמונה התחלנו, אבל נוכל לבחור ממוצע משוקלל שלהם. - לא יודע שום דבר על ההיסטוריה שלנו - לא תמיד יודע את הפתרון, משקלל אותם

Classifier free guidance
info

ניתן ליצור גרסא Conditional ל-Flow Matchign יחסית בקלות (מוסיפים את הקלאס או Embedding בתור קלט לרשת הנוירונים). אבל זה לא תמיד עובד כזה טוב. דרך אלטרנטיבית כי Classifier free guidance: $$ v_t^{CFG} = v_t(y) + \lambda (v_t(y|x) -v_t(y)) $$ - בפועל זה משפר. (כמובן תלוי ב-$\lambda$) - משלבים מודל Conditional עם מודל Uncoditional.

חסרונות: - הרשת במימד גבוה. בתמונות זה בעייתי אז לרוב עושים את זה ב-Latent Space שמשיגים בעזרת AutoEncoder

2.6 סיכום

Model Discrepency Sampling Point Estimate Pros Cons
Single Gaussian Maximum Likelihood simple with cdf equation +fast, simple - Not Expressive
GMM Maximum Likelihood pick gaussian, then sample equation (sum of gaussians) +stronger - hard to estimate
- need a lot of gaussians
Variational Inference ELBO (proved to be greater than mle) sample latent -> get gaussian -> sample it get the mu, var of the gaussian in latent with net -> sample from it a bunch of times -> equation +strong
+kinda efficient sample
- gaussian prior is weak, hard to replace
- not optimizing exactly log likelihood
Autoregressive Maximum likelihood sequentially whole sentence equation with chain rule +general architectures work
+ can paraellelize easily
- needs ordering
- serial sampling
Inverse Flow Maximum likelihood sample latent -> run through layers inverse and normalize!!! with det jacobian +quick LL optimization - high dim
- non-standard architectures
- layers invertible
GAN JS Divergence (for optimal), otherwise trained just sample - - collapse
- no point estimate
- hyperparameter sensitive
WGAN Wasserstein Distance just sample - - no point estimate
Flow Matching vector fields... L2 sample gaussian -> flow forward dt flow back? (yedid said didnt learn) + works well
+ needs less steps than autoregressive
- high dim
- iterative

3 - למידת ייצוגים

3.1 - מודל PCA

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

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

3.2 - מודל Laplacian Eigenmaps

Laplacian Eigenmaps
info
  1. עבור כל נקודה מוצאים K-NN.
  2. מחשבים משקול של השכנים לפי המרחק
  3. לומדים Embeddig Z כך שאם המשקול גבוה המרחק קטן.
  4. נאפטם כך שגם למעלה יקרה אבל גם הקווריאנס של כל הנקודות ה-Embedded תהיה I. (כדי שלא נעשה Collapse לווקטור קבוע)

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

3.3 - מודל tSNE

בעיות כלליות עם שיטות קלאסיות: 1. איך מסווגים נקודות test עכשיו? למדנו רק את ה-Embedding של האימון 2. הסתמכנו מאוד על המרחק האוקלידי, אבל הוא לרוב לא מעניין 3. לא כזה עובד טוב

3.4 - מודל VICReg

המודל מהווה סוג של אמורטיזציה עם למידה עמוקה של Laplacian Eigenmaps.

שיטות מודרניות עושות שני שינויים: 1. אמורטיזציה - במקום ללמוד z לכל דוגמא, נלמד רשת שתמפה מ-x ל-z. 2. במקום למצוא שכנים, נייצר שכנים (אוגמנטציה).

מה טוב באוגמנטציות? 1. יכול למדל שונות סמנטית 2. לא דורש kNN O(n^2)

מה רע באוגמנטציות? 1. צריך להחליט על ווריאציות 2. לא כל אוגמנטציה קל לייצר

לוס VICReg
info

$$ \mathcal{L}{VIC} = \alpha \cdot \sum{k=1}^K \max (0, 1 - \sqrt{Cov(Z){k,k}}) + \beta \sum{j=1, j \neq k}^K Cov(Z)^2_{k,j} + \frac{\gamma}{N} \sum_{i=1}^N \sum_{j=1}^N (G){i,j} ||Z{i,\cdot} - Z_{j,\cdot}||2^2 $$ 1. הרכיב הראשון מכריח את האלכסון של הקווריאנס להיות לפחות 1. (נועד למנוע Collapse) 2. הרכיב השני מכריח את כל מה שמחוץ לאלכסון של הקווריאנס להיות קרוב ל-0. (נועד למנוע Collapse) 3. הרכיב השלישי הוא המשמעותי. לוקחים זוגות של ייצוגים של דוגמא והאוגמנטציה שלה. כלומר $(G){i,j}$ הוא 0 כאשר i הוא לא אוגמנטציה של j. ונרצה שהם יהיו כמה שיותר קרובים :).

3.4 - מודל Contrastive Learning

Contrastive Learning
info
  1. לומדים אנקודר $E_\theta$. שמעביר תמונות למרחב ה-Embedding.
  2. נרצה שהדימיון במרחב ה-Embedding בין כל אוגמנטציה לתמונה שיצרה אותה יהיה יותר גבוה מהדימיון לכל תמונה אחרת. כלומר: $$ p(i'|i) = \frac{e^{E_\theta (x_i) \cdot E_\theta (x_i')}}{\sum_{j=1}^n e^{E_\theta (x_i) \cdot E_\theta (x_j)}} $$
  3. הפלט של האנקודר יהיה מנורמל (כלומר על מעגל היחידה)
  4. התפלגות האמת $q$ תהיה 1-hot.
  5. הלוס יהיה פשוט KL בין שתי ההתפלגויות.
  6. הייצוג עצמו זה לא הפלט שעל מעגל היחידה אלא האוגמנטציות שעל השכבה הלפני אחרונה.

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

לוס של Contrastive Learning
info

$$ L(E_\theta) = \sum_i -log(p(i'|i)) = \sum_i - E_\theta(x_i) \cdot E_\theta(x_i') + \log (\sum_{j=1}^n e^{E_\theta(x_i) \cdot E_\theta(x_j')}) $$ - כמו למעלה. - הרכיב הראשון אומר שנהיה קרובים לאוגמנטציה - הרכיב השני אומר שנהיה רחוקים מהשאר - (הכול על מעגל היחידה)

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

לוס מודל
info

$$ L(E_\theta) = \sum_i R(E_\theta(x_i)) \cdot E_{SG(\theta)}(x_i') $$ - לא חשוב מה זה R זה ה-Prediction head בלה

3.5 - מודל Barlow Twins

מבוסס על CCA ומעניין אותנו יותר הרעיון הכללי ופחות הניסוח המדויק. ב-CCA יש לנו זוגות של דברים שמתארים את אותו דבר למשל תמונה וטקסט שמתאר אותה, או תמונה ואוגמנטציה. CCA מנסה ללמוד ייצוג במימד d כך ש: 1. הקורלציה בין הווקטור בגודל n שמתאר את המימד ה-i של הייצוג של הקבוצה הראשונה, יהיה קורלטיבי לווקטור בגודל n שמתאר את המימד ה-i של הייצוג של הקבוצה השנייה. 2. המימד ה-i ו-j (אם הם שונים) לא קורלטיבי (או אנטי קורלטיבי). מתמטית: $$ C_{i,j} = \frac {\sum_{(z,z') \in (Z, Z')}z_i \cdot z_j'} {\sqrt{\sum_{z \in Z}z_i^2}\cdot \sqrt{\sum_{z' \in Z}{z'}_j^2}} $$

למה זה עובד? 1. זה המימדים יהיו אינפורמטיבים בגלל דרישת הקורלציה (בשביל הקורלציה צריכה להיות ווריאציה גם בתוך הווקטור שבגודל n) 2. לא יהיה קולפס כי לא תהיה קורלציה בין המימדים השוניפ.

אז מה עושים בBarlow Twins. קודם כל שני הדאטאסטים זה תמונות ואוגמנטציות.

לוס של Barlow Twins
info

$$ L(\theta) = \sum_{i=1}^d (1-C_{ii})^2 + \alpha \sum_{i=1}^d \sum_{j \neq i} C_{ij}^2 $$ כלומר פשוט נרצה שהקווריאנס תהיה מטריצת היחידה.

מה העלות החישובית של Barlow Twins לעומת Contrastive Learning: - ב-Contrastrive Learning זה $O(n^2 \cdot d)$ - ב-CCA זה $O(d^2 \cdot n)$ זה ייתרון!

3.6 אחר

השיטות הבאות אינן מבוססות שכנויות וזה היתרון שלהן!

3.6.1 אוטו-אנקודר

שיטה קלה וקלאסית של לימוד ייצוגים אבל לא בהכרח מאפטם את מה שצריכים $$ L(E,G) = \mathbb{E}_{x \in q} || G(E(x) - x) || ^2 $$

3.6.2 מודל VQ-VAE

דוחס ל-Embedding דיסקרטי. לא נכנסים לאיך בדיוק מאפטמים דבר כזה

3.6.3 מודל Masked Autoencoder

מודל BERT לטקסט מודל BEIT לתמונות

3.7 סיכום

Model Pros Cons
Contrastive +Works Well -O(n^2 d)
-Need to know augmentations
Barlow Twins +O(n d^2) -O(n d^2)
SimSiam +O(nd) -Might Collapse if not careful
VICRreg ??? כמו קונטרסטיב
BERT +Works Well -Doesn't reduce dimension
BEIT - -
MAE +Good for pretraining -Doesn't learn good representations

3.8 אפליקציות

  1. חיפוש/Retrieval - מציאת תמונות דומות במרחב הייצוג
  2. קליסטור במרחב הייצוג
    1. קליסטור Latent Variable
    2. קליסטור Classification Based ==אוליייי todo זה ב-04.06==
  3. זיהוי אנומליות - מודדים צפיפיות במרחב הייצוג, בוחרים סף ומה שמתחת נחשב אנומליה.
    1. צריך להיזהר לא להסתכל על probability density או להשוות ביניהן כי אין לזה משמעות
    2. לרוב עושים knn במרחב הייצוג ואם k הנקודות קרובות זה אנומלי ואם לא זה לא.

4 - למידת חיזוק

4.1 - למידת חיזוק בשלב אחד

סימונים: 1. מצב: x 2. פעולה: y 3. פוליסי (ההתפלגות של הפעולות בהינתן מצב): $\pi (y|x)$ 4. ריוורד (דטרמניסטי שקיים בעולם, הפרס על לעשות את פעולה x בהינתן y): $r(x,y)$ סט האימון בלמידת חיזוק הוא הניסיון: שלשות $(x, y, r(x,y))$. זה ההבדל המרכזי בין RL ל-Supervised Learning. אנו לא תמיד יודעים מה הפעולה האופטימלית!

Value Function (One Step Case)
info

פונקציית $v$ (התוחלת של ה-Reward מסטייט x כשמשתמשים בפוליסה $\pi$): $$ v_\pi (x) = \mathbb{E}_\pi r(x,y) = \sum_y \pi (y|x) r (x,y) $$

פונקציית $q$ (התוחלת של ה-Reward מסטייט x כשמבצעים את פעולה $y$ ומשתמשים בפוליסה $\pi$): $$ Q_\pi (x,y) = r(x,y) $$

Policy Optimization
info

הפוליסה האופטמלית תקיים את הדבר הבא: $$ \pi^* = \arg \max_{\pi \in \Pi} \sum_x p(x) \cdot v_\pi(x) = \mathbb{E}_{x \sim p_x, y \sim \pi(\cdot | x)} r(x,y) $$

אבל איך מוצאים אותה?

4.1.1 - שיטות On Policy

פתרון נאיבי לפוליסה האופטימלית
info

הפוליסה האופטמלית תקיים את הדבר הבא: $$ \pi^*(x) = \arg \max_y r(x,y) $$ - זה לא פיזבילי לא תמיד נוכל לנסות את כל הפעולות בהינתן סטייט מסויים - גם אם כן זה יכול לקחת מלא זמן - יכול להיות שעד שנגיע לפעולה הנכונה נבחר פעולה קטסטרופלית - יכול להיות גם שמרחב הפעולות שלנו אינסופי

איך מתגברים על זה? משתמשים ב:

Reward Model
info

פשוט לומדים את פונקציית ה-Reward: $$ L(\theta) = \sum_{i=1}^n ||Q_\theta(x_i, y_i) - r(x_i, y_i)||^2 $$ - בעיה: אם הדאטאסט שלנו מגיע מפוליסי ספציפי, אז בכלל לא נבדוק פעולות חדשות טובות שאנחנו כרגע מגדירים כלא. - (משלבים את זה עם ה-argmax מהבלוק הקודם בצורה איטרטיבית)

שיטה אלטרנטיבית ונפוצה:

אלגוריתם REINFORCE / Policy Gradients
info

ראינו כי אנו רוצים למצוא את הפוליסה עם ה-Excpected Reward המקסימלי. $$ R(\pi_\theta) = \mathbb{E}{x \sim p_x, y \sim \pi\theta(\cdot | x)} r(x,y) $$ אז נגזור את זה לפי הפרמטרים של פונקציית הפוליסי: $$ \nabla_\theta R(\pi_\theta) = \mathbb{E}{x \sim p_x, y \sim \pi\theta(\cdot | x)} \nabla_\theta \log \pi_\theta (y|x) r(x,y) $$ - (יש שם איזה טריק עם הלוג של הגרדיאנט) - עכשיו פשוט עושים Gradient Descent כדי למצוא את הפוליסי האופטימלי ביחס ל-Expected Rewards. - לרוב הפוליסי תהיה רשת נוירונים עכשיו - למה זה טוב לעומת reward model? פותר את בעיית ה-Bias, עושים יותר אקספלורציה לסטייטים שלא ראינו. - עובד טוב עבור המקרה שיש לנו מרחב פעולות אינסופי!

שינוי קטן לזה - Supervised Fine Tuning: (Only Positive actions): נגיד אנחנו רוצים לשפר LLM. ניקח רק את הפלטים הטובים ואת הLLM הקיים (הפוליסה) ונאפטם לפי: $$ \nabla_\theta L(\theta) = \mathbb{E}{y \sim \pi\theta(\cdot | x), r(x,y) > 0} \nabla_\theta \log \pi_\theta(x,y) $$ נשים לב שזה פשוט מקסימום לייקליהוד.

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

Baseline selection
info

קבוע (פר סטייט) שמוסיפים / מחסירים מה-Reward כדי שיהיו גם חיוביים וגם שליליים. נקודה חשובה: בתוחלת של הגרדיאנט, כל פני כל הפעולות, זה לא משפיע (על פעולות ספציפיות משפיע) איך בוחרים? מפחיתים את ה-Value (ה-Reward הממוצע בסטייט) מהפונקציית Q שלנו (שבמקרה של צעד אחד זה פשוט הריוורד האמפירי).

4.1.2 - שיטות Off Policy

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

Off Policy (Importance Sampling)
info

$$ \nabla_\theta R(\pi_\theta) = \mathbb{E}{x \sim p_x, y \sim \pi_0(\cdot | x)} \frac{\pi\theta(y|x)}{\pi_0(y|x)} \nabla_\theta \log \pi_\theta (y|x) r(x,y) $$ אנו משתמשים פה ב-Importance Weighting

Off Policy (Trust region)
info

$$ \nabla_\theta R(\pi_\theta) = \mathbb{E}{x \sim p_x, y \sim \pi_0(\cdot | x)} r(x,y) - \beta \cdot KL(\pi\theta (y|x) | \pi_0 (y|x)) $$ - כאן לא עושים Importance Weighting אבל מוסיפים רכיב שאומר שאי אפשר להתרחק יותר מדי מהפוליסה המקורית. - מסתבר שיש לזה פתרון Closed Form! - כש-beta היא אינסוף נשמור את הפוליסה הישנה - כש-beta היא 0 זה מאפטמים גם לפי ה-Experience הישן כאילו הוא היה חדש - בפועל אנחנו לא יודעים את כל r(x,y) וזה נקרא Reward Weighted Regression

Off Policy (PPO)
info

שיטה היוריסטית עושים קליפ ל-Importance weights כך שיוכל להיות עד +20% אם הריוורד חיובי, ועד -20% אם הריוורד שלילי. (או מספר אחר)

4.2 - למידת חיזוק סדרתית

מה נרצה לאפטם?

Expected Rewards
info

נמצא את הפוליסה שתאפטם את: $$ G_t = R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + ... = R_{t+1} + \gamma G_{t+1} $$ - יותר מעניין אותי הריוורד הקרוב מהרחוק כתלות ב-$\gamma$. זה גם פותר את הבעיה שזה סכום אינסופי, כי אז זה נסכם למשהו סופי.

Value Functions (Sequential Case)
info

פונקציית $v$ (התוחלת של ה-Reward מסטייט x כשמשתמשים בפוליסה $\pi$): $$ v_\pi (x) = \mathbb{E}\pi [G_t | x] = \mathbb{E}{y \sim \pi(\cdot | x)}[r(x,y) + \gamma G_{t+1} | x] $$

פונקציית $q$ (התוחלת של ה-Reward מסטייט x כשמבצעים את פעולה $y$ ומשתמשים בפוליסה $\pi$): $$ q_\pi (x,y) = \mathbb{E}\pi [G_t | x, y] = \mathbb{E}{\pi}[r(x,y) + \gamma G_{t+1} | x, y] $$

4.2.1 - שיטות Model Based RL

Value Functions (Sequential Case) (Recursive Formulations)
info

$$ v_\pi (x) = \sum_y \sum_{x'} \pi (y|x) p(x'|x,y) [r(x,y) + \gamma v_\pi(x')] $$

$$ q_\pi (x,y) = \sum_{x'} p(x' | x,y)[r(x,y) + \gamma \sum_y' \pi(y'|x') q_\pi (x' y')] $$

אז איך משפרים את הפוליסי? - בהחנה שהצלחנו לחשב את ה-q להכול, ניקח את פוליסת ה-argmax כמו במקרה ה-Single Step. - ואז בצורה איטרטיבית -> חישוב פונקציות Value, שיפור policy

4.2.2 - שיטות Model Free RL

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

Mote Carlo Rollouts
info

במקום החישוב הרקורסיבי של ה- Expected Returns, פשוט "משחקים את המשחק" לפי הפוליסה שלנו בעולם פעם אחת או הרבה והממוצע של התוצאות זה זה.

עכשיו אפשר לאמן רשת שמהווה reward model או פוליסה. חסרונות: 1. אם לא לומדים רשת ומנסים להכליל, יהיו המון חוויות שיהיו חסרות 2. זה On Policy

Temporal Difference Methods (TD(0), SARSA)
info

כזכור תיאורטית היינו רוצים לחשב את $$ q_\pi (x,y) = \sum_{x'} p(x' | x,y)[r(x,y) + \gamma \sum_y' \pi(y'|x') q_\pi (x' y')] $$ אבל זה קשה מדי כשאין מודל. אז נשערך את זה על ידי דגימה של x' אחד ו-y' אחד ואז משערכים כך: $$ q_{t+1} (x,y) = r(x,y) + \gamma q_t(x', y') $$ אבל יש לזה שונות גבוהה אז נשתמש ב-Learning Rate: $$ q_{t+1} (x,y) = (1-\alpha) \cdot q_t(x,y) + \alpha [r(x,y) + \gamma q_t(x', y')] $$

Temporal Difference Methods (Q-Learning)
info

זו דרך Off Policy לשערך את ה-q של הפוליסה האופטימלית. דוגמים רק x' $$ q_{t+1} (x,y) = (1-\alpha) \cdot q_t(x,y) + \alpha [r(x,y) + \gamma \max_{y'} q_t(x', y')] $$

Globe
Loading...
Loading Globe...
It looks like you're reading this page! Need help?
Dinosaur
00:00 PM